Discover/SmartRecruiters API
live

SmartRecruiters APIjobs.smartrecruiters.com

Retrieve the full application form structure for any SmartRecruiters job listing: sections, screening questions, consent fields, file upload rules, and apply-with integrations.

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

What is the SmartRecruiters API?

The get_application_form endpoint returns a single structured object with over 8 top-level fields describing the complete public application form for any SmartRecruiters job listing. Pass a company slug and numeric job ID — exactly as they appear in the jobs.smartrecruiters.com URL — and get back form sections, screening questions, consent configuration, file upload constraints, and feature flags like apply_with_linkedin and resume_parsing in one call.

This call costs2 credits / call— charged only on success
Try it
Numeric job listing id from the job URL path, passed as a string.
Company slug exactly as it appears in the job URL path (e.g. Jobbatical in jobs.smartrecruiters.com/Jobbatical/744000146669819).
api.parse.bot/scraper/68e78f7f-e51d-4c8c-8c47-b6b78590919b/<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/68e78f7f-e51d-4c8c-8c47-b6b78590919b/get_application_form?job_id=744000146669819&company=Jobbatical' \
  -H 'X-API-Key: $PARSE_API_KEY'
All endpoints · 1 totalmissing one? ·

Returns the application form definition for one SmartRecruiters job listing, identified by the company slug and numeric job id that appear in the public job URL (jobs.smartrecruiters.com/<company>/<job_id>). The result is one object: job summary; an ordered list of form sections (Easy Apply, name, email, place of residence, phone, experience, education, social profiles, resume, message to hiring team — only the sections the employer configured appear) each with visible/required flags and, where the site defines them, nested sub-fields and a configuration object; the preliminary screening questions configured for the job as the site defines them (each with id, type such as text/textarea/info, label, required, diversity flag and its answer fields) — an empty array when the job has none; consent/privacy-notice scopes the applicant must accept; enabled apply-with integrations; and accepted upload extensions and size limit. Three site requests per call; no pagination. A job id the site rejects surfaces as an upstream error with the site's status code.

Input
ParamTypeDescription
job_idrequiredstringNumeric job listing id from the job URL path, passed as a string.
companyrequiredstringCompany slug exactly as it appears in the job URL path (e.g. Jobbatical in jobs.smartrecruiters.com/Jobbatical/744000146669819).
Response
{
  "type": "object",
  "fields": {
    "job": "object: title, location, remote (boolean), ref_number, general_application (boolean)",
    "job_id": "job id as supplied",
    "company": "company slug as supplied",
    "consent": "object: ask_for_consent, privacy_policy_url, privacy_policy_label (plain text), scopes (array of consent checkboxes with scope, label, required, checkbox_required)",
    "features": "object of booleans: apply_with_indeed, apply_with_linkedin, apply_with_seek, resume_parsing, upload_avatar, has_inline_assessments",
    "language": "form language code reported by the site",
    "sections": "ordered array of form sections: key (site section key), label (human-readable section name), visible, required, optional fields (array of sub-field key/visible/required) and optional configuration object (e.g. locationType for place of residence)",
    "file_upload": "object: accepted_file_extensions (comma-separated), file_size_limit_bytes (integer)",
    "screening_questions": "array of preliminary screening questions as the site defines them: id, type (e.g. text, textarea, info), label, required, diversity, repeatableFields, and fields (answer fields with name, label, type, required, multipleChoice, values); empty when the job has none"
  },
  "sample": {
    "data": {
      "job": {
        "title": "Senior Account Executive - k0rdent AI - Remote (EMEA)",
        "remote": true,
        "location": "Poznań, Poland",
        "ref_number": "REF1249I",
        "general_application": false
      },
      "job_id": "744000146468059",
      "company": "Mirantis",
      "consent": {
        "scopes": [
          {
            "label": "You declare that you have read and agree to the privacy notice of Mirantis.",
            "scope": "SINGLE",
            "required": true,
            "checkbox_required": true
          }
        ],
        "ask_for_consent": true,
        "privacy_policy_url": "https://www.mirantis.com/privacy-notice-to-job-applicants-and-employees/",
        "privacy_policy_label": "Here you can find details of our privacy notice."
      },
      "features": {
        "upload_avatar": true,
        "resume_parsing": true,
        "apply_with_seek": true,
        "apply_with_indeed": true,
        "apply_with_linkedin": true,
        "has_inline_assessments": false
      },
      "language": "en",
      "sections": [
        {
          "key": "easyApply",
          "label": "Easy Apply",
          "fields": [
            {
              "key": "easyApplyResumeParsing",
              "visible": true,
              "required": false
            },
            {
              "key": "easyApplyIndeed",
              "visible": true,
              "required": false
            },
            {
              "key": "easyApplyLinkedIn",
              "visible": true,
              "required": false
            }
          ],
          "visible": true,
          "required": false
        },
        {
          "key": "firstAndLastName",
          "label": "Personal information - name",
          "visible": true,
          "required": true
        },
        {
          "key": "email",
          "label": "Personal information - email",
          "visible": true,
          "required": true
        },
        {
          "key": "placeOfResidence",
          "label": "Personal information - place of residence",
          "visible": true,
          "required": true,
          "configuration": {
            "locationType": "CITY"
          }
        },
        {
          "key": "phoneNumber",
          "label": "Personal information - phone number",
          "visible": true,
          "required": true
        },
        {
          "key": "experience",
          "label": "Experience",
          "visible": true,
          "required": false
        },
        {
          "key": "education",
          "label": "Education",
          "fields": [
            {
              "key": "institution",
              "visible": true,
              "required": true
            },
            {
              "key": "educationDates",
              "visible": true,
              "required": false
            }
          ],
          "visible": true,
          "required": false
        },
        {
          "key": "socialProfiles",
          "label": "On the web",
          "fields": [
            {
              "key": "linkedIn",
              "visible": true,
              "required": false
            },
            {
              "key": "website",
              "visible": true,
              "required": false
            }
          ],
          "visible": true,
          "required": false
        },
        {
          "key": "resume",
          "label": "Resume",
          "visible": true,
          "required": true
        },
        {
          "key": "messageToHiringManager",
          "label": "Message to the Hiring Team",
          "visible": true,
          "required": false
        }
      ],
      "file_upload": {
        "file_size_limit_bytes": 10485760,
        "accepted_file_extensions": ".doc,.pdf,.docx,.txt"
      },
      "screening_questions": [
        {
          "id": "f61bc9e9-ce2b-45ed-94e8-3a308f5afa59",
          "type": "text",
          "label": "What is your LinkedIn profile URL?",
          "fields": [
            {
              "id": "value",
              "name": "value",
              "type": "text",
              "label": "Value",
              "values": [],
              "required": true,
              "multipleChoice": false,
              "questionsFieldValues": []
            }
          ],
          "metadata": {},
          "required": true,
          "diversity": false,
          "aiGenerated": false,
          "questionsFields": [
            {
              "id": "value",
              "name": "value",
              "type": "text",
              "label": "Value",
              "values": [],
              "required": true,
              "multipleChoice": false,
              "questionsFieldValues": []
            }
          ],
          "repeatableFields": false
        }
      ]
    },
    "status": "success"
  }
}

