---
title: "Get jobs"
method: GET
path: "/ai-apply/unified-api/jobs"
tags: ["AI Apply"]
---

# Get jobs

`GET /ai-apply/unified-api/jobs`

**Deprecation Notice:** This endpoint is no longer actively supported. Please use the standard AI Apply API instead.
Get jobs in a backwards compatible way as you would [via Kombo's unified API](https://docs.kombo.dev/ats/v1/get-jobs).

## Query parameters

- `cursor` string — An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.
- `page_size` integer — The number of results to return per page. Maximum is 5.
- `ids` string — Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
- `remote_ids` string — This parameter exists for backwards compatibility with Kombo's unified API. Supplying a comma-separated list of remote IDs such as `32,33` will return no jobs because AI Apply does not interface with a remote system that issues remote IDs.
- `job_codes` string — Filter by a comma-separated list of job codes such as `ACME_12,ACME_14`.
- `career_site_ids` string — Filter by a comma-separated list of career site IDs such as `A8m9k9RhjNokMfRTWtpQ99VtH,rCbkAA3pvcKjsFYwEeXtCQkc`.

## Response `200`

GET /ai-apply/unified-api/jobs Positive response

- GetAiApplyUnifiedApiJobsPositiveResponse
  - `status` 'success', required
  - `data` object, required
    - `results` object[], required
      - `id` string, required — The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing.
      - `remote_id` string, required
      - `name` string, nullable, required
      - `job_code` string, nullable, required
      - `description` string, nullable, required
      - `confidential` boolean, nullable, required
      - `weekly_hours` number, double, nullable, required
      - `category` string, nullable, required
      - `department` string, nullable, required
      - `post_url` string, nullable, required
      - `experience_level` string, nullable, required
      - `salary_amount` number, double, nullable, required
      - `salary_amount_from` number, double, nullable, required
      - `salary_amount_to` number, double, nullable, required
      - `salary_currency` string, nullable, required
      - `custom_fields` object, nullable, required
      - `integration_fields` object[], required
      - `opened_at` string, date-time, nullable, required
      - `closed_at` string, date-time, nullable, required
      - `remote_created_at` string, date-time, nullable, required
      - `remote_updated_at` string, date-time, nullable, required
      - `contact_id` string, nullable, required
      - `remote_data` object, nullable, required
      - `changed_at` string, date-time, required
      - `remote_deleted_at` string, date-time, nullable, required
      - `remote_url` string, nullable, required
      - `stages` object[], required
      - `screening_questions` object[], nullable, required
        - `id` string, required
        - `remote_id` string, nullable, required
        - `title` string, nullable, required
        - `description` string, nullable, required
        - `format` union
          - object
            - `display_type` 'SINGLE_LINE' | 'MULTI_LINE' | 'EMAIL' | 'URL', nullable — If unavailable, we recommend displaying a single-line input.
            - `max_length` integer, nullable
            - `type` 'TEXT', required
          - object
            - `display_type` 'SLIDER' | 'FIELD', nullable
            - `max` number, double, nullable
            - `min` number, double, nullable
            - `type` 'NUMBER', required
          - object
            - `accepted_mime_types` string[], nullable
            - `max_file_size_bytes` integer, nullable
            - `type` 'FILE', required
          - object
            - `display_type` 'DROPDOWN' | 'RADIO', nullable
            - `options` object[], required
              - …
            - `type` 'SINGLE_SELECT', required
          - object
            - `type` 'BOOLEAN', required
          - object
            - `type` 'DATE', required
          - object
            - `options` object[], required
              - …
            - `type` 'MULTI_SELECT', required
          - object
            - `type` 'INFORMATION', required — This is just a text block.
          - object
            - `raw_question` unknown
            - `type` 'UNKNOWN', required — When we're not able to map a specific question type yet, we will return this type. Every `UNKNOWN` question will also be parsed and unified by us at some point.
        - `category` 'EEO', nullable, required
        - `index` integer, nullable
        - `required` boolean, nullable, required
        - `precondition_question_id` string, nullable
        - `precondition_options` union
          - string[]
          - boolean[]
      - `job_postings` object[], required
      - `hiring_team` object[], required
      - `employment_type` union — One of 5 standardized values or — in rare cases where we can’t find a clear mapping — the original string passed through.
        - 'FULL_TIME' | 'PART_TIME' | 'CONTRACT' | 'SEASONAL' | 'INTERNSHIP'
        - string — If we can't find a clear mapping: The original string passed through.
      - `status` union — The job's current status. *Note: For any checks (e.g., "can we publish this job?"), always evaluate both `status` and `visibility`. For example, a job can be `status=OPEN` with `visibility=INTERNAL`, meaning only existing employees can apply.* In rare cases where we can’t find a clear mapping, the original string is passed through.
        - 'OPEN' | 'CLOSED' | 'DRAFT' | 'ARCHIVED'
        - string — If we can't find a clear mapping: The original string passed through.
      - `visibility` string, nullable, required
      - `remote_work_status` string, nullable, required
      - `salary_period` string, nullable, required
      - `location` object, nullable
        - `city` string, nullable
        - `country` string, nullable — Contains the ISO2 country code if possible. If not, it contains the original value.
        - `raw` string, nullable — If we have address data, this is filled with the raw address string.
        - `state` string, nullable
        - `street_1` string, nullable — If we can parse the address data, this field contains the first part of the street information.
        - `street_2` string, nullable
        - `zip_code` string, nullable
    - `next` string, nullable, required

## Other responses

- `default` — The standard error response with the error codes for AI Apply.

---

[API](https://skmtc.net/kombo/apis/kombo-api.md) · [All operations](https://skmtc.net/kombo/apis/kombo-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/kombo/kombo-api/revisions/0cfc9fa971c0/schema)
