Greenhouse Jobs API: Search 165k+ Jobs from 4,000+ Companies avatar

Greenhouse Jobs API: Search 165k+ Jobs from 4,000+ Companies

Pricing

from $2.00 / 1,000 jobs

Go to Apify Store
Greenhouse Jobs API: Search 165k+ Jobs from 4,000+ Companies

Greenhouse Jobs API: Search 165k+ Jobs from 4,000+ Companies

Search 165,000+ open jobs from 4,000+ companies hiring on Greenhouse by title, place, remote and date. No board URLs. JSON, refreshed daily.

Pricing

from $2.00 / 1,000 jobs

Rating

0.0

(0)

Developer

Dodo Data

Dodo Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Features

Limited permissions

Share

Search 166,975 open jobs from 4,126 companies that hire through Greenhouse by title, place, remote and date, and get clean JSON back. No board URLs, no company list: type a job title, pick a time window, press Start. The index is built from each employer's own Greenhouse job board and refreshed daily (166,975 jobs on 13 November 2026, 13,381 of them published in the previous 7 days); the full text of every job you get back is fetched live from the employer's board at search time.

In one minute

  • What you get: one JSON row per Greenhouse job, newest first: title, company, location, remote flag, pay range as numbers when the employer publishes one, publish date, the date our index first saw it, the employer's apply link and the full text. The same 30 fields as Dodo Data's other career-site job Actors.
  • What it costs: $2.50 per 1,000 jobs on Apify's free plan, $2.00 on Gold and higher plans, plus a start fee of $0.00005 per GB of memory, one event at the default 1 GB. The prefilled search below returns 100 jobs: about $0.25 on the free plan. Apify's free plan includes $5 of usage every month.
  • Try it: click Start. The prefilled search ("software engineer") returned 100 of the 7,371 matching Greenhouse jobs (newest first, at most 10 per company) from 58 companies in 39 seconds on 13 November 2026 (a run of this code on our own machine), all 100 with full text and 56 with a pay range. About half of that time is loading the index and the rest is fetching the full text politely; with Include full descriptions off the same search took 17 seconds.

One real row from that run (description shortened):

{
"title": "Senior Staff Software Engineer",
"company": "workstream",
"company_name": "Workstream",
"location": "Singapore",
"workplace_type": null,
"remote": null,
"salary_min": null,
"salary_max": null,
"salary_currency": null,
"salary_period": null,
"posted_at": "2026-11-13T01:53:45.000Z",
"first_seen_at": "2026-10-27",
"apply_url": "https://job-boards.greenhouse.io/workstream/jobs/6260934004",
"description": "Workstream is a mission-driven company building the all-in-one HR, payroll, and hiring platform for managing the hourly…"
}

Which Dodo Data Actor do you need?

  • Greenhouse jobs from every company at once, by title, place and date: this Actor.
  • Every career-page system at once (Greenhouse and the others in one search): Career Site Jobs Search.
  • One company's Greenhouse board, read live from its URL: Greenhouse Jobs Scraper.
