ATS Job Boards API
Under maintenancePricing
$3.40 / 1,000 job posting scrapeds
ATS Job Boards API
Under maintenanceJob listings from Greenhouse, Lever, Ashby, and Workable public board APIs.
Job listings pulled straight from the four ATS vendors' own public, unauthenticated board APIs: Greenhouse, Lever, Ashby, Workable. No login, no proxy, no scraping of rendered pages — these are the same JSON endpoints the vendors' own embeddable widgets call.
Input
| Field | Type | Required | Description |
|---|---|---|---|
source | enum: greenhouse, lever, ashby, workable, auto | yes | Which ATS to hit. auto detects from a board URL, or tries each API in turn for a bare slug. |
slugs | array of strings | yes | Company board slugs ("gitlab") or full board URLs (https://boards.greenhouse.io/gitlab, https://jobs.lever.co/spotify, https://jobs.ashbyhq.com/ramp, https://apply.workable.com/huggingface). |
maxJobs | integer | no | Cap on rows pushed per slug. Leave empty for no cap. |
v1 limit: no bundled seed list of company slugs. You supply the slugs/URLs; the actor does not discover or guess them. A curated seed list is future work, not v1.
Output example
One row per job in the default dataset (real row from a live smoke run, description truncated here):
{"source": "greenhouse","companySlug": "gitlab","title": "Account Executive - Italy","location": "Remote, Italy","department": "EMEA - Commercial","remote": true,"employmentType": null,"postedAt": "2026-04-17T05:58:03-04:00","updatedAt": "2026-08-31T17:56:36-04:00","applyUrl": "https://job-boards.greenhouse.io/gitlab/jobs/8503792002","description": "<div class=\"content-intro\"><p>GitLab is the intelligent orchestration platform for DevSecOps...</p></div>"}
No recruiter names, emails, or other personal data — those fields are dropped, not just left null.
Pricing
Pay-per-event. One job-scraped event is charged per job row pushed
(Actor.charge({ eventName: 'job-scraped' })), never charged for an empty
result. $0.0034 per event ($3.40 per 1,000 jobs) — configured in the
Apify Console pricing step, not in this repo.
Limits / known gaps
- No seed list — see v1 limit above.
employmentTypeisnullon Greenhouse; that ATS doesn't expose it in the public jobs feed.- Ashby boards can run into the tens of MB (openai's is ~12 MB). This actor caps each job's description to 20,000 characters rather than streaming the response — fine for reading, not for re-hosting the full HTML verbatim.
automode with a bare slug (no URL) tries Greenhouse → Lever → Ashby → Workable in order and returns the first board that resolves; a slug that happens to exist on two boards silently returns only the first match.- A slug/board with zero open jobs returns zero rows for that slug (a warning is logged) rather than failing the whole run.