ATS Jobs Scraper (Greenhouse, Lever, Ashby) avatar

ATS Jobs Scraper (Greenhouse, Lever, Ashby)

Pricing

Pay per usage

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

ATS Jobs Scraper (Greenhouse, Lever, Ashby)

Scrape job listings directly from Greenhouse, Lever and Ashby employer ATS boards. Clean structured data, no anti-bot. Pay only per job returned.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

The Mine Works

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

6 hours ago

Last modified

Share

ATS Jobs Scraper — Greenhouse, Lever & Ashby Job Boards

Scrape job listings directly from employer ATS systems — no anti-bot fight, no consumer-board flakiness. Get clean structured job data from any company using Greenhouse, Lever, or Ashby.

Point the actor at a list of company slugs (stripe, spotify, discord, …), it auto-detects which ATS each company runs on, fetches every open role, and returns a unified schema across all three providers. Pay only for jobs returned — failed lookups and filtered-out jobs are free.

Why scrape ATS boards instead of Indeed/LinkedIn

Job aggregators like Indeed, LinkedIn, Glassdoor and ZipRecruiter all sit downstream of the employer's real source of truth — the ATS (applicant tracking system) the company actually publishes openings into. There are four reasons to skip the aggregator and go straight to the source:

  • Employer-owned data, not scraped from a scrape. Greenhouse, Lever and Ashby publish official, employer-controlled job boards. The data you pull is what the company itself shows on jobs.company.com. No middleman, no missing fields, no aggregator-mangled descriptions.
  • No anti-bot wall. These ATS providers expose public read-only JSON APIs intended for embedding company career sites. There is no CAPTCHA, no fingerprinting, no IP block — clean HTTP gets clean JSON back.
  • Cleaner schema out of the box. Job ID, title, department, location, employment type, posting date, full HTML and plain-text description, canonical apply URL. None of the “Apply on LinkedIn / Apply on company site” redirect chains.
  • Freshness. ATS feeds update the moment the recruiter opens or closes a req. Aggregators lag by hours to days, and many never remove closed roles.

If your use case depends on knowing what a specific list of companies is hiring for, right now, ATS scraping beats aggregator scraping on every axis — accuracy, freshness, completeness, and cost.

Supported sources

  • Greenhouse — the largest enterprise ATS. Used by Discord, Stripe, OpenAI, Airbnb, Anthropic, Coinbase, Robinhood, Pinterest, Reddit, Squarespace, DoorDash, Instacart, Notion, and thousands of mid-to-late-stage companies. API: boards-api.greenhouse.io.
  • Lever — popular with growth-stage SaaS and consumer companies. Used by Spotify, Netflix, Figma, Box, KAYAK, Quora, Eventbrite, Mixpanel, Cruise. API: api.lever.co.
  • Ashby — newer ATS that has become the default among Y Combinator startups and modern Series A–C SaaS companies. Used by HackerOne, Linear, Vanta, Modal, Ramp, Mercury, and a long list of YC alumni. API: api.ashbyhq.com.

The actor tries Greenhouse → Lever → Ashby in order for any slug you provide and uses the first one that returns jobs. You can also skip auto-detect by supplying explicit boards entries.

Use cases

  • Sales intelligence. Track which companies in your ICP are hiring, what roles they’re hiring for, and how their team is growing month over month. A spike in “VP of Sales” or “Director of Demand Gen” postings is a buying signal for half of B2B SaaS.
  • Recruiting agencies. Build a real-time pipeline of active openings across your target accounts. Map roles → candidates from your bench. Trigger outreach automations the moment a relevant role goes live.
  • Investors and equity research. Headcount growth and the composition of new hires are leading indicators of execution. Pull weekly snapshots of every portfolio (or watchlist) company’s ATS and chart hiring velocity by department.
  • Job aggregators and niche boards. Build a “jobs at YC companies,” “climate-tech jobs,” or “AI infra jobs” board cheaply, with first-party data instead of scraping ten consumer aggregators.
  • Competitive intelligence. What is your competitor hiring for? Infra rebuild, new product line, international expansion — it’s all visible in the job titles and descriptions.
  • Workforce / labor-market research. Compare hiring composition (engineering vs sales vs ops) across cohorts of companies, regions, or funding stages.