FilterWhat it does
Title keywordsa title word that starts with one of these ("engineer" also finds "Engineering Manager")
Exclude title wordsdrop titles containing one of these whole words (senior, intern)
Locations / Exclude locationswhole words in the location text: berlin, united kingdom, us, remote. Greenhouse gives no separate country, so a country is found only where the employer wrote it. united kingdom also tries UK, Great Britain, England, Scotland, Wales and Northern Ireland, and the word Wales also matches New South Wales: 154 of the 6,541 jobs that search found on 12 November 2026 are in Australia
Time range / Posted within (days)last 24 hours, 3, 7 or 30 days, by publish date; with both set, the narrower wins
Companies / Exclude companiesby name or Greenhouse board name (stripe, Figma)
Remote onlyjobs whose location says remote ("Remote - US"), about 1 Greenhouse job in 8. Greenhouse boards publish no workplace type, so there is no hybrid or on-site filter here
Only jobs with a pay rangethe index holds no Greenhouse pay, so matching jobs are read newest first and kept when their record states a range; jobs without pay are left out and not charged. "software engineer" read 185 jobs to return 100 with pay in 59 seconds (13 November 2026)
Seniorityas the title states it: intern, junior, senior, lead (staff, principal), director (VP, head of); most titles state no level, and "No level in the title" keeps those
Max jobs per companykeeps one company from filling a search: by default a tenth of the run (at least 2) while other companies match; when the other companies run out before Max rows is reached, the jobs held back fill the rest; 0 for no limit; off when you name companies
Include full descriptionson by default; off for faster, lighter rows
Max rowsup to 5,000 per run; it is also your spend cap. Rows come back newest first. With Max jobs per company on (the default) they are the newest of each company, not strictly the newest overall. On the prefilled search the two were the same 100 jobs on 13 November 2026 (no company had more than 10 of the 100 newest); a search that a few large companies dominate differs. Set Max jobs per company to 0 for the strictly newest. The form starts at 100; an API call or AI agent that leaves it out gets 20

Every filter runs before a row is saved, so you only pay for the jobs you get.

Greenhouse boards publish no employment type and no workplace type (remote is read from the location words), so this Actor offers no employment type or workplace type filter. If an API call sends an employment type, or a workplace type of hybrid or on-site, the run log says why that leaves every job out; a workplace type of remote is answered from the location words.

Only jobs with a pay range works differently here than on systems whose listings carry pay: the index holds no Greenhouse pay, so each matching job's own record is read, newest first, and the job is kept only when it states a range. A job read without one is left out and not charged. The search stops once it holds Max rows jobs with pay, once 4 x Max rows (at least 200) jobs have been read without pay (a company that states pay on at least half of its jobs is still read after that), or after 20 minutes of reading, and the run log says how many jobs were read and how many had pay. Measured on 13 November 2026 (a run on our own machine, Max rows 100): "software engineer" matched 7,371 jobs, read 185 and returned 100 with pay from 47 companies in 59 seconds. It works with full descriptions off too: the text is read for the pay and not saved.

Greenhouse locations are free text as the employer typed them ("New York, NY", "Remote - US"), with no separate country field, so a Locations word matches what the employer wrote. us also finds "United States" and "USA", but a job listed only as "New York, NY" names no country: add the cities or states you want (new york, ny, california).

How fresh it is

A private collector reads every Greenhouse board in the index every day and writes the result to the store this Actor searches; the run log says when it was last refreshed (13 November 2026, 02:59 UTC, for the runs on this page). A job the employer has closed leaves the index at the next refresh, within a day; until then it comes back without full text, because the text is always fetched live from the employer's board. first_seen_at is the date our index first listed the job, which is useful when an employer re-dates old postings. The index began on 22 October 2026, so no value is earlier: 126,505 of the 166,975 jobs carry 22 or 26 October 2026, which says when we started reading the board, not when the job opened.

Where the jobs come from

Only from each company's own public Greenhouse job board, through Greenhouse's public Job Board API (boards-api.greenhouse.io), the endpoint Greenhouse publishes so that companies' jobs can be shown anywhere. Which companies use Greenhouse was found from public web data (the Common Crawl URL index) and confirmed by reading each board. No aggregator, no LinkedIn, no Indeed, nothing behind a login. Every row links back to the employer's own posting; a company that wants its board left out can say so in the Issues tab and it is removed within 24 hours.

Pay ranges

Greenhouse boards that publish pay do it in their pay transparency field; when that is empty, a range written in the job text is read out ("$120,000 - $150,000", "272,000 USD - 431,250 USD"). Both are read live, together with the full text, so pay needs Include full descriptions on (or Only jobs with a pay range, which reads each job for its pay). salary_source says where the figures came from (structured or description) and salary_text holds the board's own label ("US Salary Range") or the words of the text. In the sample run, 56 of 100 jobs had pay: 25 from the boards' own field, 31 from the text. In the text, a figure labelled as a bonus, an equity grant or a sign-on amount is left out rather than mixed into base pay; where an employer states only a total cash range, the row carries that range and salary_text shows the employer's wording.

