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

# Parse a job posting

> Submit a job posting URL to be parsed asynchronously. Returns ID to track progress.



## OpenAPI

````yaml POST /ai-apply/postings
openapi: 3.1.0
info:
  title: Kombo API
  version: 1.0.0
servers:
  - url: https://api.kombo.dev/v1
    description: Kombo EU API
  - url: https://api.us.kombo.dev/v1
    description: Kombo US API
security:
  - ApiKey: []
tags:
  - name: General
  - name: Kombo Connect
    description: >-
      Endpoints for Kombo Connect, our end-user-facing flow for setting up new
      integrations.
  - name: Unified HRIS API
    description: Unified endpoints to access all the HR concepts you might need.
  - name: Unified ATS API
    description: Unified endpoints to access all the ATS concepts you might need.
  - name: Unified ATS (Assessment & Background Check) API
    description: >-
      Unified endpoints to operate Assessments and Background Checks for many
      applicant tracking systems.
  - name: Unified LMS API
    description: Unified endpoints to access all the LMS concepts you might need.
  - name: AI Apply
    description: Endpoints for AI-powered job application features.
  - name: Custom Endpoints
    description: Custom integration-specific endpoints.
paths:
  /ai-apply/postings:
    post:
      tags:
        - AI Apply
      summary: Parse a job posting
      description: >-
        Submit a job posting URL to be parsed asynchronously. Returns ID to
        track progress.
      operationId: PostAiApplyPostings
      requestBody:
        description: POST /ai-apply/postings Request body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostAiApplyPostingsRequestBody'
            examples:
              example1:
                value:
                  url: >-
                    https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102
                  job_code: ACME_13
                  location:
                    country: US
                    postal_code: '94115'
                  career_site_id: Chc4dua5asAQ48KUERDVF1bs
      responses:
        '200':
          description: POST /ai-apply/postings Positive response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostAiApplyPostingsPositiveResponse'
              examples:
                example1:
                  value:
                    status: success
                    data:
                      id: 9QGNv3B98kL3hyELE1qsZ86s
                      career_site:
                        id: Chc4dua5asAQ48KUERDVF1bs
                        label: Acme
                      url: >-
                        https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102
                      job_code: ACME_13
                      created_at: '2025-01-01T00:00:00.000Z'
                      updated_at: '2025-03-02T23:12:32.000Z'
                      archived_at: null
                      archived_reason: null
                      availability: PENDING
        default:
          $ref: '#/components/responses/ErrorResponseAiApply'
