Greenhouse Jobs Scraper avatar

Greenhouse Jobs Scraper

Pricing

from $1.12 / 1,000 jobs

Go to Apify Store
Greenhouse Jobs Scraper

Greenhouse Jobs Scraper

[$1.60/1K jobs] Scrape every open job from any company's Greenhouse board: title, department, location, remote flag, salary range when posted, date, full description, apply link, emails. Filter by title, location, remote, date. No login.

Pricing

from $1.12 / 1,000 jobs

Rating

0.0

(0)

Developer

Matvey

Matvey

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

3 days ago

Last modified

Share

Greenhouse Jobs Scraper downloads every open job from the Greenhouse job boards of the companies you list. Give it company slugs (stripe) or careers URLs (https://job-boards.greenhouse.io/anthropic), press Start, and get one row per job: title, department, location, remote / hybrid / on-site, salary when the company publishes it, publish date, the full description, the job and apply links, and any recruiter emails written in the posting. Filter by title keywords, location, workplace and date. No login, no API key, no browser. Export JSON, CSV or Excel, schedule it, or call it from the API.

This Actor is a focused entry point for the query "greenhouse jobs". It runs the same engine as Jobs API — Indeed, LinkedIn & career sites, which also reads Greenhouse, Lever, Ashby, Workable and SmartRecruiters boards and searches Indeed and LinkedIn. Use Jobs API when you need several systems or job boards in one run.

What does the Greenhouse jobs scraper do?

Greenhouse is the applicant-tracking system behind the careers pages of thousands of companies. Every company on Greenhouse has a public job board (boards.greenhouse.io/<slug>, job-boards.greenhouse.io/<slug>), and Greenhouse serves that board through a public JSON API (boards-api.greenhouse.io). This Actor reads that API for each company in your list — one request returns the whole board, with descriptions — and turns it into clean rows in the same format for every company.

  • Whole boards in seconds. A company with 800 open roles is one request, not 800 page visits.
  • Filters applied for you: title keywords, locations, remote / hybrid / on-site, posted within a day / week / month or after a fixed date. Jobs come newest first, so a per-company cap keeps the freshest ones.
  • Normalised fields you can sort and join: ISO dates, isRemote and workplaceType, salaryMin / salaryMax as numbers.
  • Nothing silently disappears. A company slug that does not exist on Greenhouse gets its own free error row saying so; a run where the filters left nothing gets a free row explaining which filter to widen.

What it does not do: it does not search all Greenhouse companies at once — you give the companies. There is no global directory of Greenhouse boards in this Actor. If you need a keyword search across the whole job market, use Jobs API (Indeed + LinkedIn).

What data does it return?

FieldExample
source, board, id, urlgreenhouse · gitlab · 8859063002 · https://job-boards.greenhouse.io/gitlab/jobs/8859063002
title, company, departmentSupport Engineer, U.S. Government Support · GitLab · PubSec Customer Support
location, isRemote, workplaceTypeRemote, United States · true · remote
salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryText95200 · 160800 · USD · year · "United States Salary Range $95,200 – $160,800 USD"
postedAt2026-10-05T19:24:21.000Z (first published)
employmentType, jobTypeswhen the company fills Greenhouse's "Employment type" field, else null
description, descriptionHtmlfull text and HTML
emails, phones, companyDomainaddresses written in the posting · domain from the apply link when it is the company's own site
query, scrapedAt(empty for boards) · run time
  • Salary comes from Greenhouse's pay-transparency block, which many US companies add to the posting (checked 06.10.2026: Anthropic 567 of 645 jobs, Airbnb 120 of 151, GitLab 94 of 210; Stripe and Discord 0). Only that block is read, never loose numbers in the text, so when a company does not publish a range the salary fields are null. Turning off descriptions also turns off the salary.
  • Workplace: Greenhouse has no remote/hybrid field. A job counts as remote when its location says "Remote" (e.g. Remote, United States), hybrid when it says "Hybrid". A remote job whose location is just a city is not caught by the "Remote only" filter.
  • Company is the name Greenhouse shows on the board.

How much does it cost?

$1.60 per 1,000 jobs ($0.0016 per job row) on the Free plan, down to $1.12 per 1,000 on higher Apify plans. No fee per run, per company or per request. Error rows (unknown company, a board that did not answer) and the "nothing matched" explanation row are free. Jobs removed by your filters are not charged — you pay only for rows in the dataset.

Example: 10 companies × 150 open jobs = 1,500 rows = $2.40 on the Free plan. Filter to "engineer" + "remote" and you pay only for those rows.

How to scrape Greenhouse jobs

  1. Open the Input tab.
  2. Put company slugs or careers URLs into 🏢 Companies on Greenhouse, one per line. The slug is the part after the board domain: in https://job-boards.greenhouse.io/anthropic it is anthropic.
  3. Optional: add Title keywords, Locations, Workplace and Posted within.
  4. Press Start, then download the results from the Output tab, or read them through the API.

An empty API call works too: with no companies, the Actor returns a demo — the 20 newest jobs each from gitlab, discord and airbnb.

⬇️ Input

{
"companies": ["anthropic", "https://job-boards.greenhouse.io/gitlab", "airbnb"],
"titleKeywords": ["engineer"],
"workplace": "remote",
"postedWithin": "month"
}
FieldDefaultWhat it does
companiesdemoGreenhouse board slugs or careers URLs. A URL from another supported system (Greenhouse, Lever, Ashby, Workable, SmartRecruiters) also works
titleKeywordsemptyKeep jobs whose title or department contains one of the words
locationsemptyKeep jobs whose location contains one of the texts
workplaceanyremote, hybrid or onsite
postedWithin / postedAfteranyDrop older jobs (day, 3days, week, month, or a YYYY-MM-DD date)
maxJobsPerCompanyallCap per board after the filters, newest first
maxItems100,000Cap for the whole run
includeDescriptiontrueFull description text and HTML
includeContactstrueEmails and phones found in the posting, free
concurrency, proxyConfiguration5, offBoards read at once; no proxy needed — if a board refuses a direct request it is retried once through Apify Proxy

⬆️ Output

One row per job with "type": "job". Free rows with "type": "error" explain a company that could not be read or a search that matched nothing. Download as JSON, CSV, Excel or XML, or get it from the API (/datasets/{id}/items). A JSON summary of the run is saved as STATS in the key-value store.

Use cases

  • Job boards and aggregators: pull the full, current list of roles from the companies you track, every day.
  • Recruiting and sourcing: watch competitors' and target companies' openings by department and location.
  • Sales and lead generation: a company hiring five sales engineers is a company buying sales tools — filter by title and push to your CRM.
  • Market and salary research: compare published salary ranges by role, location and company.
  • Job alerts: schedule a daily run with postedWithin: "day" and send new postings to Slack, email or a Google Sheet.

Tips

  • Many companies use different systems for different brands. If a slug returns "not found", open the company's careers page and look at the job links: greenhouse.io, lever.co and ashbyhq.com tell you which system and slug to use.
  • For a daily feed use Schedules with postedWithin: "day" (or postedAfter set to yesterday) so you pay only for new jobs.
  • Everything in this Actor is available from the API and to AI agents through the Apify MCP server.

❓ FAQ

Is it legal? It reads job postings that companies publish publicly on purpose, through the public API Greenhouse provides for job boards. Check your own use against the laws that apply to you, especially if you process personal data such as recruiter emails.

Why is a company missing jobs I see on its website? Some companies list a part of their roles on another system or hide internal postings from the public board. This Actor returns exactly what the public Greenhouse board shows.

Can I search all Greenhouse companies by keyword? Not with this Actor — you give the companies. For a market-wide keyword search use Jobs API.

Your feedback

Found a bug or a board that does not parse well? Open an issue on the Issues tab — we fix reports quickly.