What we deliberately do not collect

  • No personal-data fields. In the job text, e-mail addresses, phone numbers in the usual formats and contact names next to a contact label are replaced with a marker such as [email removed]. The filter works on patterns: it can miss a name an employer writes into its own sentence, an address written as "name[at]company.com" or a number in an unusual format, and now and then it replaces an ordinary word after a job title. Tell us in the Issues tab and we fix the pattern.
  • Nothing behind a login, no candidate data, no tracking.
  • This Actor declares limited permissions: it can only write to its own storages on your account.

How to run it

  1. Click Start to run the prefilled search, or type your own title keywords.
  2. Narrow with locations, remote, a time range or companies. Set Max rows: newest first, and it caps your spend.
  3. Download as JSON, CSV or Excel, call it from the API, or let an AI agent call it through Apify's MCP server.
  4. For a daily feed of new Greenhouse jobs, schedule it daily with Time range: Last 3 days and keep only the ids you have not seen before: some boards date a job a day or two before our daily refresh reads it, so Last 24 hours can miss a few. Know the limit of a feed by date: of the 2,335 Greenhouse jobs our index listed for the first time on 12 November 2026, 440 on 237 boards were dated more than 3 days back, most of them more than a month. This feed does not return those. They are in the index, with first_seen_at set to the day we first listed them.

How long it takes: every run first loads the index: runs with nothing else to fetch took 17 to 18 seconds on our machine. Full text is then fetched politely, at most five requests a second, so 100 jobs add about half a minute; larger runs are mostly limited by that pace: about 20 minutes for 5,000 jobs at the pace measured here. With Include full descriptions off there is nothing to fetch: 5,000 jobs came back in 18 seconds (13 November 2026).

Ten real rows

The ten newest rows of the prefilled run of 13 November 2026 (descriptions shortened here to 160 characters; the dataset carries them in full):

