Kombo · Capability

Kombo API — AI Apply

Kombo API — AI Apply. 12 operations. Lead operation: Get applications. Self-contained Naftiko capability covering one Kombo business surface.

Run with Naftiko KomboAI Apply

What You Can Do

GET
Getaiapplyapplications — Get applications
/v1/ai-apply/applications
POST
Postaiapplyapply — Submit job application
/v1/ai-apply/apply
POST
Postaiapplycareersites — Create a career site
/v1/ai-apply/career-sites
GET
Getaiapplycareersites — Get career sites
/v1/ai-apply/career-sites
GET
Getaiapplyjobfeeds — Get job feeds
/v1/ai-apply/job-feeds
POST
Postaiapplyjobfeeds — Create a job feed
/v1/ai-apply/job-feeds
POST
Postaiapplyjobfeedsbulkimport — Bulk import job postings
/v1/ai-apply/job-feeds/{job-feed-id}/bulk-import
GET
Getaiapplypostings — Get job postings
/v1/ai-apply/postings
POST
Postaiapplypostings — Parse a job posting
/v1/ai-apply/postings
POST
Postaiapplypostingspostingidinquire — Inquire about a job posting and the application f…
/v1/ai-apply/postings/{posting-id}/inquire
GET
Getaiapplyunifiedapijobs — Get jobs
/v1/ai-apply/unified-api/jobs
POST
Postaiapplyunifiedapijobsjobidapplications — Create application
/v1/ai-apply/unified-api/jobs/{job-id}/applications

MCP Tools

get-applications

Get applications

read-only idempotent
submit-job-application

Submit job application

create-career-site

Create a career site

get-career-sites

Get career sites

read-only idempotent
get-job-feeds

Get job feeds

read-only idempotent
create-job-feed

Create a job feed

bulk-import-job-postings

Bulk import job postings

get-job-postings

Get job postings

read-only idempotent
parse-job-posting

Parse a job posting

inquire-about-job-posting-and

Inquire about a job posting and the application f…

get-jobs

Get jobs

read-only idempotent
create-application

Create application

Capability Spec

kombo-ai-apply.yaml Raw ↑
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: $.