ATS Jobs Scraper API: Greenhouse, Lever & Ashby + AI avatar

ATS Jobs Scraper API: Greenhouse, Lever & Ashby + AI

Pricing

from $1.50 / 1,000 job scrapeds

Go to Apify Store
ATS Jobs Scraper API: Greenhouse, Lever & Ashby + AI

ATS Jobs Scraper API: Greenhouse, Lever & Ashby + AI

Scrape every open job from any company's Greenhouse, Lever or Ashby board via their official public APIs. One clean schema with salary, remote, department, location and dates, plus optional AI seniority, skills and salary estimates.

Pricing

from $1.50 / 1,000 job scrapeds

Rating

0.0

(0)

Developer

Ibraheem Ganayim

Ibraheem Ganayim

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

ATS Jobs Scraper at a glance: data from the Greenhouse, Lever and Ashby public job-board APIs · no login, no browser, no proxies · $1.50 per 1,000 jobs · optional AI with your own key · JSON, CSV, Excel export, API and MCP ready

What does the ATS Jobs Scraper do?

Scrape every open job from any company that hires through Greenhouse, Lever or Ashby. Results come back in one clean, unified schema with salary ranges, remote status, departments, locations and posting dates. You can also turn on AI enrichment, which adds seniority, job function, skills, years of experience, visa sponsorship and a salary estimate to each job.

Data comes straight from each ATS's official public job-board APIs, the same feeds that power company careers pages. There is no browser, no login and no proxy, so runs are fast, cheap and very reliable.

Why this jobs scraper?

  • 3 ATS platforms, 1 schema. Greenhouse, Lever and Ashby jobs share the same fields, so you can merge thousands of companies into one dataset.
  • Just paste names. Use careers-page URLs, greenhouse:stripe-style slugs, or plain names like notion. Plain names are auto-detected across all three platforms.
  • Salary data included. Native compensation fields from Ashby and Lever, plus salary parsing from description text.
  • Filters built in. Keywords, locations, remote only, and posted within N days.
  • Optional AI layer. Structured skills and seniority for job-market analytics, using your own LLM key.
  • Company job data only. No candidate or recruiter personal data. Emails and phone numbers are stripped from descriptions.

Use cases

  • Build a niche job board or job alert newsletter, for example remote AI jobs at Series B+ startups
  • Track hiring signals for sales, such as which companies are hiring sales or data teams this month
  • Run competitor and talent-market research on headcount growth by department and location
  • Compare salary ranges by role, seniority and city
  • Feed fresh job data into RAG pipelines, AI agents or recruiting tools

How to use the ATS Jobs Scraper

  1. Click Try for free (or Start) on this page and sign in to Apify.
  2. Add companies as careers-page URLs, greenhouse:stripe-style slugs or plain names like notion.
  3. Optionally filter by keywords, locations, remote only or posted within N days.
  4. Optionally enable AI enrichment and paste your OpenAI or OpenRouter key.
  5. Click Start, then download results as JSON, CSV or Excel, or fetch them via the API.

Input

