Multi-ATS Jobs + Company Emails Scraper
Pricing
from $2.00 / 1,000 results
Multi-ATS Jobs + Company Emails Scraper
Turn job listings into a lead list. Scrape open roles from any company across 10 ATS platforms — Greenhouse, Lever, Ashby, Workday, Workable, Recruitee & more — by URL, company name, or an uploaded sheet of links. ATS auto-detected, full descriptions, plus company contact emails.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 hours ago
Last modified
Share
Multi-ATS Jobs + Company Emails Scraper 🧭✉️
Scrape open jobs from any company across 10 major ATS platforms — Greenhouse, Lever, Ashby, SmartRecruiters, Workday, Workable, Recruitee, Breezy, Personio & BambooHR — and optionally attach the hiring company's contact email for lead generation. Paste a board URL or just a company name; the ATS is auto-detected. One unified schema across every platform.

Why use this scraper
- 10 ATS platforms, one actor, one schema. Greenhouse, Lever, Ashby, SmartRecruiters, Workday, Workable, Recruitee, Breezy, Personio, BambooHR — every job comes back in the same normalized shape, so you write one parser.
- Auto-detects the ATS. Don't know which ATS a company uses? Give the company name — the actor probes the supported platforms and picks the right one. Or paste any board URL and it routes by host.
- Company contact email (lead-gen). Flip on
enrichEmailsto turn a job feed into a sales/recruiting lead list — each company gets itscontactWebsiteplus a best-effort publiccontactEmail(e.g. acareers@/info@address) where one is published. A hiring-signal bonus, not a guaranteed per-row contact — coverage varies. - Full job detail. Title, full description (HTML + text), compensation where shown, all locations, department, employment type, apply URL.
- Built-in filters. Title, location, department, remote, posted-after — applied before billing, so you only pay for matches.
- Fast & cheap. Public ATS APIs, no anti-bot, no browser.
Supported ATS platforms
| ATS | Input example | Notes |
|---|---|---|
| Greenhouse | https://boards.greenhouse.io/stripe or stripe | Full content inline |
| Lever | https://jobs.lever.co/spotify or spotify | Full content inline |
| Ashby | https://jobs.ashbyhq.com/ramp or ramp | Full content inline |
| SmartRecruiters | https://careers.smartrecruiters.com/BoschGroup or BoschGroup | Company ID is case-sensitive |
| Workday | https://{tenant}.wd5.myworkdayjobs.com/{Site} | URL only (needs tenant + site) |
| Personio | https://vodeno.jobs.personio.com or vodeno | Public XML feed |
| BambooHR | https://soundstripe.bamboohr.com or soundstripe | Careers API |
| Workable | https://apply.workable.com/pearltalent or pearltalent | Detail fetched per job |
| Recruitee | https://{company}.recruitee.com or {company} | Full content inline |
| Breezy | https://{company}.breezy.hr or {company} | Description from posting page |
Mix any of these — URLs and bare names — in a single run.
Use cases
- Sales & recruiting lead-gen — companies that are hiring are buying signals; pair each role with the company's contact email for targeted outreach.
- Job boards & aggregators — ingest fresh, structured roles from hundreds of companies across every major ATS in one pass.
- Talent & market intelligence — hiring velocity, remote-vs-onsite mix, departments, and pay bands across a company portfolio.
- CRM enrichment — append live hiring activity + a contact to your account list.
How it works
- Resolve each input — a URL routes to its ATS by host; a bare company name is auto-detected by probing the supported platforms in order.
- Fetch that company's jobs from the ATS's public API (one call for inline ATSs; list + per-job detail for SmartRecruiters/BambooHR).
- Normalize every job to one common schema.
- Enrich (optional) — discover the company website and attach a contact email.
- Push one row per job.
Input configuration
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array | – | ATS board/job URLs (any of the 10 platforms). |
organizations | array | – | Bare company names/slugs — ATS auto-detected. |
inputUrl | string | – | URL to an .xlsx / .csv / Google Sheet of career links or company names — parsed and merged with the lists. |
enrichEmails | boolean | false | Attach company contactEmail + contactWebsite (lead-gen). |
maxItems | integer | 5000 | Max jobs per URL / company (free runs limited to 100 total). |
maxConcurrency | integer | 10 | Companies processed in parallel. |
titleKeyword / location / department | string | – | Client-side filters (contains). |
remoteOnly | boolean | false | Keep only remote jobs. |
postedAfter | string | – | Keep jobs published on/after YYYY-MM-DD. |
includeDescription | boolean | true | Off = leaner rows (and skips detail fetch for SmartRecruiters/BambooHR). |
includeRawJson | boolean | false | Attach the raw ATS payload. |
proxy | object | – | Optional; not required (no anti-bot). |
Example input
{"organizations": ["stripe", "ramp", "vodeno"],"startUrls": ["https://jobs.lever.co/spotify"],"enrichEmails": true,"maxItems": 1000,"titleKeyword": "engineer"}
Output
One row per job (normalized across all ATSs). With enrichEmails, the contact fields are added:
{"ats": "greenhouse","org": "stripe","company": "Stripe","globalId": "greenhouse:stripe:7954688","title": "Backend Engineer","department": "Engineering","workplaceType": "Hybrid","isRemote": false,"location": "San Francisco, CA","locations": ["San Francisco, CA"],"descriptionHtml": "<p>…</p>","descriptionText": "…","publishedAt": "2026-06-19T12:11:02-04:00","jobUrl": "https://stripe.com/jobs/search?gh_jid=7954688","applyUrl": "https://stripe.com/jobs/search?gh_jid=7954688","contactEmail": "careers@stripe.com","contactWebsite": "stripe.com","emailEnrichment": { "website": "stripe.com", "emails": ["careers@stripe.com"] },"scrapedAt": "2026-06-20T00:00:00.000Z"}
Key output fields
| Field | Description |
|---|---|
ats | Source platform (greenhouse/lever/ashby/smartrecruiters/workday/workable/recruitee/breezy/personio/bamboohr). |
company | Hiring company name. |
globalId | Stable ats:org:jobId key for cross-run dedup. |
title / department / employmentType / workplaceType / isRemote | Core job fields. |
location / locations | Primary + all locations. |
descriptionHtml / descriptionText | Full description, HTML + plain text. |
publishedAt / jobUrl / applyUrl | Date + links. |
contactEmail / contactWebsite / emailEnrichment | Present when enrichEmails is on (lead-gen). |
FAQ
How does auto-detect work? For a bare company name, the actor tries each supported ATS in order and uses the first that returns jobs. For a URL, it routes by hostname. SmartRecruiters company IDs are case-sensitive — pass the exact ID or a careers URL.
Do I need a proxy? No — these ATS APIs are public with no anti-bot.
How accurate is the contact email? Best-effort. It discovers the company website and harvests publicly published addresses (typically general inboxes like careers@ / info@); many companies publish none, so coverage varies. Off by default since it adds time/cost.
Can it scrape every company on an ATS? No — ATSs have no public directory of all boards. You supply the companies.
⚠️ Disclaimer
This actor collects only publicly available job-posting data exposed by each ATS's own public API, plus publicly available company contact details. It does not access private/authenticated data or bypass access controls. You are responsible for using the data in compliance with each platform's terms and applicable laws (GDPR/CCPA included), especially when using contact data for outreach.
SEO Keywords
multi-ATS scraper, ATS jobs scraper, Greenhouse Lever Ashby scraper, SmartRecruiters Personio BambooHR scraper, career page scraper, company jobs API, hiring signal scraper, lead generation jobs, recruiting leads, contact email enrichment, jobs plus company email, ATS job listing API, applicant tracking system scraper, careers page jobs, hiring intent data.