
Greenhouse Job Board Scraper
hipersoft/greenhouse-scraper
Scrape all open jobs from any company's Greenhouse job board: title, location, department, office, full description, apply link and dates. Bulk company input.
Total users
2Monthly users
2Total runs
104Per job scraped
$0.0017Last rebuilt
Oct 28, 2026Overview
Scrape every open job from any company that hosts its careers page on Greenhouse — title, location, department, office, full description, apply link and dates — into clean JSON, CSV, Excel or XML. Give it one or many company boards and get a complete, deduplicated job feed. Fast and reliable.

What does Greenhouse Job Board Scraper do?
The Greenhouse Job Board Scraper collects all open roles from the companies you list and exports each job as a structured record. Pass one or many Greenhouse board tokens or board URLs, choose whether to include full descriptions, and it returns a clean, deduplicated feed of jobs with titles, locations, departments, offices, apply links and publish dates.
What data can you scrape from Greenhouse?
| Data | Fields |
|---|---|
| 🏢 Company | board token, company name |
| 📋 Job | job ID, title, location, department(s), office(s) |
| 🔗 Apply | direct apply URL, requisition ID |
| 🗓️ Dates | first published, last updated, application deadline |
| 📝 Content | full description (plain text) and original HTML |
Use cases
- Job aggregators — feed thousands of live roles from company career pages into your board.
- Recruiting intelligence — track who's hiring, for which teams, and where.
- Hiring-trend analysis — monitor headcount growth by department and office over time.
- Sales & lead lists — spot companies expanding into a function you sell to.
- ATS / market monitoring — watch competitor and target-account hiring in near real time.
- Talent sourcing — build role-specific feeds for candidates and recruiters.
How to scrape Greenhouse data
- Add the Greenhouse Job Board Scraper to your Apify account.
- Add one or many companies — a Greenhouse board token (the slug in
boards.greenhouse.io/<token>) or a full board URL. - Toggle includeContent and set maxJobsPerCompany to control depth.
- Click Run and watch jobs stream into the dataset.
- Export to JSON, CSV, Excel or XML, or pull them through the Apify API.
Input
List the boards you want, choose whether to include full descriptions, and cap jobs per company if needed.
Example input
{
"companies": ["stripe", "databricks", "https://boards.greenhouse.io/airbnb"],
"includeContent": true,
"maxJobsPerCompany": 0
}
companies accepts a Greenhouse board token (the slug in boards.greenhouse.io/<token>) or a full board URL.
| Field | Description |
|---|---|
companies |
Greenhouse board tokens or board URLs to scrape. |
includeContent |
Include each job's full description (text + HTML). Default true. |
maxJobsPerCompany |
Cap jobs per company. 0 = all. |
Output
Each job is one clean record:
{
"board": "stripe",
"companyName": "Stripe",
"jobId": 7954688,
"title": "Account Executive, AI Sales",
"location": "San Francisco, CA",
"departments": ["Account Executives"],
"offices": ["San Francisco"],
"updatedAt": "2026-07-28T12:03:00-04:00",
"firstPublished": "2026-07-01T09:00:00-04:00",
"applicationDeadline": "2026-08-31",
"requisitionId": "REQ-4821",
"applyUrl": "https://stripe.com/jobs/search?gh_jid=7954688",
"description": "About the team…",
"contentHtml": "<div>About the team…</div>"
}

