naftiko: 1.0.0-alpha2 info: label: Kombo API — AI Apply description: 'Kombo API — AI Apply. 12 operations. Lead operation: Get applications. Self-contained Naftiko capability covering one Kombo business surface.' tags: - Kombo - AI Apply created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: KOMBO_API_KEY: KOMBO_API_KEY capability: consumes: - type: http namespace: kombo-ai-apply baseUri: https://api.kombo.dev/v1 description: Kombo API — AI Apply business capability. Self-contained, no shared references. resources: - name: ai-apply-applications path: /ai-apply/applications operations: - name: getaiapplyapplications method: GET description: Get applications outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - 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: ids in: query type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. - name: job_posting_ids in: query type: string description: Filter by a comma-separated list of job posting IDs such as `89V6GEKpdZwqbxQz59n1ftFb,kcGHREEXCMF26Yhpuyh1gDVE`. - name: ai-apply-apply path: /ai-apply/apply operations: - name: postaiapplyapply method: POST description: Submit job application outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: ai-apply-career-sites path: /ai-apply/career-sites operations: - name: postaiapplycareersites method: POST description: Create a career site outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: getaiapplycareersites method: GET description: Get career sites outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - 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: ids in: query type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. - name: ai-apply-job-feeds path: /ai-apply/job-feeds operations: - name: getaiapplyjobfeeds method: GET description: Get job feeds outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - 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: ids in: query type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. - name: postaiapplyjobfeeds method: POST description: Create a job feed outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: ai-apply-job-feeds-job_feed_id-bulk-import path: /ai-apply/job-feeds/{job_feed_id}/bulk-import operations: - name: postaiapplyjobfeedsbulkimport method: POST description: Bulk import job postings outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: job_feed_id in: path type: string description: The ID of the job feed to import into required: true - name: body in: body type: object description: Request body (JSON). required: true - name: ai-apply-postings path: /ai-apply/postings operations: - name: getaiapplypostings method: GET description: Get job postings outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - 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: ids in: query type: string description: Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. - name: career_site_ids in: query type: string description: Filter by a comma-separated list of career site IDs such as `A8m9k9RhjNokMfRTWtpQ99VtH,rCbkAA3pvcKjsFYwEeXtCQkc`. - name: job_codes in: query type: string description: Filter by a comma-separated list of job codes such as `ACME_13,ACME_14`. - name: postaiapplypostings method: POST description: Parse a job posting outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: ai-apply-postings-posting_id-inquire path: /ai-apply/postings/{posting_id}/inquire operations: - name: postaiapplypostingspostingidinquire method: POST description: Inquire about a job posting and the application f… outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: posting_id in: path 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: true - name: body in: body type: object description: Request body (JSON). required: false - name: ai-apply-unified-api-jobs path: /ai-apply/unified-api/jobs operations: - name: getaiapplyunifiedapijobs method: GET description: Get jobs outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - 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 5. - 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: 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 b - name: job_codes in: query type: string description: Filter by a comma-separated list of job codes such as `ACME_12,ACME_14`. - name: career_site_ids in: query type: string description: Filter by a comma-separated list of career site IDs such as `A8m9k9RhjNokMfRTWtpQ99VtH,rCbkAA3pvcKjsFYwEeXtCQkc`. - name: ai-apply-unified-api-jobs-job_id-applications path: /ai-apply/unified-api/jobs/{job_id}/applications operations: - name: postaiapplyunifiedapijobsjobidapplications method: POST description: Create application outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - 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 authentication: type: bearer token: '{{env.KOMBO_API_KEY}}' exposes: - type: rest namespace: kombo-ai-apply-rest port: 8080 description: REST adapter for Kombo API — AI Apply. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/ai-apply/applications name: ai-apply-applications description: REST surface for ai-apply-applications. operations: - method: GET name: getaiapplyapplications description: Get applications call: kombo-ai-apply.getaiapplyapplications with: cursor: rest.cursor page_size: rest.page_size ids: rest.ids job_posting_ids: rest.job_posting_ids outputParameters: - type: object mapping: $. - path: /v1/ai-apply/apply name: ai-apply-apply description: REST surface for ai-apply-apply. operations: - method: POST name: postaiapplyapply description: Submit job application call: kombo-ai-apply.postaiapplyapply with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/ai-apply/career-sites name: ai-apply-career-sites description: REST surface for ai-apply-career-sites. operations: - method: POST name: postaiapplycareersites description: Create a career site call: kombo-ai-apply.postaiapplycareersites with: body: rest.body outputParameters: - type: object mapping: $. - method: GET name: getaiapplycareersites description: Get career sites call: kombo-ai-apply.getaiapplycareersites with: cursor: rest.cursor page_size: rest.page_size ids: rest.ids outputParameters: - type: object mapping: $. - path: /v1/ai-apply/job-feeds name: ai-apply-job-feeds description: REST surface for ai-apply-job-feeds. operations: - method: GET name: getaiapplyjobfeeds description: Get job feeds call: kombo-ai-apply.getaiapplyjobfeeds with: cursor: rest.cursor page_size: rest.page_size ids: rest.ids outputParameters: - type: object mapping: $. - method: POST name: postaiapplyjobfeeds description: Create a job feed call: kombo-ai-apply.postaiapplyjobfeeds with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/ai-apply/job-feeds/{job-feed-id}/bulk-import name: ai-apply-job-feeds-job-feed-id-bulk-import description: REST surface for ai-apply-job-feeds-job_feed_id-bulk-import. operations: - method: POST name: postaiapplyjobfeedsbulkimport description: Bulk import job postings call: kombo-ai-apply.postaiapplyjobfeedsbulkimport with: job_feed_id: rest.job_feed_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/ai-apply/postings name: ai-apply-postings description: REST surface for ai-apply-postings. operations: - method: GET name: getaiapplypostings description: Get job postings call: kombo-ai-apply.getaiapplypostings with: cursor: rest.cursor page_size: rest.page_size ids: rest.ids career_site_ids: rest.career_site_ids job_codes: rest.job_codes outputParameters: - type: object mapping: $. - method: POST name: postaiapplypostings description: Parse a job posting call: kombo-ai-apply.postaiapplypostings with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/ai-apply/postings/{posting-id}/inquire name: ai-apply-postings-posting-id-inquire description: REST surface for ai-apply-postings-posting_id-inquire. operations: - method: POST name: postaiapplypostingspostingidinquire description: Inquire about a job posting and the application f… call: kombo-ai-apply.postaiapplypostingspostingidinquire with: posting_id: rest.posting_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/ai-apply/unified-api/jobs name: ai-apply-unified-api-jobs description: REST surface for ai-apply-unified-api-jobs. operations: - method: GET name: getaiapplyunifiedapijobs description: Get jobs call: kombo-ai-apply.getaiapplyunifiedapijobs with: cursor: rest.cursor page_size: rest.page_size ids: rest.ids remote_ids: rest.remote_ids job_codes: rest.job_codes career_site_ids: rest.career_site_ids outputParameters: - type: object mapping: $. - path: /v1/ai-apply/unified-api/jobs/{job-id}/applications name: ai-apply-unified-api-jobs-job-id-applications description: REST surface for ai-apply-unified-api-jobs-job_id-applications. operations: - method: POST name: postaiapplyunifiedapijobsjobidapplications description: Create application call: kombo-ai-apply.postaiapplyunifiedapijobsjobidapplications with: job_id: rest.job_id body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: kombo-ai-apply-mcp port: 9090 transport: http description: MCP adapter for Kombo API — AI Apply. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-applications description: Get applications hints: readOnly: true destructive: false idempotent: true call: kombo-ai-apply.getaiapplyapplications with: cursor: tools.cursor page_size: tools.page_size ids: tools.ids job_posting_ids: tools.job_posting_ids outputParameters: - type: object mapping: $. - name: submit-job-application description: Submit job application hints: readOnly: false destructive: false idempotent: false call: kombo-ai-apply.postaiapplyapply with: body: tools.body outputParameters: - type: object mapping: $. - name: create-career-site description: Create a career site hints: readOnly: false destructive: false idempotent: false call: kombo-ai-apply.postaiapplycareersites with: body: tools.body outputParameters: - type: object mapping: $. - name: get-career-sites description: Get career sites hints: readOnly: true destructive: false idempotent: true call: kombo-ai-apply.getaiapplycareersites with: cursor: tools.cursor page_size: tools.page_size ids: tools.ids outputParameters: - type: object mapping: $. - name: get-job-feeds description: Get job feeds hints: readOnly: true destructive: false idempotent: true call: kombo-ai-apply.getaiapplyjobfeeds with: cursor: tools.cursor page_size: tools.page_size ids: tools.ids outputParameters: - type: object mapping: $. - name: create-job-feed description: Create a job feed hints: readOnly: false destructive: false idempotent: false call: kombo-ai-apply.postaiapplyjobfeeds with: body: tools.body outputParameters: - type: object mapping: $. - name: bulk-import-job-postings description: Bulk import job postings hints: readOnly: false destructive: false idempotent: false call: kombo-ai-apply.postaiapplyjobfeedsbulkimport with: job_feed_id: tools.job_feed_id body: tools.body outputParameters: - type: object mapping: $. - name: get-job-postings description: Get job postings hints: readOnly: true destructive: false idempotent: true call: kombo-ai-apply.getaiapplypostings with: cursor: tools.cursor page_size: tools.page_size ids: tools.ids career_site_ids: tools.career_site_ids job_codes: tools.job_codes outputParameters: - type: object mapping: $. - name: parse-job-posting description: Parse a job posting hints: readOnly: false destructive: false idempotent: false call: kombo-ai-apply.postaiapplypostings with: body: tools.body outputParameters: - type: object mapping: $. - name: inquire-about-job-posting-and description: Inquire about a job posting and the application f… hints: readOnly: false destructive: false idempotent: false call: kombo-ai-apply.postaiapplypostingspostingidinquire with: posting_id: tools.posting_id body: tools.body outputParameters: - type: object mapping: $. - name: get-jobs description: Get jobs hints: readOnly: true destructive: false idempotent: true call: kombo-ai-apply.getaiapplyunifiedapijobs with: cursor: tools.cursor page_size: tools.page_size ids: tools.ids remote_ids: tools.remote_ids job_codes: tools.job_codes career_site_ids: tools.career_site_ids outputParameters: - type: object mapping: $. - name: create-application description: Create application hints: readOnly: false destructive: false idempotent: false call: kombo-ai-apply.postaiapplyunifiedapijobsjobidapplications with: job_id: tools.job_id body: tools.body outputParameters: - type: object mapping: $.