Greenhouse, Lever & Ashby Jobs Scraper (6 ATS, No Login)
Pricing
from $1.50 / 1,000 job postings
Greenhouse, Lever & Ashby Jobs Scraper (6 ATS, No Login)
Scrape job postings and salaries using the Greenhouse jobs API, Lever jobs API, Ashby jobs, Workable, SmartRecruiters and Recruitee public ATS job boards. Filter by keywords, location, remote work and posting date.
Pricing
from $1.50 / 1,000 job postings
Rating
0.0
(0)
Developer
Echo Lab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Share
Greenhouse, Lever & Ashby Jobs Scraper — 6 Public ATS APIs
Fetch open job postings from six official, public ATS job board APIs without login or proxies. This job postings scraper combines the Greenhouse jobs API, Lever jobs API, Ashby jobs, Workable jobs, SmartRecruiters and Recruitee into a consistent dataset, including structured salary data when available from Ashby, Lever, Greenhouse and Recruitee. Workable and SmartRecruiters salary data is not supported.
- Normalize titles, departments, locations, remote/hybrid status, dates and application links.
- Filter by keywords, locations, remote work and posting date.
- Optional plain-text descriptions; incremental output and cost caps.
- Invalid or failed companies are skipped without billing and recorded in the key-value store
SUMMARY.
Use cases
Build job aggregators; monitor hiring companies for recruiting/sales intelligence; benchmark disclosed salaries; and create job alerts with Apify schedules and webhooks. Use datasets with CSV, JSON or Excel exports.
Supported ATS platforms
| ATS | Example board URL | Input syntax |
|---|---|---|
| Greenhouse | https://boards.greenhouse.io/airbnb | greenhouse:airbnb |
| Lever | https://jobs.lever.co/spotify | lever:spotify |
| Ashby | https://jobs.ashbyhq.com/ramp | ashby:ramp |
| Workable | https://apply.workable.com/blueground | workable:blueground |
| SmartRecruiters | https://jobs.smartrecruiters.com/BoschGroup | smartrecruiters:BoschGroup |
| Recruitee | https://bunq.recruitee.com | recruitee:bunq |
Greenhouse's job-boards host, Lever's EU host and careers.smartrecruiters.com are also recognized. Lever automatically tries its EU API after a global 404. Bare slugs try Greenhouse, Lever, then Ashby, stopping at the first populated board and caching the result within the run. URLs identify a whole board, not a single posting.
Input
| Field | Default | Meaning |
|---|---|---|
| companies | Three example boards above | Required string list: ats:slug, board URL or bare slug |
| keywords | [] | Case-insensitive any-keyword title substring match |
| searchDescription | false | Also search descriptions (adds SmartRecruiters detail calls) |
| locations | [] | Any case-insensitive substring in all locations |
| remoteOnly | false | Require explicitly remote eligible postings |
| postedWithinDays | 0 | Lookback using published/created date, then updated date; 0 disables |
| includeDescription | false | Plain text description, capped at 20,000 characters |
| maxJobsPerCompany | 10 | Saved matching jobs per board; 0 unlimited |
| maxJobs | 0 | Global saved-job cap; 0 unlimited |
| maxConcurrency | 5 | Parallel company workers, 1–10 |
{"companies":["greenhouse:airbnb","lever:spotify","ashby:ramp"],"keywords":["engineer"],"remoteOnly":true,"includeDescription":true,"maxJobs":20,"maxJobsPerCompany":10}
Output
{"ats":"ashby","company":"ramp","companyName":null,"jobId":"34413f8d-26bf-4bbc-8ade-eb309a0e2245","title":"Security Engineer, Cloud","department":"Engineering","team":"Backend","employmentType":"FullTime","workplaceType":"hybrid","isRemote":true,"location":"New York, NY (HQ)","allLocations":["New York, NY (HQ)","Remote (Canada)","Remote (US)","Miami, FL"],"country":"USA","salaryMin":211400,"salaryMax":290600,"salaryCurrency":"USD","salaryPeriod":"1 YEAR","salaryText":"$211.4K – $290.6K • Offers Equity","publishedAt":"2026-04-07T17:12:35.753000Z","updatedAt":null,"jobUrl":"https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245","applyUrl":"https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245/application","scrapedAt":"2026-11-05T00:00:00Z"}
| Fields | Meaning |
|---|---|
| ats, company, companyName | ATS, input slug and source company name if supplied |
| jobId, title | Source identifier and job title |
| department, team, employmentType | Source classification (not guessed) |
| workplaceType, isRemote | remote/hybrid/onsite/null; remote eligibility boolean/null |
| location, allLocations, country | Primary and additional locations; country if provided |
| salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryText | Structured salary values and source summary; null when unavailable |
| publishedAt, updatedAt, scrapedAt | ISO 8601 UTC timestamps; missing source dates null |
| jobUrl, applyUrl | Public job and application links |
| description | Only present when requested; sanitized plain text |
SUMMARY contains companiesOk (count), companiesFailed (input/reason list), and jobs (saved count). Errors are not dataset items and are not billed. Empty explicit boards count as successful; invalid and not-found boards are warned and skipped.
Pricing
You pay only for job postings saved to the dataset, plus a tiny per-run start fee; Apify platform usage is included in the price. The current price per 1,000 job postings is shown on the Pricing tab of this page. Set maxJobs and maxJobsPerCompany to cap output. Processing stops normally when Apify's dataset charge limit is reached.
Tips / limits
- Workday, iCIMS, Taleo, LinkedIn and Indeed are not supported: they do not offer the supported public keyless job-board APIs used here.
- Salaries are parsed only from structured fields, never guessed from description text. Currency/period are source labels, not converted. A representative disclosed salary component/range is used, not a geographic aggregate.
- Ashby unlisted jobs are excluded. Hybrid roles can be remote eligible;
remoteOnlyuses the source eligibility flag, not just a workplace label. Unknown remote status is excluded. - Undated jobs remain eligible for lookback filters. Availability and field completeness depend on each employer. Workable's widget can return an empty board even when another careers frontend has openings.
- SmartRecruiters paginates in 100-job pages, with a safety ceiling of 10,000 listings per company. One detail request per candidate is made only for descriptions or description search; saved-job caps stop early, but restrictive filters may still inspect many candidates. Keep company lists/caps small for quick runs.
- Requests use a descriptive User-Agent, at most 10 concurrent company workers, three attempts and exponential backoff honoring Retry-After up to 30 seconds. No guarantee that endpoints remain unchanged.
Compliance & data source
Only official public APIs are used: boards-api.greenhouse.io, api.lever.co / api.eu.lever.co, api.ashbyhq.com, apply.workable.com, api.smartrecruiters.com and company recruitee.com careers APIs. No login, cookies, CAPTCHA solving, proxying or anti-bot bypass. Recruiter/hiring-manager contact fields are never copied, and emails and common phone-number formats in descriptions are redacted. Descriptions are employer-authored job content; review them before onward publication. Users are responsible for source terms and applicable laws.
Support
Open an issue on the Actor's Issues tab.
More real output, worked pricing examples and a comparison with alternatives: https://echolab-tools.pages.dev/greenhouse-lever-ashby-jobs-scraper/