Output schema
| Field | Type | Description |
|---|---|---|
board |
string | Greenhouse board token (slug) the job came from. |
companyName |
string | Company name for the board. |
jobId |
integer | Unique Greenhouse job posting ID. |
title |
string | Job title. |
location |
string | Job location as posted. |
departments |
array | Department(s) the role belongs to. |
offices |
array | Office(s) associated with the role. |
updatedAt |
string (ISO date) | When the posting was last updated. |
firstPublished |
string (ISO date) | When the posting was first published. |
applicationDeadline |
string | Application deadline, when provided. |
requisitionId |
string | Employer's internal requisition ID, when provided. |
applyUrl |
string (URL) | Direct link to apply for the role. |
description |
string | Full job description as plain text. |
contentHtml |
string | Original job description HTML. |
Need more job data?
- Lever Job Board Scraper — jobs from Lever-hosted boards.
- Ashby Job Board Scraper — jobs from Ashby boards.
- RemoteOK Scraper — remote job listings.
- Indeed Scraper — jobs across employers.
FAQ
Where do I find a company's board token?
It's the slug in the careers URL — boards.greenhouse.io/stripe → stripe. You can paste the full URL too.
How many companies can I scrape?
As many as you like — add them all to companies and each is fetched in turn.
Do I need any setup or a login? No setup and no login. Just add the boards you want and run.
How does billing work? You pay only per job you get — no subscription. Our per-item price floors 20% below the cheapest comparable scraper.
What export formats are supported? JSON, CSV, Excel and XML, plus the Apify API for programmatic access.
Can I skip the long descriptions?
Yes — set includeContent to false for a lighter, faster run that omits the description text and HTML.
How fresh is the data?
Each run fetches live postings, so results reflect each board at the moment you run the actor. The updatedAt field timestamps every job.
Is it legal? The actor returns only publicly available job postings. You are responsible for how you use the data.
Can I connect it to my other tools? The Greenhouse Job Board Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JavaScript/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Notes
Original clean-room implementation. Returns only public job-posting data; you are responsible for how you use it. Not affiliated with or endorsed by Greenhouse.
Input
| Field | Type | Description |
|---|---|---|
companies requiredCompanies | array | Greenhouse board tokens or board URLs — e.g. "stripe", "airbnb", or https://boards.greenhouse.io/stripe. Add as many as you like. |
includeContentInclude full description | boolean | Include each job's full description (plain text + HTML). Turn off for a lighter, faster listing. Default: true |
maxJobsPerCompanyMax jobs per company | integer | Limit jobs collected per company. 0 = all. Default: 0 |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~greenhouse-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"companies": [
"stripe"
]
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/greenhouse-scraper").call(run_input={
"companies": [
"stripe"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/greenhouse-scraper').call({
"companies": [
"stripe"
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Job scraped One job posting scraped. | $0.0017 | $0.0008 |
| API request One company board fetched. | $0.0005 | $0.0005 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Dribbble Shots Scraper
Scrape public design shots from Dribbble: title, high-res image, tags, likes, views and designer credit. Filter by category or sort, export JSON, CSV or Excel.
359 runs · 5 users · $0.003 / shot scrapedComputrabajo Scraper
Scrape Computrabajo job listings across Latin America (Mexico, Colombia, Argentina, Chile, Peru and more): title, company, location, salary, posted date and apply URL. Filter by country and keyword. No setup.
206 runs · 4 users · $0.002 / listing scrapedKraken Market Data Scraper
Fetch Kraken spot market data in bulk: ticker stats (ask, bid, last, 24h high/low/volume/vwap), OHLC candles for any interval, order book depth (top bids/asks), and tradable pair metadata. Fast, clean and cheap.
165 runs · 4 users · $0.001 / pair scrapedBayt Scraper
Scrape Bayt.com job listings across the Middle East (UAE, Saudi Arabia, Egypt, Qatar and more): title, company, location, posted date and apply URL. Filter by country and keyword.
134 runs · 4 users · $0.003 / job scrapedGitHub Scraper
Search GitHub and scrape repositories (stars, forks, language, topics, license, dates) or user profiles (name, company, location, bio, followers, public email, repos). Uses the GitHub REST API; optional token for higher rate limits. For developer lead generation, OSS research and recruiting.
131 runs · 7 users · $0.0008 / item scrapedHacker News Scraper
Scrape Hacker News stories, comments, Ask HN, Show HN, jobs and polls by keyword, points, comments and date range. Sort by relevance or newest. Title, URL, author, points, comment count, text and HN link. Fast clean HTTP via the HN Algolia API, no setup.
130 runs · 2 users · $0.004 / item scrapedSend the site and the fields. We build it and you get it first.