ATS Jobs Scraper - Career Site Jobs: Greenhouse, Lever, Workday
Pricing
from $0.70 / 1,000 jobs
ATS Jobs Scraper - Career Site Jobs: Greenhouse, Lever, Workday
Paste company career-page links (Greenhouse, Lever, Ashby, Workday and 3 more) and get every open job in one table.
Pricing: $1.00 per 1,000 jobs. On a schedule (only new jobs): $0.004 per career page checked + $1.00 per 1,000 new, changed or removed jobs.
What does ATS Jobs Scraper do?
Paste company career-page links (Greenhouse, Lever, Ashby, Workday and 3 more) and get every open job in one table. Every job comes in one clean table: company, title, department, team, locations, remote or on-site, employment type, salary (where the company publishes it), posting date, the job link, the apply link and the full description as plain text.
Run it once for a list, or schedule it to get only the new jobs each day. The tool remembers what it has seen, so a daily check costs a fraction of a cent when nothing is new.
What you get
| Job systems | Greenhouse, Lever, Ashby, Workday, Workable, Recruitee and Personio, detected from each link |
| Input | A company's careers page or its job board link; career pages are followed to the board they use |
| Per job | Company, title, department, team, locations, remote, employment type, salary, dates, job and apply links, description |
| Filters | Keywords, location (text + country field), remote only, posting dates, minimum salary |
| Schedule | Only new jobs, or new + changed + removed jobs, with a memory per saved task |
| Price | $1.00 per 1,000 jobs; on a schedule $0.004 per career page checked |
Use cases
- Track hiring at your target companies or competitors: new roles, closed roles, pay changes.
- Feed a job board, a newsletter or a Slack channel with fresh openings.
- Sales and recruiting signals: which companies are hiring for what, right now.
Input
| Field | What it does |
|---|---|
| Career pages or job board links | One per line: a company's careers page (https://www.figma.com/careers) or its job board link (https://boards.greenhouse.io/figma, https://jobs.lever.co/spotify, any Ashby, Workable, Recruitee, Personio or Workday board) |
| Company names | Or type names (Stripe, Notion): looked up in our directory of 17,763 public Greenhouse, Ashby, Workable, Recruitee, Personio, Workday boards |
| Keywords + where to search | Only jobs with these words in the title, or in the title and description |
| Posted after / before | A date window (jobs without a date are kept) |
| Location contains / exclude / remote only | Match the location text and the country the board gives (Germany also matches a board's DE); drop places; only remote jobs |
| Minimum salary / only with salary | Filter by the top of the published salary range |
| Max jobs per board | No fixed cap (default 10,000 per board) |
| Output mode | All jobs, only new jobs, or new + changed + removed jobs |
Output
One row per job, with the same keys for every job system:
{"id": "greenhouse:<company>:<job id>","changeType": "new","firstSeenAt": "2026-10-04T19:30:00Z","ats": "greenhouse","company": "…","title": "Senior Backend Engineer","department": "Engineering","locations": ["Berlin, Germany"],"remote": true,"employmentType": "FullTime","salaryMin": 70000,"salaryMax": 90000,"salaryCurrency": "EUR","postedAt": "2026-10-01T09:00:00Z","url": "…","applyUrl": "…","descriptionText": "…"}
Every row has every key (null when the job system doesn't give a value). changeType is new, changed,
unchanged or removed; a changed row lists changedFields and the previous values. Emails and phone numbers
inside descriptions are replaced by [redacted] unless you switch that off. Rows have no recruiter name or contact
fields.
If a board doesn't exist or doesn't answer, you get one row with changeType: "status" and a statusCode
(not_found, rate_limited, source_error) instead of an error, and you're not charged for it.
Schedule it: only new jobs, every day
- Add your boards and save it as a task.
- Run it once with Baseline only switched on. It remembers today's jobs and lists nothing. Or skip this and accept that the first run lists every current job once.
- Set Output mode to Only new results (or New, changed and removed) and add a schedule.
- Connect an integration (Slack, Google Sheets, Zapier, Make, n8n), or put a webhook URL in the input.
Each saved task keeps its own memory, and switching a task between modes keeps it.
Apify webhook template (Integrations → Webhook → payload):
{"datasetUrl": "https://api.apify.com/v2/datasets/{{resource.defaultDatasetId}}/items?clean=true&format=json"}
Each run also saves a summary (OUTPUT in the run's key-value store): counts of new, changed, unchanged and removed
jobs per board.
How much does it cost?
- $1.00 per 1,000 jobs listed (on paid Apify plans 10-30% less).
- On a schedule (only new, changed or removed jobs): $0.004 per career page checked plus $1.00 per 1,000 new, changed or removed jobs. Checking 10 boards daily with a few new jobs costs about $1.80 a month.
- Status rows (errors) are free. Set a spending limit on the run and the tool stops there.
Good to know
salaryPeriodisyear,month,week,dayorhour, whatever word the board uses (its own wording stays insalaryText); a rare period (every 2 weeks, one-time) comes as the board wrote it.- "Removed" jobs are reported only when a board was fetched completely and without filters, so a hiccup never reports every job as closed.
- Freshness: every run reads each job board live (no cache);
fetchedAton each row says when. - The job system is detected from each link. For a company's own careers page, the tool reads that page once and follows the job board it links to or embeds (Greenhouse, Lever, Ashby, Workable, Recruitee, Personio or Workday). Pages that build their job list in their own system (no link to one of these boards) get a free
not_supportedrow that says so; paste the board link instead. One system failing gives a status row for its links only; the rest still run.
How it compares
| Instead of | With this tool |
|---|---|
| Checking career pages by hand | Every open job of every board in one table, with the same columns for every company |
| A general web scraper | Reads the job board's own job data, so titles, locations, salaries and dates come as fields, not page text |
| Re-running a full export daily | 'Only new' mode lists just the jobs added since the last run; nothing new costs a fraction of a cent |
FAQ
Which job systems does it read? Greenhouse, Lever, Ashby, Workday, Workable, Recruitee and Personio. The system is detected from each link, and you can mix them in one run.
Can I paste a company's own careers page? Yes. The tool reads that page once and follows the job board it links to or embeds. If the page uses another job system, you get a free not_supported row; paste the board link instead.
How do I get only new jobs every day? Save the input as a task, set Output mode to 'Only new results' and add a schedule. The first run can be a 'Baseline only' run, so it remembers today's jobs and lists nothing.
Does it output recruiter names or e-mails? The tool has no recruiter name or contact fields. E-mail addresses and phone numbers inside descriptions are replaced by [redacted] unless you switch that off.
What if a board doesn't exist? You get a free status row (not_found, rate_limited or source_error) and the other boards still run.
Can I get one company's jobs without a tool? Yes. Most job boards publish their open jobs as public JSON, and one company is a single request:
- Greenhouse:
https://boards-api.greenhouse.io/v1/boards/<company>/jobs?content=true - Lever:
https://api.lever.co/v0/postings/<company>?mode=json(EU boards:api.eu.lever.co) - Ashby:
https://api.ashbyhq.com/posting-api/job-board/<company> - Workday has no simple link: the careers page POSTs
{"appliedFacets": {}, "limit": 20, "offset": 0, "searchText": ""}tohttps://<company>.<wdN>.myworkdayjobs.com/wday/cxs/<company>/<site>/jobs, 20 jobs at a time.
This tool earns its price when you follow many companies on different systems: it detects the system from each link, gives every company the same columns, pages through Workday for you, and on a schedule lists only new jobs. It costs $1.00 per 1,000 jobs; on a schedule, $0.004 per career page checked plus $1.00 per 1,000 new, changed or removed jobs.
Source: each company's public job board on Greenhouse, Lever, Ashby, Workable, Recruitee, Personio, Workday. This tool is not affiliated with or endorsed by any of these vendors.
More Afterstar tools
- Workday Jobs Scraper - All Jobs from Any Workday Career Site: All open jobs from any company's Workday career site, with descriptions and posting dates.
- Greenhouse Jobs Scraper - Any Company's Job Board: All open jobs from any company's Greenhouse job board, with departments, offices and pay ranges where published.
- Ashby Jobs Scraper - Any Company's Job Board + Pay: All open jobs from any company's Ashby job board, with compensation where the company publishes it.
- Arbeitsagentur Jobs Scraper - Germany Jobs from the Jobbörse: Jobs from Germany's federal job board (Bundesagentur für Arbeit) for any search and place, with full descriptions and, where given, salary ranges. Schedule it in new-only mode to get just the new jobs.
Found a problem or need a field? Open an issue on the Issues tab.