naftiko: 1.0.0-alpha2 info: label: Kombo API — Unified ATS API description: 'Kombo API — Unified ATS API. 30 operations. Lead operation: Get application stages. Self-contained Naftiko capability covering one Kombo business surface.' tags: - Kombo - Unified ATS API created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: KOMBO_API_KEY: KOMBO_API_KEY capability: consumes: - type: http namespace: kombo-unified-ats-api baseUri: https://api.kombo.dev/v1 description: Kombo API — Unified ATS API business capability. Self-contained, no shared references. resources: - name: ats-actions-ats_add_application_attachment path: /ats/actions/ats_add_application_attachment operations: - name: getatsactionsatsaddapplicationattachment method: GET description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: ats-actions-ats_add_candidate_attachment path: /ats/actions/ats_add_candidate_attachment operations: - name: getatsactionsatsaddcandidateattachment method: GET description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: ats-actions-ats_create_application path: /ats/actions/ats_create_application operations: - name: getatsactionsatscreateapplication method: GET description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: ats-actions-ats_create_candidate path: /ats/actions/ats_create_candidate operations: - name: getatsactionsatscreatecandidate method: GET description: '' outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: ats-application-stages path: /ats/application-stages operations: - name: getatsapplicationstages method: GET description: Get application stages outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: cursor in: query type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. - name: page_size in: query type: string description: The number of results to return per page. Maximum is 250. - name: updated_after in: query type: string description: Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data ha - name: include_deleted in: query type: string description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. - name: ignore_unsupported_filters in: query type: string description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. - name: ids in: query type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. - name: remote_ids in: query type: string description: Filter by a comma-separated list of remote IDs. - name: ats-applications path: /ats/applications operations: - name: getatsapplications method: GET description: Get applications outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: cursor in: query type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. - name: page_size in: query type: string description: The number of results to return per page. Maximum is 250. - name: updated_after in: query type: string description: Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data ha - name: include_deleted in: query type: string description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. - name: ignore_unsupported_filters in: query type: string description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. - name: ids in: query type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. - name: remote_ids in: query type: string description: Filter by a comma-separated list of remote IDs. - name: outcome in: query type: string description: '**(⚠️ Deprecated - Use the `outcomes` filter instead.)** Filter applications by outcome. This allows you to get applications that are for example `PENDING`, `HI' - name: outcomes in: query type: string description: 'Filter by a comma-separated list of `PENDING`, `HIRED`, `DECLINED` ' - name: job_ids in: query type: string description: Filter by a comma-separated list of job IDs. We will only return applications that are related to _any_ of the jobs. - name: job_remote_ids in: query type: string description: Filter by a comma-separated list of job remote IDs. We will only return applications that are related to _any_ of the jobs. - name: current_stage_ids in: query type: string description: Filter by a comma-separated list of application stage IDs. We will only return applications that are currently in _any_ of the stages. - name: remote_created_after in: query type: string description: Filter applications by the day they were created in the remote system. This allows you to get applications that were created on or after a certain day. - name: ats-applications-application_id-attachments path: /ats/applications/{application_id}/attachments operations: - name: getatsapplicationsapplicationidattachments method: GET description: Get application attachments outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: application_id in: path type: string description: The Kombo ID of the application you want to obtain attachments for. required: true - name: postatsapplicationsapplicationidattachments method: POST description: Add attachment to application outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: application_id in: path type: string description: POST /ats/applications/:application_id/attachments Parameter required: true - name: body in: body type: object description: Request body (JSON). required: false - name: ats-applications-application_id-interviews path: /ats/applications/{application_id}/interviews operations: - name: postatsapplicationsapplicationidinterviews method: POST description: Create interview outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: application_id in: path type: string description: The ID of the application required: true - name: body in: body type: object description: Request body (JSON). required: false - name: patchatsapplicationsapplicationidinterviews method: PATCH description: Update interview outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: application_id in: path type: string description: The ID of the application required: true - name: body in: body type: object description: Request body (JSON). required: false - name: ats-applications-application_id-notes path: /ats/applications/{application_id}/notes operations: - name: postatsapplicationsapplicationidnotes method: POST description: Add note to application outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: application_id in: path type: string description: The Kombo ID of the application you want to create the note for. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: ats-applications-application_id-reject path: /ats/applications/{application_id}/reject operations: - name: postatsapplicationsapplicationidreject method: POST description: Reject application outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: application_id in: path type: string description: The Kombo ID of the application you want to reject. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: ats-applications-application_id-result-links path: /ats/applications/{application_id}/result-links operations: - name: postatsapplicationsapplicationidresultlinks method: POST description: Add result link to application outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: application_id in: path type: string description: The Kombo ID of the application you want to create the link for. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: ats-applications-application_id-stage path: /ats/applications/{application_id}/stage operations: - name: putatsapplicationsapplicationidstage method: PUT description: Move application to stage outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: application_id in: path type: string description: The Kombo ID of the application you want to move to a different stage. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: ats-candidates path: /ats/candidates operations: - name: getatscandidates method: GET description: Get candidates outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: cursor in: query type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. - name: page_size in: query type: string description: The number of results to return per page. Maximum is 250. - name: updated_after in: query type: string description: Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data ha - name: include_deleted in: query type: string description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. - name: ignore_unsupported_filters in: query type: string description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. - name: ids in: query type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. - name: remote_ids in: query type: string description: Filter by a comma-separated list of remote IDs. - name: email in: query type: string description: Filter the candidates based on an email address. When set, returns only the candidates where the given `email` is in `email_addresses`. This filter is case-inse - name: job_ids in: query type: string description: Filter by a comma-separated list of job IDs. We will only return candidates that have applied to _any_ of the jobs. - name: first_name in: query type: string description: Filter candidates by first name. This filter is case-insensitive and matches the exact first name. Fuzzy matching might be enabled in the future, so consider th - name: last_name in: query type: string description: Filter candidates by last name. This filter is case-insensitive and matches the exact last name. Fuzzy matching might be enabled in the future, so consider this - name: postatscandidates method: POST description: Create candidate outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: ats-candidates-candidate_id-attachments path: /ats/candidates/{candidate_id}/attachments operations: - name: getatscandidatescandidateidattachments method: GET description: Get candidate attachments outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: candidate_id in: path type: string description: The Kombo ID of the candidate you want to obtain attachments for. required: true - name: postatscandidatescandidateidattachments method: POST description: Add attachment to candidate outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: candidate_id in: path type: string description: The Kombo ID of the candidate you want to add the attachment to. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: ats-candidates-candidate_id-result-links path: /ats/candidates/{candidate_id}/result-links operations: - name: postatscandidatescandidateidresultlinks method: POST description: Add result link to candidate outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: candidate_id in: path type: string description: The Kombo ID of the candidate you want to add the result link to. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: ats-candidates-candidate_id-tags path: /ats/candidates/{candidate_id}/tags operations: - name: postatscandidatescandidateidtags method: POST description: Add tag to candidate outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: candidate_id in: path type: string description: The Kombo ID of the candidate you want to add the tag to. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: deleteatscandidatescandidateidtags method: DELETE description: Remove tag from candidate outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: candidate_id in: path type: string description: The Kombo ID of the candidate you want to remove the tag from. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: ats-import-tracked-application path: /ats/import-tracked-application operations: - name: postatsimporttrackedapplication method: POST description: Import tracked application outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: ats-interviews path: /ats/interviews operations: - name: getatsinterviews method: GET description: Get interviews outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: cursor in: query type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. - name: page_size in: query type: string description: The number of results to return per page. Maximum is 250. - name: updated_after in: query type: string description: Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data ha - name: include_deleted in: query type: string description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. - name: ignore_unsupported_filters in: query type: string description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. - name: ids in: query type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. - name: remote_ids in: query type: string description: Filter by a comma-separated list of remote IDs. - name: job_ids in: query type: string description: Filter by a comma-separated list of job IDs. We will only return interviews for applications associated with any of these jobs. - name: ats-jobs path: /ats/jobs operations: - name: getatsjobs method: GET description: Get jobs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: cursor in: query type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. - name: page_size in: query type: string description: The number of results to return per page. Maximum is 250. - name: updated_after in: query type: string description: Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data ha - name: include_deleted in: query type: string description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. - name: ignore_unsupported_filters in: query type: string description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. - name: ids in: query type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. - name: remote_ids in: query type: string description: Filter by a comma-separated list of remote IDs. - name: job_codes in: query type: string description: Filter by a comma-separated list of job codes. - name: post_url in: query type: string description: Filter by the `post_url` field. Can be used to find a job based on its public posting URL. - name: status in: query type: string description: '**(⚠️ Deprecated - Use the `statuses` filter instead.)** Filter by the `status` field. Can be used to find a job based on its status.' - name: statuses in: query type: string description: 'Filter by a comma-separated list of `OPEN`, `CLOSED`, `DRAFT`, `ARCHIVED` ' - name: employment_types in: query type: string description: 'Filter by a comma-separated list of `FULL_TIME`, `PART_TIME`, `CONTRACT`, `SEASONAL`, `INTERNSHIP` ' - name: visibilities in: query type: string description: 'Filter by a comma-separated list of `PUBLIC`, `INTERNAL`, `UNLISTED`, `CONFIDENTIAL` ' - name: remote_created_after in: query type: string description: Filter jobs by the day they were created in the remote system. This allows you to get jobs that were created on or after a certain day. - name: name_contains in: query type: string description: Filter by the `name` field. Can be used to find a job by keywords present in the job name. - name: ats-jobs-job_id-applications path: /ats/jobs/{job_id}/applications operations: - name: postatsjobsjobidapplications method: POST description: Create application outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: job_id in: path type: string description: The Kombo ID or Remote ID of the Job this candidate should apply for. If you want to use the ID of the integrated system (remote_id) you need to prefix the id w required: true - name: body in: body type: object description: Request body (JSON). required: false - name: ats-offers path: /ats/offers operations: - name: getatsoffers method: GET description: Get offers outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: cursor in: query type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. - name: page_size in: query type: string description: The number of results to return per page. Maximum is 250. - name: updated_after in: query type: string description: Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data ha - name: include_deleted in: query type: string description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. - name: ignore_unsupported_filters in: query type: string description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. - name: ids in: query type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. - name: remote_ids in: query type: string description: Filter by a comma-separated list of remote IDs. - name: ats-rejection-reasons path: /ats/rejection-reasons operations: - name: getatsrejectionreasons method: GET description: Get rejection reasons outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: cursor in: query type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. - name: page_size in: query type: string description: The number of results to return per page. Maximum is 250. - name: updated_after in: query type: string description: Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data ha - name: include_deleted in: query type: string description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. - name: ignore_unsupported_filters in: query type: string description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. - name: ids in: query type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. - name: remote_ids in: query type: string description: Filter by a comma-separated list of remote IDs. - name: ats-roles path: /ats/roles operations: - name: getatsroles method: GET description: Get roles outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: cursor in: query type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. - name: page_size in: query type: string description: The number of results to return per page. Maximum is 250. - name: updated_after in: query type: string description: Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data ha - name: include_deleted in: query type: string description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. - name: ignore_unsupported_filters in: query type: string description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. - name: ids in: query type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. - name: remote_ids in: query type: string description: Filter by a comma-separated list of remote IDs. - name: scopes in: query type: string description: 'Filter by a comma-separated list of `SYSTEM`, `JOB` ' - name: ats-tags path: /ats/tags operations: - name: getatstags method: GET description: Get tags outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: cursor in: query type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. - name: page_size in: query type: string description: The number of results to return per page. Maximum is 250. - name: updated_after in: query type: string description: Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data ha - name: include_deleted in: query type: string description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. - name: ignore_unsupported_filters in: query type: string description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. - name: ids in: query type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. - name: remote_ids in: query type: string description: Filter by a comma-separated list of remote IDs. - name: ats-users path: /ats/users operations: - name: getatsusers method: GET description: Get users outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Integration-Id in: header type: string description: ID of the integration you want to interact with. required: true - name: cursor in: query type: string description: An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. - name: page_size in: query type: string description: The number of results to return per page. Maximum is 250. - name: updated_after in: query type: string description: Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data ha - name: include_deleted in: query type: string description: By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. - name: ignore_unsupported_filters in: query type: string description: When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. - name: ids in: query type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. - name: remote_ids in: query type: string description: Filter by a comma-separated list of remote IDs. - name: emails in: query type: string description: Filter by a comma-separated list of emails. We will only return users who have _any_ of the emails. The format of the emails is case-insensitive. authentication: type: bearer token: '{{env.KOMBO_API_KEY}}' exposes: - type: rest namespace: kombo-unified-ats-api-rest port: 8080 description: REST adapter for Kombo API — Unified ATS API. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/ats/actions/ats-add-application-attachment name: ats-actions-ats-add-application-attachment description: REST surface for ats-actions-ats_add_application_attachment. operations: - method: GET name: getatsactionsatsaddapplicationattachment description: getatsactionsatsaddapplicationattachment call: kombo-unified-ats-api.getatsactionsatsaddapplicationattachment with: X-Integration-Id: rest.X-Integration-Id outputParameters: - type: object mapping: $. - path: /v1/ats/actions/ats-add-candidate-attachment name: ats-actions-ats-add-candidate-attachment description: REST surface for ats-actions-ats_add_candidate_attachment. operations: - method: GET name: getatsactionsatsaddcandidateattachment description: getatsactionsatsaddcandidateattachment call: kombo-unified-ats-api.getatsactionsatsaddcandidateattachment with: X-Integration-Id: rest.X-Integration-Id outputParameters: - type: object mapping: $. - path: /v1/ats/actions/ats-create-application name: ats-actions-ats-create-application description: REST surface for ats-actions-ats_create_application. operations: - method: GET name: getatsactionsatscreateapplication description: getatsactionsatscreateapplication call: kombo-unified-ats-api.getatsactionsatscreateapplication with: X-Integration-Id: rest.X-Integration-Id outputParameters: - type: object mapping: $. - path: /v1/ats/actions/ats-create-candidate name: ats-actions-ats-create-candidate description: REST surface for ats-actions-ats_create_candidate. operations: - method: GET name: getatsactionsatscreatecandidate description: getatsactionsatscreatecandidate call: kombo-unified-ats-api.getatsactionsatscreatecandidate with: X-Integration-Id: rest.X-Integration-Id outputParameters: - type: object mapping: $. - path: /v1/ats/application-stages name: ats-application-stages description: REST surface for ats-application-stages. operations: - method: GET name: getatsapplicationstages description: Get application stages call: kombo-unified-ats-api.getatsapplicationstages with: X-Integration-Id: rest.X-Integration-Id cursor: rest.cursor page_size: rest.page_size updated_after: rest.updated_after include_deleted: rest.include_deleted ignore_unsupported_filters: rest.ignore_unsupported_filters ids: rest.ids remote_ids: rest.remote_ids outputParameters: - type: object mapping: $. - path: /v1/ats/applications name: ats-applications description: REST surface for ats-applications. operations: - method: GET name: getatsapplications description: Get applications call: kombo-unified-ats-api.getatsapplications with: X-Integration-Id: rest.X-Integration-Id cursor: rest.cursor page_size: rest.page_size updated_after: rest.updated_after include_deleted: rest.include_deleted ignore_unsupported_filters: rest.ignore_unsupported_filters ids: rest.ids remote_ids: rest.remote_ids outcome: rest.outcome outcomes: rest.outcomes job_ids: rest.job_ids job_remote_ids: rest.job_remote_ids current_stage_ids: rest.current_stage_ids remote_created_after: rest.remote_created_after outputParameters: - type: object mapping: $. - path: /v1/ats/applications/{application-id}/attachments name: ats-applications-application-id-attachments description: REST surface for ats-applications-application_id-attachments. operations: - method: GET name: getatsapplicationsapplicationidattachments description: Get application attachments call: kombo-unified-ats-api.getatsapplicationsapplicationidattachments with: X-Integration-Id: rest.X-Integration-Id application_id: rest.application_id outputParameters: - type: object mapping: $. - method: POST name: postatsapplicationsapplicationidattachments description: Add attachment to application call: kombo-unified-ats-api.postatsapplicationsapplicationidattachments with: X-Integration-Id: rest.X-Integration-Id application_id: rest.application_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/ats/applications/{application-id}/interviews name: ats-applications-application-id-interviews description: REST surface for ats-applications-application_id-interviews. operations: - method: POST name: postatsapplicationsapplicationidinterviews description: Create interview call: kombo-unified-ats-api.postatsapplicationsapplicationidinterviews with: X-Integration-Id: rest.X-Integration-Id application_id: rest.application_id body: rest.body outputParameters: - type: object mapping: $. - method: PATCH name: patchatsapplicationsapplicationidinterviews description: Update interview call: kombo-unified-ats-api.patchatsapplicationsapplicationidinterviews with: X-Integration-Id: rest.X-Integration-Id application_id: rest.application_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/ats/applications/{application-id}/notes name: ats-applications-application-id-notes description: REST surface for ats-applications-application_id-notes. operations: - method: POST name: postatsapplicationsapplicationidnotes description: Add note to application call: kombo-unified-ats-api.postatsapplicationsapplicationidnotes with: X-Integration-Id: rest.X-Integration-Id application_id: rest.application_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/ats/applications/{application-id}/reject name: ats-applications-application-id-reject description: REST surface for ats-applications-application_id-reject. operations: - method: POST name: postatsapplicationsapplicationidreject description: Reject application call: kombo-unified-ats-api.postatsapplicationsapplicationidreject with: X-Integration-Id: rest.X-Integration-Id application_id: rest.application_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/ats/applications/{application-id}/result-links name: ats-applications-application-id-result-links description: REST surface for ats-applications-application_id-result-links. operations: - method: POST name: postatsapplicationsapplicationidresultlinks description: Add result link to application call: kombo-unified-ats-api.postatsapplicationsapplicationidresultlinks with: X-Integration-Id: rest.X-Integration-Id application_id: rest.application_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/ats/applications/{application-id}/stage name: ats-applications-application-id-stage description: REST surface for ats-applications-application_id-stage. operations: - method: PUT name: putatsapplicationsapplicationidstage description: Move application to stage call: kombo-unified-ats-api.putatsapplicationsapplicationidstage with: X-Integration-Id: rest.X-Integration-Id application_id: rest.application_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/ats/candidates name: ats-candidates description: REST surface for ats-candidates. operations: - method: GET name: getatscandidates description: Get candidates call: kombo-unified-ats-api.getatscandidates with: X-Integration-Id: rest.X-Integration-Id cursor: rest.cursor page_size: rest.page_size updated_after: rest.updated_after include_deleted: rest.include_deleted ignore_unsupported_filters: rest.ignore_unsupported_filters ids: rest.ids remote_ids: rest.remote_ids email: rest.email job_ids: rest.job_ids first_name: rest.first_name last_name: rest.last_name outputParameters: - type: object mapping: $. - method: POST name: postatscandidates description: Create candidate call: kombo-unified-ats-api.postatscandidates with: X-Integration-Id: rest.X-Integration-Id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/ats/candidates/{candidate-id}/attachments name: ats-candidates-candidate-id-attachments description: REST surface for ats-candidates-candidate_id-attachments. operations: - method: GET name: getatscandidatescandidateidattachments description: Get candidate attachments call: kombo-unified-ats-api.getatscandidatescandidateidattachments with: X-Integration-Id: rest.X-Integration-Id candidate_id: rest.candidate_id outputParameters: - type: object mapping: $. - method: POST name: postatscandidatescandidateidattachments description: Add attachment to candidate call: kombo-unified-ats-api.postatscandidatescandidateidattachments with: X-Integration-Id: rest.X-Integration-Id candidate_id: rest.candidate_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/ats/candidates/{candidate-id}/result-links name: ats-candidates-candidate-id-result-links description: REST surface for ats-candidates-candidate_id-result-links. operations: - method: POST name: postatscandidatescandidateidresultlinks description: Add result link to candidate call: kombo-unified-ats-api.postatscandidatescandidateidresultlinks with: X-Integration-Id: rest.X-Integration-Id candidate_id: rest.candidate_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/ats/candidates/{candidate-id}/tags name: ats-candidates-candidate-id-tags description: REST surface for ats-candidates-candidate_id-tags. operations: - method: POST name: postatscandidatescandidateidtags description: Add tag to candidate call: kombo-unified-ats-api.postatscandidatescandidateidtags with: X-Integration-Id: rest.X-Integration-Id candidate_id: rest.candidate_id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteatscandidatescandidateidtags description: Remove tag from candidate call: kombo-unified-ats-api.deleteatscandidatescandidateidtags with: X-Integration-Id: rest.X-Integration-Id candidate_id: rest.candidate_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/ats/import-tracked-application name: ats-import-tracked-application description: REST surface for ats-import-tracked-application. operations: - method: POST name: postatsimporttrackedapplication description: Import tracked application call: kombo-unified-ats-api.postatsimporttrackedapplication with: X-Integration-Id: rest.X-Integration-Id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/ats/interviews name: ats-interviews description: REST surface for ats-interviews. operations: - method: GET name: getatsinterviews description: Get interviews call: kombo-unified-ats-api.getatsinterviews with: X-Integration-Id: rest.X-Integration-Id cursor: rest.cursor page_size: rest.page_size updated_after: rest.updated_after include_deleted: rest.include_deleted ignore_unsupported_filters: rest.ignore_unsupported_filters ids: rest.ids remote_ids: rest.remote_ids job_ids: rest.job_ids outputParameters: - type: object mapping: $. - path: /v1/ats/jobs name: ats-jobs description: REST surface for ats-jobs. operations: - method: GET name: getatsjobs description: Get jobs call: kombo-unified-ats-api.getatsjobs with: X-Integration-Id: rest.X-Integration-Id cursor: rest.cursor page_size: rest.page_size updated_after: rest.updated_after include_deleted: rest.include_deleted ignore_unsupported_filters: rest.ignore_unsupported_filters ids: rest.ids remote_ids: rest.remote_ids job_codes: rest.job_codes post_url: rest.post_url status: rest.status statuses: rest.statuses employment_types: rest.employment_types visibilities: rest.visibilities remote_created_after: rest.remote_created_after name_contains: rest.name_contains outputParameters: - type: object mapping: $. - path: /v1/ats/jobs/{job-id}/applications name: ats-jobs-job-id-applications description: REST surface for ats-jobs-job_id-applications. operations: - method: POST name: postatsjobsjobidapplications description: Create application call: kombo-unified-ats-api.postatsjobsjobidapplications with: X-Integration-Id: rest.X-Integration-Id job_id: rest.job_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/ats/offers name: ats-offers description: REST surface for ats-offers. operations: - method: GET name: getatsoffers description: Get offers call: kombo-unified-ats-api.getatsoffers with: X-Integration-Id: rest.X-Integration-Id cursor: rest.cursor page_size: rest.page_size updated_after: rest.updated_after include_deleted: rest.include_deleted ignore_unsupported_filters: rest.ignore_unsupported_filters ids: rest.ids remote_ids: rest.remote_ids outputParameters: - type: object mapping: $. - path: /v1/ats/rejection-reasons name: ats-rejection-reasons description: REST surface for ats-rejection-reasons. operations: - method: GET name: getatsrejectionreasons description: Get rejection reasons call: kombo-unified-ats-api.getatsrejectionreasons with: X-Integration-Id: rest.X-Integration-Id cursor: rest.cursor page_size: rest.page_size updated_after: rest.updated_after include_deleted: rest.include_deleted ignore_unsupported_filters: rest.ignore_unsupported_filters ids: rest.ids remote_ids: rest.remote_ids outputParameters: - type: object mapping: $. - path: /v1/ats/roles name: ats-roles description: REST surface for ats-roles. operations: - method: GET name: getatsroles description: Get roles call: kombo-unified-ats-api.getatsroles with: X-Integration-Id: rest.X-Integration-Id cursor: rest.cursor page_size: rest.page_size updated_after: rest.updated_after include_deleted: rest.include_deleted ignore_unsupported_filters: rest.ignore_unsupported_filters ids: rest.ids remote_ids: rest.remote_ids scopes: rest.scopes outputParameters: - type: object mapping: $. - path: /v1/ats/tags name: ats-tags description: REST surface for ats-tags. operations: - method: GET name: getatstags description: Get tags call: kombo-unified-ats-api.getatstags with: X-Integration-Id: rest.X-Integration-Id cursor: rest.cursor page_size: rest.page_size updated_after: rest.updated_after include_deleted: rest.include_deleted ignore_unsupported_filters: rest.ignore_unsupported_filters ids: rest.ids remote_ids: rest.remote_ids outputParameters: - type: object mapping: $. - path: /v1/ats/users name: ats-users description: REST surface for ats-users. operations: - method: GET name: getatsusers description: Get users call: kombo-unified-ats-api.getatsusers with: X-Integration-Id: rest.X-Integration-Id cursor: rest.cursor page_size: rest.page_size updated_after: rest.updated_after include_deleted: rest.include_deleted ignore_unsupported_filters: rest.ignore_unsupported_filters ids: rest.ids remote_ids: rest.remote_ids emails: rest.emails outputParameters: - type: object mapping: $. - type: mcp namespace: kombo-unified-ats-api-mcp port: 9090 transport: http description: MCP adapter for Kombo API — Unified ATS API. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: getatsactionsatsaddapplicationattachment description: getatsactionsatsaddapplicationattachment hints: readOnly: true destructive: false idempotent: true call: kombo-unified-ats-api.getatsactionsatsaddapplicationattachment with: X-Integration-Id: tools.X-Integration-Id outputParameters: - type: object mapping: $. - name: getatsactionsatsaddcandidateattachment description: getatsactionsatsaddcandidateattachment hints: readOnly: true destructive: false idempotent: true call: kombo-unified-ats-api.getatsactionsatsaddcandidateattachment with: X-Integration-Id: tools.X-Integration-Id outputParameters: - type: object mapping: $. - name: getatsactionsatscreateapplication description: getatsactionsatscreateapplication hints: readOnly: true destructive: false idempotent: true call: kombo-unified-ats-api.getatsactionsatscreateapplication with: X-Integration-Id: tools.X-Integration-Id outputParameters: - type: object mapping: $. - name: getatsactionsatscreatecandidate description: getatsactionsatscreatecandidate hints: readOnly: true destructive: false idempotent: true call: kombo-unified-ats-api.getatsactionsatscreatecandidate with: X-Integration-Id: tools.X-Integration-Id outputParameters: - type: object mapping: $. - name: get-application-stages description: Get application stages hints: readOnly: true destructive: false idempotent: true call: kombo-unified-ats-api.getatsapplicationstages with: X-Integration-Id: tools.X-Integration-Id cursor: tools.cursor page_size: tools.page_size updated_after: tools.updated_after include_deleted: tools.include_deleted ignore_unsupported_filters: tools.ignore_unsupported_filters ids: tools.ids remote_ids: tools.remote_ids outputParameters: - type: object mapping: $. - name: get-applications description: Get applications hints: readOnly: true destructive: false idempotent: true call: kombo-unified-ats-api.getatsapplications with: X-Integration-Id: tools.X-Integration-Id cursor: tools.cursor page_size: tools.page_size updated_after: tools.updated_after include_deleted: tools.include_deleted ignore_unsupported_filters: tools.ignore_unsupported_filters ids: tools.ids remote_ids: tools.remote_ids outcome: tools.outcome outcomes: tools.outcomes job_ids: tools.job_ids job_remote_ids: tools.job_remote_ids current_stage_ids: tools.current_stage_ids remote_created_after: tools.remote_created_after outputParameters: - type: object mapping: $. - name: get-application-attachments description: Get application attachments hints: readOnly: true destructive: false idempotent: true call: kombo-unified-ats-api.getatsapplicationsapplicationidattachments with: X-Integration-Id: tools.X-Integration-Id application_id: tools.application_id outputParameters: - type: object mapping: $. - name: add-attachment-application description: Add attachment to application hints: readOnly: false destructive: false idempotent: false call: kombo-unified-ats-api.postatsapplicationsapplicationidattachments with: X-Integration-Id: tools.X-Integration-Id application_id: tools.application_id body: tools.body outputParameters: - type: object mapping: $. - name: create-interview description: Create interview hints: readOnly: false destructive: false idempotent: false call: kombo-unified-ats-api.postatsapplicationsapplicationidinterviews with: X-Integration-Id: tools.X-Integration-Id application_id: tools.application_id body: tools.body outputParameters: - type: object mapping: $. - name: update-interview description: Update interview hints: readOnly: false destructive: false idempotent: true call: kombo-unified-ats-api.patchatsapplicationsapplicationidinterviews with: X-Integration-Id: tools.X-Integration-Id application_id: tools.application_id body: tools.body outputParameters: - type: object mapping: $. - name: add-note-application description: Add note to application hints: readOnly: false destructive: false idempotent: false call: kombo-unified-ats-api.postatsapplicationsapplicationidnotes with: X-Integration-Id: tools.X-Integration-Id application_id: tools.application_id body: tools.body outputParameters: - type: object mapping: $. - name: reject-application description: Reject application hints: readOnly: false destructive: false idempotent: false call: kombo-unified-ats-api.postatsapplicationsapplicationidreject with: X-Integration-Id: tools.X-Integration-Id application_id: tools.application_id body: tools.body outputParameters: - type: object mapping: $. - name: add-result-link-application description: Add result link to application hints: readOnly: false destructive: false idempotent: false call: kombo-unified-ats-api.postatsapplicationsapplicationidresultlinks with: X-Integration-Id: tools.X-Integration-Id application_id: tools.application_id body: tools.body outputParameters: - type: object mapping: $. - name: move-application-stage description: Move application to stage hints: readOnly: false destructive: false idempotent: true call: kombo-unified-ats-api.putatsapplicationsapplicationidstage with: X-Integration-Id: tools.X-Integration-Id application_id: tools.application_id body: tools.body outputParameters: - type: object mapping: $. - name: get-candidates description: Get candidates hints: readOnly: true destructive: false idempotent: true call: kombo-unified-ats-api.getatscandidates with: X-Integration-Id: tools.X-Integration-Id cursor: tools.cursor page_size: tools.page_size updated_after: tools.updated_after include_deleted: tools.include_deleted ignore_unsupported_filters: tools.ignore_unsupported_filters ids: tools.ids remote_ids: tools.remote_ids email: tools.email job_ids: tools.job_ids first_name: tools.first_name last_name: tools.last_name outputParameters: - type: object mapping: $. - name: create-candidate description: Create candidate hints: readOnly: false destructive: false idempotent: false call: kombo-unified-ats-api.postatscandidates with: X-Integration-Id: tools.X-Integration-Id body: tools.body outputParameters: - type: object mapping: $. - name: get-candidate-attachments description: Get candidate attachments hints: readOnly: true destructive: false idempotent: true call: kombo-unified-ats-api.getatscandidatescandidateidattachments with: X-Integration-Id: tools.X-Integration-Id candidate_id: tools.candidate_id outputParameters: - type: object mapping: $. - name: add-attachment-candidate description: Add attachment to candidate hints: readOnly: false destructive: false idempotent: false call: kombo-unified-ats-api.postatscandidatescandidateidattachments with: X-Integration-Id: tools.X-Integration-Id candidate_id: tools.candidate_id body: tools.body outputParameters: - type: object mapping: $. - name: add-result-link-candidate description: Add result link to candidate hints: readOnly: false destructive: false idempotent: false call: kombo-unified-ats-api.postatscandidatescandidateidresultlinks with: X-Integration-Id: tools.X-Integration-Id candidate_id: tools.candidate_id body: tools.body outputParameters: - type: object mapping: $. - name: add-tag-candidate description: Add tag to candidate hints: readOnly: false destructive: false idempotent: false call: kombo-unified-ats-api.postatscandidatescandidateidtags with: X-Integration-Id: tools.X-Integration-Id candidate_id: tools.candidate_id body: tools.body outputParameters: - type: object mapping: $. - name: remove-tag-candidate description: Remove tag from candidate hints: readOnly: false destructive: true idempotent: true call: kombo-unified-ats-api.deleteatscandidatescandidateidtags with: X-Integration-Id: tools.X-Integration-Id candidate_id: tools.candidate_id body: tools.body outputParameters: - type: object mapping: $. - name: import-tracked-application description: Import tracked application hints: readOnly: false destructive: false idempotent: false call: kombo-unified-ats-api.postatsimporttrackedapplication with: X-Integration-Id: tools.X-Integration-Id body: tools.body outputParameters: - type: object mapping: $. - name: get-interviews description: Get interviews hints: readOnly: true destructive: false idempotent: true call: kombo-unified-ats-api.getatsinterviews with: X-Integration-Id: tools.X-Integration-Id cursor: tools.cursor page_size: tools.page_size updated_after: tools.updated_after include_deleted: tools.include_deleted ignore_unsupported_filters: tools.ignore_unsupported_filters ids: tools.ids remote_ids: tools.remote_ids job_ids: tools.job_ids outputParameters: - type: object mapping: $. - name: get-jobs description: Get jobs hints: readOnly: true destructive: false idempotent: true call: kombo-unified-ats-api.getatsjobs with: X-Integration-Id: tools.X-Integration-Id cursor: tools.cursor page_size: tools.page_size updated_after: tools.updated_after include_deleted: tools.include_deleted ignore_unsupported_filters: tools.ignore_unsupported_filters ids: tools.ids remote_ids: tools.remote_ids job_codes: tools.job_codes post_url: tools.post_url status: tools.status statuses: tools.statuses employment_types: tools.employment_types visibilities: tools.visibilities remote_created_after: tools.remote_created_after name_contains: tools.name_contains outputParameters: - type: object mapping: $. - name: create-application description: Create application hints: readOnly: false destructive: false idempotent: false call: kombo-unified-ats-api.postatsjobsjobidapplications with: X-Integration-Id: tools.X-Integration-Id job_id: tools.job_id body: tools.body outputParameters: - type: object mapping: $. - name: get-offers description: Get offers hints: readOnly: true destructive: false idempotent: true call: kombo-unified-ats-api.getatsoffers with: X-Integration-Id: tools.X-Integration-Id cursor: tools.cursor page_size: tools.page_size updated_after: tools.updated_after include_deleted: tools.include_deleted ignore_unsupported_filters: tools.ignore_unsupported_filters ids: tools.ids remote_ids: tools.remote_ids outputParameters: - type: object mapping: $. - name: get-rejection-reasons description: Get rejection reasons hints: readOnly: true destructive: false idempotent: true call: kombo-unified-ats-api.getatsrejectionreasons with: X-Integration-Id: tools.X-Integration-Id cursor: tools.cursor page_size: tools.page_size updated_after: tools.updated_after include_deleted: tools.include_deleted ignore_unsupported_filters: tools.ignore_unsupported_filters ids: tools.ids remote_ids: tools.remote_ids outputParameters: - type: object mapping: $. - name: get-roles description: Get roles hints: readOnly: true destructive: false idempotent: true call: kombo-unified-ats-api.getatsroles with: X-Integration-Id: tools.X-Integration-Id cursor: tools.cursor page_size: tools.page_size updated_after: tools.updated_after include_deleted: tools.include_deleted ignore_unsupported_filters: tools.ignore_unsupported_filters ids: tools.ids remote_ids: tools.remote_ids scopes: tools.scopes outputParameters: - type: object mapping: $. - name: get-tags description: Get tags hints: readOnly: true destructive: false idempotent: true call: kombo-unified-ats-api.getatstags with: X-Integration-Id: tools.X-Integration-Id cursor: tools.cursor page_size: tools.page_size updated_after: tools.updated_after include_deleted: tools.include_deleted ignore_unsupported_filters: tools.ignore_unsupported_filters ids: tools.ids remote_ids: tools.remote_ids outputParameters: - type: object mapping: $. - name: get-users description: Get users hints: readOnly: true destructive: false idempotent: true call: kombo-unified-ats-api.getatsusers with: X-Integration-Id: tools.X-Integration-Id cursor: tools.cursor page_size: tools.page_size updated_after: tools.updated_after include_deleted: tools.include_deleted ignore_unsupported_filters: tools.ignore_unsupported_filters ids: tools.ids remote_ids: tools.remote_ids emails: tools.emails outputParameters: - type: object mapping: $.