ATS jobs - Greenhouse, Lever, Ashby, Workable (public APIs) avatar

ATS jobs - Greenhouse, Lever, Ashby, Workable (public APIs)

Pricing

from $5.00 / 1,000 records

Go to Apify Store
ATS jobs - Greenhouse, Lever, Ashby, Workable (public APIs)

ATS jobs - Greenhouse, Lever, Ashby, Workable (public APIs)

Job postings from any company's public Greenhouse, Lever, Ashby or Workable board, read from the ATS's own keyless JSON endpoint and normalised to one row per job: title, department, location, remote flag, type, dates, URL, description, salary when published. Filter by keyword and location.

Pricing

from $5.00 / 1,000 records

Rating

0.0

(0)

Developer

RetrainMap Team

RetrainMap Team

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 hours ago

Last modified

Categories

Share

ATS job boards — Greenhouse, Lever, Ashby, Workable (public APIs)

One row per job posting from any company's public job board on the four most common applicant-tracking systems, read from each ATS's own keyless JSON endpoint (the same data the company's careers page renders) and normalised to one flat schema: ATS, company, job id, title, department, team, location(s), remote flag, employment type, posted/updated dates, absolute job URL, description text (first 3,000 characters), salary range when the company publishes one. Give any number of board tokens per ATS; filter by keyword, location or remote.

The default input (Stripe + Airbnb on Greenhouse, Spotify on Lever, Ramp on Ashby, Netguru on Workable, 200 rows) succeeds within 5 minutes and returns rows — Apify auto-tests it daily.

Data sources and status

ATSEndpoint (no key)Fields the row keeps
Greenhouseboards-api.greenhouse.io/v1/boards/<token>/jobs?content=true&pay_transparency=true — Job Board API, documented at https://developers.greenhouse.io/job-board.htmlid, title, departments, location, offices, first_published, updated_at, absolute_url, content, pay_input_ranges, "Workplace Type" metadata
Leverapi.lever.co/v0/postings/<site>?mode=json — Postings API, documented at https://github.com/lever/postings-apiid, text, categories (department, team, location, allLocations, commitment), workplaceType, country, createdAt, hostedUrl, applyUrl, descriptionPlain, salaryRange
Ashbyapi.ashbyhq.com/posting-api/job-board/<name>?includeCompensation=true — Job Posting API, documented at https://developers.ashbyhq.com/reference/jobpostingapiid, title, department, team, employmentType, location, secondaryLocations, address, publishedAt, isRemote, workplaceType, jobUrl, applyUrl, descriptionPlain, compensation
Workableapply.workable.com/api/v1/widget/accounts/<subdomain> (list) + apply.workable.com/api/v2/accounts/<subdomain>/jobs/<shortcode> (per-job detail) — the embeddable careers widget feedstitle, shortcode, department, employment_type, telecommuting, city/state/country, locations, published_on, url, application_url; detail: description, requirements, benefits, workplace, remote

The board token is the slug in the public URL: boards.greenhouse.io/<token>, jobs.lever.co/<site>, jobs.ashbyhq.com/<name>, apply.workable.com/<subdomain>. Companies move between ATSs — an unknown token answers HTTP 404, is skipped and listed in the run's status message and RUN_SUMMARY; the run fails only when every board failed.

Honesty notes:

  • Rows are the ATS's own fields renamed. remote is the ATS's flag where one exists (Lever workplaceType, Ashby isRemote, Workable telecommuting/workplace); Greenhouse has no flag, so it is inferred from a "Workplace Type" metadata field or the word remote in the location. remote_source on every row says which (ats_flag, location_text, none).
  • Salary fields are filled only when the ATS publishes them (Greenhouse pay_input_ranges — first range, salary_note counts the rest; Ashby Salary compensation component; Lever salaryRange). Workable publishes none. Nothing is parsed out of description text.
  • description is the posting text with HTML stripped, cut at 3,000 characters ( ...).
  • Layout changes (a board answer without the documented shape, a job without an id/title) stop the run with an error rather than guess.

Terms: these endpoints are the public, unauthenticated feeds each ATS provides for companies' careers pages; the postings are the employers' own public content. Use the rows for search, alerts and analysis; link back to url for the full posting and to apply. Requests carry a product-token User-Agent and the operator contact in the From: header; at most one request per 500 ms by default.

Input

FieldTypeMeaning
greenhouse, lever, ashby, workablearrays of slugsBoard tokens per ATS; at least one in total
keywordstringOptional substring on title/department/team/description (case-insensitive)
locationstringOptional substring on location(s) and country
remote_onlybooleanKeep only remote == true
max_recordsintegerDefault 200; rows are interleaved across boards (round-robin)
workable_detailsbooleanDefault on: one extra request per Workable job for the description
request_interval_msintegerDefault 500 (floor 250)
contact_emailstringSent in the From: header

Example — remote engineering roles at Figma (Greenhouse), Veeva (Lever) and Ramp (Ashby):

{ "greenhouse": ["figma"], "lever": ["veeva"], "ashby": ["ramp"], "keyword": "engineer", "remote_only": true, "max_records": 100 }

Output (dataset row)

ats, board, company, job_id, title, department, team, location, all_locations, country, remote, remote_source, workplace_type, employment_type, posted_at, updated_at, url, apply_url, description, salary_min, salary_max, salary_currency, salary_interval, salary_note, source_url, fetched_at.

A run summary (per-board job counts, matches, skipped boards with the reason, requests, whether the pay-per-event budget stopped the run) is stored as RUN_SUMMARY in the run's key-value store.

Pricing (pay per event)

EventPrice
run-start — once per run$0.10
record — per row written$0.005

The default pull (200 rows) costs $1.10; 1,000 jobs cost $5.10. Rows stop when your run's maximum charge is reached; the run summary says so.

Operator

Steelyard Ventures LLC (RetrainMap) — info@steelyardclinical.com. Not affiliated with Greenhouse, Lever, Ashby, Workable or any listed employer. The Actor writes only to its own dataset and key-value store; it stores no credentials and sends nothing else.