ATS Jobs Scraper: Greenhouse, Lever, Ashby, Workday
Pricing
$1.20 / 1,000 job postings
ATS Jobs Scraper: Greenhouse, Lever, Ashby, Workday
ATS jobs scraper for public company career boards, including Greenhouse, Lever and Ashby. Export job titles, locations, descriptions and application links as consistent JSON rows.
Pricing
$1.20 / 1,000 job postings
Rating
0.0
(0)
Developer
Grit
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
ATS Jobs Scraper - Greenhouse, Lever, Ashby, Workable, SmartRecruiters (+ Workday)
ATS jobs scraper returns public job postings from supported company career boards. ATS jobs API rows include job titles, locations, descriptions, and application links when supplied by the board.
What it returns
One row per job, the same fields for every platform:
| Field | Type | Example value |
|---|---|---|
company | string | "Ramp" |
ats | string | "ashby" |
job_id | string | "34413f8d-26bf-4bbc-8ade-eb309a0e2245" |
title | string | "Security Engineer, Cloud" |
department | string | "Engineering" |
team | string | "Backend" |
location | string | "New York, NY (HQ)" |
locations | array | ["New York, NY (HQ)", "Remote (Canada)", "Remote (US)", "Miami, FL"] |
remote | boolean | true |
workplace_type | string | "hybrid" |
employment_type | string | "Full-time" |
salary_min | integer | 211400 |
salary_max | integer | 290600 |
salary_currency | string | "USD" |
salary_interval | string | "year" |
posted_at | string | "2026-04-07T17:12:35.753000Z" |
updated_at | string | "2026-09-25T20:45:00Z" |
apply_url | string | "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245/application" |
description_text | string | "ABOUT RAMP\n\nRamp is building the smart infrastructure for finance teams, embedded in the transaction flow of every dollar a business spends. We automate how over $200B in annualized spend flows in and out of 70,000+ companies: authorizing payments, flagging risk, categorizing spend, and closing books.\n\nThe problems are high-stakes, data-dense, and unforgiving.\n\nWe hire people with high agency and high urgency. We look for slope over intercept. We care less about where you trained and more about [... truncated in sample file only]" |
description_html | null | null |
source_url | string | "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245" |
error | null | null |
Input example
{"companies": ["https://jobs.ashbyhq.com/ramp"],"maxItems": 10}
Use the input schema for the remaining filters and defaults.
Output example
This is a selected-field excerpt of the first object in sample_output.json.
{"company": "Ramp","ats": "ashby","job_id": "34413f8d-26bf-4bbc-8ade-eb309a0e2245","title": "Security Engineer, Cloud","department": "Engineering","team": "Backend","location": "New York, NY (HQ)","locations": ["New York, NY (HQ)","Remote (Canada)","Remote (US)","Miami, FL"],"remote": true,"workplace_type": "hybrid","employment_type": "Full-time","salary_min": 211400,"salary_max": 290600,"salary_currency": "USD"}
Pricing
Pay per event: $0.0012 per job returned (event job), no start fee. Error rows are free. You set a maximum spend per run and the actor stops when it is reached. Reasoning against the current Store competitors is in PRICING.md.
Speed (measured, local run, 2026-10-05)
- 100 jobs with descriptions from Greenhouse + Lever + Ashby (3 boards): 2.6 s
- 100 jobs with descriptions from a Workday site (NVIDIA): 24.4 s (one detail request per job)
- 18 jobs from 6 boards on 6 platforms: 4.3 s
Limits and honest notes
- Public data only: whatever a company publishes on its own job board. No login, no CAPTCHA solving, no applicant or recruiter personal data.
- Company-hosted career pages (a company's own domain in front of Greenhouse, for example) cannot be detected from the URL: pass
greenhouse:<token>. - Salary is only present when the company publishes it through the API. Workable and SmartRecruiters publish none; Lever and Greenhouse only if the board returns pay ranges (not seen in the test boards). Nothing is guessed from description text.
- Workday: the list gives a relative date ("Posted 3 Days Ago", "30+ Days Ago" gives no date). With
includeDescriptionon, the exact start date from the job detail is used. Workday salary, department and team are not returned. remoteon Greenhouse and Workday is inferred from the word "Remote" in the location or title; on the other platforms it comes from the platform's own field.- Lever boards on the EU datacenter are found automatically. Some well-known companies have left their ATS (e.g. Netflix no longer has a public Lever board) and return a "not found" error row.
- A company that does not exist or has no board returns an error row (
errorfield, free) and the run continues.
FAQ
What limits the output? The maxItems input caps output rows; its schema maximum is 100,000. Source availability and errors may yield fewer rows.
Does it need a proxy, login, or API key? The actor calls public ATS job-board endpoints without a company login or proxy input.
How is it priced? The pay-per-event proposal in PRICING.md charges job rows as described there. Check the published Store settings for the active price and platform charges.
What happens on rate limits? The HTTP client retries throttling and transient server failures, using Retry-After when supplied. A source can still reject requests.
How fresh is the data? Jobs reflect public boards at run time. posted_at and updated_at are source fields and may be absent.
Are all jobs guaranteed to have salary data? No. Salary fields remain empty when the source board omits them.
Use with AI agents / MCP
An AI agent can call a published actor through the Apify MCP server or Apify API, pass the JSON input, then read the run’s default dataset. Check the actor’s published identifier and permissions in your Apify account.
Every run returns plain JSON, so an agent can call it directly. Through the Apify MCP server (https://mcp.apify.com) add this actor as a tool and give the model a prompt such as: "Find remote backend engineering jobs posted in the last 7 days at stripe, ramp and spotify". The agent supplies companies, keywords: ["backend"], remoteOnly: true, postedWithinDays: 7 and gets normalised rows it can rank, summarise or load into a CRM. Keep maxItems low in agent loops so cost stays bounded.