Greenhouse, Lever & Ashby Jobs Scraper (ATS Jobs API) avatar

Greenhouse, Lever & Ashby Jobs Scraper (ATS Jobs API)

Pricing

from $0.80 / 1,000 job listings

Go to Apify Store
Greenhouse, Lever & Ashby Jobs Scraper (ATS Jobs API)

Greenhouse, Lever & Ashby Jobs Scraper (ATS Jobs API)

Greenhouse jobs, Lever jobs and Ashby jobs in one feed, plus Workable and SmartRecruiters: every open role from company career boards with title, location, remote flag, apply URL and new/closed job detection. Callable by AI agents via MCP. $1 per 1,000 jobs.

Pricing

from $0.80 / 1,000 job listings

Rating

0.0

(0)

Developer

Datawright Labs

Datawright Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 days ago

Last modified

Security

Limited permissions

Share

For AI agents: Use when asked which roles a company is hiring for, to find remote jobs at a list of companies, or to watch for new postings. Call with companies (board URLs or slugs; required), optional titleKeywords, excludeTitleKeywords, locationKeywords, remoteOnly, postedWithinDays, includeDescription, and monitorStateKey + onlyNewJobs for new/closed jobs since last run. Returns one row per job: company, title, location, isRemote, workplaceType, department, employmentType, postedAt, applyUrl, platform, changeType. Cost: $0.001 per job ($1 per 1,000); closed-job markers free.

For people: Ask your agent "find all remote engineering jobs open right now at Ramp, Figma and Spotify" and it pulls them straight from each company's own job board, then gives you titles, locations and apply links. Useful for job hunting, recruiting and hiring-signal research; 1,000 jobs cost $1.

Get every open job from any list of companies that hire through Greenhouse, Lever, Ashby, Workable or SmartRecruiters in one normalized dataset: title, department, location, remote flag, workplace type, employment type, posted/updated dates, job URL, apply URL, salary range where published, and optionally the full job description. Paste career page URLs, get a clean job feed.

It reads each company's official public job board API (the same feed that powers the company's own careers page), so it is fast, cheap and stable. No browser, no login, no proxies.