FieldDescription
companiesCareers URLs (https://boards.greenhouse.io/stripe, https://jobs.lever.co/palantir, https://jobs.ashbyhq.com/ramp), prefixed slugs (greenhouse:stripe, lever:palantir, ashby:ramp) or plain names (notion)
keywordsKeep only jobs whose title or description contains any of these words
locationsKeep only jobs whose location contains any of these strings
remoteOnlyKeep only remote jobs
postedWithinDaysKeep only jobs posted or updated in the last N days
includeDescriptionInclude the plain-text job description (default true)
maxJobsPerCompany / maxJobsTotalLimits, so you control spend
enableAi, llmProvider, llmApiKey, llmModelOptional AI enrichment with your own key
{
"companies": ["https://boards.greenhouse.io/stripe", "lever:palantir", "ashby:ramp", "notion"],
"keywords": ["engineer"],
"remoteOnly": false,
"maxJobsPerCompany": 200
}

Output example

One row per job, straight from the Greenhouse, Lever and Ashby public job-board APIs:

{
"company": "Stripe",
"companySlug": "stripe",
"ats": "greenhouse",
"jobId": "8172503",
"title": "Abuse Research Engineer",
"department": "8611 Security Analytics",
"team": null,
"location": "Remote from the US",
"allLocations": [
"US"
],
"remote": true,
"workplaceType": "remote",
"employmentType": null,
"salaryMin": null,
"salaryMax": null,
"salaryCurrency": null,
"salaryInterval": null,
"salaryText": null,
"postedAt": "2026-09-09T10:52:09-04:00",
"updatedAt": "2026-10-29T10:42:09-04:00",
"jobUrl": "https://stripe.com/jobs/search?gh_jid=8172503",
"applyUrl": "https://stripe.com/jobs/search?gh_jid=8172503",
"descriptionText": "Who we are\n About Stripe\n Stripe is a financial infrastructure platform for businesses. Millions of companies—from the world’s largest enterprises to the mos...",
"scrapedAt": "2026-10-31T15:04:03.392Z"
}

With AI turned on, each job also gets an ai object: seniority, jobFunction, remotePolicy, skills[], yearsExperienceMin, salaryEstimate, visaSponsorship, languages[] and summary.

Export to JSON, CSV, Excel or HTML, or pull results through the Apify API, webhooks, Zapier, Make, n8n or MCP.

How much does it cost?

This Actor uses pay per event pricing: you pay only for results saved to your dataset, with no monthly fee. Apify platform compute is included.

EventPrice
Job scraped$0.0015 per job ($1.50 per 1,000)
AI enrichment$0.002 per enriched job (plus your own LLM tokens)

You only pay for jobs that are actually saved. The Actor stops cleanly when your max cost per run is reached.

Examples

  • 1,000 jobs: $1.50
  • 10,000 jobs: $15
  • 1,000 jobs with AI: $3.50 plus your LLM tokens (typically cents with gpt-4o-mini)

Apify's Free plan includes $5 of monthly usage, enough for about 3,333 jobs without AI. Set Maximum cost per run in the run options to cap spend; the Actor stops cleanly at the limit.

Use it via API, Python, n8n, Make or AI agents

Run the Actor and get results in one call (replace <APIFY_TOKEN> with your token):

curl -X POST "https://api.apify.com/v2/acts/data-drip~ats-jobs-scraper/run-sync-get-dataset-items?token=<APIFY_TOKEN>" \
-H 'Content-Type: application/json' \
-d '{"companies": ["stripe", "lever:palantir", "ashby:ramp"], "keywords": ["engineer"], "maxJobsPerCompany": 50}'
from apify_client import ApifyClient
client = ApifyClient('<APIFY_TOKEN>')
run = client.actor('data-drip/ats-jobs-scraper').call(run_input={"companies": ["stripe", "lever:palantir", "ashby:ramp"], "keywords": ["engineer"], "maxJobsPerCompany": 50})
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item)
  • Schedules: run it hourly, daily or weekly from Apify Schedules.
  • Integrations: send results to Google Sheets, Slack, Zapier, Make, n8n or a webhook.
  • AI agents (MCP): add data-drip/ats-jobs-scraper as a tool in the Apify MCP server (https://mcp.apify.com) for Claude, Cursor and other MCP clients.

Limitations

  • Covers Greenhouse, Lever and Ashby only (not Workday, LinkedIn or Indeed).
  • Returns jobs that are currently open; closed postings are not archived.
  • Salary fields are only as complete as each company publishes them.

FAQ

Is this legal? The Actor reads public job postings from the official, unauthenticated job-board APIs that Greenhouse, Lever and Ashby publish for exactly this purpose. It collects no personal data. You remain responsible for how you use the data.

How do I find a company's slug? It is the last part of its careers URL: boards.greenhouse.io/<slug>, jobs.lever.co/<slug> or jobs.ashbyhq.com/<slug>. You can also just type the company name.

What about Workday, LinkedIn or Indeed? They are not supported. This Actor focuses on the open ATS APIs, which never break or get blocked.

Do I need an AI key? No. Without a key the Actor runs as a fast, plain scraper and you pay only for results. To turn on AI, paste your own OpenAI or OpenRouter key into the LLM API key field. It is stored as an encrypted secret input and only used to call the provider you picked. LLM tokens are billed by your provider, not by us.

Which models work? The default is gpt-4o-mini, or openai/gpt-4o-mini on OpenRouter. Any chat model that supports JSON output works. Set it in LLM model.

A company returned 0 jobs? It either uses a different ATS or has no open roles. The log tells you which platforms were tried.

Can I schedule it? Yes. Use Apify Schedules (for example daily) and connect the dataset to Google Sheets, Slack or a webhook to get only fresh jobs.

How do I get help or request a feature? Open an issue on the Actor's Issues tab.


Related searches: greenhouse scraper, lever jobs scraper, ashby jobs api, job board scraper, ats scraper, job postings data, hiring signals, remote jobs scraper, salary data, careers page scraper.