
ATS Jobs Scraper
hipersoft/ats-jobs-scraper
Scrape job postings from company career pages on Greenhouse, Lever, Ashby, SmartRecruiters, Personio and Workday in one run, in one unified format: title, department, location, employment type, workplace, seniority, compensation, posted date, links and full description. Export CSV/JSON.
Total users
2Monthly users
1Total runs
4Per job
$0.003Last rebuilt
Oct 26, 2026Overview
ATS Jobs Scraper collects job postings directly from company career pages on the six most popular applicant tracking systems (ATS) — Greenhouse, Lever, Ashby, SmartRecruiters, Personio and Workday — and returns them in one unified format. Paste any mix of career page links (e.g. Stripe on Greenhouse, Spotify on Lever, Ramp on Ashby, NVIDIA on Workday) and get for every job the platform, company, title, department, location, all locations, country, employment type, workplace type (remote / hybrid / on-site), seniority, compensation, posted date, job link, apply link and full description. Filter by keywords and posted within N days. Export to CSV, Excel or JSON. Ideal for recruiters and staffing agencies, job boards and aggregators, sales teams using hiring signals, VC and market research, and job seekers tracking target companies.
What does ATS Jobs Scraper do?
- 🧩 Six ATS platforms in one actor: Greenhouse, Lever, Ashby, SmartRecruiters, Personio, Workday.
- 🔗 Just paste career page links — the platform is detected automatically.
- 📐 One unified schema across all platforms.
- 🔎 Keyword and posted within N days filters.
- 💰 Compensation where companies publish it.
- 📝 Full job descriptions as clean text.
What data can you scrape?
| Field | Description |
|---|---|
| Source | Platform, company token, company name |
| Job | ID, title, department, seniority |
| Location | Location, all locations, country, workplace type |
| Terms | Employment type, compensation |
| Links | Job link, apply link |
| Text | Full description |
| Dates | Posted date |
Use cases for company job data
- Recruiters and agencies: monitor openings at hundreds of target companies in one run.
- Job boards and aggregators: feed fresh roles directly from company career pages.
- Sales and business development: use hiring activity as a buying signal.
- Investors and analysts: track hiring velocity and team growth at portfolio and competitor companies.
- Job seekers: watch your dream companies for new roles.
How to scrape company career pages
- Click Try for free to open ATS Jobs Scraper in Apify Console.
- Paste career page links from Greenhouse, Lever, Ashby, SmartRecruiters, Personio or Workday.
- Optionally add keywords and posted within (days).
- Click Start and download all jobs as CSV, Excel or JSON.
Input
Example input
{
"careerPageUrls": [
"https://boards.greenhouse.io/stripe",
"https://jobs.lever.co/spotify",
"https://jobs.ashbyhq.com/ramp",
"https://jobs.smartrecruiters.com/Visa",
"https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"
],
"keywords": "engineer, data",
"maxPostedDays": 30,
"includeDescription": true
}
| Field | Description |
|---|---|
| Company career page links | Any mix of supported platforms. |
| Keywords | Comma-separated, matched in title/department/description. |
| Include job descriptions | Full text. |
| Posted within (days) | Only recent jobs. |
| Max jobs per company / in total | 0 = no limit. |
Supported link formats
| Platform | Example |
|---|---|
| Greenhouse | https://boards.greenhouse.io/stripe |
| Lever | https://jobs.lever.co/spotify |
| Ashby | https://jobs.ashbyhq.com/ramp |
| SmartRecruiters | https://jobs.smartrecruiters.com/Visa |
| Personio | https://company.jobs.personio.com |
| Workday | https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite |
Output
Job example
{
"platform": "greenhouse",
"company": "stripe",
"companyName": "Stripe",
"jobId": "8172487",
"title": "Abuse Investigator",
"department": "8611 Security Analytics",
"location": "Dublin",
"postedAt": "2026-09-03T13:30:34-04:00",
"url": "https://stripe.com/jobs/search?gh_jid=8172487",
"description": "<h2><strong>Who we are </strong></h2> <h3><strong>About Stripe</strong></h3> <p><span styl…"
}
Output schema
| Field | Type | Description |
|---|---|---|
platform, company, companyName |
string | Source. |
jobId, title, department, seniority |
string | Job. |
location, allLocations, country, workplaceType |
mixed | Location. |
employmentType, compensation |
string | Terms. |
postedAt, postedText |
string | Date. |
url, applyUrl |
string | Links. |
description |
string | Full description. |
How much does it cost?
ATS Jobs Scraper uses pay-per-job pricing: a small fixed price per job posting, with automatic discounts on higher Apify plans. See the Pricing tab for the exact price.
Single-platform scrapers
FAQ
How do I know which platform a company uses? Open the company's careers page and click a job: the address usually shows greenhouse.io, lever.co, ashbyhq.com, smartrecruiters.com, personio or myworkdayjobs.com. Paste that link.
Can I mix platforms in one run? Yes. Each link is detected and processed automatically, and all jobs share the same output format.
What formats can I export? CSV, Excel, JSON, XML, HTML and RSS, or read the results through the Apify API.
Can I integrate it with other apps? Yes. ATS Jobs Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JS/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Is it legal to scrape career pages? The scraper only collects publicly posted job openings and no personal data. You are responsible for using the data in line with each site's terms.
Notes
Original clean-room implementation. Returns only public data. Not affiliated with Greenhouse, Lever, Ashby, SmartRecruiters, Personio or Workday.
Input
| Field | Type | Description |
|---|---|---|
careerPageUrlsCompany career page links | array | Career pages hosted on Greenhouse (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 Workday (company.wd5.myworkdayjobs.co |
keywordsKeywords | string | Optional comma-separated keywords matched in title, department or description, e.g. engineer, data, sales. |
includeDescriptionInclude job descriptions | boolean | Collect the full job description text. Default: true |
maxPostedDaysPosted within (days) | integer | Only jobs posted in the last N days (where the platform shows a date). |
maxJobsPerCompanyMax jobs per company | integer | Limit per career page (0 = no limit). Default: 500 |
maxItemsMax jobs in total | integer | Stop after this many jobs across all companies (0 = no limit). Default: 2000 |
proxyConfigurationProxy configuration | object | Not needed in most cases. Default: {"useApifyProxy": false} |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~ats-jobs-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"careerPageUrls": [
"https://boards.greenhouse.io/stripe",
"https://jobs.lever.co/spotify",
"https://jobs.ashbyhq.com/ramp",
"https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"
]
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/ats-jobs-scraper").call(run_input={
"careerPageUrls": [
"https://boards.greenhouse.io/stripe",
"https://jobs.lever.co/spotify",
"https://jobs.ashbyhq.com/ramp",
"https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/ats-jobs-scraper').call({
"careerPageUrls": [
"https://boards.greenhouse.io/stripe",
"https://jobs.lever.co/spotify",
"https://jobs.ashbyhq.com/ramp",
"https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Job Charged per job posting returned | $0.003 | $0.0015 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Dribbble Shots Scraper
Scrape public design shots from Dribbble: title, high-res image, tags, likes, views and designer credit. Filter by category or sort, export JSON, CSV or Excel.
359 runs · 5 users · $0.003 / shot scrapedComputrabajo Scraper
Scrape Computrabajo job listings across Latin America (Mexico, Colombia, Argentina, Chile, Peru and more): title, company, location, salary, posted date and apply URL. Filter by country and keyword. No setup.
206 runs · 4 users · $0.002 / listing scrapedKraken Market Data Scraper
Fetch Kraken spot market data in bulk: ticker stats (ask, bid, last, 24h high/low/volume/vwap), OHLC candles for any interval, order book depth (top bids/asks), and tradable pair metadata. Fast, clean and cheap.
165 runs · 4 users · $0.001 / pair scrapedBayt Scraper
Scrape Bayt.com job listings across the Middle East (UAE, Saudi Arabia, Egypt, Qatar and more): title, company, location, posted date and apply URL. Filter by country and keyword.
134 runs · 4 users · $0.003 / job scrapedGitHub Scraper
Search GitHub and scrape repositories (stars, forks, language, topics, license, dates) or user profiles (name, company, location, bio, followers, public email, repos). Uses the GitHub REST API; optional token for higher rate limits. For developer lead generation, OSS research and recruiting.
131 runs · 7 users · $0.0008 / item scrapedHacker News Scraper
Scrape Hacker News stories, comments, Ask HN, Show HN, jobs and polls by keyword, points, comments and date range. Sort by relevance or newest. Title, URL, author, points, comment count, text and HN link. Fast clean HTTP via the HN Algolia API, no setup.
130 runs · 2 users · $0.004 / item scrapedSend the site and the fields. We build it and you get it first.