ATS Job Feed Scraper avatar

ATS Job Feed Scraper

Pricing

from $2.00 / 1,000 jobs

Go to Apify Store
ATS Job Feed Scraper

ATS Job Feed Scraper

Aggregate live jobs from company career pages on Greenhouse, Lever, Ashby & SmartRecruiters. Proxyless, fast, one clean record per job.

Pricing

from $2.00 / 1,000 jobs

Rating

0.0

(0)

Developer

Magpie

Magpie

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

ATS Job Feed Scraper — live jobs from any company's career page

Pull live job listings straight from company career pages — the ones powered by Greenhouse, Lever, Ashby, and SmartRecruiters. Give it a company (Stripe, Airbnb, Spotify, Ramp…) and get back every open role as one clean, structured record: title, department, location, remote flag, employment type, full description, and a direct apply URL.

No login. No proxies. No fragile HTML scraping — this reads each company's official ATS feed, so the data is complete and stays fresh.

Benchmark — 8 companies:1,186 jobs in one run · 🧩 100% field completeness (title, URL, location, description, published date) · ⚡ ~0.2–1 s per board · 🧼 clean plain-text + original HTML descriptions

Perfect for job boards & aggregators, recruiting & sourcing tools, talent-market research, competitive hiring intelligence, and "who's hiring" newsletters.


✨ Why this scraper

  • Straight from the source. Reads each company's official ATS API (Greenhouse, Lever, Ashby, SmartRecruiters) — not a rendered page. Complete listings, no missed jobs.
  • One unified record shape across every ATS. You don't care whether a company uses Greenhouse or Lever — the output columns are identical.
  • Auto-detect. Don't know which ATS a company uses? Pass the bare company slug and it finds the right one for you.
  • Clean descriptions. Both the original descriptionHtml and a tidy plain-text descriptionText — ready for search indexing, embeddings, or display.
  • Fast & proxyless. Public JSON endpoints, fetched in parallel. No proxy cost, no captcha, no rate-limit pain.
  • Fair billing. You're billed per job returned. Boards that don't exist or return nothing are never billed — guaranteed in code.

📥 Input

FieldTypeDescription
companiesstring[]One entry per board. provider:slug (e.g. greenhouse:stripe, lever:spotify, ashby:ramp, smartrecruiters:Visa) for an exact match, or a bare slug (e.g. ramp) to auto-detect.
autoDetectbooleanFor bare slugs, try every ATS and keep whichever returns jobs (default true).
searchQuerystringKeep only jobs whose title contains this text (case-insensitive).
locationstringKeep only jobs whose location contains this text.
remoteOnlybooleanKeep only jobs flagged remote by the ATS.
departmentstringKeep only jobs whose department contains this text.
maxItemsintegerStop after N jobs across all boards. 0 = unlimited.
concurrencyintegerBoards fetched in parallel, 1–10 (default 5).

Where do I find a company's slug?

It's the company token in its careers URL:

ATSBoard URLSlug
Greenhouseboards.greenhouse.io/stripestripe
Leverjobs.lever.co/spotifyspotify
Ashbyjobs.ashbyhq.com/rampramp
SmartRecruitersjobs.smartrecruiters.com/VisaVisa

Example input

{
"companies": ["greenhouse:airbnb", "lever:spotify", "ashby:ramp", "gitlab"],
"searchQuery": "engineer",
"remoteOnly": true,
"maxItems": 500
}

📤 Output

One record per live job:

{
"source": "ashby",
"companyToken": "ramp",
"jobId": "0ed80a29-6cca-42d7-b7e0-066d4fa7b37f",
"title": "Staff Software Engineer | iOS",
"company": "Ramp",
"department": "Engineering",
"team": "Software Engineering",
"location": "New York, NY (HQ)",
"locations": ["New York, NY (HQ)", "San Francisco, CA", "Remote (US)"],
"remote": true,
"employmentType": "FullTime",
"url": "https://jobs.ashbyhq.com/ramp/0ed80a29-6cca-42d7-b7e0-066d4fa7b37f",
"applyUrl": "https://jobs.ashbyhq.com/ramp/0ed80a29-6cca-42d7-b7e0-066d4fa7b37f/application",
"descriptionHtml": "<h1>About Ramp</h1>...",
"descriptionText": "About Ramp\n\nRamp is building...",
"publishedAt": "2026-06-26T01:57:53.065Z",
"updatedAt": null,
"scrapedAt": "2026-07-12T10:23:00.158Z"
}

Export as JSON, CSV, Excel, or pull via the Apify API. Schedule runs to keep a live mirror of any set of companies' openings.

❓ FAQ

Which ATS platforms are supported? Greenhouse, Lever, Ashby, and SmartRecruiters — four of the most widely used applicant-tracking systems. Thousands of companies publish through them.

How do I scrape many companies at once? Add each to companies. They're fetched in parallel (see concurrency).

A company isn't returning jobs — why? Either the slug is wrong (check the board URL), or the company uses an ATS this actor doesn't cover yet. With autoDetect on, a bare slug is tried against every supported ATS automatically.

Do I need proxies? No. These are public JSON feeds. It runs proxyless — nothing to configure, no proxy cost.

Are descriptions included? Yes for Greenhouse, Lever, and Ashby (both HTML and plain text). SmartRecruiters' list feed returns metadata without the body.

Is this legal? It reads publicly published job listings from companies' own career feeds — no login, no personal data. Review your own use case and local rules as usual.

🔧 Integrations

Works with everything on Apify: Google Sheets, Zapier, Make, n8n, Airbyte, webhooks, or the Apify API. Schedule daily runs to keep your job database in sync.

🏷️ Keywords

ats scraper, greenhouse jobs api, lever jobs scraper, ashby jobs, smartrecruiters scraper, job listings api, careers page scraper, hiring data, job board aggregator, recruiting data, jobs feed, company jobs scraper