What can this job board scraper do?

  • 5 ATS platforms in one Actor: Greenhouse, Lever (US and EU), Ashby, Workable and SmartRecruiters.
  • One schema for all platforms. Every job has the same fields whatever ATS the company uses.
  • Paste any board URL (https://boards.greenhouse.io/figma, https://jobs.lever.co/spotify, https://jobs.ashbyhq.com/ramp, https://apply.workable.com/huggingface, https://careers.smartrecruiters.com/Ubisoft2), use platform:slug (greenhouse:figma), or just a bare slug (notion), which is tried on every platform.
  • Filters: title keywords (include/exclude), location keywords, remote only, posted within N days, max jobs per company.
  • New / closed job detection (monitor mode): give your watch-list a name and schedule the Actor. Each job is labelled new or existing, and jobs that disappeared since the last run are output as closed.
  • Per-company error report: a bad slug doesn't fail the run; see the COMPANIES record in the key-value store.
  • Job postings only. No personal data (no recruiter names or emails) is collected.

Use cases

  • Job seekers & job boards: aggregate openings from hundreds of target companies into one feed.
  • Recruiting & talent intelligence: track which teams competitors are hiring for and where.
  • Sales signals: a company suddenly hiring 10 data engineers is a buying signal; push new jobs to your CRM or Slack.
  • Market research: measure hiring trends by department, location or remote share.
  • Niche job sites: power a remote-only, AI-only or region-specific job board.

Input

FieldDescriptionDefault
companiesBoard URLs, platform:slug or slugs2 sample boards
includeDescriptionAdd plain-text job descriptionsfalse
titleKeywords / excludeTitleKeywordsTitle include / exclude words–
locationKeywordsLocation must contain one of these–
remoteOnlyOnly remote jobsfalse
postedWithinDaysOnly recently posted jobs (0 = all)0
maxJobsPerCompanyCap per company (0 = all)0
monitorStateKeyName of your watch-list for new/closed detection–
onlyNewJobsOutput only new (and closed) jobsfalse

Example input:

{
"companies": [
"https://boards.greenhouse.io/figma",
"https://jobs.lever.co/spotify",
"https://jobs.ashbyhq.com/ramp",
"workable:huggingface",
"smartrecruiters:Ubisoft2"
],
"titleKeywords": ["engineer", "data"],
"remoteOnly": false,
"monitorStateKey": "my-target-companies"
}

Output

One row per job. Export as JSON, CSV, Excel, HTML or via the API.

{
"platform": "ashby",
"companySlug": "ramp",
"company": "Ramp",
"jobId": "34413f8d-26bf-4bbc-8ade-eb309a0e2245",
"title": "Security Engineer, Cloud",
"department": "Engineering",
"team": "Backend",
"location": "New York, NY (HQ) / Remote (Canada) / Remote (US) / Miami, FL",
"country": "USA",
"workplaceType": "hybrid",
"isRemote": true,
"employmentType": "full-time",
"postedAt": "2026-04-07T17:12:35.753Z",
"updatedAt": null,
"jobUrl": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245",
"applyUrl": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245/application",
"compensation": "$211.4K – $290.6K • Offers Equity",
"changeType": "new",
"firstSeenAt": "2026-10-19T03:49:39.016Z",
"scrapedAt": "2026-10-19T03:49:39.016Z"
}

Field availability by platform

Not every ATS publishes every field. Missing values are null.

FieldGreenhouseLeverAshbyWorkableSmartRecruiters
department✅✅✅✅✅ (when set)
workplaceTypefrom location text✅✅remote onlyremote / hybrid
employmentType❌✅✅✅✅
postedAt✅✅✅✅ (date)✅
updatedAt✅❌❌❌❌
compensation❌when publishedwhen published❌❌
descriptionText✅✅✅✅✅ (1 extra request per job)

isRemote is true when the ATS marks the job remote or remote-eligible (e.g. Ashby's remote flag, Workable's telecommuting) or the location says "Remote".

Example tasks

Copy one of these into the JSON tab of the input (or save it as a Task) to get started quickly.

Remote engineering jobs at a list of startups

{
"companies": [
"https://jobs.ashbyhq.com/ramp",
"greenhouse:figma",
"lever:spotify"
],
"titleKeywords": [
"engineer",
"developer"
],
"remoteOnly": true
}

Daily new-job alerts (schedule this daily and connect Slack/email)

{
"companies": [
"greenhouse:figma",
"https://jobs.ashbyhq.com/ramp",
"https://apply.workable.com/huggingface"
],
"monitorStateKey": "my-target-companies",
"onlyNewJobs": true
}

Jobs posted in the last 7 days in Canada, with descriptions

{
"companies": [
"https://jobs.ashbyhq.com/ramp",
"greenhouse:figma"
],
"locationKeywords": [
"Canada",
"Toronto",
"Vancouver"
],
"postedWithinDays": 7,
"includeDescription": true
}

How much does it cost to scrape Greenhouse, Lever and Ashby jobs?

You pay $0.001 per job saved ($1 per 1,000 jobs). Jobs removed by your filters, closed-job markers and failed boards are free, and there is no start fee.

JobJobs returnedCost
1 company board (~100 open jobs)100$0.10
1,000 jobs1,000$1
200 target companies, ~50 jobs each10,000$10
Daily monitor of 200 companies in "only new jobs" mode (~150 new jobs/day)~4,500/month~$4.50/month
  • Apify's free plan includes $5 of monthly credit, i.e. about 5,000 jobs a month for free.
  • Paid Apify plans get automatic discounts: Silver -10%, Gold and above -20%.
  • Set Maximum cost per run to hard-cap spend.

Greenhouse / Lever jobs scraper vs. the alternatives

This ActorCalling each ATS API yourselfSingle-platform scrapersJob data vendors
Greenhouse, Lever (US + EU), Ashby, Workable, SmartRecruiters✅ all 5✅ 5 different APIs to learn❌ one each✅
One normalized schema (remote flag, workplace type, salary)✅DIY mapping❌✅
Auto-detects the platform from a careers URL or slug✅❌❌–
New / closed job detection between runs✅ built inDIY staterarely✅
No personal data (no recruiter names/emails)✅✅variesvaries
Cost model$1 per 1,000 jobsfree + your timeper resultannual contract

Use it as an API (Python, JavaScript, cURL)

Every Apify Actor is also a REST API, so you can call this Greenhouse / Lever / Ashby jobs API from your own code, a no-code tool or an AI agent.

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("datawright-labs/ats-jobs-scraper").call(run_input={"companies": ["https://boards.greenhouse.io/figma", "https://jobs.lever.co/spotify"]})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript / Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('datawright-labs/ats-jobs-scraper').call({"companies": ["https://boards.greenhouse.io/figma", "https://jobs.lever.co/spotify"]});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

cURL (run and get results in one request)

curl -X POST "https://api.apify.com/v2/acts/datawright-labs~ats-jobs-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"companies": ["https://boards.greenhouse.io/figma", "https://jobs.lever.co/spotify"]}'

Results can also go straight to Google Sheets, Slack, Make, Zapier, n8n, Airbyte or a webhook via Apify integrations, and you can run it on a Schedule.

Use it from your AI agent (MCP)

Your AI assistant or agent can run this Actor as a tool through Apify's MCP server, so it can run job listings from Greenhouse, Lever, Ashby, Workable and SmartRecruiters on its own while you chat. Add this server to any MCP client that supports remote (Streamable HTTP) servers:

{
"mcpServers": {
"datawright-ats-jobs-scraper": {
"url": "https://mcp.apify.com?tools=datawright-labs/ats-jobs-scraper"
}
}
}

On first use your browser opens to sign in to Apify (OAuth). If your client can't do OAuth, add "headers": { "Authorization": "Bearer <YOUR_APIFY_TOKEN>" } instead. The tool shows up as datawright-labs--ats-jobs-scraper, with the same input fields as above, and the agent reads the results with get-dataset-items. Then just ask, for example:

Find all remote engineering jobs currently open at Ramp, Figma and Spotify and list them by company.

Want several Datawright tools at once? Comma-separate them: https://mcp.apify.com?tools=datawright-labs/ats-jobs-scraper,datawright-labs/pagespeed-auditor. Runs are billed per result, exactly like normal runs.

FAQ

How do I find a company's board slug?

Open the company's careers page and click a job. The URL shows the ATS and slug, e.g. jobs.lever.co/<slug>/... or boards.greenhouse.io/<slug>/jobs/.... Some companies host Greenhouse on their own domain; look for gh_jid= in links, or try the bare company name as a slug.

Is scraping these job boards allowed?

The Actor only reads the public job board endpoints that Greenhouse, Lever, Ashby, Workable and SmartRecruiters provide for publishing job listings, and it collects no personal data. You are responsible for how you use the data; respect each company's terms if you republish listings.

Does it support Workday, iCIMS or Taleo?

Not yet. These don't offer a comparable public JSON job board API. Request them on the Issues tab.

How does new/closed detection work?

With monitorStateKey set, the Actor saves the job IDs it saw for each board in a named key-value store (ats-job-feed-monitor). On the next run with the same key it compares. Closed-job detection is skipped for boards when maxJobsPerCompany is set, because the Actor then doesn't see the full board.

Can I run it on a schedule and get alerts?

Yes. Create a Schedule, turn on onlyNewJobs, and connect Slack, email, Google Sheets, Zapier, Make or a webhook integration.

Is there a Greenhouse jobs API?

Yes: Greenhouse publishes a public Job Board API (boards-api.greenhouse.io/v1/boards/<slug>/jobs) for every company board. This Actor calls it for you, adds pagination, normalization and new-job detection, and merges it with Lever, Ashby, Workable and SmartRecruiters.

How do I get all jobs from Lever (jobs.lever.co)?

Paste https://jobs.lever.co/<company> (or lever:<company>) into companies. Both the US (api.lever.co) and EU (api.eu.lever.co) Lever postings APIs are supported.

Can I scrape Ashby job boards?

Yes. Paste https://jobs.ashbyhq.com/<company>; the Actor uses Ashby's public posting API and returns compensation when the company publishes it.

Can I build a niche job board or job alert with this?

Yes. Keep a list of target companies, set monitorStateKey + onlyNewJobs, schedule it daily and send new jobs to Slack, Google Sheets, Airtable or your site via webhook.

More tools from Datawright Labs

Made by Datawright Labs: reliable, fairly priced web data tools. Questions or a missing feature? Open an issue on the Issues tab; we usually reply within a day.