Greenhouse, Lever & Ashby Jobs Scraper β€” with Salaries avatar

Greenhouse, Lever & Ashby Jobs Scraper β€” with Salaries

Pricing

from $1.50 / 1,000 job returneds

Go to Apify Store
Greenhouse, Lever & Ashby Jobs Scraper β€” with Salaries

Greenhouse, Lever & Ashby Jobs Scraper β€” with Salaries

Jobs from 3,500+ companies on Greenhouse, Lever and Ashby, read from their public JSON APIs so it doesn't break. Pay on nearly half of all roles, pay and remote filters, job descriptions. 125,000+ open roles.

Pricing

from $1.50 / 1,000 job returneds

Rating

0.0

(0)

Developer

CMM Research

CMM Research

Maintained by Community

Actor stats

0

Bookmarked

57

Total users

34

Monthly active users

4 days ago

Last modified

Share

Get every open job at Stripe, SpaceX, Ramp, Figma and 3,500+ other startups and tech companies, read from the Greenhouse, Lever and Ashby job boards they publish themselves, so it doesn't break when a page changes. Get job titles, locations, posting dates, descriptions, and salaries where the posting states them (nearly half of all jobs), as clean JSON, CSV or Excel. You don't need any coding, proxies or servers.

Built and maintained by CMM Research. Missing a company, or need a custom feed? Email us at chazmichael_michaels@icloud.com.

Who uses it

  • Tech job boards. Startup and engineering roles from the source, with pay.
  • Recruiters. Every open role at a list of target companies in one run.
  • Salary benchmarking. Stated pay ranges, including each company's own structured pay data where it publishes it.

A real result (Stripe, 7 Oct 2026):

{
"title": "Offensive Security Engineer",
"company": "stripe",
"location": "US - Remote",
"remote": true,
"department": "8611 Security Analytics",
"postedAt": "2026-09-25T14:53:02-04:00",
"employmentType": null,
"salaryMin": 170400,
"salaryMax": 255700,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"salaryText": "$170,400 – $255,700",
"url": "https://stripe.com/jobs/search?gh_jid=8233889",
"ats": "greenhouse"
}

Every job also comes with its description (plain text, up to 8,000 characters) and the fields listed under Output below.

Need big employers too? Greenhouse, Ashby and Lever are mostly startups and scale-ups. Most of the Fortune 500 (NVIDIA, Salesforce, CVS, Lowe's) hire through Workday. Our Workday Jobs Scraper covers 1,785 of them, with the same output fields, so the two datasets combine directly.

Want everything in one search? Our Career Site Jobs API searches more than 1.7 million jobs from 19,000+ companies across 15 hiring systems at once (Workday, Oracle, Greenhouse, Lever, Ashby and more). The jobs are collected daily, so results come back in seconds.

Why this one

Most job scrapers parse HTML from job boards. HTML changes, so they break β€” which is why the category's ratings sit between 3.6 and 4.0 stars.

This reads documented JSON APIs. There is no markup to change, no anti-bot arms race, and no proxy bill. When a company posts a role, it appears here.

  • Straight from the source β€” the company's own board, not a third-party aggregator
  • One schema across three ATSs β€” Greenhouse, Ashby, and Lever normalized identically
  • Pay ranges as data β€” Ashby's own pay data where the company publishes it, otherwise the range stated in the description, as salaryMin / salaryMax / salaryCurrency / salaryPeriod, annualised, and filterable with onlyWithSalary, minAnnualSalary and salaryCurrencies
  • Only what's new, on a schedule β€” turn on onlyNewSinceLastRun and schedule the run: each run skips every job that search has already delivered, so you track new openings without paying twice for the same job
  • Curated registry included β€” 3,500+ verified companies, 120,000+ open roles, or name your own
  • Simple pricing β€” $1.50 per 1,000 jobs delivered, no platform usage on top; maxJobs caps the cost per run

Pricing

From 10 October 2026: $1.50 per 1,000 jobs ($0.0015 per job), plus Apify's standard $0.00005 run-start fee. Platform usage is included β€” you are not billed for compute separately. Until then it is free.

You pay only for jobs actually delivered to your dataset. Two ways to control spend:

  • maxJobs β€” hard cap on results per run. The default of 1,000 costs at most $1.50.
  • Apify's maximum cost per run β€” if your limit is reached mid-run, the Actor stops cleanly and keeps everything delivered so far.

Filters (remoteOnly, titleKeywords, locationKeywords, postedWithinDays) run before charging, so filtered-out roles are never billed.

Output

FieldDescription
idStable identifier: {ats}:{company}:{nativeId}
titleRole title
company / companySlugCompany
locationLocation as published
remoteThe location text itself says remote β€” precise
remoteEligibleThe company's own ATS flag β€” broader, less precise (see note)
departmentTeam or department
postedAtISO 8601 posting date
urlCanonical apply link on the company's own board
descriptionJob description as plain text, up to 8,000 characters (optional)
employmentTypeFull-time, contract, etc. where published
atsWhich system it came from
salaryMin / salaryMax / salaryCurrency / salaryPeriodStated pay, e.g. 150000 / 180000 / "USD" / "year" (null when none is stated)
salaryAnnualMin / salaryAnnualMaxThe same pay per year (hour Γ— 2,080, week Γ— 52, month Γ— 12)
salaryTextExactly what the pay was read from, so you can check it
salarySourcestructured (the company's own Ashby pay data) or description (read from the text)

Examples

Every remote engineering role across the curated list

{ "useCuratedList": true, "remoteOnly": true, "titleKeywords": ["engineer"], "maxJobs": 500 }

Specific companies, recent postings only

{ "companies": [{ "slug": "stripe" }, { "slug": "ramp" }], "postedWithinDays": 14 }

Engineering roles paying $180k+ a year

{ "useCuratedList": true, "titleKeywords": ["engineer"], "minAnnualSalary": 180000, "salaryCurrencies": ["USD"], "maxJobs": 1000 }

Daily alert: new jobs at your target companies (schedule it once a day)

{ "companies": ["stripe", "ramp", "figma"], "onlyNewSinceLastRun": true, "maxJobs": 5000 }

Fast and cheap β€” titles and links only

{ "useCuratedList": true, "includeDescription": false, "maxJobs": 2000 }

A note on remote

Applicant tracking systems disagree about what "remote" means. Ashby flagged 112 of Ramp's 123 roles as remote while listing every one at "New York, NY (HQ)" β€” that field means remote-eligible, not remote.

So we publish both signals rather than picking one and hiding the ambiguity:

  • remote β€” the location text actually says remote. Trust this one.
  • remoteEligible β€” what the company declared. Broader, noisier.

remoteOnly matches either. Filter on remote alone if you want only genuinely location-independent roles.

Notes

Name companies however is easiest: "stripe", a job-board link such as "https://jobs.lever.co/veeva", or {"slug": "ramp", "ats": "ashby"}. Slugs are usually just the company name in lowercase. Leave ats blank and we'll work out which system a company uses. If a company has no public Greenhouse, Lever or Ashby board, the run log says so.

onlyNewSinceLastRun remembers each search's delivered jobs for 180 days in a key-value store named company-career-site-jobs-monitor in your own Apify account. Jobs cut off by maxJobs or your spending limit are still delivered on the next run.

Pay is read only when it clearly is pay (not revenue, funding, bonuses or benefits), so a missing salary is far more likely than a wrong one. A bare "$" is read as Canadian or Australian dollars when the location is in Canada or Australia, otherwise US dollars. The pay filters cost nothing extra: the pay comes with every job.

Companies that are unreachable or have no open roles are skipped β€” one bad company never sinks a run.