Career Site Jobs Scraper: Greenhouse, Lever, Ashby, Workday
Pricing
$1.50 / 1,000 jobs
Career Site Jobs Scraper: Greenhouse, Lever, Ashby, Workday
Scrape job listings straight from company career sites on Greenhouse, Lever, Ashby and Workday (plus Recruitee, Personio, BambooHR, Breezy): title, department, location, remote, salary, posted date, apply link, description. Export to JSON, CSV or Excel, or via API.
Pricing
$1.50 / 1,000 jobs
Rating
0.0
(0)
Developer
Steady Scrape
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Features
Share
Scrape job listings straight from company career sites. This career site jobs scraper reads the job boards companies run on their applicant tracking system (ATS) — Greenhouse, Lever, Ashby and Workday, plus Recruitee, Personio, BambooHR and Breezy HR — and gives every open job, one row per job: company, title, department and team, locations, remote / hybrid / on-site, employment type, salary range with currency and period when the employer publishes it, posted and updated dates, the direct apply link and the full description as text and HTML.
Give it companies the way you have them: an ATS board link (boards.greenhouse.io/airbnb, jobs.lever.co/palantir,
jobs.ashbyhq.com/ramp, nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite…), any job link of that board, the
company's own careers page (it is read for the ATS link or embed it carries), a domain (figma.com) or just the
company name (Palantir Technologies). Filter by title keywords, location, remote, department and posting date, cap
the jobs per company, and schedule it with only new jobs to get each new opening once.
What you can do with this career site jobs scraper
- Build a job board or a job feed from employers' own postings, with the apply link that goes to the employer, not to an aggregator.
- Track hiring at target companies: which teams are hiring, where, how many roles, how fast — for sales prospecting, investing, competitive intelligence or recruiting.
- Salary research: Greenhouse pay ranges, Ashby compensation and Lever salary ranges, with currency and period, are published by US-pay-transparency employers.
- Monitor new openings: schedule a daily run with Only jobs not seen before and get alerts for new roles only.
- Feed an AI agent or a spreadsheet with clean, uniform job data across eight ATSs.
Looking for jobs by search query instead of by company? Use our Google Jobs Scraper.
Input
| Field | What it does |
|---|---|
| Companies | One per line: an ATS board or job link, a careers page, a domain or a company name. |
| Max jobs per company | Stop each company after this many jobs, newest first (0 = every open job). |
| Title keywords / Exclude title keywords | Keep jobs whose title has a word starting with one of these; drop those with an excluded one. |
| Location contains | Keep jobs with a location or country containing one of these (London, Germany, Remote). |
| Remote only | Keep jobs the board marks remote, or whose locations say Remote. |
| Department contains | Keep jobs whose department or team contains one of these (Workday: its job category). |
| Posted within (days) | Keep jobs posted in the last N days. |
| Only jobs not seen before | Monitoring: skip jobs an earlier run with the same companies and filters delivered. |
{"companies": ["https://boards.greenhouse.io/airbnb", "https://jobs.lever.co/palantir", "Ramp", "https://www.notion.com/careers"],"titleKeywords": ["engineer"],"remoteOnly": true,"maxJobsPerCompany": 50}
How a company is found
- A board or job link of any of the eight ATSs is read directly (the surest way).
- A careers page is read for the board it links to or embeds (Greenhouse embeds, Lever and Ashby job links, Workday, Recruitee, Personio, BambooHR and Breezy links); if it has none, one level of same-site "Careers" / "Jobs" links is followed.
- A domain or a name is tried as a board slug on Greenhouse, Lever and Ashby (
Palantir Technologies→palantirtechnologies,palantir-technologies,palantir); a domain whose slug finds nothing is then read as a website. A name finds the board whose slug matches it, which is usually the company but not always: the row'sboardUrlandresolvedBysay what was found.
Output: career site jobs data
{"rowType": "job","status": "ok","input": "https://jobs.ashbyhq.com/ramp","resolvedBy": "board_link","companyName": "Ramp","ats": "ashby","boardSlug": "ramp","boardUrl": "https://jobs.ashbyhq.com/ramp","jobId": "40f43993-21e8-4db1-a9f4-7a3e6098a9ba","requisitionId": null,"title": "Customer Experience Associate (Evening Shift)","department": "Customer Experience","team": "Customer Experience","location": "New York, NY (HQ)","locations": ["New York, NY (HQ)", "San Francisco, CA", "Remote (US)", "Denver, CO", "Miami, FL"],"country": "USA","remote": true,"workplaceType": "hybrid","employmentType": "full_time","employmentTypeText": "FullTime","salaryMin": 60000,"salaryMax": 70000,"salaryCurrency": "USD","salaryPeriod": "year","salaryText": "$60K - $70K","postedAt": "2026-11-06T15:57:51.702Z","updatedAt": null,"url": "https://jobs.ashbyhq.com/ramp/40f43993-21e8-4db1-a9f4-7a3e6098a9ba","applyUrl": "https://jobs.ashbyhq.com/ramp/40f43993-21e8-4db1-a9f4-7a3e6098a9ba/application","description": "About Ramp\nRamp is building the smart infrastructure for finance teams…","descriptionHtml": "<h1><strong>About Ramp</strong></h1><p>Ramp is building…","position": 1,"scrapedAt": "2026-11-06T18:45:30.829Z"}
A company that gives no job gets one free row saying why:
{"rowType": "status","status": "no_open_jobs","input": "https://jobs.lever.co/kraken","ats": "lever","url": "https://jobs.lever.co/kraken","reason": "The Lever board https://jobs.lever.co/kraken lists no open job.","scrapedAt": "2026-11-06T18:45:30.829Z"}
Career site job fields
| Field | Description |
|---|---|
companyName | The name the board publishes (Greenhouse, Recruitee, Personio's hiring entity, Breezy); otherwise the board slug in Title Case. |
ats | greenhouse, lever, ashby, workday, recruitee, personio, bamboohr or breezy. |
boardSlug, boardUrl | The company's id on its ATS and its job board. |
jobId, requisitionId | The job's id on the board; the requisition id where published (Greenhouse, Workday). |
title, department, team | As the board names them (Lever: department and team; Personio: department and recruiting category). |
location, locations, country | The primary location, every location, and the country where the board states it. |
remote, workplaceType | true/false/null; remote, hybrid, onsite or null. |
employmentType, employmentTypeText | full_time, part_time, contract, temporary, internship or null, and the board's own words. |
salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryText | The pay range when the board publishes it (hour, day, week, month, year, one_time). |
postedAt, updatedAt | ISO 8601 UTC; Workday and BambooHR publish the day only. |
url, applyUrl | The job page and the direct application link. |
description, descriptionHtml | The full description as text and as HTML. |
input, resolvedBy | The company as you wrote it, and how its board was found (board_link, careers_page, name_guess). |
position, scrapedAt | The job's place in its company's results, and when it was read. |
rowType, status, reason | job/ok, or status with invalid_input, not_found, no_ats_detected, no_open_jobs, no_matching_jobs or blocked and the reason. |
Pricing
Pay per event: US$0.0015 per job delivered, description, salary and apply link included. Status rows (company not found, no ATS detected, no open jobs, nothing matching the filters, invalid input, blocked) are free, and there is no start fee. 1,000 jobs cost US$1.50. Set a maximum cost per run and the Actor stops exactly there.
Limits
- Workday lists 20 jobs a page and at most 2,000 per query; a larger Workday site is read newest first and then by job category, so its biggest categories may still stop at 2,000. Each Workday job is one more request for its description, so large Workday sites take a few minutes.
- Salaries come only where the employer publishes them in the ATS: Workday publishes none as data (some write it in the description), Greenhouse only on boards with pay transparency.
- A company name is matched to Greenhouse, Lever and Ashby slugs only; Workday, Recruitee, Personio, BambooHR and Breezy boards are found from a link, a careers page or a domain.
- SmartRecruiters is not read: its API's robots.txt admits only LinkedIn's crawler. A career site whose robots.txt closes it
(some Workday sites, Personio subdomains without a public page) gets a free
blockedrow and is not read.
Is it legal to scrape career site jobs?
Job postings are published by employers to be found and applied to, and this Actor reads them through the ATS vendors' public job-board APIs that exist to put those postings on career sites (Greenhouse's Job Board API, Lever's Postings API, Ashby's posting API, and the feeds the other ATSs publish for career pages). No login, no personal data of candidates, robots.txt honoured on every host, and each host paced (Lever's crawl delay included). Check that your use of the data complies with the laws that apply to you and with the employers' terms.
This Actor is not affiliated with, endorsed by or sponsored by Greenhouse, Lever, Ashby, Workday, Recruitee, Personio, BambooHR, Breezy HR or any employer whose jobs it reads; their names are used only to say which job boards it reads.