Greenhouse, Lever, Ashby & Workable Jobs API (ATS Feed) avatar

Greenhouse, Lever, Ashby & Workable Jobs API (ATS Feed)

Pricing

from $1.50 / 1,000 job founds

Go to Apify Store
Greenhouse, Lever, Ashby & Workable Jobs API (ATS Feed)

Greenhouse, Lever, Ashby & Workable Jobs API (ATS Feed)

Returns open jobs from the public Greenhouse, Lever, Ashby and Workable job-board APIs in one schema: title, department, location, remote flag, salary when published, posted date, apply link. Filter by keyword, location or date; get only new postings since the last run.

Pricing

from $1.50 / 1,000 job founds

Rating

0.0

(0)

Developer

lathewright LLC

lathewright LLC

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

Share

Pull open jobs from the public Greenhouse, Lever, Ashby and Workable job-board APIs in one schema, for recruiters, sales teams watching hiring signals and AI agents. It costs $0.0015 per job found and $0.003 per new-job alert, so 1,000 jobs cost $1.50.

Get every open job at the companies you care about, straight from the public job-board APIs of the applicant tracking systems they use: Greenhouse, Lever, Ashby and Workable. Four formats become one schema (title, department, location, remote flag, salary when published, posting date, description, apply link), so an agent or a spreadsheet can watch hiring across hundreds of companies without scraping career sites. Turn on change detection and each run returns only the postings that appeared since the last one.

Built and maintained by Lathewright. Lathewright is operated by AI systems under human ownership. A person reviews and approves everything we publish, send and sell. Pay only for what you get: $0.0015 per job, $0.003 per new-job alert.

What you can do with it

  • Hiring signals for sales and investing: a company that opens five "Head of Sales" or "SRE" roles is telling you something. Watch competitors, prospects or a portfolio and push new postings to Slack, a CRM or a model.
  • Sourcing and job aggregation: pull engineering roles across 200 Greenhouse and Lever boards into one table, filtered by keyword, location or remote flag, with salary ranges where the posting publishes them (Ashby and Lever publish structured pay; Greenhouse sometimes in metadata).
  • Alerts: schedule the Actor daily with onlyNewJobs: true and a stateKey per watchlist; only postings not seen in the previous run come back, billed as new-job-alert.
  • Agent tool: an LLM can answer "what is Palantir hiring in London?" in one call.

Example tasks

Paste any of these into the Input tab, or send the same JSON through the API. Prices are the per-result prices listed under Pricing.

1. Engineering jobs at two companies

{
"boards": ["greenhouse:airbnb", "lever:palantir"],
"keywords": ["engineer"],
"maxJobsPerBoard": 20
}

What comes back: One row per matching job with company, title, department, location, remote, salarySummary, postedAt and url. Up to 40 rows, at most $0.06.

2. New sales postings only, for a weekly alert

{
"boards": ["ashby:ashby", "greenhouse:airbnb"],
"keywords": ["sales"],
"onlyNewJobs": true,
"stateKey": "sales-watch"
}

What comes back: Only postings that were not returned by an earlier run with the same stateKey, each billed as a new-job alert ($0.003).

3. Remote jobs posted this month, without descriptions

{
"boards": ["lever:palantir"],
"remoteOnly": true,
"postedAfter": "2026-10-01",
"includeDescription": false
}

What comes back: Remote postings published on or after 1 October 2026, rows without the description text.

Input

FieldTypeNotes
boardsarraygreenhouse:<token>, lever:<site>, ashby:<board>, workable:<subdomain>, or careers URLs such as https://boards.greenhouse.io/airbnb, https://jobs.lever.co/palantir, https://jobs.ashbyhq.com/ashby, https://apply.workable.com/blueground/
keywords, searchInarray, selectAny-match, case-insensitive, in the title or in title and description
locations, departmentsarraySubstring filters on location text and department/team
remoteOnlybooleanKeep postings the ATS flags remote (or whose location says remote)
postedAfterYYYY-MM-DDKeep postings first published on or after this date
includeDescription, descriptionMaxCharsboolean, integerPlain-text description (Workable: one extra request per matching job)
maxJobsPerBoardintegerCap per board (default 200)
onlyNewJobs, stateKeyboolean, stringChange detection: remember every job seen under the key, return only new ones
{
"boards": ["greenhouse:airbnb", "lever:palantir", "ashby:ashby", "workable:blueground"],
"keywords": ["engineer", "sales"],
"searchIn": "title",
"includeDescription": true,
"maxJobsPerBoard": 100
}

Where to find the token: it is the last path segment of the company's job board URL (boards.greenhouse.io/<token>, jobs.lever.co/<site>, jobs.ashbyhq.com/<board>, apply.workable.com/<subdomain>). Company career pages usually link to one of these.

Output

One row per job:

{
"type": "job",
"source": "ashby",
"board": "ashby:ashby",
"jobId": "7458d4e9-da2e-47bd-98cb-adfda43d42b2",
"company": "ashby",
"title": "Engineering Manager - EU",
"department": "Engineering",
"team": "EMEA Engineering",
"location": "Remote - European Union",
"locations": ["Remote - European Union", "Spain", "Italy", "Germany"],
"country": "European Union",
"remote": true,
"workplaceType": "remote",
"employmentType": "FullTime",
"salaryMin": 110000,
"salaryMax": 185000,
"salaryCurrency": "EUR",
"salaryInterval": "1 YEAR",
"salarySummary": "€110K – €185K • Offers Equity • Offers Bonus",
"postedAt": "2024-03-04T14:29:08.532Z",
"url": "https://jobs.ashbyhq.com/ashby/7458d4e9-da2e-47bd-98cb-adfda43d42b2",
"applyUrl": "https://jobs.ashbyhq.com/ashby/7458d4e9-da2e-47bd-98cb-adfda43d42b2/application",
"description": "Hi, I'm Colin, Director of Engineering...",
"isNew": null,
"fetchedAt": "2026-10-19T06:02:20.000Z"
}

A board that cannot be recognized or fetched becomes an error row (type: "error", error: "BOARD_NOT_FOUND") at the reduced lookup-error rate, so one bad token never kills a 200-board run.

Pricing

EventPriceNotes
Job found (job)$0.0015Primary event. 1,000 jobs = $1.50
New job detected (new-job-alert)$0.003Charged instead of job when onlyNewJobs is on
Board error (lookup-error)$0.0005Unknown board, 404, API error

Plus Apify's standard start fee ($0.00005 per run). No proxies, no browser. Set a maximum cost per run and the Actor stops cleanly at the limit with everything found so far saved.

How change detection works

With onlyNewJobs: true the Actor keeps a memory of every job id it has seen, per stateKey, in a key-value store named ats-hiring-signals-state in your account. The first run with a new key returns all matching jobs; later runs return only postings that were not present last time. Jobs that disappear are forgotten, so a reposted job counts as new. Boards that fail to load keep their memory, so a temporary outage does not flood you with "new" jobs on the next run. The memory covers every open job on the board, not only the ones that passed your filters or the maxJobsPerBoard cap.

How to use it

  • Apify Console: fill in the form, press Start, download JSON, CSV or Excel from the Output tab.
  • API: POST https://api.apify.com/v2/acts/lathewright~ats-hiring-signals/run-sync-get-dataset-items?token=<token> with the input JSON as the body.
  • n8n, Make, Zapier: use the Apify node/module, pick this Actor, paste the input JSON, schedule it daily.

Use from an AI agent (MCP)

Add this Actor as a tool in Claude, Cursor, VS Code or any MCP client with https://mcp.apify.com/?tools=lathewright/ats-hiring-signals. The Actor description is the tool description, and the input fields above are the tool parameters. Example prompts: "List Airbnb's open engineering manager roles", "Which of these 20 companies posted new sales jobs this week?".

Data sources, robots.txt and fair use

Checked on 19 October 2026 for the exact paths this Actor requests:

  • Greenhouse Job Board API (boards-api.greenhouse.io/v1/boards/<token>/jobs): robots.txt allows it (only /embed/ is disallowed). Greenhouse documents the endpoint as a public read API that needs no key.
  • Lever Postings API (api.lever.co/v0/postings/<site>?mode=json): robots.txt allows all paths with Crawl-delay: 1; the Actor spaces Lever requests at least 1.1 seconds apart. Lever documents the endpoint as public.
  • Ashby Public Job Posting API (api.ashbyhq.com/posting-api/job-board/<board>): no robots.txt is served; Ashby documents the endpoint as public, keyless and intended for job boards.
  • Workable hosted job board API (apply.workable.com/api/v3/accounts/<subdomain>/jobs and /api/v2/accounts/<subdomain>/jobs/<shortcode>): robots.txt allows the API paths. These are the endpoints Workable's own hosted careers pages call; only published, public postings are returned.
  • SmartRecruiters is deliberately not included: its robots.txt disallows the postings API path for crawlers.

Only postings the companies publish on their public boards are returned; no applicant or employee data exists in these APIs. One request per board (plus one per job for Workable descriptions), no parallel hammering, retries with back-off on 429/5xx.

FAQ

Does it cover every company? It covers companies whose public careers page runs on Greenhouse, Lever, Ashby or Workable (a large share of tech and scale-ups). Other systems (SmartRecruiters, Workday, iCIMS, Taleo) are not included.

Can I get salary for every job? Only when the posting publishes it: Ashby and Lever expose structured ranges, Greenhouse rarely does, Workable does not. salarySummary carries the text form when available.

How do I find boards for a company? Open its careers page and look for boards.greenhouse.io, jobs.lever.co, jobs.ashbyhq.com or apply.workable.com in the links or the page source.