Greenhouse, Lever, Ashby, SmartRecruiters, Personio Job Scraper avatar

Greenhouse, Lever, Ashby, SmartRecruiters, Personio Job Scraper

Pricing

from $0.95 / 1,000 results

Go to Apify Store
Greenhouse, Lever, Ashby, SmartRecruiters, Personio Job Scraper

Greenhouse, Lever, Ashby, SmartRecruiters, Personio Job Scraper

Scrape job listings from Greenhouse, Lever, Ashby, SmartRecruiters, Personio and Recruitee career sites in one actor — paste any board URL and the platform is detected. Get salary, location and full job descriptions. No monthly fee, $0.95/1K.

Pricing

from $0.95 / 1,000 results

Rating

5.0

(1)

Developer

Black Falcon Data

Black Falcon Data

Maintained by Community

Actor stats

4

Bookmarked

48

Total users

10

Monthly active users

11 days ago

Last modified

Share

What does Multi-ATS Job Scraper do?

Multi-ATS Job Scraper is a Greenhouse (greenhouse.io) scraper that also covers Lever, Ashby, SmartRecruiters, Personio and Recruitee. Six applicant-tracking systems feed one shared output schema. Every job carries salary where the board publishes it, location, apply URLs and full job descriptions. Paste a company's board URL from any of them and the platform is detected automatically:

PlatformExample board URL
Greenhousehttps://job-boards.greenhouse.io/airbnb (or just airbnb)
Leverhttps://jobs.lever.co/spotify
Ashbyhttps://jobs.ashbyhq.com/ramp
SmartRecruitershttps://jobs.smartrecruiters.com/BoschGroup
Personiohttps://1komma5grad.jobs.personio.com
Recruiteehttps://channable.recruitee.com

Keyword, location and department filters narrow the boards you list, and result limits keep every run predictable.

New to Apify? Sign up free and use the included $5 monthly platform credit to test this actor.

Key features

  • 🧩 Multi-ATS coverage: One actor spans Greenhouse, Lever, Ashby, Recruitee, SmartRecruiters, and Personio. Mix companies on different ATSs in one run — each board URL is auto-routed and normalised into a single shared output schema.
  • 📋 Detail enrichment: toggle two-stage scraping: first collect listings, then enrich each with full description + detail-page-only fields. Off by default to keep runs fast; flip on when you need the deep payload.
  • 🔗 Paste-mode: paste a company's board URL straight from your browser, from Greenhouse, Lever, Ashby, SmartRecruiters, Personio or Recruitee, and the platform is detected automatically. A link to a single posting loads that company's whole board. Mix platforms freely in one run; results dedupe by ID.
  • 🔔 Notifications: Telegram, Slack, Discord, WhatsApp Cloud API, and generic webhook out of the box. Pair with incremental for daily new-listing alerts without pipeline glue.
  • 📦 Compact mode: compact mode — schema-stable feed for downstream HRIS / aggregator ingestion. Sized for LLM context windows when piping into resume- matching pipelines.
  • 📧 Email + phone extraction: best-effort regex extraction of contact emails and phone numbers from descriptions — emitted as extractedEmails[] and extractedPhones[] on every record.
  • 🔌 MCP connectors: export your results into Notion via Apify's MCP connectors — a clean run-summary page, no glue code. Opt-in via the App connector field; deterministic field-mapping, no AI. Built on Apify's connector framework, so more destinations open up as their catalog grows.
  • ♻️ Incremental mode: recurring runs emit only listings that changed since the last run on this ATS — schema-stable diffs ready for downstream pipeline ingestion. Saves 80–95% on monitoring.
  • 🧩 Structured job content: postings are parsed into qualifications, responsibilities and benefits when the description uses headings for them, plus a skills list mined from the requirement text. experienceLevel and industry fill on the platforms that publish them, and salary fills wherever the board exposes a range. Fields stay null rather than guessed when a posting does not state them.

What data can you extract from Greenhouse, Lever, Ashby & more?

Each result includes core job fields (jobId, globalId, title, company, location, department, team, employmentType), a derived seniority level, and the source ATS (atsSource, postedVia). Salary fields (salaryMin, salaryMax, salaryCurrency) fill where the platform exposes them. Detail enrichment adds full descriptions (description, descriptionHtml, descriptionMarkdown) and application questions. In standard mode every field is present — unavailable values are returned as null, never omitted. In compact mode, only the core fields are returned.

Input

The main inputs are a search keyword, an optional location filter, and a result limit. Additional filters and options are available in the input schema.

