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

# Create Application

> Create a job application for a candidate. Phone number must be in E.164 format (e.g. +16505551234, +66812345678). The interview call is triggered automatically.



## OpenAPI

````yaml /swagger/v1_schema.yaml post /jobs/{job_posting_id}/applications
openapi: 3.0.3
info:
  title: TalentUnveiled Public API
  version: 1.0.0
  description: API documentation for TalentUnveiled endpoints
servers:
  - url: https://api.talentunveiled.com/api/v1
    description: Production server
security: []
paths:
  /jobs/{job_posting_id}/applications:
    post:
      tags:
        - TalentUnveiled Public API
      summary: Create Application
      description: >-
        Create a job application for a candidate. Phone number must be in E.164
        format (e.g. +16505551234, +66812345678). The interview call is
        triggered automatically.
      operationId: jobs_applications_create
      parameters:
        - in: path
          name: job_posting_id
          schema:
            type: string
            format: uuid
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateApplicationRequestRequest'
            examples:
              CreateApplication:
                value:
                  first_name: John
                  last_name: Doe
                  phone_number: '+16505551234'
                  email: john@example.com
                  custom_fields:
                    Notice period: 30 days
                    Why this role?: Looking for growth opportunities
                    Years of experience: 7
                  cv_url: https://example.com/cv/jane-doe.pdf
                summary: Create application
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationResponse'
          description: ''
        '409':
          description: The candidate has already applied to this job posting.
      security:
        - apiKeyAuth: []
        - {}
components:
  schemas:
    CreateApplicationRequestRequest:
      type: object
      properties:
        first_name:
          type: string
          minLength: 1
          maxLength: 150
        last_name:
          type: string
          minLength: 1
          default: ''
          maxLength: 150
        phone_number:
          type: string
          minLength: 1
          description: Phone number in E.164 format (e.g. +16505551234, +66812345678).
          maxLength: 20
        email:
          type: string
          format: email
          minLength: 1
          default: ''
        custom_fields:
          type: object
          additionalProperties: {}
          nullable: true
          description: >-
            Free-form JSON object of customer-submitted data collected before
            the application reaches TalentUnveiled (e.g. answers from a
            pre-application funnel). Top-level must be a JSON object; any keys
            and value types are allowed inside. Max 64 KB serialized.
        cv_url:
          type: string
          format: uri
          nullable: true
          description: >-
            Optional https URL to the candidate's CV (PDF). If provided, the CV
            is downloaded and processed asynchronously.
      required:
        - first_name
        - phone_number
    ApplicationResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        status:
          allOf:
            - $ref: '#/components/schemas/ApplicationStatusEnum'
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        candidate:
          $ref: '#/components/schemas/ExternalCandidate'
        custom_fields:
          readOnly: true
          nullable: true
          description: >-
            Customer-provided custom fields submitted at application creation
            via the external API. Free-form JSON object. Top-level must be an
            object; inside, any keys/values are allowed. Max 64 KB serialized.
      required:
        - candidate
        - created_at
        - custom_fields
        - id
        - status
    ApplicationStatusEnum:
      enum:
        - applied
        - screened
        - interviewed
        - shortlisted
        - hired
        - rejected
      type: string
      description: |-
        * `applied` - Applied
        * `screened` - Screened
        * `interviewed` - Interviewed
        * `shortlisted` - Shortlisted
        * `hired` - Hired
        * `rejected` - Rejected
    ExternalCandidate:
      type: object
      properties:
        first_name:
          type: string
          nullable: true
          readOnly: true
        last_name:
          type: string
          nullable: true
          readOnly: true
        phone_number:
          type: string
        email:
          type: string
          format: email
          readOnly: true
          nullable: true
      required:
        - email
        - first_name
        - last_name
        - phone_number
  securitySchemes:
    apiKeyAuth:
      type: http
      scheme: bearer
      description: >-
        API key authentication for the public API. Pass your API key as a Bearer
        token.

````