Greenhouse Jobs API & Scraper – Salaries, New-Job Alerts avatar

Greenhouse Jobs API & Scraper – Salaries, New-Job Alerts

Pricing

from $1.50 / 1,000 job results

Go to Apify Store
Greenhouse Jobs API & Scraper – Salaries, New-Job Alerts

Greenhouse Jobs API & Scraper – Salaries, New-Job Alerts

Live jobs from any Greenhouse board, or 102 curated companies by industry (AI, fintech, devtools), with parsed salaries. New-jobs-only alerts: pay only for unseen jobs. $1.50/1,000 jobs. Not affiliated with Greenhouse.

Pricing

from $1.50 / 1,000 job results

Rating

0.0

(0)

Developer

Bin

Bin

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Share

Get every open job from any Greenhouse job board in one run — clean JSON with title, department, location, remote flag, employment type, structured salary, posting date and job URL. Paste board URLs or just company names. Companies such as Stripe and Airbnb publish their jobs on Greenhouse boards.

No board names at hand? Pick a company preset — 102 curated companies that hire on Greenhouse, grouped by industry and checked live — and filter by keyword and location.

Turn on "Only new jobs since last run" and schedule it daily: you get a new-jobs alert feed and you only pay for jobs you haven't seen before.

Independent tool, not affiliated with or endorsed by Greenhouse.

Why this Greenhouse scraper

  • 📋 The whole board, live — reads Greenhouse's public Job Board API (boards-api.greenhouse.io/v1/boards/...) at run time, so you get the jobs that are online right now for the companies you choose, not a stale database snapshot.
  • 🆕 New-jobs-only mode — remembers what it already returned (per alert name) and outputs only new postings. Perfect for daily alerts, sales triggers and job-board feeds.
  • 💰 Structured salaries — salaryMin, salaryMax, salaryCurrency, salaryPeriod. Turn on Only jobs with salary to keep just the roles that publish pay.
  • 🧩 requisitionId and offices straight from Greenhouse; salaries are parsed from the job description (Greenhouse has no public salary field)
  • 📊 Company hiring signals — outputLevel: "companies" gives one row per company: open jobs, new jobs in the last 7 / 30 / 90 days, function & seniority mix, remote share, salary transparency, and new / closed jobs since your last run.
  • 🗂️ Company presets — 102 curated Greenhouse employers in 7 industry lists (ai, fintech, devtools, saas, consumer, hardware, health), verified against the live API. Search a whole sector without collecting board names first.
  • 🎯 Filters — title keywords, excluded words, departments, locations, remote only, posted within N days, max jobs per board.
  • 🤝 Polite and compliant — reads robots.txt before anything else and obeys it (boards-api.greenhouse.io robots.txt only disallows /embed/; the Actor reads /v1/boards/...); at most 2 requests per second; identifies itself with a clear User-Agent. Public job postings only, no login, no personal data.
  • ⚡ Fast and cheap — no browser, no proxy. A typical board takes 1–3 seconds.

Use cases

  • Sales prospecting / hiring signals — a company hiring "Data Engineer" or "Head of Security" is a buying signal. Monitor target accounts daily.
  • Job boards & newsletters — feed a niche board (remote, AI, fintech, climate…) from hundreds of Greenhouse boards.
  • Recruiters & agencies — see new roles the day they go live.
  • Sector job search — e.g. every remote engineering role at AI companies on Greenhouse, from a preset, in one run.
  • Market and salary research — headcount growth by department and location, published pay ranges.

Input

