Greenhouse Jobs Scraper avatar

Greenhouse Jobs Scraper

Pricing

from $1.50 / 1,000 job items

Go to Apify Store
Greenhouse Jobs Scraper

Greenhouse Jobs Scraper

Greenhouse jobs scraper for any company board via the official public Job Board API: every pay range, departments, offices and optional application questions. Schedule changes mode for only new, updated and closed jobs. $1.50 per 1,000 jobs. Unofficial; not affiliated with Greenhouse.

Pricing

from $1.50 / 1,000 job items

Rating

0.0

(0)

Developer

Tallow Lane Labs

Tallow Lane Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

Greenhouse Jobs Scraper: pay ranges and new-job alerts from any Greenhouse job board

Greenhouse jobs scraper for any company board (Anthropic, Airbnb, Figma, Databricks, Discord and thousands more). Scrape Greenhouse job postings from Greenhouse's official public Job Board API, with every published pay range, departments, offices and, optionally, the application questions. Schedule it in changes mode and each run returns only new, updated and closed jobs.

What monitoring costs: watching one 100-job board daily in changes mode costs about $0.23 a month (about 3 changed jobs a day; $0.045 if nothing changes; plus a one-time $0.15 baseline on the first run), versus about $4.55 a month to download the full board every day as a snapshot. These prices apply from Nov 3, 2026, 10:57 AM ET, when the per-run start fee dropped from $0.005 to $0.0005; before that, the same watch cost about $0.36 a month.

By Tallow Lane Labs. Unofficial tool; not affiliated with, endorsed by or sponsored by Greenhouse Software, Inc.

Why this one

  • Every pay range, not just the first. payRanges lists each range the company publishes (per location or level) with currency, pay period and the employer's pay note; salary holds the first for filtering.
  • Deep Greenhouse fields: departments and offices with IDs and parent IDs (rebuild the org tree), requisitionId, updatedAt, educationRequirement, applicationDeadline.
  • Application questions (opt-in, no extra charge): spot visa-sponsorship, clearance or relocation questions.
  • Change alerts. changes mode returns only new, updated (with changedFields and previous) and removed jobs, with an outage guard against false mass removals.
  • Pay filters: salaryOnly and minSalary.
  • Paste anything: boards.greenhouse.io/stripe, job-boards.greenhouse.io/..., EU boards, embed URLs with ?for=, stripe, greenhouse:stripe, or a careers page that embeds Greenhouse.
  • Official API, no proxies, no browser. Runs in seconds at 256–512 MB.

Use cases

  • Pay-transparency salary benchmarking across companies, levels and locations.
  • Sales and investor signals: new teams and roles at target accounts.
  • Recruiting and sourcing alerts, filtered by keyword, department or location.
  • Job seekers: alerts for remote roles above a pay floor, plus which jobs ask about sponsorship.
  • Competitive hiring intel and labor-market research.
  • Job boards and aggregators: a clean, normalized Greenhouse feed.

Quick start

  1. Click Try for free and run the example board, or replace it with your own.
  2. Add boards, e.g. anthropic, https://boards.greenhouse.io/airbnb, greenhouse:figma.
  3. The default mode: snapshot returns the full list each run; for alerts, set mode: changes and schedule daily.

Input example

{
"boards": ["https://boards.greenhouse.io/airbnb", "figma", "greenhouse:anthropic"],
"mode": "changes",
"keywords": ["engineer", "data"],
"minSalary": 150000
}

Main options: boards (leave empty for a 5-job demo), mode, changeTypes, emitBaseline, filters (keywords, excludeKeywords, locations, departments, workplaceTypes, postedWithinDays, salaryOnly, minSalary), maxJobsPerBoard, includeDescriptions, descriptionFormats, redactContactInfo, includeApplicationQuestions, stateStoreName / stateKeyPrefix. See the Input tab for all fields.

Output example

Real record from a test run on Discord's board (description and questions shortened):

