> ## Documentation Index
> Fetch the complete documentation index at: https://docs.yourjobsearchgenius.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Customer

> Retrieves detailed information about a specific customer including engagement statistics.



## OpenAPI

````yaml api-reference/openapiFiles/customers/GetCustomer/openapi.json get /customers/{_id}
openapi: 3.0.1
info:
  title: Get Customer by ID
  description: >-
    Retrieves detailed information about a specific customer including
    engagement statistics.
  version: 1.0.0
servers:
  - url: https://api.yourjobsearchgenius.ai/v1
    description: Production server
security:
  - bearerAuth: []
paths:
  /customers/{_id}:
    get:
      tags:
        - Customers
      summary: Get Customer by ID
      description: >-
        Retrieves detailed information about a specific customer including
        engagement statistics.
      parameters:
        - name: _id
          in: path
          description: The customer's unique identifier
          required: true
          schema:
            type: string
            pattern: ^[a-fA-F0-9]{24}$
            example: 507f1f77bcf86cd799439011
      responses:
        '200':
          description: Customer details response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerDetailResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Customer not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    CustomerDetailResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CustomerDetail'
        success:
          description: Indicates if the request was successful
          type: boolean
          example: true
      required:
        - data
        - success
    Error:
      type: object
      properties:
        error:
          description: Error message
          type: string
          example: Customer not found
        success:
          description: Indicates if the request was successful
          type: boolean
          example: false
      required:
        - error
        - success
    CustomerDetail:
      type: object
      properties:
        _id:
          description: ID of the customer (MongoDB ObjectId)
          type: string
          example: 507f1f77bcf86cd799439011
        firstName:
          description: The first name of the customer.
          type: string
          example: John
        lastName:
          description: The last name of the customer.
          type: string
          example: Doe
        email:
          description: Email address of the customer.
          type: string
          example: john@example.com
        accountStatus:
          description: Current status of the customer account
          type: string
          enum:
            - active
            - inactive
          example: active
        onboardingCompleted:
          description: Whether the customer has completed onboarding
          type: boolean
          example: true
        lastLoginDate:
          description: Date and time of the customer's last login
          type: string
          format: date-time
          example: '2024-01-15T10:30:00Z'
        createdAt:
          description: Date and time when the customer account was created
          type: string
          format: date-time
          example: '2024-01-01T00:00:00Z'
        subscriptionId:
          description: Subscription ID in our system
          type: string
          example: sub_123456789
        subscriptionStatus:
          description: Current status of the customer's subscription
          type: string
          enum:
            - active
            - inactive
            - cancelled
            - expired
          example: active
        subscriptionPackageName:
          description: Name of the subscription package
          type: string
          example: Premium Plan
        subscriptionFrequency:
          description: Billing frequency of the subscription
          type: string
          enum:
            - monthly
            - yearly
            - weekly
            - daily
          example: monthly
        subscriptionCurrentPeriodEnd:
          description: End date of the current subscription period
          type: string
          format: date-time
          example: '2024-02-01T00:00:00Z'
        autoLogin:
          $ref: '#/components/schemas/AutoLogin'
        engagementStats:
          $ref: '#/components/schemas/EngagementStats'
      required:
        - _id
        - firstName
        - lastName
        - email
        - accountStatus
        - onboardingCompleted
        - createdAt
        - subscriptionId
        - subscriptionStatus
        - autoLogin
        - engagementStats
    AutoLogin:
      type: object
      properties:
        autoLoginUrl:
          description: The auto login URL for the customer.
          type: string
          format: uri
          example: https://app.yourjobsearchgenius.ai/auto-login?code=abc123
        autoLoginCode:
          description: The auto login code for the customer.
          type: string
          example: abc123
      required:
        - autoLoginUrl
        - autoLoginCode
    EngagementStats:
      type: object
      properties:
        resumesCount:
          description: Total number of resumes
          type: integer
          example: 5
        interviewsCount:
          description: Total number of interviews
          type: integer
          example: 8
        jobTracking:
          $ref: '#/components/schemas/JobTracking'
        mockInterviews:
          $ref: '#/components/schemas/MockInterviews'
        offerNegotiationsCount:
          description: Total number of offer negotiations
          type: integer
          example: 2
        contactsCount:
          description: Total number of contacts
          type: integer
          example: 12
        coverLettersCount:
          description: Total number of cover letters
          type: integer
          example: 7
      required:
        - resumesCount
        - interviewsCount
        - jobTracking
        - mockInterviews
        - offerNegotiationsCount
        - contactsCount
        - coverLettersCount
    JobTracking:
      type: object
      properties:
        totalJobs:
          description: Total number of tracked jobs
          type: integer
          example: 30
        statusBreakdown:
          $ref: '#/components/schemas/JobTrackingStatusBreakdown'
      required:
        - totalJobs
        - statusBreakdown
    MockInterviews:
      type: object
      properties:
        totalInterviews:
          description: Total number of mock interviews
          type: integer
          example: 8
        interviews:
          description: Array of mock interview objects
          type: array
          items:
            $ref: '#/components/schemas/MockInterview'
      required:
        - totalInterviews
        - interviews
    JobTrackingStatusBreakdown:
      type: object
      properties:
        applied:
          description: Number of jobs applied to
          type: integer
          example: 15
        interviewing:
          description: Number of jobs in interviewing stage
          type: integer
          example: 5
        offered:
          description: Number of job offers received
          type: integer
          example: 2
        rejected:
          description: Number of job rejections
          type: integer
          example: 8
      required:
        - applied
        - interviewing
        - offered
        - rejected
    MockInterview:
      type: object
      properties:
        _id:
          description: ID of the mock interview
          type: string
          example: 507f1f77bcf86cd799439013
        title:
          description: Title of the interview
          type: string
          example: Software Engineer Interview
        stageType:
          description: Type of interview stage
          type: string
          example: technical
        difficulty:
          description: Difficulty level of the interview
          type: string
          example: medium
        isCompleted:
          description: Whether the interview is completed
          type: boolean
          example: true
        createdAt:
          description: Date when the interview was created
          type: string
          format: date-time
          example: '2024-01-10T14:30:00Z'
        takeCount:
          description: Number of times this interview was taken
          type: integer
          example: 3
        averageScore:
          description: Average score across all takes
          type: number
          example: 82.3
        allTakes:
          description: Array of all interview takes
          type: array
          items:
            $ref: '#/components/schemas/MockInterviewTake'
      required:
        - _id
        - title
        - stageType
        - difficulty
        - isCompleted
        - createdAt
        - takeCount
        - averageScore
        - allTakes
    MockInterviewTake:
      type: object
      properties:
        _id:
          description: ID of the interview take
          type: string
          example: 507f1f77bcf86cd799439012
        title:
          description: Title of the interview
          type: string
          example: Software Engineer Interview
        stageType:
          description: Type of interview stage
          type: string
          example: technical
        difficulty:
          description: Difficulty level of the interview
          type: string
          example: medium
        isCompleted:
          description: Whether the interview is completed
          type: boolean
          example: true
        createdAt:
          description: Date when the interview was created
          type: string
          format: date-time
          example: '2024-01-10T14:30:00Z'
        score:
          description: Score achieved in this take
          type: number
          example: 85.5
      required:
        - _id
        - title
        - stageType
        - difficulty
        - isCompleted
        - createdAt
        - score
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````