Input

{
"companies": ["stripe", "spotify", "discord"],
"boards": [
{ "ats": "ashby", "slug": "linear" },
{ "ats": "greenhouse", "slug": "openai" }
],
"maxJobsPerCompany": 500,
"includeDescription": false,
"locationFilter": "New York",
"departmentFilter": "Engineering",
"remoteOnly": false
}
  • companies — list of slugs. The actor auto-detects which ATS each one uses (Greenhouse → Lever → Ashby).
  • boards — explicit {ats, slug} entries. Use this when you already know which ATS a company is on; it skips auto-detect calls.
  • maxJobsPerCompany — hard cap per company (default 500, max 2000). Fetching stops as soon as the cap is hit.
  • includeDescription — when false (default), description is truncated to 500 characters and the raw HTML field is omitted. When true, you get the full plain text and the original description_html.
  • locationFilter, departmentFilter — case-insensitive substring matches.
  • remoteOnly — only return jobs whose location or title contains “remote”.

You must provide at least one of companies or boards. Empty input fails fast — you’re never charged for a no-op run.

Output

Every successful job becomes one dataset item with this schema:

{
"ats": "greenhouse",
"company_slug": "stripe",
"job_id": "4567890",
"title": "Senior Software Engineer, Payments",
"location": "New York, NY",
"department": "Engineering",
"employment_type": "full-time",
"remote": false,
"url": "https://boards.greenhouse.io/stripe/jobs/4567890",
"description": "Stripe builds economic infrastructure for the internet…",
"posted_at": "2026-05-20T14:30:00Z",
"updated_at": "2026-05-28T09:12:00Z",
"scraped_at": "2026-06-08T12:00:00Z"
}

When includeDescription: true, an extra description_html field is included with the raw HTML.

A final summary item is always pushed:

{
"_type": "summary",
"companies_attempted": 5,
"companies_succeeded": 4,
"companies_failed": 1,
"jobs_scraped": 312,
"jobs_filtered_out": 47,
"charged_for": 312,
"by_ats": { "greenhouse": 210, "lever": 60, "ashby": 42 },
"scraped_at": "2026-06-08T12:00:00Z"
}

Companies that don’t resolve on any of the three ATSes appear as {_type: "error", company, reason} items.

Pricing

Your first 25 jobs are free — every Apify account, no card, no trial clock. After that it is a flat $0.002 per job ($2 per 1,000), far below the premium ATS feeds charging $0.012/job.

  • First 25 jobs free per account (lifetime), then $0.002/job
  • You are never charged for a company that returned no results.
  • You are never charged for jobs filtered out by locationFilter, departmentFilter or remoteOnly.
  • You are never charged for failed HTTP calls, 429s, or unknown ATSes.

A run that hits 0 jobs ends with Actor.fail and zero PPE events charged.

How to find a company’s board

If you’re not sure which ATS a company uses, the URL of their public career page is the giveaway:

  • Greenhouse. Either boards.greenhouse.io/<slug> or a custom domain like jobs.<company>.com that proxies Greenhouse. View source on the careers page and search for greenhouse.io. The slug is the last URL segment on boards.greenhouse.io/<slug>.
  • Lever. jobs.lever.co/<slug>. Slug is the last URL segment.
  • Ashby. jobs.ashbyhq.com/<slug> or <slug>.ashbyhq.com.

If you don’t know, just pass the company name as a slug under companies — the actor will probe all three and use whichever responds.


Keywords: ATS scraper, Greenhouse jobs scraper, Lever postings API, Ashby jobs API, company hiring data, job board API, sales intelligence jobs feed, recruiting data API, candidate pipeline data, hiring signals, B2B sales triggers, headcount growth tracking, YC startup jobs.