Greenhouse, Lever, Ashby ATS Jobs Scraper
Pricing
from $1.40 / 1,000 job saveds
Greenhouse, Lever, Ashby ATS Jobs Scraper
Get every open job from any company on Greenhouse, Lever or Ashby in one clean table, in seconds. Paste websites, names or board links. Published salaries, remote flags and dates included. Schedule it to catch new, changed and removed jobs. No login, no API key, and empty boards cost nothing.
Pricing
from $1.40 / 1,000 job saveds
Rating
0.0
(0)
Developer
ZeroLag Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
Scrape every open job from any company on Greenhouse, Lever or Ashby. Give this ATS jobs scraper a list of websites, company names or job board links, and get one table with job titles, locations, salaries, remote status and posting dates.
Run it once for a snapshot, or on a schedule to get only new, changed and removed jobs.
Found a bug, need a field, or want a new Actor? Open an issue on the Issues tab. If it works well for you, a short review helps others find it.
What you get
- Price: $2.00 per 1,000 jobs on the Free plan, $1.40 on Gold. Companies with no board or no open jobs cost nothing.
- Speed: 7,524 jobs saved in 37 seconds in a test on Apify.
- Fresh data: every run reads the boards live. There is no stored database behind this Actor.
- No setup: no login, API key or proxy needed.
- A report for every company: found, not found, uncertain or failed.
How to scrape Greenhouse, Lever and Ashby jobs
- Add your companies to Companies, one per line.
- Add filters if you need them.
- Click Start.
- Export the results as JSON, CSV or Excel.
Each line in Companies can be:
| Type | Example | What happens |
|---|---|---|
| Website | airbnb.com | Finds the board and checks that it belongs to this company |
| Company name | Airbnb | Same check, based on the name |
| Board link | https://jobs.lever.co/palantir | Reads this board directly |
| System and board name | ashby:openai | Reads this board directly |
Optional filters:
- Keywords: keep jobs with one of these words in the title, department or team.
- Locations: keep jobs with one of these words in the location.
- Remote jobs only: keep jobs marked as remote.
- Posted within days: keep jobs published in the last N days.
- Maximum results: stop after this many rows.
- Include job descriptions: add the full description as plain text.
Example input:
{"companies": ["airbnb.com", "https://jobs.lever.co/palantir", "ashby:openai"],"keywords": ["engineer"],"postedWithinDays": 30,"maxItems": 500}
On 5 November 2026 this input returned 99 jobs from 3 boards in 21 seconds, and 69 of them had a salary.
What data do you get?
Every job has the same fields, whichever system it comes from. Employers do not fill in everything, so this table shows how often each field was filled in a sample of 4,036 jobs from 12 boards:
| Field | Greenhouse | Lever | Ashby |
|---|---|---|---|
| Date, location, link | 100% | 100% | 100% |
| Department | 100% | 74% | 100% |
| Team | 0% | 100% | 100% |
| Employment type | 22% | 98% | 100% |
| Remote status | 34% | 100% | 73% |
| Salary | 30% | 0% | 68% |
- Greenhouse: includes published pay ranges. It has no standard remote field, so
remoteis filled only when the board says so. - Lever: reads both the global and the EU host. Team, work type and workplace are there for nearly every job.
- Ashby: has the most complete pay data of the three. Jobs the employer hid from the board are left out.
Sample output
One real row from the example above:
{"recordType": "job","company": "openai","companyInput": "ashby:openai","source": "ashby","boardSlug": "openai","boardUrl": "https://jobs.ashbyhq.com/openai","matchConfidence": "exact","retrievedAt": "2026-11-05T20:15:35.931Z","status": null,"jobId": "551b0d0d-46c2-42fb-bb05-46e2fba8d4db","title": "Software Engineer, Identity Infrastructure","department": "IT","team": "IT","location": "San Francisco","allLocations": ["San Francisco","New York City","Seattle"],"remote": false,"workplaceType": "hybrid","employmentType": "FullTime","salaryMin": 230000,"salaryMax": 325000,"salaryCurrency": "USD","salaryInterval": "year","salaryText": "$230K - $325K","postedAt": "2026-10-22T16:41:00.891Z","updatedAt": null,"jobUrl": "https://jobs.ashbyhq.com/openai/551b0d0d-46c2-42fb-bb05-46e2fba8d4db","applyUrl": "https://jobs.ashbyhq.com/openai/551b0d0d-46c2-42fb-bb05-46e2fba8d4db/application","descriptionText": null}
A company that could not be used gets a free company-issue row with a message that says what to do. The key-value store record COMPANY_REPORT lists every company with its boards and job counts.
How to get new jobs every day
- Turn on Only new, changed and removed jobs.
- Set a Monitor name, for example
sales-targets. Use a different name for each list of companies. - Save the input as a task and add a schedule.
The first run returns all jobs as new. Each later run returns only the differences, and status says new, changed or removed. A job counts as changed when its title, department, team, location, workplace, employment type or pay changes. If a run stops at a limit, the next run returns what it missed.
How much does it cost?
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
| Job saved, per 1,000 jobs | $2.00 | $1.80 | $1.60 | $1.40 |
| Board checked, per 1,000 boards | $1.00 | $1.00 | $1.00 | $1.00 |
| Actor start, per run | $0.00005 | $0.00005 | $0.00005 | $0.00005 |
Platinum and Diamond plans pay the Gold price. Platform usage is included.
Jobs removed by your filters are free, and so are removed rows. A board is charged only when it has open jobs.
| Example | Jobs | Boards | Cost on the Free plan |
|---|---|---|---|
| The example input above | 99 | 3 | $0.20 |
| 100 companies checked daily for a month, 20 new or changed jobs a day | 600 | 3,000 | $4.20 |
Apify's Free plan includes $5 of credit every month. Use Maximum results and the maximum cost per run to stay within your budget.
ATS jobs API
Results are saved to a dataset. Export them as JSON, CSV or Excel, or read them through the API. The API tab has ready code for JavaScript, Python and cURL. The Integrations tab connects the Actor to Make, Zapier, n8n and webhooks. AI agents can call it through the Apify MCP server.
FAQ
Why was a company not found? It may use another system, such as Workday, or its own careers site. The board name can also differ from the website. If you know the board link, paste it instead.
How accurate is the search by website or name? In a test on 52 company websites it matched 36 boards, and a manual review found no wrong matches. A board is used only when it confirms the company. Other boards are reported as uncertain and left out, unless you turn on Include uncertain matches.
Why is a salary or remote value empty? The Actor reports only what the employer publishes. It leaves a field empty instead of guessing.
How long does a run take? In our tests 100 companies took about 2 minutes and 290 companies about 6 minutes. One run can take up to 5,000 companies.
Will it get blocked? It reads public job board APIs at a limited rate, without proxies. In our tests on Apify it read 28,342 jobs from 211 boards with no blocks.
Do I need an account on these systems? No. It reads the same public data that powers the companies' career pages.
Does it collect personal data? The output has no candidate or employee fields. Job descriptions are off by default, and email addresses in them are masked. You are responsible for how you use the data.
Where is the change tracking data stored? In a named key-value store in your own Apify account.
Support
Open an issue on the Issues tab with a link to your run.
This Actor is an independent tool with no connection to Greenhouse, Lever or Ashby. All trademarks belong to their owners.