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

# Create Candidate



## OpenAPI

````yaml post /unified/ats/candidates
openapi: 3.1.0
info:
  title: ATS
  description: The documentation for the StackOne Unified API - ATS
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.stackone.com
security: []
tags:
  - name: Application Changes
    description: >-
      Chronological record of changes made to the application (this will only
      track changes for specific properties of the Application model).
  - name: Application Notes
    description: Notes or comments on applications.
  - name: Application Stages
    description: Stages of the job application process
  - name: Applications
    description: Job applications submitted by candidates.
  - name: Assessments
    description: Candidate assessments or tests.
  - name: Background Checks
    description: Background screening checks.
  - name: Candidates
    description: People applying for jobs.
  - name: Custom Field Definitions
    description: Definitions for custom fields on ATS resources.
  - name: Departments
    description: Departments within an organization.
  - name: Documents
    description: Files and documents related to candidates or jobs.
  - name: Interviews
    description: Scheduled interviews with candidates.
  - name: Job Postings
    description: Public job advertisements.
  - name: Jobs
    description: Open job positions.
  - name: Lists
    description: Lists for organizing candidates or jobs.
  - name: Locations
    description: Job or office locations.
  - name: Notes
    description: General notes or comments.
  - name: Offers
    description: Job offers extended to candidates.
  - name: Orders
    description: Orders for background checks or assessments.
  - name: Packages
    description: Assessment or offer packages.
  - name: Rejected Reasons
    description: Reasons for candidate rejection.
  - name: Results
    description: Results of assessments or background checks.
  - name: Scheduled Interviews
    description: Planned interview sessions.
  - name: Scorecards
    description: Evaluation scorecards for candidates.
  - name: Users
    description: System users with access to the ATS.
paths:
  /unified/ats/candidates:
    post:
      tags:
        - Candidates
      summary: Create Candidate
      operationId: ats_create_candidate
      parameters:
        - name: x-account-id
          in: header
          description: The account identifier
          required: true
          schema:
            type: string
        - name: Prefer
          in: header
          required: false
          description: >-
            Set to "heartbeat" to enable keep-alive newline heartbeats during
            long-running requests. Response includes Preference-Applied:
            heartbeat header when honored. (RFC 7240)
          schema:
            type: string
            example: heartbeat
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AtsCreateCandidateRequestDto'
      responses:
        '201':
          description: The candidate was successfully created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateResult'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestResponse'
        '401':
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
        '403':
          description: Forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenResponse'
        '404':
          description: Resource not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
        '408':
          description: The request has timed out.
          headers:
            Retry-After:
              description: A time in seconds after which the request can be retried.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestTimedOutResponse'
        '409':
          description: Conflict with current state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictResponse'
        '412':
          description: >-
            Precondition failed: linked account belongs to a disabled
            integration.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedResponse'
        '422':
          description: Validation error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnprocessableEntityResponse'
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsResponse'
        '500':
          description: Server error while executing the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerErrorResponse'
        '501':
          description: This functionality is not implemented.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotImplementedResponse'
        '502':
          description: Bad gateway error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadGatewayResponse'
      security:
        - basic: []