[
{
"id": "greenhouse:abnormalsecurity:8196352003",
"ats": "greenhouse",
"company": "abnormalsecurity",
"company_name": "Abnormal",
"title": "Software Engineer I, Data Platforms",
"department": null,
"team": null,
"location": "Remote - USA",
"locations": [
"Remote - USA"
],
"country": null,
"workplace_type": "remote",
"remote": true,
"employment_type": null,
"experience_level": null,
"salary_min": 122400,
"salary_max": 176000,
"salary_currency": "USD",
"salary_period": "year",
"salary_text": "Base salary range:",
"posted_at": "2026-11-13T02:06:01.000Z",
"updated_at": "2026-11-13T02:06:01.000Z",
"requisition_id": "R-101390",
"description": "About the Role\nEnterprises of all sizes trust Abnormal AI’s cloud products to stop cybercrime. These AI-native, data-intensive SaaS applications depend on fast,…",
"apply_url": "https://abnormal.ai/careers/jobs/8196352003?gh_jid=8196352003",
"url": "https://abnormal.ai/careers/jobs/8196352003?gh_jid=8196352003",
"change_status": null,
"first_seen_at": "2026-11-13",
"last_seen_at": null,
"scraped_at": "2026-11-13T03:44:02.297Z",
"salary_source": "structured"
},
{
"id": "greenhouse:zscaler:5290020007",
"ats": "greenhouse",
"company": "zscaler",
"company_name": "Zscaler",
"title": "Software Engineering Architect, Machine Learning",
"department": null,
"team": null,
"location": "Bangalore, IND",
"locations": [
"Bangalore, IND"
],
"country": null,
"workplace_type": null,
"remote": null,
"employment_type": null,
"experience_level": null,
"salary_min": null,
"salary_max": null,
"salary_currency": null,
"salary_period": null,
"salary_text": null,
"posted_at": "2026-11-13T02:03:53.000Z",
"updated_at": "2026-11-13T02:04:08.000Z",
"requisition_id": "261109_I48372",
"description": "Zscaler (NASDAQ: ZS) accelerates digital transformation so customers can be more agile, efficient, resilient, and secure. The Zscaler Zero Trust Exchange platfo…",
"apply_url": "https://job-boards.greenhouse.io/zscaler/jobs/5290020007",
"url": "https://job-boards.greenhouse.io/zscaler/jobs/5290020007",
"change_status": null,
"first_seen_at": "2026-11-13",
"last_seen_at": null,
"scraped_at": "2026-11-13T03:44:02.297Z",
"salary_source": null
},
{
"id": "greenhouse:workstream:6260934004",
"ats": "greenhouse",
"company": "workstream",
"company_name": "Workstream",
"title": "Senior Staff Software Engineer",
"department": null,
"team": null,
"location": "Singapore",
"locations": [
"Singapore"
],
"country": null,
"workplace_type": null,
"remote": null,
"employment_type": null,
"experience_level": null,
"salary_min": null,
"salary_max": null,
"salary_currency": null,
"salary_period": null,
"salary_text": null,
"posted_at": "2026-11-13T01:53:45.000Z",
"updated_at": "2026-11-13T01:53:45.000Z",
"requisition_id": "ENG20",
"description": "Workstream is a mission-driven company building the all-in-one HR, payroll, and hiring platform for managing the hourly workforce. There are 2.7 billion hourly…",
"apply_url": "https://job-boards.greenhouse.io/workstream/jobs/6260934004",
"url": "https://job-boards.greenhouse.io/workstream/jobs/6260934004",
"change_status": null,
"first_seen_at": "2026-10-27",
"last_seen_at": null,
"scraped_at": "2026-11-13T03:44:02.297Z",
"salary_source": null
},
{
"id": "greenhouse:workstream:6260933004",
"ats": "greenhouse",
"company": "workstream",
"company_name": "Workstream",
"title": "Senior Staff Software Engineer",
"department": null,
"team": null,
"location": "Shanghai and Chengdu",
"locations": [
"Shanghai and Chengdu"
],
"country": null,
"workplace_type": null,
"remote": null,
"employment_type": null,
"experience_level": null,
"salary_min": null,
"salary_max": null,
"salary_currency": null,
"salary_period": null,
"salary_text": null,
"posted_at": "2026-11-13T01:53:22.000Z",
"updated_at": "2026-11-13T01:53:22.000Z",
"requisition_id": "ENG20",
"description": "Workstream is a mission-driven company building the all-in-one HR, payroll, and hiring platform for managing the hourly workforce. There are 2.7 billion hourly…",
"apply_url": "https://job-boards.greenhouse.io/workstream/jobs/6260933004",
"url": "https://job-boards.greenhouse.io/workstream/jobs/6260933004",
"change_status": null,
"first_seen_at": "2026-10-27",
"last_seen_at": null,
"scraped_at": "2026-11-13T03:44:02.297Z",
"salary_source": null
},
{
"id": "greenhouse:workstream:6260931004",
"ats": "greenhouse",
"company": "workstream",
"company_name": "Workstream",
"title": "Staff Software Engineer",
"department": null,
"team": null,
"location": "Singapore",
"locations": [
"Singapore"
],
"country": null,
"workplace_type": null,
"remote": null,
"employment_type": null,
"experience_level": null,
"salary_min": null,
"salary_max": null,
"salary_currency": null,
"salary_period": null,
"salary_text": null,
"posted_at": "2026-11-13T01:51:49.000Z",
"updated_at": "2026-11-13T01:51:49.000Z",
"requisition_id": "ENG-20",
"description": "Workstream is a mission-driven company building the all-in-one HR, payroll, and hiring platform for managing the hourly workforce. There are 2.7 billion hourly…",
"apply_url": "https://job-boards.greenhouse.io/workstream/jobs/6260931004",
"url": "https://job-boards.greenhouse.io/workstream/jobs/6260931004",
"change_status": null,
"first_seen_at": "2026-10-31",
"last_seen_at": null,
"scraped_at": "2026-11-13T03:44:02.297Z",
"salary_source": null
},
{
"id": "greenhouse:workstream:6260930004",
"ats": "greenhouse",
"company": "workstream",
"company_name": "Workstream",
"title": "Staff Software Engineer",
"department": null,
"team": null,
"location": "Shanghai and Chengdu",
"locations": [
"Shanghai and Chengdu"
],
"country": null,
"workplace_type": null,
"remote": null,
"employment_type": null,
"experience_level": null,
"salary_min": null,
"salary_max": null,
"salary_currency": null,
"salary_period": null,
"salary_text": null,
"posted_at": "2026-11-13T01:51:17.000Z",
"updated_at": "2026-11-13T01:51:17.000Z",
"requisition_id": "ENG-20",
"description": "Workstream is a mission-driven company building the all-in-one HR, payroll, and hiring platform for managing the hourly workforce. There are 2.7 billion hourly…",
"apply_url": "https://job-boards.greenhouse.io/workstream/jobs/6260930004",
"url": "https://job-boards.greenhouse.io/workstream/jobs/6260930004",
"change_status": null,
"first_seen_at": "2026-10-31",
"last_seen_at": null,
"scraped_at": "2026-11-13T03:44:02.297Z",
"salary_source": null
},
{
"id": "greenhouse:andurilindustries:5294106007",
"ats": "greenhouse",
"company": "andurilindustries",
"company_name": "Anduril Industries",
"title": "Staff Guidance Navigation and Control Software Engineer (GNC)",
"department": null,
"team": null,
"location": "Costa Mesa, California, United States; Santa Ana, California, United States",
"locations": [
"Costa Mesa, California, United States; Santa Ana, California, United States"
],
"country": null,
"workplace_type": null,
"remote": null,
"employment_type": null,
"experience_level": null,
"salary_min": 220000,
"salary_max": 292000,
"salary_currency": "USD",
"salary_period": "year",
"salary_text": "US Salary Range",
"posted_at": "2026-11-13T01:27:36.000Z",
"updated_at": "2026-11-13T01:28:01.000Z",
"requisition_id": "15743",
"description": "Anduril Industries is a defense technology company with a mission to transform U.S. and allied military capabilities with advanced technology. By bringing the e…",
"apply_url": "https://boards.greenhouse.io/andurilindustries/jobs/5294106007?gh_jid=5294106007",
"url": "https://boards.greenhouse.io/andurilindustries/jobs/5294106007?gh_jid=5294106007",
"change_status": null,
"first_seen_at": "2026-11-13",
"last_seen_at": null,
"scraped_at": "2026-11-13T03:44:02.297Z",
"salary_source": "structured"
},
{
"id": "greenhouse:robinhood:8384669",
"ats": "greenhouse",
"company": "robinhood",
"company_name": "Robinhood",
"title": "Senior Software Engineer, Trump Accounts",
"department": null,
"team": null,
"location": "Menlo Park, CA; New York, NY",
"locations": [
"Menlo Park, CA; New York, NY"
],
"country": null,
"workplace_type": null,
"remote": null,
"employment_type": null,
"experience_level": null,
"salary_min": 196000,
"salary_max": 230000,
"salary_currency": "USD",
"salary_period": "year",
"salary_text": "Zone 1 (Menlo Park, CA; New York, NY; Bellevue, WA; Washington, DC)",
"posted_at": "2026-11-13T00:34:27.000Z",
"updated_at": "2026-11-13T00:34:27.000Z",
"requisition_id": "1968",
"description": "Join us in building the future of finance.\nOur mission is to democratize finance for all. An estimated $124 trillion of assets will be inherited by younger gene…",
"apply_url": "https://boards.greenhouse.io/robinhood/jobs/8384669?t=gh_src=&gh_jid=8384669",
"url": "https://boards.greenhouse.io/robinhood/jobs/8384669?t=gh_src=&gh_jid=8384669",
"change_status": null,
"first_seen_at": "2026-11-13",
"last_seen_at": null,
"scraped_at": "2026-11-13T03:44:02.297Z",
"salary_source": "structured"
},
{
"id": "greenhouse:diracinc:4506200009",
"ats": "greenhouse",
"company": "diracinc",
"company_name": "Dirac, Inc.",
"title": "Software Engineer",
"department": null,
"team": null,
"location": "New York City",
"locations": [
"New York City"
],
"country": null,
"workplace_type": null,
"remote": null,
"employment_type": null,
"experience_level": null,
"salary_min": 120000,
"salary_max": 200000,
"salary_currency": "USD",
"salary_period": "year",
"salary_text": "New York Pay Range",
"posted_at": "2026-11-13T00:27:13.000Z",
"updated_at": "2026-11-13T00:30:45.000Z",
"requisition_id": "29",
"description": "About the Company\nDirac is building the creative suite for manufacturing engineering. Manufacturing engineering has been underserved by fractured tooling. The w…",
"apply_url": "https://job-boards.greenhouse.io/diracinc/jobs/4506200009",
"url": "https://job-boards.greenhouse.io/diracinc/jobs/4506200009",
"change_status": null,
"first_seen_at": "2026-11-13",
"last_seen_at": null,
"scraped_at": "2026-11-13T03:44:02.297Z",
"salary_source": "structured"
},
{
"id": "greenhouse:toast:8365546",
"ats": "greenhouse",
"company": "toast",
"company_name": "Toast",
"title": "Staff Software Engineer, Enterprise",
"department": null,
"team": null,
"location": "Remote, US",
"locations": [
"Remote, US"
],
"country": null,
"workplace_type": "remote",
"remote": true,
"employment_type": null,
"experience_level": null,
"salary_min": 193000,
"salary_max": 309000,
"salary_currency": "USD",
"salary_period": "year",
"salary_text": "Zone A",
"posted_at": "2026-11-12T23:29:15.000Z",
"updated_at": "2026-11-12T23:29:15.000Z",
"requisition_id": "R15558",
"description": "Toast creates technology to help restaurants and local businesses succeed in a digital world, helping business owners operate, increase sales, engage customers,…",
"apply_url": "https://careers.toasttab.com/jobs?gh_jid=8365546",
"url": "https://careers.toasttab.com/jobs?gh_jid=8365546",
"change_status": null,
"first_seen_at": "2026-11-13",
"last_seen_at": null,
"scraped_at": "2026-11-13T03:44:02.297Z",
"salary_source": "structured"
}
]
  • Career Site Jobs Search: the same index across every career-page system we read, in one search.
  • Greenhouse Jobs Scraper: one company's Greenhouse board, read live from its URL, with a monitor mode for new, changed and closed jobs.

Price

$2.50 per 1,000 jobs on Apify's free plan, less on paid plans: $2.30 on Bronze, $2.10 on Silver, $2.00 on Gold and above. Any change is announced 14 days ahead through Apify, as its rules require, and applies to every user alike.

Questions and feedback

Something missing, wrong or unclear? Open an Issue on this page: we answer within a day, and fixes usually ship within 48 hours. If the Actor saved you time, a short review here helps other people find it.

Changelog

  • 2026-11-13, v0.1: every number and sample row on this page measured again against the index of 13 November 2026 (166,975 Greenhouse jobs from 4,126 companies), the day the Actor went public. No change to the search itself.
  • 2026-11-12, v0.1: every number and sample row on this page measured again against the index of 12 November 2026 (167,747 Greenhouse jobs from 4,132 companies); the title now says 4,000+ companies. No change to the search itself.
  • 2026-10-29, v0.1: first build. Index of 168,884 Greenhouse jobs from 4,192 companies; measured on local runs against the live index on 29 October 2026.