Jobs are the core unit of the ATS pipeline. Each job represents an open or draft position and must have at least one team, one location, and one employment type before it can receive applications.
Before creating a job, complete the Getting started guide to retrieve the required reference IDs.
A job moves through the following statuses:
Jobs are opened and closed in the Deel application. The API supports creating jobs and reading their status.
Use POST /ats/jobs to create a new job. Provide a title, at least one team_id, at least one location_id, and at least one employment_type_id.
Store the returned job.id. You will need it when creating applications.
The job_employment_types[].id field (the join record ID, e.g. jet_01hxyz333bcd) is different from the employment_type.id. When creating applications, use the job_employment_type_id (the join record ID), not the employment type ID directly.
Use GET /ats/jobs to retrieve jobs. You can filter by status, location, team, employment type, or department.
Available filters:
Job postings are the published representations of jobs on job boards. Retrieve them to sync listing data with an external system.
You can also retrieve postings for a specific job board:
Job posting sources include: INTERNAL_CAREER_PAGE, EXTERNAL_CAREER_PAGE, and LINKEDIN.
Job postings are read-only via the API. No endpoint exists to create, publish, or unpublish a posting, and Deel provides no embeddable widget. Use the Deel application to manage job board publications.
job_employment_type_id alongside job_id: You need the join record ID (not the employment type ID) when creating applications. Retrieve it from GET /ats/jobs and store it with the job record.updated_after for sync: When polling for job changes, use the updated_after filter with the timestamp of your last successful sync to retrieve only changed records.