ATS Job Boards Scraper - Greenhouse, Ashby, Lever
Pricing
from $0.70 / 1,000 job returneds
ATS Job Boards Scraper - Greenhouse, Ashby, Lever
Scrape open job postings from any company's Greenhouse, Ashby or Lever job board into one unified schema. Auto-detects the ATS from just a company slug. Every row carries the full decoded description, department, location, remote flag, employment type, salary band and apply URL.
Scrape open job postings from any company's Greenhouse, Ashby, or Lever board into one unified schema. This ATS job board scraper auto-detects which system a company uses from nothing but its slug, then returns the full decoded description, department, team, location, remote flag, employment type, parsed salary band, requisition ID, and the direct apply URL.
No Greenhouse, Ashby, and Lever API key, no login, and no headless browser. Results land in a structured dataset you can export to JSON, CSV, Excel, or XML, or pull straight from the Apify API.
What is ATS Job Boards Scraper - Greenhouse, Ashby, Lever?
ATS Job Boards Scraper - Greenhouse, Ashby, Lever is an Apify Actor that extracts open job postings from company ATS boards from Greenhouse, Ashby, and Lever and returns them as clean, structured records. Going straight to the ATS beats scraping job aggregators: postings appear on a company's own board first, they are never duplicated, and they are never stale in the way aggregator copies become.
What data can this ATS job board scraper extract?
Every run writes one row per job posting. The full schema carries 30 fields; the most-used ones are below.
| Field | Type | Description |
|---|---|---|
jobId | string | The ATS vendor's own identifier for the posting. Numeric on Greenhouse, a UUID on Ashby and Lever. Stable across... |
atsPlatform | string | Which applicant tracking system published the posting: greenhouse, ashby or lever. Detected automatically when you... |
companySlug | string | The board identifier used to fetch the posting, matching the slug in the company's public careers URL. |
companyName | string | Hiring company's display name. Greenhouse publishes this on every posting. Ashby and Lever do not expose it... |
title | string | Job title exactly as the employer published it. |
department | string | Department the role sits in. On Lever this falls back to the team when the board leaves department unset, which... |
team | string | Team within the department, where the board publishes a second level of grouping. |
location | string | Primary location as published, for example "London, United Kingdom" or "Remote, Italy". Free text set by the... |
allLocations | array | Every location the role is open in, including the primary one. Multi-site roles list each office here. |
countryCode | string | Two-letter uppercase country code, where the ATS publishes one. Lever supplies it on most postings, Ashby on... |
isRemote | boolean | True when the posting is confirmed remote. Ashby and Lever publish a remote flag directly. Greenhouse publishes... |
workplaceType | string | Normalized to remote, hybrid or onsite. Ashby and Lever publish this in different letter cases, unified here.... |
employmentType | string | Normalized to full-time, part-time, contract, temporary, intern or volunteer across all three vendors, which each... |
salaryMin | number | Bottom of the published pay band, annualized unless salaryPeriod says otherwise. |
salaryMax | number | Top of the published pay band. |
salaryCurrency | string | Three-letter currency code for the pay band, for example USD, GBP or EUR. |
salaryPeriod | string | Whether the band is yearly or hourly. |
salaryRaw | string | The pay band in the employer's own wording, kept so you can check the parsed numbers against the source. |
salarySource | string | How the band was obtained. "structured" means the ATS published it as a pay-range field, which is trustworthy.... |
postedAt | string | When the posting first went live, as an ISO-8601 timestamp. Lever publishes this as epoch milliseconds and it is... |
updatedAt | string | When the posting was last edited, as an ISO-8601 timestamp. Only Greenhouse publishes this. |
jobUrl | string | Canonical public URL of the posting on the company's job board. |
See the Output tab in Apify Console for all 30 fields.
How to scrape Greenhouse, Ashby, and Lever ATS job boards
- Open ATS Job Boards Scraper - Greenhouse, Ashby, Lever and click Try for free.
- Add company slugs to
companies— the Actor detects the ATS automatically. - Or paste board URLs directly into
startUrlsand setatsif you want to force a platform. - Filter with
titleKeywords,locationKeywords,employmentTypes, andremoteOnly. - Leave
includeDescriptionson for full job text, and cap withmaxItemsPerCompany. - Click Start and watch rows appear live in the Output tab.
- Export the dataset as JSON, CSV, Excel, or XML — or fetch it from the Apify API once the run finishes.
ATS Job Boards Scraper - Greenhouse, Ashby, Lever input options
| Input | Type | What it does | Default |
|---|---|---|---|
companies | array | One company per line, using the slug from its careers URL. For job-boards.greenhouse.io/gitlab the slug is gitlab.... | see schema |
startUrls | array | Paste full job board URLs instead of slugs, for example https://job-boards.greenhouse.io/gitlab,... | |
ats | string | Which ATS to assume for slugs that are not prefixed. Leave on Auto-detect to try Greenhouse, then Ashby, then Lever.... | "auto" |
titleKeywords | array | Keep only postings whose title contains one of these, case-insensitive. Leave empty to return every open role. For... | |
locationKeywords | array | Keep only postings whose location contains one of these, case-insensitive. Matched against the primary location and... | |
employmentTypes | array | Keep only these employment types. Postings that do not publish an employment type are excluded when this filter is... | |
remoteOnly | boolean | Return only postings confirmed remote. Ashby and Lever publish a remote flag directly. Greenhouse publishes none, so... | false |
includeDescriptions | boolean | On by default. Returns the complete posting body as both HTML and plain text. Turning it off makes Greenhouse boards... | true |
maxItemsPerCompany | integer | Cap on postings taken from any single board, applied before filters. Useful when one large employer would otherwise... | |
maxItems | integer | Hard cap on postings returned across every board, and the cap on what you are charged. A single large employer can... | 200 |
Proxy is configured through the standard proxyConfiguration object; the defaults shipped with this Actor are already tuned for the target site.
Example output
{"companies": ["gitlab", "ashby:linear", "lever:palantir"],"maxItems": 200,"includeDescriptions": true}
How much does it cost to scrape Greenhouse, Ashby, and Lever?
This Actor runs on pay per result pricing: $0.0007 per job ($0.7 per 1,000). A one-time start fee of $0.00005 applies per run.
| Results | Approximate cost |
|---|---|
| 1,000 | $0.70 |
| 10,000 | $7.00 |
| 100,000 | $70.00 |
You pay for rows you actually receive, so a search that returns nothing costs nothing beyond the start fee. Every Apify account includes free monthly usage credit, so you can trial ATS Job Boards Scraper - Greenhouse, Ashby, Lever at no cost.
What can you build with Greenhouse, Ashby, and Lever data?
Track hiring at a list of target companies
Watch a portfolio of companies daily and see the moment a role opens — days before it reaches any aggregator.
Build a competitive intelligence feed
Which departments a competitor is growing tells you their roadmap more reliably than their marketing does.
Source candidates for a recruiting desk
Requisition IDs and posting dates let you spot roles that have been open a long time — the ones a recruiter can help with.
Feed a niche job board
One unified schema across three ATS platforms means you can aggregate hundreds of company boards without writing a parser per platform.
Research startup growth signals
Headcount plans show up in job boards long before they show up in funding announcements.
Greenhouse, Ashby, and Lever scraping tips and limits
- A company slug is usually the identifier in its careers URL —
boards.greenhouse.io/<slug>orjobs.lever.co/<slug>. Auto-detection handles the rest. - This is one of the cheapest job Actors per row, so watching hundreds of companies daily is genuinely affordable.
includeDescriptionsadds a request per job. Turn it off when you only need to detect new openings.- Salary fields populate only where the company publishes a range — increasingly common but far from universal.
Integrations and automation
Run ATS Job Boards Scraper - Greenhouse, Ashby, Lever on a schedule to keep a Greenhouse, Ashby, and Lever dataset fresh, or trigger it from your own stack through the Apify API and the official JavaScript and Python clients. Native integrations push results into Google Sheets, Slack, Airtable, Zapier, Make, GitHub, or any webhook endpoint. The Actor also works as an MCP tool, so an AI agent can call it directly.
Related scrapers
| Actor | What it does |
|---|---|
| Workday Jobs Scraper - Search Any Workday Career Site | Workday career sites, the other major enterprise ATS. |
| Indeed Jobs Scraper | Indeed aggregate listings with salary parsing. |
| Talent.com Jobs Scraper | Talent.com across 21 markets. |
| Dice Tech Jobs Scraper | Dice tech roles with annualised contract rates. |
Frequently asked questions
Which ATS platforms are supported?
Greenhouse, Ashby, and Lever, all normalised into one schema. atsPlatform on each row records which system the posting came from.
Do I need to know which ATS a company uses?
No. Pass the company slug and the Actor probes each platform to find the live board. Set ats explicitly only if you want to skip detection.
Do I need a Greenhouse, Ashby, and Lever API key?
No. ATS Job Boards Scraper - Greenhouse, Ashby, Lever reads publicly available Greenhouse, Ashby, and Lever pages and endpoints directly, so there is no key to obtain, no OAuth app to register, and no account to connect.
Can I export Greenhouse, Ashby, and Lever data to CSV, Excel, or Google Sheets?
Yes. Every run stores results in an Apify dataset that exports to JSON, JSONL, CSV, Excel, XML, or HTML with one click, and the Google Sheets integration writes rows straight into a spreadsheet.
Can I run ATS Job Boards Scraper - Greenhouse, Ashby, Lever on a schedule?
Yes. Apify schedules run the Actor hourly, daily, weekly, or on any cron expression, and webhooks can notify your systems the moment a run finishes.
Is it legal to scrape Greenhouse, Ashby, and Lever?
Scraping publicly available data is broadly lawful in the US and EU, but the answer depends on what you collect and how you use it. This Actor is built to gather public job posting information companies publish on their own public career boards. Personal data carries extra obligations under GDPR and CCPA. Read Apify's guide on whether web scraping is legal and take your own legal advice for your use case.
Support and feedback
Found a bug, a missing field, or a Greenhouse, Ashby, and Lever page shape this Actor does not handle yet? Open an issue from the Issues tab on the Actor page. Feature requests and custom-scraper enquiries are welcome there too.