Board names or URLs — any of these work:

  • https://boards.greenhouse.io/stripe
  • https://job-boards.greenhouse.io/stripe/jobs/123
  • https://boards.greenhouse.io/embed/job_board?for=stripe
  • https://boards-api.greenhouse.io/v1/boards/stripe
  • Plain company name or domain: stripe, stripe.com (tried as the board name; if it isn't found, paste the board URL)

Daily alert for engineering jobs in two cities:

{
"companies": [
"stripe",
"https://boards.greenhouse.io/airbnb"
],
"keywords": [
"engineer"
],
"locations": [
"Remote",
"New York"
],
"onlyNewJobs": true,
"stateKey": "greenhouse-daily"
}

A whole industry from a company preset (no board names needed), new jobs only:

{
"companyPresets": [
"ai"
],
"keywords": [
"engineer"
],
"remoteOnly": true,
"onlyNewJobs": true,
"stateKey": "ai-remote-eng"
}

Hiring signals, one row per company (schedule weekly, same stateKey each time):

{
"companies": [
"stripe",
"https://boards.greenhouse.io/airbnb"
],
"outputLevel": "companies",
"stateKey": "target-accounts"
}

Company presets

Curated lists of companies whose jobs are on Greenhouse, checked against the live Greenhouse API on 2026-10-08 (boards with no open job, or belonging to a different company than the name suggests, were left out). Every job row and company row from a preset carries presets (the lists it came from). If a company later leaves Greenhouse, the run skips it with a note in the log and lists it under notFound in SUMMARY.

PresetCompaniesBoardsExamples
aiAI & machine learning — AI labs and AI-native startups13databricks, anthropic, coreweave, xai, scaleai, gleanwork, …
fintechFintech & crypto — payments, banking, crypto, spend management, payroll20stripe, toast, brex, adyen, coinbase, affirm, …
devtoolsDeveloper tools & cloud — dev platforms, infrastructure, data, security29databricks, datadog, cloudflare, elastic, mongodb, okta, …
saasB2B SaaS — sales, marketing, support, collaboration and HR software11braze, klaviyo, intercom, smartsheet, mixpanel, cultureamp, …
consumerConsumer & marketplaces — consumer apps, social, marketplaces, gaming18doordashusa, roblox, lyft, pinterest, airbnb, reddit, …
hardwareRobotics, autonomy & space — self-driving, robotics, defense tech, aerospace8spacex, rocketlab, waymo, relativity, astranis, nuro, …
healthHealth & biotech — digital health, insurance, biotech4onemedical, oscar, flatironhealth, komodohealth

Output

One item per job (real example from a test run; description omitted). salary is Greenhouse's own pay text (empty when the ATS has no salary field); salaryMin / salaryMax / salaryCurrency / salaryPeriod are always filled when a range is published — from the structured field or parsed from the description.

{
"id": "8177860",
"title": "Senior Software Engineer, Docs Product",
"company": "Stripe",
"department": "Global Operations",
"location": "New York, NY",
"remote": false,
"employmentType": null,
"salary": null,
"postedAt": "2026-09-03T18:24:41.000Z",
"updatedAt": "2026-09-25T20:45:02.000Z",
"url": "https://stripe.com/jobs/search?gh_jid=8177860",
"requisitionId": "See Opening ID",
"offices": [
"US-PERM"
],
"salaryMin": 190400,
"salaryMax": 285600,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"ats": "greenhouse",
"atsSlug": "stripe",
"input": "stripe",
"scrapedAt": "2026-10-07T09:21:47.030Z"
}

Every run also writes a SUMMARY record: boards found, jobs per board, notFound, wrongAts (URLs of other ATSs), robotsBlocked, and stoppedEarly if the run hit its timeout.

Export as JSON, CSV or Excel, or send results to Google Sheets, Slack, Zapier, Make or a webhook with Apify integrations.

Pricing

$1.50 per 1,000 jobs, pay per result, no subscription. The first run returns (and charges) every open job on your boards; after that, new-jobs-only mode charges only for jobs you haven't seen. The monthly free credit of Apify's free plan covers your first runs.

Company hiring-signals rows (outputLevel: "companies"): $0.01 per company; job rows are not charged in that mode.

FAQ

How do I find a company's Greenhouse board? Open any job on the company's careers page; if the address contains boards.greenhouse.io, paste it. Many companies show Greenhouse jobs on their own domain — open a job and look for the apply link.

Can I search all companies on Greenhouse? Greenhouse has no public list of every board. Use the company presets (102 curated employers) and add any other board by name or URL in companies; both can be combined in one run.

The company isn't found. The board name can differ from the brand (e.g. teampicnic). Paste a job URL from the careers page. If the company uses a different ATS, try the Company Jobs Scraper — it auto-detects 15 ATSs.

I pasted a Lever / Ashby / Workable / Workday URL here. The Actor skips it and tells you which of our Actors handles it (see wrongAts in SUMMARY).

How does "only new jobs" work? Job IDs already returned are stored in a key-value store owned by this Actor, under your alert name (stateKey). The next run with the same name outputs only jobs that were not there before. Use a different name per alert.

How are salaries detected? Greenhouse has no public salary field, so the first pay range in the description is parsed (currency symbol or code required, so years such as 2010-2020 are ignored; funding amounts like $20-30 million are skipped). Jobs without a published range have null.

Is this legal? The Actor reads only public job postings that companies publish through Greenhouse's public job-board interface, follows robots.txt and rate limits, and collects no personal data. It does not log in or bypass any protection.

Can I use it as an API? Yes — call the Actor through the Apify API (run-sync-get-dataset-items) from your code, Make, Zapier, n8n or an AI agent via the Apify MCP server.

More tools from the same developer