Reading Workable, Recruitee and Teamtailor job boards from their public JSON
Description and use
Automated collection of job listings from Workable, Recruitee and Teamtailor via their public JSON/JSON‑Feed and XML endpoints, accounting for rate limits and token requirements.
Problem
Need to programmatically fetch and parse job listings from Workable, Recruitee and Teamtailor public JSON endpoints for integration or analytics.
Outcome
Scripts can retrieve full job boards from the three platforms, handling platform‑specific quirks and rate limits, enabling automated analytics or integration.
Workflow
- Identify the platform and construct the endpoint URL (e.g., https://apply.workable.com/api/v1/widget/accounts/{account}?details=false for Workable).
- Send an HTTP GET request to the endpoint.
- Handle HTTP responses: 200 for success, 404 for unknown account/company, 429 for rate limiting, 401 for missing token on Recruitee after Feb 2027.
- Parse the returned JSON (or XML for Recruitee feeds).
- Extract job fields: title, id/shortcode, employment type, location, remote status, publication date, etc.
- Store or transform the data as needed for downstream use.
- Respect rate limits: space requests and stop on 429.
- For Recruitee, include X‑Careers‑Sites‑Token header if required.
- For Teamtailor, parse the JSON Feed 1.1 structure and the embedded schema.org JobPosting object.
- Validate data: reject XML with DOCTYPE or entities.
Evidence
GET https://apply.workable.com/api/v1/widget/accounts/{account}?details=false
An unknown account answers 404 with a plain-text Not Found body, not JSON.
Rate limits are the real issue. apply.workable.com sits behind Cloudflare... HTTP 429 and Cloudflare's "error code: 1015" page.
GET https://{company}.recruitee.com/api/offers/
An unknown company answers 404 with {"error":"Not Found"}.
A token is coming. Recruitee's Careers Site API documentation says the deadline for adding an X-Careers-Sites-Token header to these calls is 10 February 2027, and that calls without it will return 401 Unauthorized.
GET https://{company}.teamtailor.com/jobs.json
- Record date: 2026-11-02T03:43:52.219Z