Discover/Deel API
live

Deel APIjobs.deel.com

Retrieve job posting details and full application form definitions from any Deel-hosted job board (jobs.deel.com) in a single API call.

Endpoint health
verified 2h ago
get_application_form
1/1 passing latest checkself-healing
Endpoints
1
Updated
3h ago

What is the Deel API?

This API exposes 1 endpoint — get_application_form — that returns both the job summary and the complete application form definition for any posting on a Deel-hosted job board. A single call returns over 15 structured fields covering job metadata (title, work arrangement, locations, compensation range), form sections (personal information, profile, custom detail questions), and demographic survey configuration. It accepts an org_slug and job_posting_id pulled directly from the job board URL.

This call costs1 credit / call— charged only on success
Try it
Company slug from the job board URL, the path segment right after jobs.deel.com (e.g. dfns).
Job posting UUID from the job board URL (the segment after /job-details/).
api.parse.bot/scraper/c6a40cb4-fd8e-47cd-aa6b-cd9ec2442897/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/c6a40cb4-fd8e-47cd-aa6b-cd9ec2442897/get_application_form?org_slug=dfns&job_posting_id=2b1bc708-414d-4ad1-870f-bd3f608f6cf5' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 1 totalmissing one? ·

Returns the application form for one job posting on a Deel-hosted job board in a single round trip. The result carries job summary data (title, work arrangement, employment types, locations, departments, teams, compensation range when the posting shows it), form metadata, and three field groups: personal_information (first name, last name, email, phone with the site's required flags), profile (LinkedIn profile URL and the resume upload, present only when the form shows a resume field), and details, an array of the employer's custom question sections in display order, each with its questions (label, question type such as Paragraph, required and rich-text flags, options when the question type has choices). Standard personal/profile field keys are fixed by the site; custom questions carry the site's question ids. A posting id that does not resolve to a published job on that board yields a stale_input not-found error; a malformed id or slug yields a stale_input format error.

Input
ParamTypeDescription
org_slugrequiredstringCompany slug from the job board URL, the path segment right after jobs.deel.com (e.g. dfns).
job_posting_idrequiredstringJob posting UUID from the job board URL (the segment after /job-details/).
Response
{
  "type": "object",
  "fields": {
    "job": "object: work_arrangement, employment_types[], locations[], departments[], teams[], compensation {currency, min_amount, max_amount} or null when hidden",
    "form": "object: application form id, title, description (may be null), status, revision_id, updated_at",
    "job_id": "underlying job UUID on the employer's Deel account",
    "org_slug": "job board slug as passed in",
    "sections": "object with personal_information {title, fields[]}, profile {title, fields[]}, details[] (custom sections: id, title, page_title, fields[])",
    "job_title": "posting title",
    "job_posting_id": "posting UUID as passed in",
    "demographic_section": "object: title and helper_text of the voluntary demographic section configured on the form",
    "sections.profile.fields": "array of {key, label, type, required, accepted_formats (file fields only)}",
    "sections.details[].fields": "array of {id, label, type, required, rich_text, options (null unless the question type has choices), sensitive}",
    "sections.personal_information.fields": "array of {key, label, type, required}"
  },
  "sample": {
    "data": {
      "job": {
        "teams": [
          "Marketing"
        ],
        "locations": [
          "Paris"
        ],
        "departments": [
          "Departments"
        ],
        "compensation": {
          "currency": "USD",
          "max_amount": 240000,
          "min_amount": 140000
        },
        "employment_types": [
          "Full-time"
        ],
        "work_arrangement": "REMOTE"
      },
      "form": {
        "id": "75ed2968-a161-4f08-a8db-ce29a89eb296",
        "title": "Default Application Form",
        "status": "PUBLISHED",
        "updated_at": "2026-07-14T16:04:24.613Z",
        "description": null,
        "revision_id": "411cc724-1d7f-4d4f-8e74-9819349a285a"
      },
      "job_id": "2b9876dc-373f-4af0-a648-7de75c9a401f",
      "org_slug": "dfns",
      "sections": {
        "details": [
          {
            "id": "3db7f0d8-61f9-43ef-ad8f-a25fb325892c",
            "title": "Untitled section",
            "fields": [
              {
                "id": "74c0714c-1dc0-472d-b70c-1b766b163754",
                "type": "Paragraph",
                "label": "Cover letter",
                "options": null,
                "required": false,
                "rich_text": false,
                "sensitive": false
              }
            ],
            "page_title": "Page name 1"
          }
        ],
        "profile": {
          "title": "Profile",
          "fields": [
            {
              "key": "linkedin_profile_url",
              "type": "url",
              "label": "LinkedIn profile",
              "required": true
            },
            {
              "key": "resume",
              "type": "file",
              "label": "Please upload your resume (preferably as a PDF file)",
              "required": true,
              "accepted_formats": [
                ".PDF"
              ]
            }
          ]
        },
        "personal_information": {
          "title": "Personal information",
          "fields": [
            {
              "key": "first_name",
              "type": "text",
              "label": "First name",
              "required": true
            },
            {
              "key": "last_name",
              "type": "text",
              "label": "Last name",
              "required": true
            },
            {
              "key": "email",
              "type": "email",
              "label": "Email",
              "required": true
            },
            {
              "key": "phone_number",
              "type": "phone",
              "label": "Phone number",
              "required": false
            }
          ]
        }
      },
      "job_title": "Head of Marketing",
      "job_posting_id": "2b1bc708-414d-4ad1-870f-bd3f608f6cf5",
      "demographic_section": {
        "title": "Demographic information",
        "helper_text": "Completion of the demographic information is entirely voluntary and will not influence any employment-related decision-making. The information you choose to provide will be aggregated and used solely for analytical and reporting purposes. All personal data will be maintained confidentially and in compliance with applicable personal data protection laws."
      }
    },
    "status": "success"
  }
}

About the Deel API

What the endpoint returns

get_application_form takes two required path-style parameters: org_slug (the company identifier in the jobs.deel.com URL, e.g. dfns) and job_posting_id (the UUID following /job-details/). The response bundles a job object containing work_arrangement, employment_types, locations, departments, teams, and a compensation block with currency, min_amount, and max_amount when the posting discloses salary. It also returns a form object with the application form's id, title, description, status, revision_id, and updated_at timestamp.

Form sections and question shapes

The sections field is the core of the response. sections.personal_information and sections.profile each carry a title and a fields array. Profile fields include key, label, type, required, and accepted_formats for file-upload fields (such as resume or portfolio). sections.details is an array of custom sections the employer has configured — each with its own id, title, page_title, and a fields array where every field exposes id, label, type, required, rich_text, options (populated only for choice-type questions), and a sensitive flag.

Demographic section

The response also includes a demographic_section object with the title and helper_text of the voluntary equal-opportunity survey configured on the form. This section is defined at the form level, not per-question — individual demographic response options are not enumerated in the current response shape.

Identifiers returned

Beyond the form and job objects, the response surfaces job_id (the employer's internal Deel job UUID), org_slug (echoed back), job_posting_id (echoed back), and job_title as a top-level convenience field, making it straightforward to correlate results across multiple postings without parsing nested objects.

Reliability & maintenanceVerified

The Deel API is a managed, monitored endpoint for jobs.deel.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when jobs.deel.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official jobs.deel.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
2h ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Mirror a company's Deel job board into an internal applicant tracking system by pulling form field definitions for each active posting.
  • Audit compensation transparency across Deel-hosted job boards by collecting compensation.min_amount, max_amount, and currency fields.
  • Pre-fill or validate a custom application UI by reading required fields and accepted file formats from sections.profile.fields.
  • Identify which postings include custom screening questions by inspecting sections.details[].fields for non-standard question types.
  • Track application form changes over time using the form.revision_id and form.updated_at fields.
  • Extract location, work arrangement, and employment type data from job postings to power a job aggregator or alert system.
  • Check whether a posting's demographic survey is configured by reading demographic_section.title and helper_text without submitting an application.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Deel provide an official developer API for job board data?+
Deel offers a developer API (documented at developer.deel.com) focused on HR, payroll, and contractor management. It does not publicly expose endpoints for reading job posting application form definitions from jobs.deel.com job boards.
Does the `get_application_form` endpoint return the full list of open job postings for a company, or only a single posting?+
It returns data for one posting per call, identified by the job_posting_id UUID. There is no listing endpoint in the current API that enumerates all active postings for an org_slug. You can fork this API on Parse and revise it to add a job-listing endpoint that returns all open postings for a given company.
What does the `demographic_section` field actually contain?+
It contains the title and helper_text strings that appear above the voluntary demographic survey on the application form. The individual question options within that survey (e.g. specific gender or ethnicity choices) are not included in the current response shape. You can fork this API on Parse and revise it to surface the per-question options if your use case requires them.
Is compensation data always present in the response?+
No. The compensation object with currency, min_amount, and max_amount is only populated when the employer has chosen to display salary information on the posting. When the posting does not disclose pay, that block will be absent or contain null values.
Does the API return submitted applications or candidate data?+
No. The API returns only the form definition and job metadata for a posting — it does not include any submitted application data, candidate profiles, or recruiter-side information. You can fork this API on Parse and revise it to target other public-facing parts of the job board if additional data points become relevant.
Page content last updated . Spec covers 1 endpoint from jobs.deel.com.
Related APIs in JobsSee all →
careers-page.com API
Access data from careers-page.com.
jobs.gem.com API
Retrieve the complete application form for any job posting on jobs.gem.com, including standard applicant fields, custom screening questions with answer options, and optional demographic survey sections. Use this to understand exactly what information employers are requesting from candidates before applying.
jobs.dayforcehcm.com API
Access data from jobs.dayforcehcm.com.
jobbatical.bamboohr.com API
Retrieve the structure and fields of job application forms for specific openings on your BambooHR careers site, so you can understand exactly what information candidates are being asked to provide. This lets you programmatically access the form sections, field types, and requirements without manually reviewing each job posting.
jobs.eu.lever.co API
Get detailed information about job application forms on EU Lever job postings, including all sections, field types, required status, and dropdown options. Use this data to understand the application requirements or integrate application form structures into your hiring workflow.
careers.kula.ai API
Access data from careers.kula.ai.
oviva.careers.hibob.com API
Access data from oviva.careers.hibob.com.
mayflower.recruitee.com API
Get the complete structure of a Recruitee job application form, including all sections, field labels, data types, required flags, and answer options to understand exactly what applicants need to provide. Use this information to programmatically build your own application interface or validate applicant responses against the official form requirements.