Career Site Jobs Scraper: Greenhouse, Lever, Workday, Ashby
Pricing
from $0.80 / 1,000 job listeds
Career Site Jobs Scraper: Greenhouse, Lever, Workday, Ashby
Scrape every open job from company career sites: Greenhouse, Lever, Workday, Ashby, Workable, Recruitee, Teamtailor, Breezy HR. Paste careers URLs, domains or company names. Salaries, remote flag, Markdown descriptions, new-job alerts. $0.80 per 1,000 jobs.
Pricing
from $0.80 / 1,000 job listeds
Rating
0.0
(0)
Developer
Kacper Gumieniuk
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Features
Share
Career Site Jobs Scraper gets every open job from company career pages on Greenhouse, Lever, Workday, Ashby, Workable, Recruitee, Teamtailor and Breezy HR in one clean dataset: title, department, locations, remote / hybrid / on-site, salary range, posting date, apply URL and the full job description in Markdown. Paste careers page URLs, company domains or just company names: the applicant tracking system (ATS) is detected for you.
Try it now: press Start. The prefilled input reads 4 companies (25 jobs each) in about 20 seconds and costs less than $0.10. Price: $0.80 per 1,000 jobs. Companies without a job board and jobs removed by your filters are free. Apify's free plan ($5 of monthly credit) covers about 6,000 jobs a month.
It reads the public job board feeds that the ATS vendors publish for exactly this purpose (the same feeds that power each company's own careers page): no login, no proxies, no browser. In our benchmark 8,376 jobs from 40 companies took 20 seconds.
Use cases
- New-job alerts and monitoring: schedule a daily run with Only new jobs and send new postings to Slack, email, Google Sheets, Make, Zapier or n8n. Already-seen jobs are free, so a daily monitor costs cents.
- Job boards and aggregators: fill a niche board (remote, AI, fintech, a city) straight from employers' ATSes, with salaries and clean descriptions.
- Sales and hiring signals: see which target accounts are hiring for what (a company opening 10 data-engineering roles is buying data tools). Filter by department, keyword or location.
- Salary benchmarking: pay ranges by title, location and company, from postings that publish them (US pay transparency laws make this common; 62% of jobs in our benchmark had a salary).
- Recruiting and market research: track competitors' open roles, team growth and new office locations.
- LLM and RAG pipelines: job descriptions arrive as Markdown, ready for embeddings, classification or an AI agent.
Supported job boards
| ATS | Example input | Salary | Notes |
|---|---|---|---|
| Greenhouse | https://boards.greenhouse.io/anthropic, job-boards.greenhouse.io/..., embedded boards | parsed from description | board name as company |
| Lever | https://jobs.lever.co/spotify (EU: jobs.eu.lever.co) | structured salaryRange or parsed | team, commitment, workplace type |
| Ashby | https://jobs.ashbyhq.com/ramp | structured compensation | secondary locations, remote flag |
| Workday | https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite | parsed from description | details per job (description, exact date, req ID) |
| Workable | https://apply.workable.com/huggingface | parsed | telecommuting flag |
| Recruitee | bunq.recruitee.com | structured or parsed | hybrid / remote / on-site |
| Teamtailor | https://career.teamtailor.com, custom career domains | parsed | remote status, department |
| Breezy HR | https://acme.breezy.hr | structured text | no descriptions in the public feed |
Shortcuts work too: greenhouse:stripe, lever:spotify, ashby:ramp, workday:nvidia.wd5/NVIDIAExternalCareerSite.
How to use Career Site Jobs Scraper
- Paste companies into Companies, one per line, in any of three forms:
- job board URL (fastest, exact): any link from the table above;
- careers page or domain:
notion.com,https://www.notion.com/careers. The actor reads the page (and/careers,/jobs,careers.<domain>for a bare domain) and finds the ATS link or embed; - company name:
Figma,Scale AI. The actor tries the name as a board on Greenhouse, Lever, Ashby, Workable, Recruitee and Breezy. Such jobs carry"detectedBy": "slug-guess": check the company on the first run.
- Optionally add filters (title keywords, locations, remote only, departments, posted within N days).
- Max jobs per company is prefilled with 25 for a cheap first run. Clear it to get whole boards (up to 2,000).
- Press Start, then export the dataset to CSV, Excel or JSON, or read it with the API.
- For alerts, turn on Only new jobs, give a Monitor name and create a Schedule (e.g. daily).
Input
{"companies": ["https://boards.greenhouse.io/anthropic","notion.com","https://jobs.lever.co/spotify","Figma","https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"],"keywords": ["engineer", "developer"],"excludeKeywords": ["intern"],"locations": ["Remote", "London"],"postedWithinDays": 14,"onlyNewJobs": true,"monitorName": "eng-roles"}
| Field | What it does |
|---|---|
companies | Up to 5,000 board URLs, careers pages, domains, names or shortcuts. |
keywords / excludeKeywords | Title filter; every word of a phrase must appear ("senior engineer" matches "Senior Software Engineer"). searchDescription also searches the description. |
locations, remoteOnly, departments, postedWithinDays | More filters. Filtered-out jobs are not charged. |
onlyNewJobs, monitorName | Monitoring: output only jobs not seen in earlier runs of the same monitor (first run = everything). |
descriptionFormat | markdown (default), text, html (as published) or none (small dataset). |
maxJobsPerCompany | Default 2,000 (Workday's own listing limit); prefilled with 25 in Console for a quick test. |
workdayDetails | Read each Workday job page (description, exact date, salary). Off = faster, title/location only. |
Output
One item per job. A real example (description shortened):
{"type": "job","ats": "workday","jobId": "JR2028322","title": "Senior Solutions Architect, Telco","company": "NVIDIA USA","employmentType": "Full time","workplaceType": "unknown","isRemote": false,"location": "US, WA, Seattle","locations": ["US, WA, Seattle", "US, TX, Remote", "US, WA, Remote", "US, CA, Remote", "US, CA, Santa Clara"],"country": "United States of America","salary": { "min": 184000, "max": 287500, "currency": "USD", "interval": "year", "source": "description", "text": "184,000 USD – 287,500 USD" },"postedAt": "2026-11-02T00:00:00.000Z","url": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite/job/US-WA-Seattle/Senior-Solutions-Architect--Telco_JR2028322","applyUrl": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite/job/US-WA-Seattle/Senior-Solutions-Architect--Telco_JR2028322/apply","description": "We’re hiring a Senior Solutions Architect to drive technical engagement with T-Mobile/AT&T/Verizon accounts ...","boardSlug": "nvidia","input": "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite","isNew": true,"firstSeenAt": "2026-11-02T20:28:23.320Z","descriptionFormat": "markdown","scrapedAt": "2026-11-02T20:28:23.320Z"}
salary.sourceisatswhen the ATS publishes structured pay (Ashby, Lever, Recruitee) anddescriptionwhen the range was read from the posting text ($120,000 - $150,000,€60.000 – 80.000,$45-$60/hr,£45k to £55k). Only ranges with a currency are taken.isNewandfirstSeenAtappear when monitoring is on.- The dataset has three views: Jobs (table with flattened salary), New jobs and Descriptions.
- The Run summary output (
SUMMARYrecord) lists every input with the detected board, open, matched and pushed jobs, and why a company was not found.
How much does it cost to scrape career sites?
Pay per event: you pay only for jobs you get.
| Event | Price | Example |
|---|---|---|
| Job listed (one job in the dataset) | $0.0008 | 1,000 jobs = $0.80 |
| Actor start (per run) | $0.003 | a daily monitor = $0.09 a month |
| Company without a job board, filtered-out job, already-seen job | free |
Everything is included: detection, salaries, descriptions, Workday details and monitoring. Platform usage is included in these prices. Apify's free plan ($5 of monthly credit) covers about 6,000 jobs. Set a maximum cost per run in the run options and the actor stops when it is reached.
Monitoring new jobs
- Turn on Only new jobs and give a Monitor name (e.g.
fintech-eng). - Run once: you get all current jobs (the baseline).
- Schedule the actor (Console → Schedules, e.g. daily). Each run outputs only jobs that appeared since, and the
SUMMARYrecord counts jobs closed since the last run. - Add an integration (Slack, email, webhook, Google Sheets) on Run succeeded to get alerts.
Seen jobs are stored in a named key-value store career-jobs-monitor-<name> in your own Apify account. A job that
disappears and comes back within 30 days is not reported again.
FAQ
Is scraping career sites allowed?
It uses the public job board endpoints the ATS vendors document and the companies publish so that their jobs are found and syndicated. No login, no personal data: job postings describe roles, not people. Career pages are fetched only to find the job board, with robots.txt respected. SmartRecruiters and Personio are not supported because their robots.txt disallows automated access.
Why did a company name not resolve?
Its board uses a different name, or it runs its own career site (Deel, Retool, Rippling). Give the careers page URL or
the board URL instead. The SUMMARY record says why each input had no board. If the careers page loads jobs only
through JavaScript from an unlisted ATS, the actor cannot see it.
How fresh is the data?
Live: every run reads the ATS at that moment. There is no cache and no stale index.
How fast is it?
Greenhouse, Lever, Ashby, Workable, Recruitee, Teamtailor and Breezy return a whole board in one request (hundreds of
jobs per second overall). Workday needs one request per 20 listed jobs plus one per job for details (about 3-4 jobs per
second per company; turn off workdayDetails for speed).
Can I use it from an AI agent or my code?
Yes. Call it through the Apify API (run-sync-get-dataset-items returns the jobs in one request), the JavaScript and
Python clients, or the Apify MCP server, where AI agents can find and run it as a tool.
Something went wrong. What should I check?
Open the run's Run summary output: each input has an error saying what happened (no board found, not a valid URL,
board empty). Jobs are not charged for inputs that failed. If a board that worked before stops working, open an issue on
the Issues tab with the input; we answer there.
Integrations and API
Export to CSV, Excel, JSON or HTML; connect Google Sheets, Slack, Make, Zapier, n8n or webhooks; schedule runs; call the actor from the Apify API, the JavaScript and Python clients, or the Apify MCP server.
Related actors
- Image to Text OCR: text from images and scanned PDFs.
- Email Domain Validator: check company domains and emails (MX, disposable, SPF/DMARC, domain age) before outreach.
- URL to Markdown for LLM & RAG: any page or PDF as clean Markdown.
Not affiliated with Greenhouse, Lever, Workday, Ashby, Workable, Recruitee, Teamtailor or Breezy HR. Their names are used only to describe which job boards this actor reads.