Greenhouse Jobs API — Job Board Scraper avatar

Greenhouse Jobs API — Job Board Scraper

Pricing

$4.00 / 1,000 job returneds

Go to Apify Store
Greenhouse Jobs API — Job Board Scraper

Greenhouse Jobs API — Job Board Scraper

Scrape live job postings from Greenhouse job boards across thousands of companies. Uses the official public board API — never blocked, never rate limited.

Pricing

$4.00 / 1,000 job returneds

Rating

0.0

(0)

Developer

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Career Site Jobs API — Greenhouse, Ashby, Lever, Workday & 7 more

Job postings taken straight from the company's own career site, not from a job board that copied them three days ago. One run gives you a clean, deduplicated feed across 25,900 employers and 460,000+ open roles, with a direct apply link on every row.

Covers Greenhouse, Ashby, Lever, Workday, Workable, SmartRecruiters, Personio, Teamtailor, Recruitee, Breezy HR and BambooHR.

What people use it for

  • Recruiting and sourcing — see who is hiring for a role before it reaches the aggregators.
  • Sales prospecting — a company posting five backend roles is a company with budget. Job counts are one of the cleanest buying signals there is.
  • Market and salary research — track hiring volume by function, city or industry over time.
  • Building a job board — a live feed with apply links, no scraping stack to maintain.
  • Competitor tracking — watch a named list of companies and get told when they open a role.

Sample output

{
"platform": "greenhouse",
"company": "Stripe",
"companyToken": "stripe",
"title": "Machine Learning Engineer, Fraud",
"location": "Dublin",
"department": "Engineering",
"employmentType": "Full-time",
"remote": false,
"postedAt": "2026-09-02T11:04:18Z",
"url": "https://job-boards.greenhouse.io/stripe/jobs/8172487",
"scrapedAt": "2026-09-10T06:41:02.551Z"
}

Export as JSON, CSV, Excel or XML, hit it from the API, or put it on a schedule so a fresh feed lands every morning.

Why runs do not fail

Every platform here publishes an official, public JSON endpoint for its job boards — the same one the employer's own careers page calls. So there is no HTML parsing that breaks when a site is restyled, no login, no proxies, and no rate-limit roulette.

Two things keep the failure rate at zero rather than merely low:

  • Dead boards are pruned before publishing. Every company in the index is contacted and confirmed answering; the ones that have moved off the platform never cost you a request. Employers with nothing open today are kept but sorted last.
  • Each platform gets its own request budget. Workable starts refusing at any real concurrency, so it is throttled separately and retried with backoff instead of being allowed to fail. Measured over a 1,000-job run: 125 career sites polled, 0 failures.

Measured on the live index:

runtimeemployers coveredfailures
100 jobs, no filter1.4 s100
1,000 jobs, no filter2.2 s1000
500 jobs posted in the last 7 days1.9 s580
1,000 remote engineering roles38 s3120

Options

Every field is optional — run it with the defaults and you get jobs straight away.

OptionWhat it does
keywordsKeep jobs whose title or department matches, e.g. ["engineer", "data"]
locationsKeep jobs whose location matches, e.g. ["London", "Berlin"]
remoteOnlyKeep only postings the employer flagged remote
postedWithinDaysDrop anything older, e.g. 7 for this week's openings
excludeKeywordsDrop titles containing these, e.g. ["intern"]
platformsRestrict to certain applicant tracking systems
maxJobsPerCompanySpread results across employers instead of filling the run from the largest one
companiesWatch a named list instead of the whole index, e.g. ["stripe", "ashby:ramp"]
maxItemsStop after this many matching jobs — this is what you pay for
maxCompaniesCap how many career sites to contact

Watching a specific set of companies

{
"companies": ["stripe", "airbnb", "ashby:ramp"],
"postedWithinDays": 7,
"maxItems": 500
}

This week's remote engineering roles

{
"keywords": ["engineer", "developer"],
"remoteOnly": true,
"postedWithinDays": 7,
"maxItems": 1000
}

Pricing

Pay per job returned. You are charged for rows you actually receive — a run that matches nothing costs nothing beyond the start event. Set maxItems to cap the spend.

Notes

Only publicly listed job postings are returned, from endpoints the employers publish for exactly this purpose. No personal data of any applicant is collected.