ATS Jobs Scraper – Greenhouse & Lever in One
Pricing
from $0.80 / 1,000 results
ATS Jobs Scraper – Greenhouse & Lever in One
Scrape all open jobs from Greenhouse and Lever career boards in one run: title, location, remote, department, salary, description and apply link. For recruiters, job boards and sales teams.
Pricing
from $0.80 / 1,000 results
Rating
0.0
(0)
Developer
ninhothedev
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
0
Monthly active users
5 days ago
Last modified
Categories
Share
ATS Jobs Scraper – Greenhouse & Lever Job Postings in One Run
ATS Jobs Scraper extracts every open job from Greenhouse and Lever career boards in a single run. Enter company board slugs (like stripe) or career-page URLs and get each posting's job title, location, remote flag, workplace type, department, team, employment type, salary range, full description and apply link – exported to JSON, CSV, Excel or Google Sheets. It reads the official public job-board APIs, so there is no API key, no login and no proxy cost, and you pay only per job saved.
Built for recruiters and sourcing teams tracking target companies, job-board and aggregator builders, HR-tech and labor-market analysts, and sales teams that use hiring activity as a buying signal.
What data can you extract?
| Field | Example | Description |
|---|---|---|
source | lever | ATS the job came from: greenhouse or lever |
company | leverdemo | Company board slug |
id | ad208490-4052-4f91-... | Job ID in the ATS (stable, good for deduplication) |
title | Customer Success Manager | Job title |
url | https://jobs.lever.co/leverdemo/ad20... | Public job page / apply link |
location | Atlanta, Georgia | Location as written by the employer |
is_remote | false | true if the job is remote (workplace type or location says "remote") |
workplace_type | hybrid | remote, hybrid or on-site (Lever) |
department | Customer Success | Department |
team | Customer Success Team | Team (Lever) |
commitment | Regular Full Time (Salary) | Employment type, e.g. full-time, contract (Lever) |
country | US | Country code (Lever) |
salary | 85000–175000 USD | Salary range, when the employer publishes it |
description_text | Join a scaling, tight-knit team... | Full job description as plain text |
description_html | <div>Join a scaling...</div> | Full job description as HTML |
posted_at | 2026-08-31T18:12:19+00:00 | Date the job was created (Lever) |
updated_at | 2026-10-07T19:02:27-04:00 | Date the job was last updated (Greenhouse) |
word_count / token_count | 210 / 338 | Description length – handy for LLM pipelines |
scraped_at | 2026-10-15T18:01:38+00:00 | UTC time of extraction |
Fields that an ATS does not provide are returned as empty strings, so every row has the same columns.
How to use the ATS Jobs Scraper
- In Companies, add board slugs or career-page URLs. Greenhouse:
stripeorhttps://boards.greenhouse.io/stripe. Lever:leverdemoorhttps://jobs.lever.co/leverdemo. URLs detect the ATS automatically; for bare slugs choose the ATS (or keep Both). - Optionally narrow the results with the keyword, location, department and remote only filters, and cap the number of jobs per company. Click Start.
- Download the jobs as JSON, CSV or Excel, or send them to Google Sheets, Make, Zapier, n8n or your own app via the API. Add a Schedule to refresh the list daily.
Example input:
{"companies": ["stripe", "https://jobs.lever.co/leverdemo"],"ats": "both","keyword": "engineer","location": "","department": "","remoteOnly": false,"maxJobsPerCompany": 100}
Filters are applied before results are saved, so you only pay for the jobs that match.
Output example
Real output from a test run (descriptions shortened, description_html omitted):
[{"source": "greenhouse","company": "stripe","id": "8172508","title": "Abuse Investigator","url": "https://stripe.com/jobs/search?gh_jid=8172508","location": "Dublin","is_remote": false,"workplace_type": "","department": "8611 Security Analytics","team": "","commitment": "","country": null,"description_text": "Who we are \nAbout Stripe\nStripe is a financial infrastructure platform for businesses...","salary": "","posted_at": "","updated_at": "2026-10-07T19:02:27-04:00","word_count": 628,"token_count": 1148,"scraped_at": "2026-10-15T18:01:34.687970+00:00"},{"source": "lever","company": "leverdemo","id": "ad208490-4052-4f91-a57e-433f2d1e484b","title": "Customer Success Manager","url": "https://jobs.lever.co/leverdemo/ad208490-4052-4f91-a57e-433f2d1e484b","location": "Atlanta, Georgia","is_remote": false,"workplace_type": "hybrid","department": "Customer Success","team": "Customer Success Team","commitment": "Regular Full Time (Salary)","country": "US","description_text": "Join a scaling, tight-knit team that's working on...","salary": "85000–175000 USD","posted_at": "2026-08-31T18:12:19.703000+00:00","updated_at": "","word_count": 210,"token_count": 338,"scraped_at": "2026-10-15T18:01:38.794621+00:00"}]
The test run with stripe + leverdemo returned 738 jobs in about 7 seconds.
Pricing
This actor uses pay-per-event pricing – you pay only for jobs saved to the dataset:
- $0.0008 per job = $0.80 per 1,000 jobs
- $0.00005 per actor start (per GB of memory, practically free)
No proxies or third-party APIs are used, so there are no extra costs.
| Scenario | Jobs | Cost |
|---|---|---|
| All open jobs of one large company (e.g. Stripe) | ~730 | ≈ $0.58 |
| 10 companies, keyword filter "engineer" | ~500 | ≈ $0.40 |
| 50 companies, all jobs | ~5,000 | ≈ $4.00 |
| 20 companies refreshed daily for 30 days (~1,000 jobs/day) | ~30,000 | ≈ $24.00 |
Use Max jobs per company, the filters and Apify's maximum cost per run setting to keep spending under control. New Apify accounts get free monthly credit to try it.
Use cases
- Recruiting & sourcing – watch the career pages of competitors and target companies and see new roles the day they open.
- Job boards & aggregators – feed a niche job board (remote, engineering, a region) with fresh postings and direct apply links.
- Sales prospecting – companies hiring for a function are buying tools for it; turn new "Head of Data" or "Security Engineer" postings into leads.
- Labor-market & competitor intelligence – track headcount growth by department, location and remote share over time.
- Salary benchmarking – collect published salary ranges for specific roles and locations.
- AI & RAG pipelines – plain-text descriptions plus
token_countmake it easy to load job data into LLM workflows.
Integrations and API
Run the ATS Jobs Scraper from the Apify API, the Apify CLI or any integration: Make, Zapier, n8n, Google Sheets, Slack, Airbyte or webhooks. Combine a daily schedule with a webhook to push new jobs into your ATS, CRM or database.
Python example with the official apify-client:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("ninhothedev/ats-jobs-scraper").call(run_input={"companies": ["stripe", "leverdemo"], "keyword": "engineer", "remoteOnly": False})for job in client.dataset(run["defaultDatasetId"]).iterate_items():print(job["company"], job["title"], job["location"], job["url"])
FAQ
Is it legal to scrape Greenhouse and Lever jobs? The actor only reads job postings that companies publish openly on their Greenhouse and Lever job boards, via the boards' public APIs. No login is used and no personal data is collected. Always check your local laws and intended use.
Where do I find a company's slug?
It is the part of the job-board URL after the domain: boards.greenhouse.io/stripe or jobs.lever.co/leverdemo. You can also paste the full URL. If a company shows jobs on its own domain, open any job's apply page to find the underlying Greenhouse or Lever board.
What if I don't know which ATS a company uses? Keep ATS set to Both – a bare slug is then checked on Greenhouse and Lever.
Are there limits? No hard limit; the actor returns every published job on each board. Use Max jobs per company to cap results.
Do I need proxies? No. The actor uses the official public job-board APIs, which work without proxies – so there is no proxy cost.
Can I run it on a schedule?
Yes – create an Apify Schedule (e.g. daily) and connect a webhook or integration to process the new results. Use the id field to detect new and removed jobs between runs.
Does it support Ashby, Workday or other ATS? This actor covers Greenhouse and Lever. For other systems see the related actors below.
Something does not work? Open an issue on the actor's Issues tab with the run ID and the company slug – we usually respond within a day.
Related actors
- Greenhouse Job Boards Scraper – all openings from any Greenhouse board.
- Lever Job Postings Scraper – jobs from any Lever board.
- Ashby Jobs Scraper – Ashby career boards with salary and apply links.
- Workday Jobs Scraper – careers sites of Fortune 500 companies on Workday.
- Arbeitnow Jobs Scraper – Germany & EU jobs, remote and visa sponsorship.
- Website Contact & Email Extractor – find emails and phones of hiring companies.