ATS Jobs Scraper: Greenhouse, Lever, Ashby, Workable +4
Pricing
from $0.80 / 1,000 jobs
ATS Jobs Scraper: Greenhouse, Lever, Ashby, Workable +4
Input: company career page URLs or ATS slugs (Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee, Teamtailor, BambooHR). Output: one normalized JSON row per open job: title, location, remote, department, salary range, seniority, description, apply URL.
Pricing
from $0.80 / 1,000 jobs
Rating
0.0
(0)
Developer
DataDesk
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share
ATS Jobs Scraper: Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee, Teamtailor & BambooHR
Extract every open job from company career pages hosted on 8 applicant tracking systems: Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee, Teamtailor and BambooHR, all normalized into one clean JSON schema. Ideal for job boards, recruiting agencies, labor-market research, hiring-signal lead generation and AI job-matching agents.
Why use this ATS Jobs Scraper?
- 🧩 5 ATS platforms, 1 schema: the same fields for every source (title, department, location, remote/hybrid, employment type, posted date, salary when available, description text + HTML, apply URL).
- 🏢 By company slug or URL:
workable:huggingface,smartrecruiters:ServiceNow,recruitee:bunq,teamtailor:career,bamboohr:miquido,greenhouse:gitlab,lever:spotify,ashby:openai, or just pastehttps://bunq.recruitee.com/. - 🎯 Filters for title keywords, location and remote only.
- ⚡ Uses the platforms' public job feeds, with no browser, login or proxies, so runs are fast, stable and cheap.
Filters that actually work
- Date posted:
postedWithinDays(e.g. 7) orpostedAfter(YYYY-MM-DD). Jobs without a known date are excluded when a date filter is set. - Minimum salary:
minSalarychecks the ATS salary fields, or the salary range written in the description (e.g. "$120,000–$150,000", "€60k–80k"). AddincludeJobsWithoutSalary: trueto keep jobs that don't publish one. - Seniority:
seniority=intern,junior,mid,senior,lead(detected from the title and experience level; output fieldseniority). - Keywords:
titleKeywords,excludeTitleKeywords,locationKeywords,remoteOnly. - Deduplication by job ID and by company + title + location, across all companies in the run.
maxJobsPerCompany(newest first) andmaxResultsfor the whole run are exact.
Input example
{"companies": ["workable:huggingface", "smartrecruiters:ServiceNow", "https://bunq.recruitee.com/", "teamtailor:career", "bamboohr:miquido", "greenhouse:gitlab", "https://jobs.lever.co/spotify", "ashby:ramp"],"includeDescription": true,"titleKeywords": ["engineer", "data"],"remoteOnly": false}
Output example
{"ats": "recruitee","companySlug": "bunq","companyName": "bunq","jobId": "2783543","title": "Head of Product","department": "Product","employmentType": "fulltime_permanent","remote": false,"workplaceType": "hybrid","city": "Amsterdam","region": "Noord-Holland","country": "NL","postedAt": "2026-10-15 09:31:36 UTC","url": "https://careers.bunq.com/o/head-of-product-6","applyUrl": "https://careers.bunq.com/o/head-of-product-6/c/new","descriptionText": "As Head of Product, your mission is..."}
Our guarantees
- 💸 Spending limit respected: set Max cost per run in Apify (or
maxResults) and the run stops cleanly at that limit. We never charge past it. - 📅 Date filters respected: every item is checked against your date window. Nothing outside it is returned or charged.
- 🚫 No hidden caps: we fetch every page available. The only limits are the ones the source itself publishes, and they are listed below.
- 🆓 No charge when there are no results: if a run finds 0 items, you pay nothing (not even the start fee).
- 🔁 Deduplicated output: the same item is never returned (or charged) twice in a run.
Pricing
Pay-per-event: $1.00 per 1,000 jobs plus $0.005 per run (charged only if at least one job is found). Monitoring 100 companies daily (~3,000 jobs) costs about $3 per run.
How to find a company's slug
Open the company's careers page. The slug is the part of the URL after apply.workable.com/, jobs.smartrecruiters.com/, or before .recruitee.com, .teamtailor.com, .bamboohr.com; for Greenhouse after boards.greenhouse.io/ or job-boards.greenhouse.io/, Lever after jobs.lever.co/, Ashby after jobs.ashbyhq.com/.
Salary data? Ashby and Lever expose official salary ranges when the company publishes them; for other ATSs we parse ranges from the description.
Use cases
Niche job boards and aggregators · hiring signals for B2B sales · recruitment-agency sourcing · salary and labor-market analytics · feeding AI job-search agents.
FAQ
Greenhouse / Lever / Ashby? Not yet. Open an issue if you need them. Scheduling? Use Apify Schedules to run daily and get new jobs via webhook, Make, Zapier or n8n. Issues? Report them on the Issues tab. We usually reply within 48h.
Use with AI agents (MCP)
This Actor works as a tool for AI agents through the Apify MCP server. Add it to Claude (Desktop/Code), ChatGPT, Cursor, VS Code or any MCP client with this URL:
https://mcp.apify.com/?tools=datadesk-io/ats-jobs-scraper
Sign in with your Apify account (OAuth) or pass your API token. The agent sees the input schema, runs the Actor and reads the dataset; every input field is optional and every output field is documented.
What goes in → what comes out: Input: company career page URLs or ATS slugs (Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee, Teamtailor, BambooHR). Output: one normalized JSON row per open job: title, location, remote, department, salary range, seniority, description, apply URL.
Example prompt:
List all open remote engineering jobs at GitLab and Stripe with salary ranges.