Key parameters:

  • boardTokens — Company boards to scrape. Paste a board URL from any of the six supported platforms and the platform is detected automatically: Greenhouse (https://job-boards.greenhouse.io/airbnb), Lever (https://jobs.lever.co/spotify), Ashby (https://jobs.ashbyhq.com/ramp), SmartRecruiters (https://jobs.smartrecruiters.com/BoschGroup), Personio (https://1komma5grad.jobs.personio.com) or Recruitee (https://channable.recruitee.com). A bare token without a URL (e.g. 'airbnb') is treated as a Greenhouse board; for the other platforms use the URL or the 'platform:company' form (e.g. 'smartrecruiters:BoschGroup'). Each entry scrapes the company's whole board, so a link to a single job posting scrapes that company's board.
  • presetLists — Scrape a curated bundle of well-known company boards (spans Greenhouse, Lever, and Ashby). Combine with your own boards above.
  • startUrls — Paste company board URLs from any of the six supported platforms: Greenhouse (boards.greenhouse.io/COMPANY or job-boards.greenhouse.io/COMPANY), Lever (jobs.lever.co/COMPANY), Ashby (jobs.ashbyhq.com/COMPANY), SmartRecruiters (jobs.smartrecruiters.com/COMPANY), Personio (COMPANY.jobs.personio.com or .de) or Recruitee (COMPANY.recruitee.com). Works the same as Company Boards: each URL scrapes that company's whole board.
  • query — Filter jobs by keyword, matched against the job title. Separate several terms with a comma or with OR to match any of them, for example: engineer OR developer. Quote a phrase to match it exactly.
  • searchDescription — By default search terms are matched against the job title only. Enable this to also match the full job description. Broader, but it returns roles that merely mention your keyword. (default: false)
  • location — Filter jobs by location, e.g. 'London' or 'Remote'. Separate several locations with OR to match any of them, for example: London OR Berlin. A comma is never a separator, so 'London, UK' is treated as one place, not two. Common city aliases are matched automatically in both directions (Bangalore/Bengaluru, NYC/New York, SF/San Francisco, and more).
  • department — Filter by department name (substring match, e.g. 'Engineering').
  • remoteOnly — Keep only jobs whose location indicates remote or work from home. (default: false)
  • recentWindowDays — Keep only jobs posted within this many days. Leave at 0 for no date filter. Jobs without a posting date are always kept. (default: 0)
  • maxResults — Maximum total results across all boards (0 = unlimited). Memory auto-sizes to the run: 256 MB for up to 500 results, 512 MB for 501 or more. (default: 0)
  • maxJobsPerCompany — Cap results per company/board (0 = unlimited). Useful for an even sample across many boards instead of a few large ones dominating. (default: 0)
  • includeDetails — Fetch pay transparency and application questions per job (slower, one extra request per job). (default: false)
  • ...and 22 more parameters

Input examples

All six platforms in one run — Mix board URLs from Greenhouse, Lever, Ashby, SmartRecruiters, Personio and Recruitee — each is routed to its platform automatically.

→ Up to 5 jobs per company in one shared schema; atsSource tells you which platform each job came from.

{
"boardTokens": [
"https://job-boards.greenhouse.io/airbnb",
"https://jobs.lever.co/spotify",
"https://jobs.ashbyhq.com/ramp",
"https://jobs.smartrecruiters.com/BoschGroup",
"https://1komma5grad.jobs.personio.com",
"https://channable.recruitee.com"
],
"maxJobsPerCompany": 5,
"maxResults": 30
}

Basic board scrape — Pull every open role from one or more company boards.

→ Full payload per result — all standard fields populated where the source provides them.

{
"boardTokens": [
"airbnb",
"stripe",
"discord"
],
"maxResults": 50
}

Keyword + location filter — Narrow a board scrape to roles matching a keyword query and location.

→ Only listings whose title/content match the query and whose location matches.

{
"boardTokens": [
"stripe"
],
"query": "engineer",
"location": "Remote",
"maxResults": 50
}

Incremental tracking — Only emit jobs that changed since the previous run with this stateKey.

→ First run builds the baseline state. Subsequent runs emit only records that are new or whose tracked content changed. Set emitUnchanged: true to include unchanged records as well.

{
"boardTokens": [
"airbnb",
"stripe",
"discord"
],
"maxResults": 200,
"incrementalMode": true,
"stateKey": "greenhouse-tracker"
}

Compact output for AI agents — Return only core fields for AI-agent and MCP workflows.

→ Small payload with the most important fields — ideal for piping into LLMs without token overhead.

{
"boardTokens": [
"airbnb",
"stripe",
"discord"
],
"maxResults": 50,
"compact": true
}

Output

Each run produces a dataset of structured job records. Results can be downloaded as JSON, CSV, or Excel from the Dataset tab in Apify Console.

Example job record

{
"jobId": "gh-7732569",
"globalId": "greenhouse:airbnb:7732569",
"greenhouseId": 7732569,
"internalJobId": 3393194,
"title": "(Contract) Senior Data Scientist, Platform Inference - MarTech DS Measurement",
"seniority": "senior",
"company": "Airbnb",
"location": "United States",
"department": "Data Science",
"offices": [
"United States"
],
"description": "Airbnb was born in 2007 when two hosts welcomed three guests to their San Francisco home, and has since grown to over 5 million hosts who have welcomed over 2 billion guest arrivals in almost every co...",
"descriptionHtml": "<div class="content-intro"><p><span style="font-family: helvetica, arial, sans-serif; font-size: 12pt;">Airbnb was born in 2007 when two hosts welcomed three gues...",
"descriptionMarkdown": "Airbnb was born in 2007 when two hosts welcomed three guests to their San Francisco home, and has since grown to over 5 million hosts who have welcomed over 2 billion guest arrivals in almost every co...",
"qualifications": "5+ years of industry experience in a quantitative analysis role with a Master’s degree in a quantitative field (computer science, statistics etc.), or 2+ years of experience with a Ph.D. Deep, hands-o...",
"responsibilities": "Marketing Mix Modeling: Design, build, and maintain MMM models that estimate incremental channel contributions, including prior elicitation, adstock/saturation modeling, validation, and sensitivity an...",
"skills": [
"Python",
"SQL",
"Data Science",
"Statistics",
"Experimentation"
],
"contentHash": "fc6e51b2766f6a4fe57c6b04a2b43ed96c0f32962cc0374e82b44a6f782cdf2d",
"employmentType": "Contract",
"workplaceType": "Remote",
"isRemote": true,
"url": "https://careers.airbnb.com/positions/7732569?gh_jid=7732569",
"applyUrl": "https://careers.airbnb.com/positions/7732569?gh_jid=7732569",
"requisitionId": "CW",
"language": "en",
"salaryMin": 140,
"salaryMax": 150,
"salaryCurrency": "USD",
"salaryPeriod": "hourly",
"questions": [
{
"label": "First Name",
"type": "input_text",
"required": true
},
{
"label": "Last Name",
"type": "input_text",
"required": true
},
{
"label": "Email",
"type": "input_text",
"required": true
},
{
"label": "Phone",
"type": "input_text",
"required": true
},
{
"label": "Resume/CV",
"type": "input_file",
"required": true
},
"... 12 more items"
],
"metadata": [
{
"name": "Is this job part of ACC?",
"value": false
},
{
"name": "Workplace Type",
"value": "Remote"
}
],
"postedDate": "2026-03-18T13:37:03-04:00",
"updatedAt": "2026-05-21T12:02:33-04:00",
"scrapedAt": "2026-08-22T16:32:59.837Z",
"portalUrl": "https://boards.greenhouse.io/airbnb",
"source": "greenhouse.io",
"postedVia": "Greenhouse",
"atsSource": "greenhouse",
"sourceBoardToken": "airbnb",
"isRepost": false,
"contactEmail": "reasonableaccommodations@airbnb.com",
"extractedEmails": [
"reasonableaccommodations@airbnb.com"
]
}

Incremental fields

When incremental mode is on, each record also carries:

  • changeType — one of NEW, UPDATED, UNCHANGED, REAPPEARED, EXPIRED. Default output covers NEW / UPDATED / REAPPEARED; set emitUnchanged: true or emitExpired: true to opt into the others.
  • firstSeenAt, lastSeenAt — ISO-8601 timestamps tracking the listing across runs.
  • isRepost, repostOfId, repostDetectedAt — populated when a new listing matches the tracked content of a previously expired one. Set skipReposts: true to drop detected reposts from the output.

How to scrape Greenhouse, Lever, Ashby & more

  1. Go to Multi-ATS Job Scraper in Apify Console.
  2. Enter a search keyword and optional location filter.
  3. Set maxResults to control how many results you need.
  4. Enable includeDetails if you need full descriptions, contact info, company data.
  5. Click Start and wait for the run to finish.
  6. Export the dataset as JSON, CSV, or Excel.

Use cases

  • Extract job data from Greenhouse, Lever, Ashby & more for market research and competitive analysis.
  • Track salary trends across regions and categories over time.
  • Monitor new and changed jobs on scheduled runs without processing the full dataset every time.
  • Build outreach lists using contact details and apply URLs from listings.
  • Research company hiring patterns, employer profiles, and industry distribution.
  • Feed structured data into AI agents, MCP tools, and automated pipelines using compact mode.
  • Export clean, structured data to dashboards, spreadsheets, or data warehouses.
  • Analyze skill demand across listings using structured skill tags.

How much does it cost to scrape Greenhouse, Lever, Ashby & more?

Multi-ATS Job Scraper uses pay-per-event pricing. You pay a small fee when the run starts and then for each result that is actually produced.

  • Run start: $0.005 per run
  • Per result: $0.00095 per job record

Example costs:

  • 10 results: $0.014
  • 25 results: $0.029
  • 100 results: $0.1
  • 200 results: $0.2
  • 500 results: $0.48

Example: recurring monitoring savings

These examples compare full re-scrapes with incremental runs at different churn rates. Churn is the share of jobs that are new or whose tracked content changed since the previous run. Actual churn depends on your query breadth, source activity, and polling frequency — the scenarios below are examples, not predictions.

Example setup: 250 jobs per run, daily polling (30 runs/month). Costs scale linearly with the number of jobs.

Churn rateFull re-scrape run costIncremental run costSavings vs full re-scrapeMonthly cost after baseline
5% — stable niche query$0.24$0.02$0.23 (93%)$0.51
15% — moderate broad query$0.24$0.04$0.20 (83%)$1.22
30% — high-volume aggregator$0.24$0.08$0.17 (69%)$2.29

Full re-scrape monthly cost at the same cadence: $7.27. First month with incremental costs $0.73 / $1.42 / $2.45 for the 5% / 15% / 30% scenarios because the first run builds baseline state at full cost before incremental savings apply.

Platform usage is included in the per-result fee shown above.

FAQ

How many results can I get from Greenhouse, Lever, Ashby & more?

The number of results depends on the search query and available jobs on Greenhouse, Lever, Ashby & more. Use the maxResults parameter to control how many results are returned per run.

Does Multi-ATS Job Scraper support recurring monitoring?

Yes. Enable incremental mode to only receive new or changed jobs on subsequent runs. This is ideal for scheduled monitoring where you want to track changes over time without re-processing the full dataset.

Can I integrate Multi-ATS Job Scraper with other apps?

Yes. Multi-ATS Job Scraper works with Apify's integrations to connect with tools like Zapier, Make, Google Sheets, Slack, and more. You can also use webhooks to trigger actions when a run completes.

Can I use Multi-ATS Job Scraper with the Apify API?

Yes. You can start runs, manage inputs, and retrieve results programmatically through the Apify API. Client libraries are available for JavaScript, Python, and other languages.

Can I use Multi-ATS Job Scraper through an MCP Server?

Yes. Apify provides an MCP Server that lets AI assistants and agents call this actor directly. Use compact mode, descriptionMaxLength, a single descriptionFormat, and excludeEmptyFields to keep payloads manageable for LLM context windows.

This actor extracts publicly available data from Greenhouse, Lever, Ashby & more. Web scraping of public information is generally considered legal, but you should always review the target site's terms of service and ensure your use case complies with applicable laws and regulations, including GDPR where relevant.

Your feedback

If you have questions, need a feature, or found a bug, please open an issue on the actor's page in Apify Console. Your feedback helps us improve.

You might also like

Getting started with Apify

New to Apify? Create a free account with $5 credit — no credit card required.

  1. Sign up — $5 platform credit included
  2. Open this actor and configure your input
  3. Click Start — export results as JSON, CSV, or Excel

Need more later? See Apify pricing.

Disclaimer

This actor accesses only publicly available job board data on Greenhouse, Lever, Ashby, SmartRecruiters, Personio and Recruitee. You are responsible for how you use the extracted data — in particular any personal information such as names, phone numbers, or email addresses — and for complying with each platform's terms of use, applicable data-protection law (including the GDPR where it applies), and the anti-spam rules of your jurisdiction.

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Greenhouse, Lever, Ashby, SmartRecruiters, Personio or Recruitee, or any of their subsidiaries. All trademarks mentioned are the property of their respective owners.

Search keywords

greenhouse scraper, greenhouse api, apify greenhouse, greenhouse data extraction, multi-ats scraper, multi-ats api, apify multi-ats, multi-ats data extraction, greenhouse.io scraper, greenhouse.io data, greenhouse.io api, lever.co scraper, ashbyhq.com scraper, smartrecruiters.com scraper, personio.com scraper, recruitee.com scraper, job listings scraper, recruitment data, hiring data, job board scraper, lever scraper, ashby scraper, smartrecruiters scraper, personio scraper, recruitee scraper, smartrecruiters jobs scraper, personio jobs scraper, ats job scraper.