ATS Jobs Scraper - Greenhouse, Ashby, Lever Job Boards
Pricing
Pay per event
ATS Jobs Scraper - Greenhouse, Ashby, Lever Job Boards
Open jobs from Greenhouse, Ashby and Lever company boards in one schema: department, locations, remote, salary, posted date, apply URL, full description. No login, no proxy.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Santi
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
ATS Jobs Scraper: Greenhouse, Ashby and Lever job boards in one dataset
Scrape open jobs from Greenhouse, Ashby and Lever company job boards with one Actor and one clean schema. Paste company board URLs (or just names like stripe), and every job comes back as data: job title, department, team, locations, remote flag, employment type, salary range where the board publishes one, posted and updated dates, apply URL and the full description as text and HTML. Export to CSV, JSON or Excel, or call it from the API.
Use it for tech and startup hiring research, competitor hiring tracking, recruiting lead lists, salary benchmarking and job-board aggregation. Schedule it with a keyword, location or "posted in the last N days" filter to get a daily feed of new roles. It uses only the official public job-board JSON APIs these platforms publish for embedding, so there is no login, no proxy and no browser. Works with AI agents through the Apify MCP server.
Why this one
- Three platforms, one schema. Greenhouse, Ashby and Lever rows have the same field names, so you can mix companies from all three in one run.
- Auto-detect. Give a board URL (
boards.greenhouse.io/stripe,jobs.ashbyhq.com/ramp,jobs.lever.co/spotify, alsojob-boards.greenhouse.ioand the EU Lever host) or only a name. A bare name is tried on all three platforms and the board with the most jobs is used (the others are listed in the run summary). - Filters: keywords (title, department, team), locations, departments, remote only, posted in the last N days.
- Salary where published: Ashby and Lever give structured pay ranges; Greenhouse gives them for boards that enable pay transparency. Missing pay stays empty, never guessed.
- Safe on errors. A company that does not exist (404) or fails after retries gets a clear error in the log and in the run summary; the other companies still run. If every company fails, the run fails visibly and charges nothing.
- Hard spending cap.
maxItems(default 20) is exact, plus an optional per-company cap. Newest jobs come first.
Input (main fields)
| Field | Meaning |
|---|---|
| Company job boards | Board URLs or names, one per line; greenhouse:name, ashby:name, lever:name force a platform |
| Keywords, Locations, Departments | Case-insensitive text match; a job must match at least one entry of each filled list |
| Remote jobs only | Remote flag (Ashby, Lever) or the words remote, anywhere or distributed in the locations |
| Only jobs posted in the last N days | Uses the publish date, falls back to the updated date |
| Include full job description | Adds descriptionText and descriptionHtml (bigger dataset, same price) |
| Max jobs / Max jobs per company | Hard stops |
Output (one row per job)
company, platform, companyName, jobId, title, department, team, location, locations, workplaceType, employmentType, isRemote, salaryMin, salaryMax, salaryCurrency, salaryInterval, salarySummary, postedAt, updatedAt, jobUrl, applyUrl, requisitionId, scrapedAt and, with descriptions on: descriptionText, descriptionHtml. A RUN_SUMMARY record in the key-value store lists, per board, the platform used, jobs on the board, jobs pushed and any errors.
Not every platform fills every field: Greenhouse has no team or employment type in its public API, Lever has no updated date, and companyName is only given by Greenhouse. See sample-output.json for real rows.
Output example
Real rows from a run of this Actor (columns trimmed):
| Platform | Company | Title | Location | Salary | Type | Posted |
|---|---|---|---|---|---|---|
| greenhouse | stripe | Staff Brand Designer, Creative Lab | US | 2026-10-23T14:35:12-04:00 | ||
| ashby | ramp | Product Operations | General Builder (All Levels) | New York, NY (HQ) | $130K - $200K | Full time | 2026-10-23T19:41:17.713+00:00 |
| lever | spotify | Account Executive - Commercial, Spotify Technology | London | Permanent | 2026-10-23T21:51:17Z |
Pricing
Pay per event: $0.0015 per job ($1.50 per 1,000 jobs) plus a $0.00005 start event per run. The first 20 jobs cost about three cents. See PRICING.md for the benchmark.
Notes and limits
- Only jobs a company publishes on its public job board are returned. Boards that are empty or switched off return 0 jobs (not an error).
- Large boards are big downloads (the biggest boards are several MB); the run still finishes in seconds.
- The remote flag is the platform's own where it exists; otherwise it is inferred from the location text and can miss unusual wording.
- Postings can contain a recruiter or hiring-manager name inside the description text; no contact details are extracted. Use the data in line with the platforms' terms and data-protection law.
FAQ
How much does it cost? Pay per event: $0.0015 per job plus a $0.00005 start event per run. 1,000 jobs = $1.50. You are not charged for jobs removed by filters, duplicates, companies that do not exist, or anything past your max-jobs limit.
How do I find a company's board name? Open the company's careers page and click a job: the address contains boards.greenhouse.io/<name>, jobs.ashbyhq.com/<name> or jobs.lever.co/<name>. Paste that URL, or the name.
Is there a limit on results? maxItems is a hard cap you set per run (default 20). A board returns all its open jobs; there is no paging cap.
Is it legal? The Actor reads the public JSON job-board APIs that these platforms offer for embedding job lists, with no login. You remain responsible for using the data in line with the platforms' terms and data-protection law.
Do I need proxies? No. These APIs answer normal requests; no proxy is used or offered.
Can I schedule it? Yes, with Apify Schedules or the API. A daily run with "posted in the last N days" set to 1 gives a new-jobs feed.
Which export formats are available? JSON, CSV, Excel, XML, HTML or RSS from the Console or API, or the Apify clients and integrations such as Make, Zapier, n8n and Google Sheets.
Something broke or a field is missing? Open an issue on the Actor's Issues tab with the run link.
Use with AI agents / MCP
Agents can call this Actor through the Apify MCP server (https://mcp.apify.com). Add the Actor to the server, or let the agent find it with the search-actors tool, then call it by name:
- Actor:
santis_hermes/ats-jobs-scraper - Example prompt: "List 10 open engineering jobs at Stripe, Ramp and Spotify with location and apply link."
- Minimal input:
{"companies": ["https://boards.greenhouse.io/stripe", "https://jobs.ashbyhq.com/ramp", "https://jobs.lever.co/spotify"],"keywords": ["engineer"],"maxItems": 10}