Greenhouse Jobs Scraper avatar

Greenhouse Jobs Scraper

Pricing

from $1.50 / 1,000 jobs

Go to Apify Store
Greenhouse Jobs Scraper

Greenhouse Jobs Scraper

Scrape every open job from any company's Greenhouse job board: title, department, office locations, remote or hybrid, posting and update dates, salary range, requisition ID and the full job description in HTML and text. Many companies per run, keyword, location and date filters. Export JSON or CSV.

Pricing

from $1.50 / 1,000 jobs

Rating

0.0

(0)

Developer

FalconScrape

FalconScrape

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

Share

🚀 Greenhouse Jobs Scraper: Every Job from Any Greenhouse Job Board

Get every open job from any company's Greenhouse job board as clean JSON, CSV or Excel: title, department, office locations, remote or hybrid, posting and update dates, salary range, requisition ID and the full job description in HTML and plain text. The Greenhouse Jobs Scraper reads job-boards.greenhouse.io and boards.greenhouse.io boards for as many companies as you like in one run. Use it as a Greenhouse jobs API for job boards, recruiting tools, hiring-signal and salary data.

🎯 Use Cases

  • Job board aggregation: pull Greenhouse jobs from hundreds of tech companies into your own job site or newsletter, with full descriptions.
  • Salary data: most US Greenhouse boards publish a pay range; salaryMin, salaryMax, salaryCurrency and salaryPeriod come parsed and ready to chart.
  • Hiring signals for sales: see which companies are hiring for which teams and locations, and when each job was first published.
  • Recruiting and sourcing: watch competitors' Greenhouse careers pages for new roles every day.
  • Market research: count open roles by department, office and remote policy across a list of companies.

✨ Features

  • Whole board at once: every open job of a company, not just the first page.
  • Salary range: parsed from the board's pay-range block or from the description when the company states one.
  • Full description: HTML as published, plus clean text with line breaks.
  • Structured extras: departments and offices with IDs, the board's custom fields (metadata), internal job ID, language and application deadline.
  • Any input format: a board token (figma), a board link (job-boards.greenhouse.io/figma, boards.greenhouse.io/figma, embed links) or a careers page that embeds a Greenhouse board.
  • Same columns as our other job board scrapers: Greenhouse, Workday, Lever, Ashby and SmartRecruiters rows share one format, so you can merge them into one table.
  • No duplicates: a company entered twice is scraped once, and every job is saved once.

🛠️ How It Works

  1. Paste companies: Board tokens (figma), board links (https://job-boards.greenhouse.io/figma) or a careers page that embeds a Greenhouse board, one per line.
  2. Add filters if you want: keyword, location, remote only, posted within N days.
  3. Run the scraper and download the table, or pull it through the API.

⚙️ Input

FieldWhat it does
CompaniesBoard tokens (figma), board links (https://job-boards.greenhouse.io/figma) or a careers page that embeds a Greenhouse board, one per line.
KeywordOnly jobs whose title, department or team contains this text.
LocationOnly jobs whose location contains this text (city, country or "Remote").
Remote jobs onlyOnly fully remote jobs.
Posted within (days)Only jobs posted in the last N days.
Max jobs per companyStop after this many jobs for each company. Default 50.
{
"companies": [
"figma",
"https://job-boards.greenhouse.io/airbnb",
"stripe"
],
"keyword": "engineer",
"location": "United States",
"postedWithinDays": 30,
"maxItems": 200
}

💰 Pricing

Pay only for the jobs you get. No monthly rental.

EventPriceWhat you get
Job$0.0015 per job ($1.50 per 1,000)One job with all fields below, including the full description
Actor start$0.00005 per runCharged once when the run starts.

Examples: 50 jobs = $0.075 · 1,000 jobs = $1.50 · 10,000 jobs = $15. Jobs removed by your filters are not charged.

📊 Sample Output Data

{
"id": "8231416",
"ats": "greenhouse",
"jobId": "8231416",
"requisitionId": "ONE",
"title": "Associate Principal, Procurement Innovation Supplier Programs",
"company": "Airbnb",
"companySlug": "airbnb",
"url": "https://careers.airbnb.com/positions/8231416?gh_jid=8231416",
"applyUrl": "https://careers.airbnb.com/positions/8231416?gh_jid=8231416",
"department": "Financial Planning and Analysis",
"team": null,
"location": "United States",
"locations": [
"United States"
],
"country": null,
"workplaceType": "remote",
"isRemote": true,
"employmentType": null,
"postedAt": "2026-09-24T22:17:39.000Z",
"updatedAt": "2026-09-30T00:00:54.000Z",
"salaryMin": 102000,
"salaryMax": 120000,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"salaryText": "$102,000—$120,000 USD",
"descriptionText": "Airbnb was born in 2007 when two hosts welcomed three guests to their San Francisco home, and has since grown to over 5 million hosts who have welcomed over 2…",
"descriptionHtml": "<div class=\"content-intro\"><p>…",
"extras": {
"internalJobId": 3562002,
"offices": [
{
"id": 63868,
"name": "United States",
"location": null
}
],
"departments": [
{
"id": 76,
"name": "Financial Planning and Analysis"
}
],
"metadata": {
"Is this job part of ACC?": false,
"Workplace Type": "Remote"
},
"language": "en",
"applicationDeadline": null
},
"scrapedAt": "2026-10-26T15:26:26.051Z"
}
FieldWhat it is
id, jobId, requisitionIdUnique row ID, the job's own ID and the company's requisition/reference number
title, company, companySlugJob title, company name and the board you entered
url, applyUrlJob page and application link
department, teamAs published by the company
location, locations, countryAll job locations (joined and as a list) and the country
workplaceType, isRemoteremote, hybrid or onsite, and a remote flag
employmentTypeFull-time, part-time, contract, internship…
postedAt, updatedAtISO dates
salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryTextPay range when the company publishes one
descriptionText, descriptionHtmlFull job description
extrasFields only this job board has (see below)

salaryMin/salaryMax are filled when the company publishes a pay range (66 of 100 jobs in a Figma + Airbnb sample). extras.metadata holds the custom fields a company shows on its board, such as "Workplace Type".

🔁 Schedule and Integrate

Run it once a day with the same companies and Posted within (days) = 1 to get only new jobs. Set it up in Apify Schedules. Send the results to Google Sheets, Zapier, Make, n8n, Slack or a webhook with Apify integrations.

🤖 Use with AI Agents (MCP)

This Actor works as a tool in Claude, ChatGPT, Cursor and other MCP clients through the Apify MCP server (https://mcp.apify.com). An agent can call it with:

{"companies":["figma","stripe"],"keyword":"product manager"}

❓ FAQ

Is there a Greenhouse jobs API? Greenhouse publishes job boards, not a bulk data feed. This Actor works like a Greenhouse job board API: give it board tokens and get every job as structured JSON, with no Greenhouse account or key.

How do I find a company's Greenhouse board token? Open the company's careers page and click a job. If the link goes to job-boards.greenhouse.io/<token>/jobs/… or carries gh_jid=, the company uses Greenhouse and <token> is what you paste. You can also paste the board link itself.

Does it include salary? Yes, when the company publishes one. Pay-range blocks and sentences like "The base salary range is $X - $Y" are parsed into salaryMin, salaryMax, salaryCurrency and salaryPeriod. salaryText keeps the original wording.

How fresh is the data? Each run reads the live board, so you get the jobs that are open right now. Schedule a daily run to catch new postings.

Why is employmentType empty for some companies? Greenhouse has no standard employment-type field. It's filled only when the company adds one as a custom field.

Do I need an account or login? No. Only public job postings are collected.