About the SmartRecruiters API

What the Endpoint Returns

The get_application_form endpoint accepts two required parameters: company (the slug as it appears in the job URL, e.g. Jobbatical) and job_id (the numeric ID from the same URL path). The response is a single object containing a job summary with title, location, remote status, ref_number, and a general_application flag indicating whether the listing is an open application rather than a specific role.

Form Structure and Sections

The sections field is an ordered array of form sections as defined by the employer. Each section includes a key (the site's internal section identifier), a human-readable label, and visible and required flags. This lets you map exactly which fields an applicant would encounter and in what order. Alongside sections, the screening_questions array exposes any preliminary questions the employer has configured, with per-question id, type (text, textarea, info, etc.), label, required flag, and a diversity flag.

Consent, Features, and File Rules

The consent object describes whether consent is requested (ask_for_consent), the privacy_policy_url, a plain-text privacy_policy_label, and a scopes array listing each individual consent checkbox. The features object contains booleans for apply_with_indeed, apply_with_linkedin, apply_with_seek, resume_parsing, upload_avatar, and has_inline_assessments — useful for understanding which third-party apply flows are active for a given listing. The file_upload object specifies accepted_file_extensions and file_size_limit_bytes for attachment validation.

Source Coverage

SmartRecruiters is an applicant tracking system used by a wide range of employers globally. Any job listed on jobs.smartrecruiters.com with a public application form is addressable by this endpoint using the company slug and job ID from the URL. The language field in the response reflects the form language as configured by the employer.

Reliability & maintenanceVerified

The SmartRecruiters API is a managed, monitored endpoint for jobs.smartrecruiters.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when jobs.smartrecruiters.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.smartrecruiters.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
1h 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
  • Auditing employer application form complexity by counting required sections and screening questions across listings.
  • Checking whether a job listing has apply_with_linkedin or apply_with_indeed enabled before directing candidates to those flows.
  • Validating file upload constraints (accepted_file_extensions, file_size_limit_bytes) before submitting a resume programmatically.
  • Extracting privacy policy URLs and consent scope definitions for compliance review across multiple employers.
  • Detecting remote job flags and location data from the job summary field for aggregation into a remote-work job board.
  • Comparing screening question types and counts across companies to benchmark application friction.
  • Identifying general_application listings versus role-specific postings for candidate routing logic.
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 SmartRecruiters have an official developer API?+
Yes. SmartRecruiters publishes an official REST API documented at developers.smartrecruiters.com, aimed at ATS integrations and requires OAuth credentials. That API is separate from this Parse endpoint, which covers the public-facing job application form data without requiring employer credentials.
What does the screening_questions field actually contain?+
It is an array of question objects defined by the employer for that specific listing. Each object includes an id, a type (such as text, textarea, or info), a human-readable label, a required boolean, and a diversity flag. The array is empty if the employer has not configured screening questions for that job.
Does the API return applicant submission data or existing applications for a job?+
No — the endpoint returns only the form definition, not any submitted applications or candidate data. It covers the job summary, form sections, screening question structure, consent configuration, and file upload rules. You can fork this API on Parse and revise it to add an endpoint targeting other public SmartRecruiters data if your use case requires it.
Can I retrieve application forms for jobs not hosted on jobs.smartrecruiters.com, such as embedded widgets on employer career pages?+
The endpoint is scoped to listings accessible via the jobs.smartrecruiters.com URL pattern using a company slug and numeric job ID. Listings served only through employer-hosted career pages with different URL structures are not currently covered. You can fork this API on Parse and revise it to target a different URL pattern if needed.
How do I find the correct company and job_id values to pass?+
Both values come directly from the public job URL. For a URL like jobs.smartrecruiters.com/Jobbatical/744000146669819, the company parameter is Jobbatical and the job_id is 744000146669819. The company slug is case-sensitive and must match the URL exactly.
Page content last updated . Spec covers 1 endpoint from jobs.smartrecruiters.com.
Related APIs in JobsSee all →