Overview
A posting inquiry is the call you make when a candidate wants to apply. It returns Kombo’s current stored application form and a token tied to that form. The token can be used once, for one candidate’s application. This is the default flow for AI Apply and has the benefit that it guarantees you use the most up-to-date version of the form and does not require you to implement complex sync logic.
This flow follows three steps:
- You inquire about a specific job posting when a candidate opens the application form on your side. You receive the form to show to the candidate and a token for later submission.
- You show the candidate the form and collect their answers.
- You send the collected answers to Kombo using the submission token.
Kombo will then deliver the application and send you a webhook once the application is completed.
This guide assumes the postings already exist in AI Apply. You can add them with job feeds or by creating them individually.
When to use it
We recommend using this flow by default.
Use the GET Job Postings Forms endpoint and flow only when you specifically need to know all application forms before the candidate interacts with your product.
Both paths end at the same POST Apply call. The
only difference is where the form and the token came from.
How it works
Syncing job postings
An inquiry requires the ID of an applyable posting, so your system needs a current list of the postings in your environment. Paginate through GET Job Postings to build that list, and keep it current with the data-changed webhook and the updated_after filter as described in Data fetching.
POST Inquiries takes the posting ID in the path and returns the form with a token:
See The Application Form for the full block structure, the unified keys, and how display_when drives conditional questions.
Inquiring re-checks the job posting’s availability before returning. A posting
that has gone offline since your last sync fails here rather than after the
candidate has filled out the form.Set a timeout of at least 10 seconds for this request so there is enough
buffer for the downstream API.
You do not need to specifically reconcile error responses due to unavailability with your stored data if you use the AI Apply data-changed webhook. You will receive a webhook instead.
The token
The submission_token is a JWT bound to three things: the job posting, the exact form version you were handed, and your environment.
- It is single use. Once an application exists for it, submitting again fails.
- It expires after two days.
- It belongs to one form. Store it next to the form it arrived with. Your answers are validated against that exact version.
Do not fetch a token ahead of time and hold it. A token is cheap to request
and tied to a form that can change, so inquire it only when a candidate is
actively interacting with the form on your page.
Submitting the application
Once the candidate has answered the form, submit it with the token from the inquiry. See Submitting applications for preparing the answers, the request, and tracking the result.
API reference