Greenhouse Jobs Scraper — All Jobs, Salaries & New Roles avatar

Greenhouse Jobs Scraper — All Jobs, Salaries & New Roles

Pricing

from $0.01 / job scraped

Go to Apify Store
Greenhouse Jobs Scraper — All Jobs, Salaries & New Roles

Greenhouse Jobs Scraper — All Jobs, Salaries & New Roles

Scrape every open job from any company's Greenhouse board: full descriptions, departments, locations, salary when disclosed. Tracks which roles appeared and closed since your last run. No API key.

Pricing

from $0.01 / job scraped

Rating

0.0

(0)

Developer

Yuliia Kulakova

Yuliia Kulakova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

Greenhouse Jobs Scraper — every job, salaries, new & closed roles

Every open job at any company that hires through Greenhouse — full descriptions, departments, locations, disclosed salaries — and, on repeat runs, exactly which roles appeared and which closed.

No login, no API key. One request per company covers the whole board.


What you get

Point it at company slugs (the last part of a boards.greenhouse.io address):

{
"companies": ["stripe", "airbnb", "gitlab"]
}

An unedited record from testing:

{
"companySlug": "gitlab",
"title": "Commercial Legal Counsel, Public Sector",
"location": "Remote, US",
"isRemote": true,
"departments": ["Legal and Corporate Affairs"],
"salaryMin": 115000,
"salaryMax": 162000,
"salaryCurrency": "USD",
"salaryRaw": "$115,000—$162,000",
"description": "GitLab is an open core software company…",
"daysOpen": 12,
"postingAge": "RECENT",
"isNewSinceLastRun": true,
"firstPublished": "2026-08-05",
"applyUrl": "https://about.gitlab.com/jobs/apply/…",
"scrapedAt": "2026-08-17T07:20:00.000Z"
}

Measured on live boards: Stripe returns 578 open roles, Cloudflare 304, GitLab 197, Airbnb 185 — each in a single request, a few seconds per company.


Track hiring, not just jobs

With trackChanges: true (default), every run remembers the board and the next run tells you what moved:

gitlab: 197 open jobs, 60 match filters | 4 new, 2 closed since 2026-08-10
  • Every job carries isNewSinceLastRun.
  • Set newJobsOnly: true and scheduled runs deliver just the fresh roles — a hiring feed for the companies you care about.
  • "New" always means new on the company's board. Changing your filters between runs never relabels old jobs as new — the snapshot tracks the board, not your query.

Why that matters: a new posting is a signal. Sales teams read "3 new DevOps roles at X" as a buying signal, recruiters get first-mover advantage on fresh openings, analysts read hiring velocity as company health.


Salary data — the honest version

Greenhouse has no structured salary field. Salaries appear in the description text when pay-transparency laws or company policy require them, and this scraper extracts the range into salaryMin / salaryMax / salaryCurrency.

Coverage measured on live boards: Airbnb 73%, GitLab 36%, Stripe 2% of postings disclose a range. It varies exactly this much between companies — any tool promising salaries for every job is making them up. Use minSalary knowing it also drops every posting that discloses nothing.


Filters

InputWhat it does
keywords / excludeKeywordsMatch against title, department and full description
locationse.g. ["remote", "london", "new york"]
departmentse.g. ["engineering", "sales"]
remoteOnlyTitle or location marked remote
postedAfterOnly roles first published since a date
minSalaryOnly roles whose disclosed range reaches the number
newJobsOnlyOnly roles that appeared since the previous run

A typical monitoring setup:

{
"companies": ["stripe", "gitlab", "figma", "cloudflare"],
"keywords": ["engineer", "developer"],
"remoteOnly": true,
"trackChanges": true,
"newJobsOnly": true
}

Schedule it daily and the dataset is your feed of new remote engineering roles at those companies.


Use cases

  • Recruiting — monitor competitors' boards; fresh postings mean active budgets and fair game for sourcing.
  • Sales intelligence — new roles reveal initiatives: a company posting three data-platform jobs is about to buy data tooling.
  • Job search — watch your target companies and apply on day one, not week three.
  • Market research — hiring velocity and department mix across a portfolio of companies.
  • HR analytics — how long roles stay open (daysOpen, postingAge) and where teams are growing.

Limitations, honestly

You supply the company list. Greenhouse has no public directory of all boards; the actor scrapes the companies you name. A wrong slug is reported clearly ("xyz" is not a Greenhouse board) and does not break the run.

Salary coverage varies by company — see above. The field is extracted, never estimated.

Greenhouse boards only. Companies hiring through Lever, Ashby or Workday are different systems — this actor does one system well.

Remote detection is heuristic. A role is flagged remote when its title or location says so. Companies with unusual conventions may need the locations filter instead.


FAQ

Do I need an API key or Greenhouse account? No. The board API is public.

How fast is it? One request per company. Two large boards (763 jobs combined) returned in 5 seconds in testing.

How do I find a company's slug? Open their careers page and look for boards.greenhouse.io/<slug> or job-boards.greenhouse.io/<slug> — pass the slug or the whole URL.

Can it discover which companies use Greenhouse? No — no such public index exists. Curate your list once; the actor handles the rest on schedule.

What happens on the very first run? All jobs return with isNewSinceLastRun: null and the baseline is saved; deltas start from the second run.


Maintained by brilliant_gum. Issues and feature requests welcome on the Issues tab.