ATS introduction
Deel’s ATS API gives you programmatic access to Deel’s built-in Applicant Tracking System. Use it to create and manage job openings, move candidates through a configurable interview pipeline, process applications, and retrieve offer details from your own product or automation workflow.
Deel built this API for developers building recruitment integrations, ATS connectors, or HR automation that synchronizes with Deel’s hiring workflow.
Key concepts
Understanding the data model before making API calls prevents most integration issues.
- Organization: Your Deel account. All jobs, candidates, and applications belong to your organization. Fully configure your Deel organization in the application before making any API calls.
- Job: An open, draft, or closed position. Each job requires at least one team and one employment type. Create teams via
POST /hris/organization_structures, then retrieve their IDs withGET /teams. - Job posting: A published representation of a job on a job board (
INTERNAL_CAREER_PAGE,EXTERNAL_CAREER_PAGE, orLINKEDIN). Job postings are read-only via the API. - Candidate: A person applying to a role. A single candidate can have multiple applications across different jobs.
- Application: The record linking a candidate to a specific job and employment type. Applications progress through interview plan stages.
- Interview plan stage: A step in the hiring pipeline. Stages belong to one of three category types:
LEAD(initial screening),ACTIVE(in progress), orCOMPLETED(final decision). - Offer: Deel generates an offer at a completed stage. Each offer has a
worker_type(EOR_EMPLOYEE,CONTRACTOR,DIRECT_EMPLOYEE, etc.) and moves through a lifecycle:CREATED,SENT, thenACCEPTEDorREJECTED.
Key capabilities
Create and list job openings with teams, locations, and employment types.
Create candidate profiles and submit applications to specific jobs.
Move applications through interview plan stages and trigger job activities.
Connect an accepted offer to a Deel EOR or IC contract.
What you will need to set up in the Deel App
Configure the following in the Deel application before making any ATS API call.
- Organization: Your Deel organization, teams, and departments must exist before you call any endpoint.
- Teams: Every job requires at least one
team_id. Create teams by posting an org structure viaPOST /hris/organization_structures(scope:organizations:write). Retrieve existing team IDs withGET /teams. - Locations: Retrieve valid
location_idvalues usingGET /ats/locations. You cannot create locations via the API. - Employment types: Before creating a job or an application, ensure that you have created the required employment type. Retrieve valid
employment_type_idvalues usingGET /ats/employment-types. - Interview plans: Configure interview plans and their stages in the Deel application. Reference them by ID when creating jobs and advancing application stages.
Create teams via POST /hris/organization_structures by passing a teams array in the request body. Once created, they appear in GET /teams and their UUIDs are ready to use in ATS calls.
What to manage in the Deel App
Some operations must be performed in the Deel application and are available as read-only via the API.
Next steps
Retrieve lookup data, verify authentication, and make your first API call.
Create and list job openings with the correct reference IDs.
Create candidates, submit applications, and advance pipeline stages.
Connect an accepted offer to a Deel EOR or IC contract.