{
"recordType": "job",
"id": "greenhouse:discord:8806482002",
"ats": "greenhouse",
"board": "discord",
"companyName": "Discord",
"jobId": "8806482002",
"requisitionId": "R-107406",
"title": "Commercial Policy Lead",
"department": "Policy",
"location": "San Francisco Bay Area",
"salary": { "min": 192000, "max": 216000, "currency": "USD", "interval": "year", "text": "Base Salary" },
"postedAt": "2026-09-15T16:52:11.000Z",
"updatedAt": "2026-10-21T00:27:20.000Z",
"url": "https://job-boards.greenhouse.io/discord/jobs/8806482002",
"departments": [{ "id": 4054683002, "name": "Policy", "parentId": 4094263002 }],
"offices": [{ "id": 4082816002, "name": "Remote (US)", "location": null, "parentId": null }],
"payRanges": [{ "title": "Base Salary", "min": 192000, "max": 216000, "currency": "USD", "interval": "year",
"note": "The base salary range for this full-time position is listed below. This position will also be eligible for equ ..." }],
"applicationQuestions": [
{ "label": "Are you legally authorized to work in the United States for our Company?", "required": true,
"fields": [{ "name": "question_38318892002", "type": "multi_value_single_select", "options": ["Yes", "No"] }] }
],
"descriptionText": "Discord has a highly engaged community of millions of daily active users ...",
"changeType": "baseline",
"firstSeenAt": "2026-10-28T18:21:50.127Z",
"detectedAt": "2026-10-28T18:21:50.127Z"
}
  • updated records add changedFields and previous; removed records carry the last known values plus lastSeenAt.
  • Board errors are recordType: "error" rows, never charged. RUN_SUMMARY has per-board counts.
  • Dataset views: Jobs & changes, Changes only, Pay & offices, Board errors.

Pricing (pay per event)

EventPriceWhen
Job item$0.0015Each job in snapshot mode, and each baseline job on a board's first changes run
Job change$0.002Each new, updated or removed record later
Board check$0.001Each board checked per run (per started 1,000 jobs)
Actor start$0.0005Once per run (same at 256, 512 or 1,024 MB). Was $0.005 for runs started before Nov 3, 2026, 10:57 AM ET

Not charged: error rows, failed boards, filtered-out jobs, application questions.

  • 6 companies, no changes: $0.0065 per run (about $0.20 a month daily).
  • Anthropic's full board (about 680 jobs) as a snapshot: about $1.02.
  • 50 companies (~7,500 jobs): baseline about $11.30 once (or $0.0505 with emitBaseline: false), then ~$0.35 on a day with 150 changes.
  • Set Apify's maximum cost per run for a hard cap; the Actor stops cleanly and saves its state.

Integrations

  • Make, Zapier, n8n: Apify's official app/node → Run Actor tallowlanelabs/greenhouse-jobs-scraper → send each new job to Slack, Google Sheets, Airtable or your CRM.
  • Apify API and clients: POST https://api.apify.com/v2/acts/tallowlanelabs~greenhouse-jobs-scraper/run-sync-get-dataset-items, or
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("tallowlanelabs/greenhouse-jobs-scraper").call(
run_input={"boards": ["anthropic"], "mode": "snapshot", "salaryOnly": True})
jobs = list(client.dataset(run["defaultDatasetId"]).iterate_items())
  • AI agents (MCP): https://mcp.apify.com?tools=tallowlanelabs/greenhouse-jobs-scraper lets an AI assistant answer "what does Airbnb pay data scientists?" from live data.
  • Webhooks, Slack, Google Sheets: on the Actor's Integrations tab.

FAQ

How do I find a company's board name? It's the part after boards.greenhouse.io/ or job-boards.greenhouse.io/. Or paste the careers page and the Actor finds it.

Do all jobs have pay? Only if the company publishes it. On Oct 29, 2026, for example, 598 of Anthropic's 680 jobs and 156 of Airbnb's 191 had pay ranges; Stripe's 729 had none.

Why is workplaceType sometimes null? Greenhouse has no remote/hybrid field; we infer it from the location text. Employment type isn't published at all.

How is the pay period worked out? Greenhouse doesn't send one, so interval comes from the range title or note, otherwise from the amount; null if unclear.

Do application questions cost extra? No, but they add one request per job, so runs are slower.

Is it legal? It reads Greenhouse's public, unauthenticated Job Board API (developers.greenhouse.io/job-board.html), which exists so anyone can display a company's published jobs. Internal metadata that can name hiring managers is dropped. Use the data in line with Greenhouse's and employers' terms and laws such as GDPR and CCPA.

Limits

Public postings only; pay only when published; workplaceType inferred. Memory: 512 MB covers most watch lists; use 1,024 MB if any board has over 5,000 jobs (RUN_SUMMARY.memory advises).

Support

Open an issue on the Issues tab or email Tallow Lane Labs at wdeornellas+tallowlanelabs@gmail.com.