Greenhouse, Lever & Ashby Jobs Scraper - Workable & More
Pricing
from $2.00 / 1,000 board scrapeds
Greenhouse, Lever & Ashby Jobs Scraper - Workable & More
Get every open role from company career pages in clean JSON. Scrapes Greenhouse, Lever, Ashby, Workable, SmartRecruiters and Recruitee through their official public job-board APIs. Full descriptions, salary parsing, remote and seniority detection, cross-board dedupe.
Pricing
from $2.00 / 1,000 board scrapeds
Rating
1.0
(1)
Developer
mohamed alaya
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
a month ago
Last modified
Categories
Security
Limited permissionsShare
ATS Jobs Scraper - Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee & Workday
Get every open role from a company's careers page as clean, structured JSON. Type a company name
(Notion), a domain (ramp.com) or paste a careers URL and the Actor finds the right job board
by itself. It reads the official public job-board APIs behind the careers pages, so there is no browser,
no anti-bot to fight and nothing that breaks when a page is redesigned.
Typical users: recruiters and sourcers building talent lists, sales teams hunting for companies that are hiring, job-board founders, market researchers, salary analysts and anyone who wants a daily "new jobs at my target companies" feed.
What you get for every role
| Group | Fields |
|---|---|
| Identity | id, jobKey, title, company, companySlug, source (greenhouse / lever / ashby / workable / smartrecruiters / recruitee / workday), requisitionId |
| Organisation | department, team |
| Location | location (as published), locations[], parsed city, region, country, countryCode |
| Work setup | workplaceType (remote / hybrid / onsite), isRemote, employmentType (full_time, part_time, contract, internship, ...) |
| Level | seniority (intern, junior, mid, senior, staff, lead, manager, director, executive) read from the title |
| Pay | salary object {min, max, currency, period, raw} plus flat salaryMin, salaryMax, salaryCurrency, salaryPeriod for CSV / Excel |
| Dates | postedAt (ISO), updatedAt |
| Links | url, applyUrl |
| Text | description (clean text) and optionally descriptionHtml |
Salary comes from the structured pay fields the ATS publishes (Ashby, Lever, Greenhouse pay transparency,
Recruitee) and, failing that, is parsed out of the description text ("$120,000 - $160,000 per year",
"EUR 60.000 - 80.000", "CAD $130K - $170K"). Roles that publish no pay simply have salary: null.
Input
Only companies matters for a first run. Everything else is an optional filter.
{"companies": ["Notion", "https://boards.greenhouse.io/gitlab", "lever:spotify", "ramp.com"],"keywords": ["data engineer", "analytics"],"workplaceTypes": ["remote"],"countries": ["United States", "Canada"],"postedWithinDays": 14,"minSalary": 120000,"maxItems": 500}
| Input | What it does |
|---|---|
companies | Names, domains, careers URLs or ats:slug shorthand. Mixed lists are fine. |
keywords / excludeKeywords | Keep / drop roles by words. keywordScope chooses title+department only (precise) or full text including the description. |
locationFilter, countries | Substring match on location (separate options with |), or country names / ISO codes. |
departmentFilter, workplaceTypes, employmentTypes, seniority, remoteOnly | Structured filters on the parsed fields. |
postedWithinDays, minSalary | Freshness and pay filters. minSalary annualises hourly and monthly pay. |
onlyNewSinceLastRun | Return only roles not delivered by an earlier run. Schedule daily for a fresh-jobs feed. First run returns everything. |
webhookUrl | POST a summary plus up to 100 roles to Slack, Discord, Zapier, Make or n8n. |
dedupe, maxJobsPerBoard, maxItems, concurrency | Output control. maxItems defaults to 50 so a first test run is cheap; set 0 for no cap. |
Company names and domains
Give a name or domain and the Actor first looks for an ATS link on the company's own careers page, then
probes Greenhouse, Lever, Ashby, Workable, SmartRecruiters and Recruitee with the usual slugs, verifies the
company name where the ATS exposes one, and finally checks a built-in list of large Workday employers
(nvidia, salesforce, adobe, cisco, intel, pfizer, mastercard, ...). The summary (SUMMARY record) shows how
each entry was resolved. If a company uses its own in-house careers site there is no public board to read;
the error row then says so and tells you to paste a URL.
Sample output row
{"type": "job","id": "8858174002","jobKey": "greenhouse:gitlab:8858174002","title": "Regional Sales Director, National Security Group","company": "GitLab","source": "greenhouse","department": "PubSec - FED","location": "Remote, United States","city": null,"country": "United States","countryCode": "US","workplaceType": "remote","isRemote": true,"seniority": "director","salary": { "min": 148000, "max": 248400, "currency": "USD", "period": "year", "raw": "United States Salary Range" },"salaryMin": 148000,"salaryMax": 248400,"salaryCurrency": "USD","postedAt": "2026-10-03T01:56:25.000Z","url": "https://job-boards.greenhouse.io/gitlab/jobs/8858174002","applyUrl": "https://job-boards.greenhouse.io/gitlab/jobs/8858174002","description": "GitLab is the intelligent orchestration platform for DevSecOps..."}
Use cases
- Recruiting and sourcing: pull every "senior backend" role in Germany posted this month, with salary where published.
- Sales prospecting: find companies actually hiring for the function you sell to (security, data, RevOps) and who the hiring manager's team is.
- Job board / newsletter: schedule daily with
onlyNewSinceLastRunand a webhook to publish fresh roles. - Market and salary research: export
salaryMin/salaryMaxby title, city and seniority across hundreds of employers. - Competitor intelligence: watch what a rival is hiring for. For ongoing alerts see the Hiring Signal Monitor Actor.
Pricing
Pay per event: a small charge for each board read successfully and for each role delivered. You are not
charged for boards that fail, for error rows, or for roles removed by your filters. Set maxItems to cap
spend on any run.
FAQ
Is this allowed? It reads the same public JSON endpoints each company's own careers page calls. No login, no private data.
A company is missing or returns nothing. Some employers run an in-house careers site or an ATS that has no public API. Paste the exact careers URL; if it is not Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee or Workday there is nothing to read.
Why is workplaceType sometimes null? The company did not publish it and the title and location do not say. Rows still carry the raw location.
Can I scrape a Workday board here? Yes, paste the *.myworkdayjobs.com URL or a tenant name. The dedicated Workday Jobs Scraper adds Workday-specific search and paging controls.
How fresh is the data? Live at run time. Dates are the posting dates published by the ATS.
One board failed, did I lose the run? No. Failures are per board and appear as type: "error" rows and in the SUMMARY record; every other board is still delivered.
How do I get only brand-new roles? Turn on onlyNewSinceLastRun, keep the same stateStoreName, and schedule the Actor.