components:
  schemas:
    AtsCreateCandidateRequestDto:
      type: object
      properties:
        passthrough:
          type: object
          description: Value to pass through to the provider
          example:
            other_known_names: John Doe
          additionalProperties: true
          nullable: true
        unified_custom_fields:
          type: object
          description: Custom Unified Fields configured in your StackOne project
          additionalProperties: true
          example:
            my_project_custom_field_1: REF-1236
            my_project_custom_field_2: some other value
          nullable: true
        phone_number:
          type: string
          description: The candidate personal phone number
          example: '+1234567890'
          deprecated: true
          nullable: true
        phone_numbers:
          description: >-
            List of candidate phone numbers including the type of the number
            when available
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/PhoneNumber'
        name:
          type: string
          description: Candidate name
          example: Romain Sestier
          nullable: true
        first_name:
          type: string
          description: Candidate first name
          example: Romain
          nullable: true
        last_name:
          type: string
          description: Candidate last name
          example: Sestier
          nullable: true
        email:
          type: string
          description: Candidate email
          example: sestier.romain123@gmail.com
          nullable: true
        social_links:
          description: List of candidate social links
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/SocialLink'
        company:
          type: string
          description: Candidate company
          example: Company Inc.
          nullable: true
        title:
          type: string
          description: Candidate title
          example: Software Engineer
          nullable: true
        hired_at:
          type: string
          description: Candidate hired date
          example: '2021-01-01T01:01:01.000Z'
          format: date-time
          nullable: true
        country:
          type: string
          description: Candidate country
          example: United States
          nullable: true
        custom_fields:
          description: The candidate custom fields
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/CustomFields'
    CreateResult:
      type: object
      properties:
        statusCode:
          type: number
          example: 201
        message:
          type: string
          example: Record created successfully.
        timestamp:
          type: string
          example: '2021-01-01T01:01:01.000Z'
          format: date-time
        data:
          $ref: '#/components/schemas/CreateResultDataApiModel'
      required:
        - statusCode
        - message
        - timestamp
        - data
    BadRequestResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 400
        message:
          type: string
          description: Error message
          example: Bad Request
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
        data:
          description: Error details
          nullable: true
          allOf:
            - $ref: '#/components/schemas/UnifiedError'
        provider_errors:
          description: List of provider-specific errors
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/ProviderError'
      required:
        - statusCode
        - message
        - timestamp
    UnauthorizedResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 401
        message:
          type: string
          description: Error message
          example: Unauthorized
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    ForbiddenResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 403
        message:
          type: string
          description: Error message
          example: Forbidden resource
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    NotFoundResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 404
        message:
          type: string
          description: Error message
          example: Not Found
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    RequestTimedOutResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 408
        message:
          type: string
          description: Error message
          example: Request timed out
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    ConflictResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 409
        message:
          type: string
          description: Error message
          example: Conflict
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    PreconditionFailedResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 412
        message:
          type: string
          description: Error message
          example: Precondition failed
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    UnprocessableEntityResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 422
        message:
          type: string
          description: Error message
          example: Unprocessable Entity
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    TooManyRequestsResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 429
        message:
          type: string
          description: Error message
          example: Too many requests
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    InternalServerErrorResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 500
        message:
          type: string
          description: Error message
          example: Internal server error
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    NotImplementedResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 501
        message:
          type: string
          description: Error message
          example: Not Implemented
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    BadGatewayResponse:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 502
        message:
          type: string
          description: Error message
          example: Bad Gateway
        timestamp:
          type: string
          description: Timestamp when the error occurred
          example: '2023-05-30T00:00:00.000Z'
          format: date-time
      required:
        - statusCode
        - message
        - timestamp
    PhoneNumber:
      type: object
      properties:
        type:
          type: string
          description: Type of phone number
          enum:
            - personal
            - work
            - mobile
            - home
            - unknown
            - other
            - unmapped_value
            - null
          x-speakeasy-unknown-values: allow
          nullable: true
        phone:
          type: string
          description: Phone number string
          example: '+447700112233'
          nullable: true
    SocialLink:
      type: object
      properties:
        type:
          type: string
          description: Type of the social link
          example: linkedin
          nullable: true
        url:
          type: string
          description: URL of the social link
          example: https://www.linkedin.com/in/romainsestier/
          nullable: true
    CustomFields:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier
          example: 8187e5da-dc77-475e-9949-af0f1fa4e4e3
          nullable: true
        remote_id:
          type: string
          description: Provider's unique identifier
          example: 8187e5da-dc77-475e-9949-af0f1fa4e4e3
          nullable: true
        name:
          type: string
          description: The name of the custom field.
          example: Training Completion Status
          nullable: true
        value:
          description: The value associated with the custom field.
          example: Completed
          oneOf:
            - type: string
            - type: number
            - type: boolean
            - type: object
            - type: array
              items: {}
            - type: string
              format: date-time
          nullable: true
        value_id:
          type: string
          description: The unique identifier for the value of the custom field.
          example: value_456
          nullable: true
        remote_value_id:
          type: string
          description: Provider's unique identifier for the value of the custom field.
          example: e3cb75bf-aa84-466e-a6c1-b8322b257a48
          nullable: true
    CreateResultDataApiModel:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier
          example: 8187e5da-dc77-475e-9949-af0f1fa4e4e3
          nullable: true
        remote_id:
          type: string
          description: Provider's unique identifier
          example: 8187e5da-dc77-475e-9949-af0f1fa4e4e3
          nullable: true
    UnifiedError:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
          example: 400
          nullable: true
        message:
          type: string
          description: Error message
          example: Bad Request
          nullable: true
        headers:
          type: object
          description: Response headers
          example:
            content-type: application/json
            x-request-id: 5678c28b211dace4e0a0f9171e6b88c5
          nullable: true
    ProviderError:
      type: object
      properties:
        status:
          type: number
          description: HTTP status code of the provider error
          example: 400
          nullable: true
        url:
          type: string
          description: URL that caused the error
          example: https://api.provider.com/v1/resource
          nullable: true
        raw:
          type: object
          description: Raw error response from the provider
          example:
            message: Invalid input parameters
          nullable: true
        headers:
          type: object
          description: Response headers
          example:
            content-type: application/json
            x-request-id: 5678c28b211dace4e0a0f9171e6b88c5
          nullable: true
  securitySchemes:
    basic:
      type: http
      scheme: basic

````