Greenhouse.io Jobs Scraper
Pricing
from $1.00 / 1,000 results
Greenhouse.io Jobs Scraper
Every open job from any company's Greenhouse job board, with salary ranges, departments and offices. Filter by location, keyword or department. No API key required.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Hoho
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Get every open job from any company's Greenhouse job board: titles, locations, departments, offices, salary ranges, and optionally full descriptions. List as many companies as you like in one run, and filter by location, job title or department. No API key required.
Why this scraper?
- Thousands of companies hire through Greenhouse. Discord, Airbnb, Figma, Databricks, Coinbase, Dropbox, GitLab, Robinhood, Stripe and many more. One run can cover your whole target list.
- Salary ranges included. When a company publishes pay (most US companies now do), you get
min,maxandcurrencyper range, already converted from cents. - Filters that work. Location, title keyword and department. Each is a case-insensitive "contains" match, so
New Yorkalso matchesNew York City, New YorkandRemote - New York. - Built for scheduled runs. A company that has left Greenhouse is skipped and logged; it doesn't fail the rest of your list.
- Paste names or URLs.
discord,Discord,https://job-boards.greenhouse.io/discordandboards.greenhouse.io/discord/jobs/123all work. - Cheap: $1 per 1,000 jobs.
What you can fetch
| Mode | Description |
|---|---|
jobs | Every open job at the companies you list, optionally filtered |
How to find a company's board name
Greenhouse is the hiring software behind many companies' careers pages, not a job site. Each company has its own board at job-boards.greenhouse.io/<board-name> (older boards use boards.greenhouse.io/<board-name>). The board name is usually the company name in lowercase (discord, airbnb, figma). If a company's careers page links to a Greenhouse address, the board name is the part after greenhouse.io/. Some companies show Greenhouse jobs on their own site (Stripe forwards to stripe.com/jobs), but their board name still works here.
Usage
All jobs at one company
{"companies": ["discord"]}
Several companies, New York only
{"companies": ["databricks", "figma", "airbnb", "coinbase"],"location": "New York"}
Engineering roles, with full descriptions
{"companies": ["gitlab", "dropbox"],"department": "engineering","includeDescription": true}
Remote sales roles
{"companies": ["databricks", "robinhood"],"keyword": "sales","location": "remote"}
Input fields
| Field | Type | Default | Description |
|---|---|---|---|
companies | array of strings | ["discord"] | Greenhouse board names or Greenhouse job-board URLs |
location | string | — | Keep jobs whose location or office contains this text (e.g. New York, London, Remote) |
keyword | string | — | Keep jobs whose title contains this text (e.g. engineer) |
department | string | — | Keep jobs in a department whose name contains this text (e.g. sales) |
includeDescription | boolean | false | Add the full job description as HTML (description) and plain text (descriptionText) |
limit | integer | 0 | Max results: stop after this many jobs. 0 returns every matching job. Companies are fetched in the order you list them, and once enough jobs match, the rest aren't fetched. |
All text filters ignore case. You can combine them: a job must match every filter you set.
Output fields
One dataset row per job:
| Field | Type | Description |
|---|---|---|
id | integer | Greenhouse job ID |
title | string | Job title |
company | string | The board name you asked for (e.g. discord) |
companyName | string | Company display name (e.g. Discord) |
location | string | Location as the company wrote it (e.g. San Francisco Bay Area) |
departments | array | Department names (e.g. ["Policy"]) |
offices | array | Offices, each { name, location } |
url | string | Job posting / apply link |
firstPublished | string | When the job was first posted (ISO 8601) |
updatedAt | string | When the job was last updated (ISO 8601) |
requisitionId | string | The company's internal requisition ID, when set |
applicationDeadline | string | Application deadline, when set (usually empty) |
language | string | Posting language code (e.g. en) |
salary | array | Salary ranges, each { label, min, max, currency }. Empty when the company doesn't publish pay |
description | string | Full description as HTML (only with includeDescription) |
descriptionText | string | Full description as plain text (only with includeDescription) |
Example row:
{"id": 8806482002,"title": "Commercial Policy Lead","company": "discord","companyName": "Discord","location": "San Francisco Bay Area","departments": ["Policy"],"offices": [{ "name": "San Francisco, CA", "location": "San Francisco, California, United States" }],"url": "https://job-boards.greenhouse.io/discord/jobs/8806482002","firstPublished": "2026-09-15T12:52:11-04:00","updatedAt": "2026-09-15T12:52:11-04:00","requisitionId": "R-107406","applicationDeadline": null,"language": "en","salary": []}
Note: these are the exact keys on each dataset row. In the Apify console's field list you'll see
jobId,jobTitleandjobDescriptioninstead. Apify's dataset-schema format reservesid,titleanddescription, so those three are aliased for display only. The data itself usesid/title/description.
Good to know
- You name the companies. Greenhouse has no search across all companies, so this actor can't answer "every Greenhouse job in New York". It gets every job at the companies you list, and the filters narrow that down.
- Unknown companies are skipped. If a board name doesn't exist, the run logs it and carries on with the rest. If none of the names exist, the run fails with a message listing them.
- Salary is only as good as the posting. Some companies publish several ranges per job (by US pay zone, for example); you get all of them, each with the company's own label.
- Filters are plain text matches.
NYCwon't matchNew York. Use the wording companies actually use.
Use cases
- Sales and recruiting signals: watch target accounts and see when they start hiring for a team
- Job boards and newsletters: fill a niche board from the careers pages of hand-picked companies
- Salary research: collect published pay ranges by role, company and location
- Job search: track openings at the companies you want to work for, on a daily schedule
Disclaimer
This actor is not affiliated with, endorsed by, or sponsored by Greenhouse Software, Inc. or any company whose jobs it returns. It reads the public Greenhouse Job Board API, which companies use to publish their openings. Use the data responsibly and in line with applicable laws.