Overview
Job feeds allow you to easily synchronize the job postings you have in your database with AI Apply. For each of your job inventory sources, set up a job feed, and periodically send an up-to-date list of all job postings using our bulk import endpoint. Kombo takes care of job posting creation, archival, updates, and more. A single job feed holds the jobs from one source, like a recruitment marketing partner or a specific employer with which you have a relationship.How an import works
The bulk import response comes back once your records are stored, which is before parsing has finished. At response time, the postings are queued for parsing and only become applyable once parsing completes. We send an AI Apply data-changed webhook when a job posting’s status changes, including the ones your import archived. You therefore never have to compare imports yourself to find out what changed. See Webhooks for the lifecycle and payloads.Creating a job feed
You must create the job feed before being able to bulk import. This can be done either in the Kombo Dashboard or through the API. Via API, the POST Job Feeds endpoint returns the new feed:id identifies the feed in every import you send afterwards. You can look it up again at any time with GET Job Feeds.
Sending an import
Each import sends a newline-separated list of JSON records (NDJSON) as the request body, with one record per job posting.General considerations for job postings (query parameters, location, etc.)
still apply. See the AI Apply
documentation for details.
How postings are matched
Inside a feed, a posting is identified by its career site label, its URL, and its job code:- A record whose combination we have seen before updates that posting.
- A new combination creates a posting and queues it for parsing.
- A posting from an earlier import that is missing from the current one is archived. Its parsed data is kept, so a later import containing it again can revive it.
Limits and failures
- Send the body as
application/x-ndjson. - A request may be at most 35 MB and take at most 5 minutes.
- Only one import can run per job feed at a time.
Example responses
A successful import responds with what happened to your postings:processed: records we read from your request.created: postings that did not exist yet and are now queued for parsing.archived: postings from earlier imports that were missing from this one.
code as the field to branch on:
API reference
- POST Bulk Import, including every error this endpoint can return
- POST Job Feeds
- GET Job Feeds