ATS Jobs Scraper: Greenhouse, Lever & Ashby (New Only)
Pricing
$1.00 / 1,000 new job postings
ATS Jobs Scraper: Greenhouse, Lever & Ashby (New Only)
Get normalized job postings from Greenhouse, Lever and Ashby official public job-board APIs. Keyword, location and remote filters, salary when listed, and new-jobs-only dedupe across runs. Pay per new job.
Pricing
$1.00 / 1,000 new job postings
Rating
0.0
(0)
Developer
Tyler Rubino
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
ATS Job Postings Scraper: Greenhouse, Lever & Ashby (New Jobs Only)
Get clean, normalized job postings straight from company career boards on Greenhouse, Lever and Ashby, using their official public job-board APIs. No browser, no proxies, no logins. Filter by keyword, location and remote, get salary when listed, and turn on New jobs only so every scheduled run returns (and bills) only postings you haven't seen before.
Why use this ATS jobs scraper?
- ✅ Official APIs only: Greenhouse Job Board API, Lever Postings API and Ashby Job Postings API. Fast and stable, with no HTML breakage.
- 🔁 New jobs only: a dedupe list is saved across runs. Schedule it hourly or daily and pay only for fresh postings.
- 🧩 One schema for every ATS: company, title, location, remote, workplace type, department, employment type, salary, posted date, apply URL and plain-text description.
- 💰 Salary: structured compensation from Ashby and Lever, plus pay-transparency ranges pulled from Greenhouse and Lever descriptions.
- 🔒 Privacy-safe: no candidate or recruiter data. Emails and phone numbers are stripped from descriptions. robots.txt is checked for every host.
Use cases
Job boards and aggregators, recruiting and sales-intelligence teams (hiring signals), job alerts for niche roles, labor-market research, and feeding AI agents with fresh openings.
How much does it cost?
$0.001 per new job ($1 per 1,000). There's no start fee. Filtered-out and already-delivered jobs are free. Example: a daily run watching 50 companies that finds 40 new matching jobs costs $0.04.
The default maxJobs is 50, so a first trial costs at most $0.05. Raise it for production runs.
Input
| Field | Description |
|---|---|
companies | Board URLs (https://boards.greenhouse.io/airbnb, https://jobs.lever.co/spotify, https://jobs.ashbyhq.com/ramp) or ats:token (greenhouse:stripe) |
keywords / excludeKeywords | Title contains / doesn't contain |
locations | Location contains (e.g. London, Remote) |
remoteOnly, postedWithinDays | Extra filters |
onlyNewJobs, stateKey | Dedupe across runs (keep separate lists per search with stateKey) |
includeDescription, maxJobs | Output options |
{ "companies": ["greenhouse:stripe", "lever:spotify", "https://jobs.ashbyhq.com/ramp"], "keywords": ["engineer"], "remoteOnly": false, "onlyNewJobs": true }
Output
{ "ats": "ashby", "boardToken": "ramp", "company": "ramp", "title": "Security Engineer, Cloud","location": "New York, NY (HQ) | Remote (US)", "remote": true, "workplaceType": "hybrid", "department": "Engineering / Backend","employmentType": "FullTime", "salary": { "min": 211400, "max": 290600, "currency": "USD", "interval": "1 YEAR", "text": "$211.4K - $290.6K" },"postedAt": "2026-04-07T17:12:35.753Z", "applyUrl": "https://jobs.ashbyhq.com/ramp/.../application", "description": "About Ramp ..." }
Every run also saves a RUN_SUMMARY record with per-company counts and errors (for example, a board token that doesn't exist).
How do I find a company's board token?
Open their careers page and look for boards.greenhouse.io/<token>, jobs.lever.co/<token> or jobs.ashbyhq.com/<token>. Paste that URL as-is.
FAQ
Workday? Not yet. Workday has no official public job-board API, so we only support documented ATS feeds. Is this legal? The Actor reads only the public job-board APIs that the ATS vendors publish for listing open roles. It collects no personal data. Issues or requests? Use the Issues tab. We respond quickly.
Errors & partial results
Bad entries never crash the run. Unsupported sites, malformed tokens and boards that don't exist are skipped, and each skip is explained in the log, the run status message and RUN_SUMMARY. Valid boards are still delivered. The run fails, with a clear message, only when none of the companies can be read.