Greenhouse Jobs Scraper - Job Boards by Company Name avatar

Greenhouse Jobs Scraper - Job Boards by Company Name

Pricing

from $1.50 / 1,000 job records

Go to Apify Store
Greenhouse Jobs Scraper - Job Boards by Company Name

Greenhouse Jobs Scraper - Job Boards by Company Name

Scrape all open jobs from Greenhouse job boards (boards.greenhouse.io) by company name, domain or board URL. Salary-ready schema, title/location/remote/date filters, new & closed job tracking and a hiring summary per company. $1.50 per 1,000 jobs.

Pricing

from $1.50 / 1,000 job records

Rating

0.0

(0)

Developer

HireWatch

HireWatch

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Greenhouse Jobs Scraper: job boards by company name, with salaries

Scrape all open jobs from any company's Greenhouse job board. Just type a company name (e.g. Airbnb), a website domain (e.g. figma.com) or the board URL. You get clean, flat JSON, CSV or Excel with published salary ranges, full descriptions, and filters for title, location, remote and posted date. Every run labels jobs new / unchanged / closed, so a daily schedule becomes a hiring-change feed.

Independent tool: not affiliated with, endorsed by or sponsored by Greenhouse Software, Inc. "Greenhouse" is used only to describe which job boards this works with.

What you can use it for

  • Sales and recruiting signals. See which startups and tech companies are hiring, in which teams, and how fast.
  • Salary research. Many Greenhouse boards publish pay ranges, returned as salaryMin, salaryMax, salaryCurrency and salaryInterval.
  • Job boards and newsletters. Get complete listings straight from the source with descriptions included.
  • Candidates. Get new roles at your target companies as soon as they're posted.

Why this Greenhouse scraper

  • Company-name lookup. Airbnb, Scale AI and figma.com all work. The Actor tries the usual board spellings, then the company's /careers page.
  • Accepts any Greenhouse link: boards.greenhouse.io/<company>, job-boards.greenhouse.io/<company>, embed links, or a careers page with an embedded Greenhouse board.
  • Salary ranges from Greenhouse pay transparency, wherever the company publishes them.
  • Filters: title keywords, location keywords, remote only, posted within N days, max jobs per company, and an overall maxItems cap.
  • New / closed tracking between runs, plus an optional hiring-signal summary per company: open jobs, new and closed jobs, trend, jobs posted in the last 7 and 30 days, top departments and locations.
  • Fast and polite. A whole board comes back in one request, and descriptions add no extra requests. It uses Greenhouse's public job-board API, needs no login, and respects robots.txt. Contact details are never collected, and e-mails and phone numbers in descriptions are masked.

Input examples

By company name, domain or URL:

{
"targets": ["Airbnb", "figma.com", "https://boards.greenhouse.io/stripe"],
"maxJobsPerCompany": 0
}

Remote jobs posted in the last 30 days, with descriptions:

{
"targets": ["Stripe", "Databricks"],
"remoteOnly": true,
"postedWithinDays": 30,
"includeDescriptions": true
}

Daily change feed for engineering roles (schedule it daily):

{
"targets": ["Stripe", "Anthropic", "Databricks"],
"maxJobsPerCompany": 0,
"outputMode": "changesOnly",
"titleKeywords": ["engineer"]
}

Output

One row per job (real example from a test run, trimmed):

{
"recordType": "job",
"platform": "greenhouse",
"companySlug": "airbnb",
"companyName": "Airbnb",
"jobId": "8184174",
"globalId": "greenhouse:airbnb:8184174",
"title": "Account Manager",
"department": "Business Development",
"location": "London, United Kingdom",
"postedAt": "2026-09-09T08:35:19Z",
"salaryText": "GBP 46,000 - 54,000 (United Kingdom Annual Pay Range)",
"salaryMin": 46000.0,
"salaryMax": 54000.0,
"salaryCurrency": "GBP",
"salaryInterval": "year",
"url": "https://careers.airbnb.com/positions/8184174?gh_jid=8184174",
"changeStatus": "new",
"firstSeenAt": "2026-10-11T23:19:14Z"
}

