Greenhouse, Lever & Ashby Jobs API – New Job Alerts
Pricing
from $1.00 / 1,000 jobs
Greenhouse, Lever & Ashby Jobs API – New Job Alerts
Greenhouse, Lever and Ashby job scraper built on their official public job-board APIs. Get every open job in one schema, salary where published, title/location/remote filters, and a new-since-last-run mode for daily job alerts. $1 per 1,000 jobs. No proxy, no login.
Pricing
from $1.00 / 1,000 jobs
Rating
0.0
(0)
Developer
Haydon Apolinar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
A job scraper for company career boards on Greenhouse, Lever and Ashby. It pulls every open job through the Greenhouse jobs API, the Lever job board API and the Ashby job board API, the official public endpoints each ATS provides. You get one clean, standard schema for all three, published salary ranges, filters, and a new-since-the-last-run mode for daily job alerts.
No HTML scraping, no proxy, no login: these are the same public JSON endpoints the companies' own career pages use.
| ATS | Official public endpoint |
|---|---|
| Greenhouse | https://boards-api.greenhouse.io/v1/boards/<board>/jobs |
| Lever | https://api.lever.co/v0/postings/<company>?mode=json (EU: api.eu.lever.co) |
| Ashby | https://api.ashbyhq.com/posting-api/job-board/<board>?includeCompensation=true |
Use cases: job alerts, job boards, recruiting and hiring signals
- Recruiters and sourcers tracking openings at target companies.
- Job boards and newsletters aggregating roles from many company boards.
- Sales and market-intel teams using hiring as a buying signal (new team, new market, new tool).
- Job seekers running a daily "new roles at my 50 favourite companies" alert.
How to find a company's Greenhouse, Lever or Ashby board
Open the company's careers page and look at where the job links point:
| Job link looks like | Board to enter |
|---|---|
boards.greenhouse.io/acme or job-boards.greenhouse.io/acme | greenhouse:acme |
jobs.lever.co/acme | lever:acme |
jobs.ashbyhq.com/acme | ashby:acme |
You can also paste the full URL. Not sure which ATS a company uses? Enter just the name (e.g. acme) and the Actor tries Greenhouse, then Lever, then Ashby. Every board is checked first, and missing or misspelled boards are reported for free in the Board status output.
Input
Give boards in any of these forms:
greenhouse:gitlab,lever:palantir,ashby:ashby- board URLs:
https://boards.greenhouse.io/gitlab,https://job-boards.greenhouse.io/gitlab,https://jobs.lever.co/palantir,https://jobs.ashbyhq.com/ashby - a bare name such as
gitlab: the Actor tries Greenhouse, then Lever, then Ashby
{"boards": ["greenhouse:gitlab", "https://jobs.lever.co/palantir", "ashby"],"titleKeywords": ["engineer", "manager"],"locations": ["Remote", "London"],"remoteOnly": false,"postedWithinDays": 30,"includeDescription": false,"onlyNew": true,"maxJobs": 1000}
Company names: Greenhouse returns the company name. The Lever and Ashby job-board APIs don't, so the board token is turned into a name (acme-labs → "Acme Labs"); companySource tells you which was used, and companySlug always holds the token. To set exact names, add "companyNames": {"lever:palantir": "Palantir Technologies"}.
Board-exists check: each board is checked first. Missing or misspelled boards are listed in the Board status output (the BOARDS record) with the reason. They cost nothing.
Output (one standard schema)
Real record from GitLab's Greenhouse board (description fields omitted):
{"jobId": "greenhouse:gitlab:8860302002","ats": "greenhouse","board": "gitlab","company": "GitLab","companySlug": "gitlab","companySource": "api","id": "8860302002","title": "Account Executive - France","department": "EMEA - Commercial","location": "Remote, France","locations": ["Remote, France", "France"],"workplaceType": "remote","isRemote": true,"postedAt": "2026-10-02T15:31:50.000Z","updatedAt": "2026-10-02T15:31:50.000Z","jobUrl": "https://job-boards.greenhouse.io/gitlab/jobs/8860302002","isNew": true,"scrapedAt": "2026-10-09T22:00:00.000Z"}
Ashby and some Lever boards also publish pay. You get salaryMin, salaryMax, salaryCurrency and salaryInterval, plus Ashby's compensationSummary (e.g. "€110K – €185K • Offers Equity • Offers Bonus").
With includeDescription you also get descriptionHtml and descriptionText (clean text with bullet points).
The dataset has three views: Jobs, Salary and Descriptions.
Greenhouse, Lever & Ashby job alerts (new jobs only)
Turn on onlyNew and schedule the Actor daily. Each run remembers the job IDs it has seen in a key-value store named job-boards-state in your account, keyed by your board list or by stateKey. The next run outputs only jobs that are new since the last run, and every job also carries isNew.
- The first run outputs everything and records it.
- Use a different
stateKeyfor each separate schedule. - If a run stops early (max jobs or your spending limit), the state isn't advanced, so nothing gets skipped.
To get alerts:
- Save your input as a task and turn on
onlyNew. - Create an Apify schedule for the task (e.g. daily at 8:00).
- Send each run's results to Slack, email, Google Sheets or your own endpoint with Apify integrations or webhooks.
How much does it cost?
| Event | Price | Per 1,000 |
|---|---|---|
Job (job) | $0.001 | $1.00 |
Full description add-on (job-description) | $0.0005 | +$0.50 |
| Missing boards, filtered-out and already-seen jobs | free | free |
Example (illustrative): 50 boards × ~100 open jobs = 5,000 jobs ≈ $5.00 on the first run. With onlyNew, later runs bill only the new jobs, often just a few dollars a month.
Set a max cost per run to cap your spend; the Actor stops cleanly when the cap is reached.
Limits & good to know
- Only boards hosted on Greenhouse, Lever or Ashby are supported (not Workday, iCIMS, SmartRecruiters, etc.).
postedAtis the ATS's own date: Greenhousefirst_published, LevercreatedAt, AshbypublishedAt.- Greenhouse doesn't expose salary in the public jobs list. Lever only does when the company publishes a salary range.
- Each board is 1–2 API requests, so even large boards finish in seconds.
Why not call the Greenhouse API yourself?
You can: the job-board APIs are free and public. This Actor saves you the glue code:
- one standard schema across Greenhouse, Lever and Ashby;
- title, location, department, remote and date filters;
- salary fields normalised where the ATS publishes them;
- state for new-jobs-only output, so schedules don't repeat jobs;
- board-exists checks, retries, and maintenance when an API changes.
Comparison with other ATS job scrapers
| This Actor | |
|---|---|
| ATS coverage | Greenhouse, Lever, Ashby |
| Price | $1.00 per 1,000 jobs, +$0.50 per 1,000 for full descriptions |
| New-jobs-only mode | Yes (onlyNew) |
| Board discovery | Bare-name fallback + free board-exists check (no company directory) |
Other Actors in the Store cover more ATSs (some cover Workday, SmartRecruiters and many more) or include company directories. If you only need the big three, this one keeps it simple.
Responsible use
This Actor reads public job postings that companies publish through their ATS's official public job-board API. It doesn't log in, submit applications, or collect candidate data. Postings belong to the companies that published them:
- link back to the original
jobUrl/applyUrl; - don't present postings as your own;
- remove jobs when they close (re-run, or use
onlyNewplus your own expiry).
Check each ATS's terms for your use case. Recruiter or contact names aren't collected, but if a description contains personal data, handle it under the laws that apply to you (e.g. GDPR).
Related Actors
- Shopify Store Leads Scraper – Emails, Socials & Products: verified Shopify stores with product counts, socials and public business emails.
- WooCommerce Store Leads – Wix, Squarespace & BigCommerce: the same for WooCommerce, Wix, Squarespace and BigCommerce stores.
Built and maintained by Hapol Data (Web Data. Automated.). More Actors: apify.com/hapol.