Job Scraper — Greenhouse, Lever, Ashby & SmartRecruiters avatar

Job Scraper — Greenhouse, Lever, Ashby & SmartRecruiters

Pricing

from $4.00 / 1,000 job scrapeds

Go to Apify Store
Job Scraper — Greenhouse, Lever, Ashby & SmartRecruiters

Job Scraper — Greenhouse, Lever, Ashby & SmartRecruiters

Job Scraper for postings across Greenhouse, Lever, Ashby and SmartRecruiters applicant tracking systems. Clean JSON, real apply links, no residential proxy needed. Unofficial — not affiliated with any ATS provider.

Pricing

from $4.00 / 1,000 job scrapeds

Rating

0.0

(0)

Developer

Quarry

Quarry

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

13 days ago

Last modified

Share

ATS Jobs Scraper — Greenhouse, Lever, Ashby & SmartRecruiters in one schema

Pull every open role straight from a company's real applicant tracking system — the same system its careers page runs on. One input, one output schema, four ATS platforms.

No proxies. No blocks. No HTML parsing. These are public product APIs, so the data is complete and the actor doesn't break when a website gets redesigned.

Sample output

{
"id": "34413f8d-26bf-4bbc-8ade-eb309a0e2245",
"provider": "ashby",
"board": "ramp",
"company": "Ramp",
"title": "Security Engineer, Cloud",
"location": "New York, NY (HQ)",
"remote": true,
"department": "Engineering",
"employmentType": "FullTime",
"postedAt": "2026-04-07T17:12:35.753+00:00",
"updatedAt": null,
"applyUrl": "https://jobs.ashbyhq.com/ramp/34413f8d-26bf-4bbc-8ade-eb309a0e2245/application",
"descriptionText": "ABOUT RAMP\n\nRamp is building the smart infrastructure for finance teams…"
}

Every row has the same 13 fields regardless of which ATS it came from. Write your pipeline once.

What you can do with it

  • Hiring-intent leads — companies opening roles in a function are companies with budget. Filter by keyword and department to find them the week they start hiring.
  • Job boards and aggregators — build a niche board from the source, with full descriptions and apply links, instead of re-scraping someone else's board.
  • Competitive and market research — track headcount plans, new office locations, and which teams a competitor is growing.
  • Recruiting — monitor target companies for openings that match your candidates.

Input

FieldWhat it does
boardsRequired. "greenhouse:stripe", "lever:leverdemo", "ashby:ramp", "smartrecruiters:SGS". Pass a bare slug like "stripe" and every provider is tried.
keywordsKeep only roles matching any term, in title, department or description.
locationsKeep only roles whose location contains any of these.
remoteOnlyKeep only roles the ATS flags as remote.
postedAfterISO date. Keep only roles posted or updated since.
includeDescriptionFull description as clean plain text. On by default. Free on Greenhouse, Lever and Ashby; on SmartRecruiters it costs one extra request per role, because SmartRecruiters' listing endpoint carries no description at all — a 4,000-role board takes a couple of extra minutes. Turn it off if you only want the metadata.
maxJobsStop after N rows. 0 = no limit.
concurrencyBoards fetched in parallel, 1–10. Default 5.

Minimal run:

{ "boards": ["greenhouse:stripe"] }

Hiring-intent lead run:

{
"boards": ["greenhouse:stripe", "ashby:ramp", "lever:leverdemo"],
"keywords": ["sales", "account executive"],
"postedAfter": "2026-07-01"
}

Finding a company's board slug

Open the company's careers page and look at the URL:

Careers URLUse
boards.greenhouse.io/stripegreenhouse:stripe
jobs.lever.co/leverdemolever:leverdemo
jobs.ashbyhq.com/rampashby:ramp
jobs.smartrecruiters.com/SGSsmartrecruiters:SGS

Don't know which one they use? Pass the bare slug — every provider is tried and only the one that answers returns rows.

Scale

One large board returns hundreds of roles in under a second: Stripe 548, Lever demo 388, Ramp 126, SGS 4,219. Pass a list of companies and a single run returns tens of thousands of rows.

Reliability

Every run reports what happened per board, in a RUN_STATS record:

  • ok — board returned rows
  • empty — board is healthy but has no open roles right now
  • drift — the payload had records but the parser produced none
  • not_found — that provider has no such board (expected when you pass a bare slug)
  • transport / rate_limited — the provider did not answer

That third one matters. Most scrapers return an empty dataset whether the site changed or the company simply isn't hiring, and you can't tell which. This one tells you.

No board answered means the run fails. A typo'd slug used to finish green with zero rows forever; now it raises with the reason. One bad board among several still succeeds — that is resilience, not breakage — and a real company with no open roles is still a successful, empty run.

When a run legitimately matches nothing, the dataset gets one unbilled receipt row rather than being left empty:

{ "type": "no_changes", "boardsChecked": 1, "boardsAttempted": 1, "jobsSeen": 4257, "checkedAt": "2026-08-05T12:16:28.133Z" }

Job rows never carry a type field, so your pipeline can branch on it.

Run it from anywhere

Works as a scheduled Apify task, from the Apify API in any language, through the Apify MCP server for AI agents, or from n8n, Make and Zapier via Apify's integrations. Schedule it daily against a target-company list and diff the dataset for new roles.

Pricing

Pay per job returned. You're charged for rows you actually receive — empty boards and failed lookups cost nothing. A small start charge is billed once per gigabyte of run memory (minimum once) when a run begins.

Limits

  • Public job postings only. No salary data unless the ATS publishes it, and no applicant or private data.
  • remote is only set when the provider exposes it. Roughly a third of rows carry it; the rest are null rather than a guess.
  • updatedAt is only published by Greenhouse. Every other provider returns null; postedAt is populated everywhere.
  • SmartRecruiters descriptions come from the per-posting detail record. Where a company left those sections blank in its ATS — some do — the field is null because there is nothing to return.
  • Workable is not currently supported — its public listing endpoint stopped returning jobs (verified 2026-08-02).

Unofficial. This Actor is not affiliated with, endorsed or sponsored by Greenhouse, Lever, Ashby or SmartRecruiters.