> ## 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.

# AI Apply: Unified API

> Learn about the alternate way of using AI Apply, compatible with Kombo's Unified API.

<Warning>
  **Deprecation Notice**

  The AI Apply Unified API endpoints are no longer actively supported. We recommend migrating to the [standard AI Apply API](/ai-apply) for all new and existing integrations.
</Warning>

## Overview

Whereas the default AI Apply API is a block-based format designed to render
sections and structure as they appear in the remote job posting, the alternate
Unified API variant matches Kombo's core philosophy of hiding standard fields
and allowing you to provide them via standardized API fields on top of the
screening question answers.

## Why use this API?

For existing Kombo customers, this is the fastest way to test AI Apply. Your
existing screening question rendering and submission logic will work without
modification, as the API response schema is identical.

<Tip>
  Make sure to understand the differences between the two AI Apply APIs before
  choosing one. The default AI Apply API can be found [here](/ai-apply).
</Tip>

## Which API Should You Use?

We recommend the standard [AI Apply API](/ai-apply) for new integrations—it
preserves sections and context, helping candidates better understand questions.
Both APIs support pre-filling data via unified keys.

Use this Unified API variant primarily if you're an existing Kombo customer wanting
compatibility with your current integration. Note that filtering standard fields may
result in a list of screening questions that miss context (e.g. the standard
`FIRST_NAME` and `LAST_NAME` fields are filtered out, leaving an ambiguous middle
name question which is not unified).

## How It Works

Fields that would usually be tagged by `unified_key` in the standard API
(e.g. `FIRST_NAME`) are filtered out and instead provided via the `candidate`
object (e.g. `candidate.first_name`).

Currently, the following fields are filtered out by default:

* **Name fields** (`FIRST_NAME`, `LAST_NAME`, `FULL_NAME`) → Provided via
  `candidate.first_name` and `candidate.last_name`
* **Email** (`EMAIL`) → Provided via `candidate.email_address`
* **Phone** (`PHONE_*` fields) → Provided via `candidate.phone_number` as international format
* **Resume** (`RESUME`) → Provided via `attachments` with type `CV`

When you fetch jobs, these fields are automatically removed from the screening
questions.

<Note>
  The filtered fields are configurable to suit your product's need. E.g. if you
  only collect first name and last name, you can configure the API to only
  filter out the `FIRST_NAME`, `LAST_NAME`, `FULL_NAME` fields, while the
  remaining fields are provided via the `screening_question_answers` field.

  Reach out to us for setting this up.
</Note>

## API Endpoints

### Get Jobs

Use the [GET jobs](https://api.kombo.dev/docs/#/AI%20Apply/GetAiApplyUnifiedApiJobs)
to retrieve an array of jobs and their screening questions (with unified fields
filtered out as described above).

### Create Applications

Submit applications using the [POST applications](https://api.kombo.dev/docs/#/AI%20Apply/PostAiApplyUnifiedApiJobsJobIdApplications)
endpoint. The filtered fields must be provided via the `candidate`/`attachments`
object as described above, with remaining screening questions in the
`screening_question_answers` array.

#### Query Parameters

Unique to AI Apply, you may want to include query parameters in your request
which get used when opening the job posting URL and submitting the application.
For example, you may want to specify a specific user ID to be used for tracking
purposes.

These can be specified in the top-level `query_params` property of the
application submission object. This property is unique to the AI Apply Unified
API, and not available in our core Unified API.

<Info>
  {' '}

  Please make sure to read through our general AI Apply query parameters
  documentation to understand which parameters should be added during the [parse
  process](/ai-apply#adding-query-parameters), and which parameters should be
  added during the [application
  process](/ai-apply#query-parameters-in-applications).{' '}
</Info>

#### Example Submission

```json theme={null}
{
  "candidate": {
    "first_name": "John", // Used for fields of type `FIRST_NAME`, `FULL_NAME`
    "last_name": "Doe", // Used for fields of type `LAST_NAME`, `FULL_NAME`
    "email_address": "john.doe@example.com", // Used for fields of type `EMAIL`
    "phone_number": "+12345678900" // Used for fields of type `PHONE_*`
  },
  "query_params": {
    "user_id": "8e05b4e5-c586-4d42-8606-b45febad3af3"
  },
  "attachments": [
    {
      "data_url": "https://example.com/resume.pdf", // Used for fields of type `RESUME`
      "name": "John Doe's Resume",
      "type": "CV"
    }
  ],
  // Screening questions are provided as-usual for any non-filtered fields
  "screening_question_answers": [
    {
      "question_id": "1",
      "answer": "I've been working as a software engineer for the past 10 years."
    },
    {
      "question_id": "2",
      "answer": "I am allowed to work in the US."
    }
  ]
}
```

## Ready to start using AI Apply?

Getting started with AI Apply is straightforward. Here's what you need to do:

1. **Parse your job postings**: Send the URLs of jobs you want to enable AI Apply for to the [parse job postings endpoint](https://api.kombo.dev/docs/#/AI%20Apply/PostAiApplyPostings).

2. **Retrieve screening questions**: Continue using the standard [Unified API get jobs endpoint](/ats/v1/get-jobs) in addition to the [AI Apply-compatible get jobs endpoint](https://api.kombo.dev/docs/#/AI%20Apply/GetAiApplyUnifiedApiJobs) to retrieve the jobs from both APIs.

3. **Submit applications**: For jobs that you have parsed via AI Apply, use the [AI Apply-compatible create application endpoint](https://api.kombo.dev/docs/#/AI%20Apply/PostAiApplyUnifiedApiJobsJobIdApplications) instead of the standard [create application endpoint](/ats/v1/post-jobs-job-id-applications).