Every row has the same fields (missing values are null), including remoteType, employmentType, requisitionId, descriptionText and descriptionHtml. globalId stays the same across runs, so use it as your key. changeStatus is new, unchanged or closed (with closedAt). Optional company_summary rows hold the hiring signals, which are also saved as COMPANY_SUMMARIES. A per-company RUN_REPORT shows status and errors, such as a name with no matching board.

Pricing (pay per event)

  • $1.50 per 1,000 job records ($0.0015 per job, including jobs labelled closed)
  • $0.01 per company summary (optional; turn off includeCompanySummary to skip it)

Examples: all ~730 Stripe jobs ≈ $1.10. 50 companies with ~150 jobs each ≈ $11.75. A daily changes-only feed for 50 companies ≈ $0.50–$1 per day. You pay only for results. Set Maximum cost per run (or maxItems) to cap spending.

Tips & limits

  • Name lookups check a few spellings (e.g. Scale AI → scaleai, scale-ai). If the board found isn't the one you meant, pass the URL instead. The run report says which board each name resolved to.
  • Remote: Greenhouse has no remote flag, so a job counts as remote when its location says "Remote".
  • Closed jobs are only reported when the whole board was fetched in both runs, so use maxJobsPerCompany: 0 for tracking.
  • EU-hosted boards (job-boards.eu.greenhouse.io) are not supported yet.

Use with AI agents / MCP

This Actor is built to be called by AI agents (Grok Bot, Claude, ChatGPT, Cursor, LangChain and others) through the Apify MCP server or the Apify API.

  • Add only this tool: https://mcp.apify.com?tools=hirewatch/greenhouse-jobs-scraper. You can also let your agent find it through search-actors.
  • Keep calls small so they finish fast. The MCP call-actor tool waits up to 45 seconds, so set maxItems (e.g. 50) and maxJobsPerCompany (e.g. 100), and leave includeDescriptions off unless you need the text. Cap spend with maxTotalChargeUsd in callOptions.
  • Read results with get-dataset-items using the run's datasetId. Each row has recordType: job rows share one flat schema, and company_summary rows hold the hiring signals. Per-company errors are in the RUN_REPORT key-value record, so one bad input never fails the whole run.
  • Pay without an Apify account. The Actor uses pay-per-event pricing with limited permissions, so agents can pay per run with agentic payments (x402 / MPP prepaid tokens or Skyfire).

Minimal agent call:

{
"targets": [
"Stripe"
],
"titleKeywords": [
"engineer"
],
"postedWithinDays": 14,
"maxItems": 50,
"includeCompanySummary": false
}

Other HireWatch jobs Actors

ActorBest for
Workday Jobs ScraperWorkday career sites (*.myworkdayjobs.com), including sites with more than 2,000 jobs
Greenhouse Jobs ScraperGreenhouse boards by company name or domain, with published salary ranges
Lever Jobs ScraperLever boards (jobs.lever.co) by company name or domain, with salaries and remote/hybrid type
Ashby Jobs ScraperAshby boards (jobs.ashbyhq.com), popular with startups and AI companies, with salary ranges
Workday, Greenhouse, Lever, Ashby & Oracle Jobs ScraperMixed lists across all five platforms in one run and one schema
Website Tech Stack Detector + DMARC/SPF CheckerFind out what the hiring companies' websites are built with

All of them use the same output schema and the same new/closed tracking, so you can combine their datasets.

It reads only publicly available job postings from Greenhouse's public job-board API, which employers use to publish their jobs. It does not log in or bypass any access control, and it follows robots.txt. Job postings are not personal data, but you are responsible for how you use the results and for following the laws and site terms that apply to you.

Support

A company that doesn't resolve, or a board that fails? Open an issue on the Issues tab.