Discover/HiBob API
live

HiBob APIoviva.careers.hibob.com

Retrieve job application form structure from HiBob-hosted careers sites: sections, fields, documents, questionnaire, and data-retention consent settings.

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

What is the HiBob API?

The HiBob Careers Application Form API exposes 1 endpoint — get_application_form — that returns the complete form definition for any job listing hosted on a HiBob careers subdomain. A single call delivers 7 top-level response objects including ordered form sections, field types, document upload requirements, screening questionnaire items, and data-retention consent configuration, all keyed to a job listing UUID.

This call costs2 credits / call— charged only on success
Try it
The job listing UUID taken from the listing URL path (/jobs/<job_id>).
The company's HiBob careers-site subdomain, i.e. the part before .careers.hibob.com in the listing URL (lowercase letters, digits, hyphens).
api.parse.bot/scraper/2ca488ba-05bf-4dba-b1c0-28ef8cd9b1b3/<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/2ca488ba-05bf-4dba-b1c0-28ef8cd9b1b3/get_application_form?job_id=da96b227-e519-473e-87f8-06267ff42855&company=oviva' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace oviva-careers-hibob-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: HiBob Careers Application Form API — inspect a job's application structure."""
from parse_apis.oviva_careers_hibob_com_api import HiBobCareers, InputNotFound

client = HiBobCareers()

# Fetch the application form for a known job listing.
try:
    form = client.application_forms.get(
        company="oviva",
        job_id="da96b227-e519-473e-87f8-06267ff42855",
    )
except InputNotFound:
    print("Company or job listing not found.")
    raise

print(f"Form #{form.application_form_id} for job {form.job_id} at {form.company}")

# Walk ordered sections and their fields.
for section in form.sections:
    print(f"\n== {section.title} ==")
    for field in section.fields:
        req = "required" if field.required else "optional"
        print(f"  {field.label} ({field.field_type}, {req})")

# List requested documents.
for doc in form.documents:
    req = "required" if doc.required else "optional"
    print(f"Document: {doc.name} ({doc.type}, {req}) — {doc.instructions}")

# Show screening questions and their answer options.
for q in form.questionnaire:
    answers = ", ".join(opt.text for opt in q.options)
    print(f"Q: {q.text} [{q.type}] options: {answers}")

# Data-retention consent settings (may be absent).
if form.data_retention_consent is not None:
    consent = form.data_retention_consent
    print(f"Consent: {consent.initial_consent_type}, "
          f"extended={consent.requests_extended_consent} "
          f"({consent.extended_consent_period_months} months)")

print("\nexercised: application_forms.get")
All endpoints · 1 totalmissing one? ·

Returns the application form definition for one job listing on a HiBob careers site (<company>.careers.hibob.com), in two fixed requests. The result has ordered sections (as displayed on the site, e.g. 'Personal information' and 'Professional profile') each holding ordered candidate fields with label, field type and whether it is mandatory; the list of documents the applicant is asked to upload (name, type, instructions, mandatory flag); the questionnaire with each question's type, mandatory flag and answer options; and the data-retention consent configuration shown at the bottom of the form (null if that setting cannot be read). A listing that does not exist returns a stale_input error; a company identifier with no HiBob careers site also returns stale_input. Sections, documents and questionnaire are empty arrays when the form defines none of that kind.

Input
ParamTypeDescription
job_idrequiredstringThe job listing UUID taken from the listing URL path (/jobs/<job_id>).
companyrequiredstringThe company's HiBob careers-site subdomain, i.e. the part before .careers.hibob.com in the listing URL (lowercase letters, digits, hyphens).
Response
{
  "type": "object",
  "fields": {
    "job_id": "the listing UUID as supplied",
    "company": "careers-site subdomain as supplied",
    "sections": "ordered array of {title, fields[]}; each field has key (site field name), label (display label), field_type (text|date|currency|json|...), display_type (widget hint such as languages/skills, or null), required (boolean), ordinal (display order)",
    "documents": "ordered array of requested uploads: name, type (e.g. resume, portfolio), instructions, required, ordinal",
    "questionnaire": "ordered array of screening questions: question_id, text, description, type (e.g. yes_no), required, allow_multiple_answers, options[{option_id, text}], ordinal",
    "application_form_id": "integer id of the form definition on the site",
    "data_retention_consent": "object with initial_consent_type, extended_consent_period_months, requests_extended_consent; null when unavailable"
  },
  "sample": {
    "data": {
      "job_id": "da96b227-e519-473e-87f8-06267ff42855",
      "company": "oviva",
      "sections": [
        {
          "title": "Personal information",
          "fields": [
            {
              "key": "firstName",
              "label": "First name",
              "ordinal": 0,
              "required": true,
              "field_type": "text",
              "display_type": null
            },
            {
              "key": "desiredSalary",
              "label": "Desired salary",
              "ordinal": 5,
              "required": true,
              "field_type": "currency",
              "display_type": null
            }
          ]
        },
        {
          "title": "Professional profile",
          "fields": [
            {
              "key": "skills",
              "label": "Skills",
              "ordinal": 7,
              "required": false,
              "field_type": "json",
              "display_type": "skills"
            }
          ]
        }
      ],
      "documents": [
        {
          "name": "Resume",
          "type": "resume",
          "ordinal": 0,
          "required": false,
          "instructions": "Upload your resume"
        }
      ],
      "questionnaire": [
        {
          "text": "Do you speak at least C2 German?",
          "type": "yes_no",
          "options": [
            {
              "text": "Yes",
              "option_id": 49691123
            },
            {
              "text": "No",
              "option_id": 49691124
            }
          ],
          "ordinal": 0,
          "required": true,
          "description": null,
          "question_id": 49691125,
          "allow_multiple_answers": false
        }
      ],
      "application_form_id": 49670747,
      "data_retention_consent": {
        "initial_consent_type": "implied",
        "requests_extended_consent": true,
        "extended_consent_period_months": 6
      }
    },
    "status": "success"
  }
}

About the HiBob API

What get_application_form returns

The get_application_form endpoint accepts two required parameters: job_id (the UUID from the listing URL path, e.g. /jobs/da96b227-e519-473e-87f8-06267ff42855) and company (the subdomain before .careers.hibob.com). The response is structured around the form as it appears to candidates, with sections as an ordered array. Each section carries a title (e.g. "Personal information", "Professional profile") and a fields array where every field includes a key, label, field_type (one of text, date, currency, json, and others), and metadata like required status.

Documents and questionnaire

Beyond the candidate input fields, the response includes a documents array listing every requested upload — each entry specifies name, type (e.g. resume, portfolio), instructions, required, and ordinal for ordering. The questionnaire array contains screening questions with question_id, text, description, type (e.g. yes_no), required, allow_multiple_answers, and answer options. This lets you inspect the full pre-screening logic a company has configured for a given role.

Data retention and form identity

Two additional fields round out the response. application_form_id is the integer identifier HiBob assigns to this form definition — useful for detecting when a company has swapped out the form. data_retention_consent is an object containing initial_consent_type, extended_consent_period_months, and requests_extended_consent; it returns null when the company has not configured a retention policy. Together these fields let you track form versioning and compliance posture across roles and companies.

Reliability & maintenanceVerified

The HiBob API is a managed, monitored endpoint for oviva.careers.hibob.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when oviva.careers.hibob.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 oviva.careers.hibob.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
  • Audit which document types (resume, portfolio, etc.) different employers require before applying
  • Compare screening questionnaire complexity across job listings to estimate application friction
  • Track changes to a form definition over time using application_form_id as a version signal
  • Extract field labels and types to pre-fill or validate candidate data in an ATS integration
  • Map data_retention_consent settings across companies for GDPR compliance research
  • Identify required vs optional fields programmatically to surface form difficulty to job seekers
  • Aggregate questionnaire question types across HiBob-hosted listings for recruiting analytics
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 HiBob provide an official developer API for its careers site forms?+
HiBob offers a workforce management API at https://apidocs.hibob.com, but it is scoped to HR and employee data for authenticated company accounts. There is no publicly documented endpoint for reading candidate-facing application form definitions from HiBob-hosted careers subdomains.
What does the sections field actually contain, and are nested fields supported?+
Each entry in sections has a title string and a fields array. Every field carries key (the site's internal field name), label (what the candidate sees), field_type (e.g. text, date, currency, json), and a required flag. The sections are returned in display order. Deeply nested conditional field trees are not currently a documented part of the schema — the API covers flat fields within sections.
Does the API cover job listings from any HiBob careers subdomain, or only Oviva?+
The company parameter accepts any subdomain that follows the <company>.careers.hibob.com pattern, so you can query listings from any employer using HiBob's hosted careers site product, not just Oviva. The job_id UUID comes from that company's listing URL.
Does the API return the actual job description or posting metadata like salary range or location?+
Not currently. The API covers the application form definition: sections, fields, documents, questionnaire, data-retention consent, and the form's integer ID. Job description text, salary data, location, and role metadata are not included in the response. You can fork this API on Parse and revise it to add an endpoint that retrieves the job posting details alongside the form.
What happens when a company has not configured data-retention consent settings?+
The data_retention_consent field returns null in that case. When it is populated, it contains initial_consent_type, extended_consent_period_months, and a boolean requests_extended_consent indicating whether the company asks candidates to opt into longer data storage.
Page content last updated . Spec covers 1 endpoint from oviva.careers.hibob.com.
Related APIs in JobsSee all →
careers-page.com API
Access data from careers-page.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.
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.
bambooworks.applytojob.com API
Access data from bambooworks.applytojob.com.
whyhirewrong.teamtailor.com API
Retrieve the complete structure of job application forms for the WhyHireWrong? Teamtailor career site, including all sections, fields, field types, and requirements to understand what applicants need to submit. Use this information to prepare job postings, design your application workflow, or integrate with your hiring system.
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.
jobs.workable.com API
Access data from jobs.workable.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.