Jobs API endpoint
Lists a company's public Recruitee offers (detail is inline), optionally filtered by department, location, or remote. The company is the Recruitee subdomain from its careers URL https://{company}.recruitee.com/.
/jobs/recruitee/offersLists a company's public Recruitee offers, in the shared Job shape. Detail (description) is inline in each offer.
Query parameters:
company (required) — the Recruitee subdomain from its careers URL https://{company}.recruitee.com/ (e.g. bunq).department (optional) — filter: department contains (case-insensitive).location (optional) — filter: location contains (case-insensitive).remote (optional, bool) — filter by remote; accepts true or false.Returns provider, company, count, total, and jobs[] (each: provider, id, title, company, department, location, locations[], remote, workplace_type, employment_type, url, apply_url, posted_at, description_html, description_text, compensation, compensation_min, compensation_max, compensation_currency, compensation_period) plus source_url. An unknown company returns 404. compensation_period (one of hourly, daily, weekly, monthly, yearly) comes directly from Recruitee's own structured salary.period field. When the structured salary object is blank, compensation_* falls back to a pay figure stated inline in the description, when present.
| Field | Filled in, of 21 checked | Values in the sample |
|---|---|---|
| provider | 21 | recruitee in all 21 |
| id | 21 | |
| title | 21 | “(Senior) Product Owner” and 20 other values |
| company | 21 | BUNQ in all 21 |
| department | 17 | Support & Operations (7), Risk, Legal & Compliance (4), Growth (2) and 4 more |
| location | 21 | Amsterdam, Noord-Holland, Nethe… (14), İstanbul, İstanbul, Türkiye (5), Brussels, Brussels, Belgium (1) and 1 more |
| locations | 21 | median 1 entry |
| location_city | 21 | Amsterdam (14), İstanbul (5), Brussels (1) and 1 more |
| location_state | 21 | Noord-Holland (14), İstanbul (5), Brussels (1) and 1 more |
| location_country | 21 | Netherlands (14), Türkiye (5), Belgium (1) and 1 more |
| workplace_type | 21 | hybrid in all 21 |
| employment_type | 21 | fulltime_permanent (20), internship (1) |
| url | 21 | careers.bunq.com |
| apply_url | 21 | careers.bunq.com |
| posted_at | 21 | 2026-09-22 to 2026-10-13 |
| description_html | 21 | median 4,399 characters |
| description_text | 21 | median 3,423 characters |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| company | string | Yes | Recruitee subdomain (careers URL) | bunq | |
| department | string | No | Filter: department contains | ||
| location | string | No | Filter: location contains | ||
| remote | boolean | No | Filter by remote (true or false) | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/jobs/recruitee/offers?company=bunq&remote=true" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"provider": "recruitee",
"company": "bunq",
"count": 20,
"total": 20,
"jobs": [
{
"provider": "recruitee",
"id": "2679762",
"title": "Operational Risk Intern",
"company": "bunq",
"department": "Risk, Legal & Compliance",
"location": "Amsterdam, Noord-Holland, Netherlands",
"remote": false,
"workplace_type": "hybrid",
"employment_type": "internship",
"url": "https://careers.bunq.com/o/operational-risk-intern-1",
"apply_url": "https://careers.bunq.com/o/operational-risk-intern-1/c/new",
"posted_at": "2026-07-16T11:24:50Z"
}
],
"source_url": "https://bunq.recruitee.com/api/offers/"
}
}Request schema
No body schema
Response schema
#/definitions/jobs.boardResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | jobs.BoardResponse | No | ||||
| data.company | string | No | Company or board name the postings belong to. | |||
| data.count | integer | No | Number of jobs returned in this response. | |||
| data.jobs | array | No | Job postings on the board, one item per posting. Job record, 32 fields: ai_tools_mentioned, apply_url, benefits_mentioned, company, company_logo_url, compensation, compensation_currency, compensation_max, compensation_min, compensation_period, department, description_html and 20 more. Described under iCIMS Single Job API. | |||
| data.provider | string | No | Applicant tracking system the board was read from, for example `greenhouse` or `lever`. | |||
| data.source_url | string | No | URL the data was read from. | |||
| data.total | integer | No | Total number of open postings on the board, when the provider reports it. | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/jobs/recruitee/offers?company=bunq&remote=true" \
-H "x-api-key: $CRAWLORA_API_KEY"