components:
  schemas:
    PostAiApplyPostingsRequestBody:
      type: object
      properties:
        url:
          type: string
          format: uri
          pattern: ^https?:\/\/
          description: The URL of the job posting to parse
        job_code:
          type: string
          description: Job code to associate with the job posting
        location:
          type:
            - object
            - 'null'
          properties:
            country:
              type: string
              enum:
                - AD
                - AE
                - AF
                - AG
                - AI
                - AL
                - AM
                - AO
                - AQ
                - AR
                - AS
                - AT
                - AU
                - AW
                - AX
                - AZ
                - BA
                - BB
                - BD
                - BE
                - BF
                - BG
                - BH
                - BI
                - BJ
                - BL
                - BM
                - BN
                - BO
                - BQ
                - BR
                - BS
                - BT
                - BV
                - BW
                - BY
                - BZ
                - CA
                - CC
                - CD
                - CF
                - CG
                - CH
                - CI
                - CK
                - CL
                - CM
                - CN
                - CO
                - CR
                - CU
                - CV
                - CW
                - CX
                - CY
                - CZ
                - DE
                - DJ
                - DK
                - DM
                - DO
                - DZ
                - EC
                - EE
                - EG
                - EH
                - ER
                - ES
                - ET
                - FI
                - FJ
                - FK
                - FM
                - FO
                - FR
                - GA
                - GB
                - GD
                - GE
                - GF
                - GG
                - GH
                - GI
                - GL
                - GM
                - GN
                - GP
                - GQ
                - GR
                - GS
                - GT
                - GU
                - GW
                - GY
                - HK
                - HM
                - HN
                - HR
                - HT
                - HU
                - ID
                - IE
                - IL
                - IM
                - IN
                - IO
                - IQ
                - IR
                - IS
                - IT
                - JE
                - JM
                - JO
                - JP
                - KE
                - KG
                - KH
                - KI
                - KM
                - KN
                - KP
                - KR
                - KW
                - KY
                - KZ
                - LA
                - LB
                - LC
                - LI
                - LK
                - LR
                - LS
                - LT
                - LU
                - LV
                - LY
                - MA
                - MC
                - MD
                - ME
                - MF
                - MG
                - MH
                - MK
                - ML
                - MM
                - MN
                - MO
                - MP
                - MQ
                - MR
                - MS
                - MT
                - MU
                - MV
                - MW
                - MX
                - MY
                - MZ
                - NA
                - NC
                - NE
                - NF
                - NG
                - NI
                - NL
                - 'NO'
                - NP
                - NR
                - NU
                - NZ
                - OM
                - PA
                - PE
                - PF
                - PG
                - PH
                - PK
                - PL
                - PM
                - PN
                - PR
                - PS
                - PT
                - PW
                - PY
                - QA
                - RE
                - RO
                - RS
                - RU
                - RW
                - SA
                - SB
                - SC
                - SD
                - SE
                - SG
                - SH
                - SI
                - SJ
                - SK
                - SL
                - SM
                - SN
                - SO
                - SR
                - SS
                - ST
                - SV
                - SX
                - SY
                - SZ
                - TC
                - TD
                - TF
                - TG
                - TH
                - TJ
                - TK
                - TL
                - TM
                - TN
                - TO
                - TR
                - TT
                - TV
                - TW
                - TZ
                - UA
                - UG
                - UM
                - US
                - UY
                - UZ
                - VA
                - VC
                - VE
                - VG
                - VI
                - VN
                - VU
                - WF
                - WS
                - YE
                - YT
                - ZA
                - ZM
                - ZW
              description: The country in which the job is located
            postal_code:
              type: string
              description: The postal/zip code in which the job is located
          required:
            - country
          description: >-
            The location in which the job is located. When omitted, the existing
            location is preserved. Pass null to explicitly clear an existing
            location.
        career_site_id:
          type: string
          description: >-
            The globally unique ID of this object generated by Kombo. We
            recommend using this as a stable primary key for syncing.
      required:
        - url
        - career_site_id
    PostAiApplyPostingsPositiveResponse:
      type: object
      properties:
        status:
          type: string
          const: success
        data:
          type: object
          properties:
            id:
              type: string
              description: >-
                The globally unique ID of this object generated by Kombo. We
                recommend using this as a stable primary key for syncing.
            career_site:
              type: object
              properties:
                id:
                  type: string
                  description: >-
                    The globally unique ID of this object generated by Kombo. We
                    recommend using this as a stable primary key for syncing.
                label:
                  type: string
              required:
                - id
                - label
            url:
              type: string
            job_code:
              type:
                - string
                - 'null'
            created_at:
              description: YYYY-MM-DDTHH:mm:ss.sssZ
              type: string
              format: date-time
              externalDocs:
                url: >-
                  https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
            updated_at:
              description: YYYY-MM-DDTHH:mm:ss.sssZ
              type: string
              format: date-time
              externalDocs:
                url: >-
                  https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
            archived_at:
              description: >-
                The date and time the job posting was archived. You can only
                send applications if the job posting is not archived.
              type:
                - string
                - 'null'
              format: date-time
              externalDocs:
                url: >-
                  https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
            archived_reason:
              type:
                - string
                - 'null'
              enum:
                - JOB_POSTING_TAKEN_OFFLINE
                - MANUAL_ARCHIVE
                - REMOVED_FROM_JOB_FEED
            availability:
              type: string
              enum:
                - APPLYABLE
                - PENDING
                - ARCHIVED
                - UNAVAILABLE
              description: >-
                The status of the job posting. You can only send applications if
                the job posting is "APPLYABLE".
          required:
            - id
            - career_site
            - url
            - job_code
            - created_at
            - updated_at
            - archived_at
            - archived_reason
            - availability
          examples:
            - id: 9QGNv3B98kL3hyELE1qsZ86s
              career_site:
                id: Chc4dua5asAQ48KUERDVF1bs
                label: Acme
              url: https://careers.acme.com/jobs/fullstack-engineer-ai-infra-14102
              job_code: ACME_13
              created_at: '2025-01-01T00:00:00.000Z'
              updated_at: '2025-03-02T23:12:32.000Z'
              archived_at: null
              archived_reason: null
              availability: PENDING
      required:
        - status
        - data
  responses:
    ErrorResponseAiApply:
      description: The standard error response with the error codes for AI Apply.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                enum:
                  - error
              error:
                type: object
                properties:
                  code:
                    type:
                      - string
                      - 'null'
                    enum:
                      - PLATFORM.RATE_LIMIT_EXCEEDED
                      - PLATFORM.CONCURRENCY_LIMIT_EXCEEDED
                      - PLATFORM.INTEGRATION_NOT_FOUND
                      - PLATFORM.INPUT_INVALID
                      - PLATFORM.UNKNOWN_ERROR
                      - PLATFORM.IP_NOT_WHITELISTED
                      - PLATFORM.AUTHENTICATION_INVALID
                      - PLATFORM.TASK_TIMED_OUT
                      - REMOTE.SERVICE_UNAVAILABLE
                      - REMOTE.RATE_LIMIT_EXCEEDED
                      - REMOTE.INPUT_INVALID
                      - REMOTE.UNKNOWN_HTTP_ERROR
                      - AI_APPLY.JOB_FEED_IMPORT_ALREADY_RUNNING
                      - AI_APPLY.JOB_FEED_IMPORT_TIMED_OUT
                      - AI_APPLY.JOB_POSTING_ALREADY_EXISTS
                    example: ATS.JOB_CLOSED
                    description: >-
                      Some errors include an error code that can be used to
                      identify their cause. See the [Error Handling
                      Docs](https://docs.kombo.dev/guides/errors) for more
                      information. For your error handling logic please use the
                      error `code` instead of other properties (e.g. message,
                      http status code, ...).
                  title:
                    type:
                      - string
                      - 'null'
                    description: A static, human-readable label.
                  message:
                    type: string
                    description: >-
                      A dynamic, detailed description of what went wrong in this
                      specific instance.
                  log_url:
                    type:
                      - string
                      - 'null'
                    format: uri
                    description: >-
                      The log page in the Kombo UI lists every interaction with
                      full details. If you need assistance, share that link with
                      our support team.
                required:
                  - code
                  - title
                  - message
                  - log_url
                description: Error details with structured code for programmatic handling.
            required:
              - status
              - error
          examples:
            Error Response:
              description: >-
                When building error handling logic, always use the `code` field
                to identify specific error types programmatically. See the
                complete list of error codes in the
                [docs](https://docs.kombo.dev/guides/errors).
              value:
                status: error
                error:
                  code: INTEGRATION.MODEL_NOT_AVAILABLE
                  title: >-
                    This data model isn't supported for the selected
                    integration.
                  message: >-
                    The "employees" model is not yet available for Greenhouse.
                    Please reach out to Kombo if you need this functionality.
                  log_url: https://app.kombo.dev/my-prod/logs?interactionId=123456
            Minimal Error Response:
              description: >-
                The "message" is always required while other fields can also be
                `null`. See the [docs](https://docs.kombo.dev/guides/errors) for
                more information.
              value:
                status: error
                error:
                  code: null
                  title: null
                  message: The message is always in the response.
                  log_url: null
  securitySchemes:
    ApiKey:
      type: http
      scheme: bearer
      description: >-
        Create an API key on the [Secrets](https://app.kombo.dev/secrets) page
        in the Kombo dashboard.

````