ATS Jobs Scraper: Greenhouse, Lever, Ashby, Workable & more avatar

ATS Jobs Scraper: Greenhouse, Lever, Ashby, Workable & more

Pricing

$1.50 / 1,000 job results

Go to Apify Store
ATS Jobs Scraper: Greenhouse, Lever, Ashby, Workable & more

ATS Jobs Scraper: Greenhouse, Lever, Ashby, Workable & more

Get all open jobs from company career pages on Greenhouse, Lever, Ashby, Recruitee, Personio, SmartRecruiters and Workable. Paste a careers URL or just a company name. Unified rows, salary, only new jobs.

Pricing

$1.50 / 1,000 job results

Rating

0.0

(0)

Developer

Henri De Witte

Henri De Witte

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

24 days ago

Last modified

Share

Get all open jobs from company career pages in one clean, unified format. Works with the 7 most used applicant tracking systems (ATS):

Greenhouse · Lever · Ashby · Recruitee · Personio · SmartRecruiters · Workable

Paste a job board link, a company's own careers page, or just a company name: the Actor finds the right job board for you. Turn on "Only new jobs since the last run" and schedule it daily to get new job alerts or hiring signals in Google Sheets, Slack, n8n, Make or Zapier.

  • ✅ 7 job board systems in one Actor, one output format
  • ✅ Auto-detect: paste https://careers.company.com or notion and it finds the job board
  • ✅ Filters: keywords, exclude words, locations (accents ignored), remote only, posted in the last X days
  • ✅ Salary ranges when the company publishes them (Greenhouse, Lever, Ashby, Recruitee, Personio)
  • ✅ Clean plain-text descriptions (AI-ready) or the original HTML
  • ✅ Uses the official public job board APIs: fast, no browser, no login, no CAPTCHA
  • ✅ GDPR-friendly: recruiter names and emails are never collected, and emails/phone numbers inside descriptions are removed

What can you use it for?

  • Sales teams (hiring signals): a company that hires 5 data engineers needs data tools. Track your target accounts daily.
  • Recruiters and agencies: monitor the career pages of your clients and competitors.
  • Job boards and newsletters: build a niche job feed (e.g. "remote Python jobs in Europe").
  • Job seekers: get an alert the day your dream company opens a role.
  • Market research: compare hiring by department, location and salary.

How to use it

  1. Add one or more companies (one per line). Any of these works:
    • a job board link: https://boards.greenhouse.io/airbnb, https://jobs.lever.co/palantir, https://jobs.ashbyhq.com/notion, https://bunq.recruitee.com, https://tado.jobs.personio.de, https://jobs.smartrecruiters.com/BoschGroup, https://apply.workable.com/name
    • a short form: greenhouse:airbnb, lever:palantir, ashby:notion, recruitee:bunq, personio:tado, smartrecruiters:BoschGroup, workable:name
    • the company's own careers page: https://www.company.com/careers (the Actor looks for the job board link on that page)
    • just a name: notion (the Actor tries every system and uses the first one with jobs)
  2. Optional: add keywords, locations or turn on remote only.
  3. Click Start. Download the jobs as JSON, CSV, Excel, or use the API.
  4. For daily alerts: turn on Only new jobs since the last run and create a Schedule.

Input example

{
"companies": ["https://boards.greenhouse.io/airbnb", "lever:palantir", "notion", "https://bunq.recruitee.com"],
"keywords": ["engineer", "data"],
"excludeKeywords": ["intern"],
"locations": ["Belgium", "Netherlands", "remote"],
"remoteOnly": false,
"postedWithinDays": 30,
"descriptionFormat": "text",
"maxResults": 500,
"onlyNewSinceLastRun": true
}
FieldDefaultMeaning
companies–Job board links, short forms, careers pages or names. Max 500.
keywords[]Keep jobs whose title, department or team contains any of these words.
excludeKeywords[]Skip jobs whose title contains any of these words.
locations[]Keep jobs in any of these places (city, country, 2-letter code, or remote).
remoteOnlyfalseOnly remote jobs.
postedWithinDaysemptyOnly jobs posted in the last X days (jobs without a date are kept).
descriptionFormattexttext, html or none.
maxJobsPerCompanyemptyStop after X jobs per company.
maxResults1000Maximum jobs (and maximum cost) per run.
onlyNewSinceLastRunfalseOnly return jobs that an earlier run with the same list of companies did not.

Output example

{
"id": "greenhouse:airbnb:7995153",
"ats": "greenhouse",
"companySlug": "airbnb",
"companyName": "Airbnb",
"jobId": "7995153",
"title": "Business Development Manager",
"department": "Sales",
"team": null,
"employmentType": null,
"workplaceType": "hybrid",
"isRemote": false,
"location": "Berlin, Germany",
"locations": ["Berlin, Germany"],
"countryCode": null,
"postedAt": "2026-06-10T12:50:56.000Z",
"updatedAt": "2026-09-30T00:00:54.000Z",
"url": "https://careers.airbnb.com/positions/7995153?gh_jid=7995153",
"applyUrl": "https://careers.airbnb.com/positions/7995153?gh_jid=7995153",
"salaryMin": 71000,
"salaryMax": 84000,
"salaryCurrency": "EUR",
"salaryPeriod": "year",
"description": "Airbnb was born in 2007 when two hosts welcomed three guests ...",
"scrapedAt": "2026-10-08T10:29:47.948Z"
}

Every row has the same fields, whatever the job board. Missing values are null (or an empty list), never left out.

Pricing

Pay per result: $1.50 per 1,000 jobs ($0.0015 per job). You only pay for jobs that end up in your dataset. Duplicates are never charged, and companies that are not found cost nothing. Set a maximum cost per run and the Actor stops cleanly when it is reached.

Free Apify plan: a run returns at most 100 jobs. Upgrade to a paid Apify plan to get all results.

FAQ

Is this legal? Yes. The Actor only reads the public job board APIs and feeds that these systems offer for career websites (the same data anyone sees on the company's job page). It does not log in, does not bypass protections and keeps a polite request rate.

What about personal data? Job postings are about companies, not people. The Actor never collects recruiter names or emails, and removes email addresses and phone numbers that appear inside job descriptions.

My company is "not found". Use the exact name from the job board URL (e.g. boards.greenhouse.io/airbnb). Names are sometimes different from the brand name. If the company uses another system (Workday, Taleo, Teamtailor, ...) it is not supported yet: open an issue.

Why is the description empty for some jobs? Some companies publish only a title. With descriptionFormat: none descriptions are skipped on purpose (faster runs).

How does "only new" work? The Actor remembers which jobs it returned for the same list of companies and skips them next time. Change the list of companies and it counts as a new search. Changing filters does not reset the memory.

Limitations

  • Only public job boards on the 7 supported systems.
  • SmartRecruiters needs one extra request per job for the description; choose none for very large companies if you only need titles.
  • Salary is only available when the company publishes it.
  • If a job board changes its format, some fields may be empty until the Actor is updated.

Support

Found a problem or need another job board system? Open an issue on the Issues tab.