Greenhouse Jobs Scraper - Job Board API by Company
Pricing
from $0.60 / 1,000 job scrapeds
Greenhouse Jobs Scraper - Job Board API by Company
Scrape open jobs from any company on Greenhouse (boards.greenhouse.io). Type a company name or domain; the board token is found for you. All departments and offices, pay-transparency ranges, requisition ID, apply URL. Delta mode for daily runs.
Pricing
from $0.60 / 1,000 job scrapeds
Rating
0.0
(0)
Developer
Make No Mistakes LLC
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 days ago
Last modified
Categories
Share
Greenhouse Jobs Scraper: Job Board API by Company
Scrape every open job from any company's Greenhouse job board (boards.greenhouse.io,
job-boards.greenhouse.io). Type a company name, a domain, a board token or a board URL. The Actor
finds the Greenhouse board token for you and returns each job with its department tree, offices,
pay-transparency ranges, requisition ID, posted and updated dates, full description and apply URL.
| Company | Title | Department | Location | Pay range | Posted | Apply |
|---|---|---|---|---|---|---|
| Airbnb | Account Manager | Business Development | London, United Kingdom | 46,000 - 54,000 GBP / year | 2026-09-09 | apply |
| Figma | Account Executive, Enterprise | Sales | San Francisco, CA / New York, NY | 165,000 - 190,000 USD / year | 2025-01-28 | apply |
| Robinhood | Android Engineer, Government Products | ENG Infrastructure | New York, NY | 166,000 - 195,000 USD / year | 2025-05-08 | apply |
| Scale AI | Account Based Marketing Lead | Marketing | San Francisco, CA; New York, NY | 158,400 - 198,000 USD / year | 2026-10-01 | apply |
| Coinbase | Accountant, Cyprus | Finance & Accounting | Remote - Cyprus | 36,100 EUR / year | 2026-07-09 | apply |
Real rows from a test run on 2026-10-03.
Try it: the default input returns 300 jobs (100 each from Airbnb, Figma and Robinhood) for about $0.60, in under 10 seconds. No login, no proxy, no API key: it reads Greenhouse's official public Job Board API.
What you get that a generic scraper misses
- Company name in, board token out.
Scale AIresolves toscaleai,figma.comtofigma. If the name guess misses and you gave a domain, the Actor reads the company's careers page for its Greenhouse link (including embeddedboards.greenhouse.io/embed/job_board?for=...boards). - Every pay range, with the right period. Greenhouse publishes pay-transparency ranges in a
structured field when the employer opts in. This Actor always requests them (even with
descriptions switched off), returns all ranges in
pay_ranges(US zones, UK, EU), and reads the pay period from the range title: Coinbase's "Hourly Rate: $40" comes back asHOUR, not as a $40 annual salary. On 10 well-known boards, 1,363 of 2,682 open jobs (51%) carried a pay range, and 8 of the 10 employers publish them. - The real department tree and office list.
departmentsandofficeshold every entry, not just the first, and thedepartments/officesfilters match against all of them. - Requisition and internal job IDs to join postings back to the employer's own req, and to spot the same requisition posted in several locations.
- Companies not on Greenhouse are reported, not dropped. You get a free
company_not_foundrow naming where the company actually hires, e.g..not on Greenhouse: this company's job board is on Ashby (https://jobs.ashbyhq.com/openai)
Use cases
- Salary benchmarking: pull every pay-transparent role at 50 tech companies, filtered to
onlyWithPay, and compare ranges by title, level and location. - Recruiting and sourcing: watch competitor departments (
departments: ["Engineering"]) and get each new requisition the day it opens with delta mode. - Sales and market intelligence: a team that starts hiring "Data Platform" engineers is a buying signal for data tooling.
- Job boards and aggregators: clean, deduplicated, normalized jobs with real apply URLs.
- Job seekers: a daily alert of new roles at your 20 target companies.
Input
{"companies": ["Airbnb", "figma.com", "https://job-boards.greenhouse.io/stripe", "Scale AI"],"keywords": ["engineer"],"locations": ["New York", "Remote"],"remoteOnly": false,"postedWithinDays": 14,"departments": ["Engineering"],"offices": ["New York"],"onlyWithPay": true,"onlyNewSinceLastRun": false,"includeDescription": true,"maxItems": 1000,"maxItemsPerCompany": 100}
| Field | What it does |
|---|---|
companies | Names, domains, board tokens or board URLs, mixed freely. |
keywords | Keep jobs whose title, department or team contains any of these words. |
locations | Keep jobs whose location contains any of these strings. |
remoteOnly | Keep only jobs whose location says remote. |
postedWithinDays | Keep jobs posted or updated in the last N days (Greenhouse publishes both dates). |
departments | Greenhouse-only: match any of the job's departments, including parents. |
offices | Greenhouse-only: match any of the job's offices. |
onlyWithPay | Greenhouse-only: keep only jobs with a published pay range. |
onlyNewSinceLastRun | Delta mode: only jobs you have not received before (see below). |
deltaStateName | Name of the key-value store that remembers delivered jobs, one per schedule. |
includeDescription | Set false to drop the description fields (pay ranges are still returned). |
maxItems | Total jobs per run, and so your spend cap. |
maxItemsPerCompany | Jobs per company (default 100). Set 0 for whole boards. |
Output
Every job uses the same normalized schema as the Multi-ATS Job Board API, plus Greenhouse-specific fields:
{"record_type": "job","company": "Figma","title": "Account Executive, Enterprise","department": "Sales","location_raw": "San Francisco, CA • New York, NY • United States","city": "San Francisco","is_remote": false,"salary_min": 165000,"salary_max": 190000,"salary_currency": "USD","salary_period": "YEAR","posted_at": "2025-01-28","updated_at": "2026-07-22","apply_url": "https://boards.greenhouse.io/figma/jobs/5426468004?gh_jid=5426468004","company_slug": "figma","ats": "greenhouse","job_id": "5426468004","source_url": "https://boards-api.greenhouse.io/v1/boards/figma/jobs","greenhouse_board_token": "figma","internal_job_id": "4868517004","requisition_id": "1451","departments": ["Sales"],"offices": ["US"],"pay_ranges": [{"min": 165000, "max": 190000, "currency": "USD", "period": "YEAR", "title": "Annual Base Salary Range:"}],"has_pay_range": true,"application_deadline": null}
description_html and description_text carry the full posting, and raw keeps the untouched
Greenhouse record. Greenhouse's board API publishes no employment type, so employment_type is
null by design. salary_min/salary_max use the USD range when there are several (else the
first); pay_ranges has them all.
Dataset views: Jobs, Greenhouse details and Companies not on Greenhouse. RUN_SUMMARY
in the key-value store records how each company was resolved and how many jobs came back.
Delta mode for scheduled runs
Set onlyNewSinceLastRun: true and schedule the Actor. The first run returns everything and
remembers it; later runs return only jobs not delivered before, and never charge twice for the
same job. State lives in a named key-value store in your own account (deltaStateName), one
record per board. Use a different name per independent schedule.
Pricing
Pay per event, no subscription:
| Free plan | Bronze | Silver | Gold and up | |
|---|---|---|---|---|
| Per job | $0.002 | $0.0015 | $0.001 | $0.0006 |
| Per run start | $0.001 | $0.001 | $0.001 | $0.001 |
- 100 jobs on the Free plan: about $0.20. 1,000 jobs: about $2.00.
company_not_foundrows are free.maxItemsis a hard spend cap. If your run's Maximum cost per run is too low for the jobs in scope, the run says so on its status line and inRUN_SUMMARYinstead of silently returning less.
No login, no proxy, official public API
Greenhouse publishes its Job Board API (boards-api.greenhouse.io/v1/boards/{token}/jobs) for
exactly this purpose: public, unauthenticated read access to published jobs. No account, cookies
or proxies are involved.
Related Actors
- Multi-ATS Job Board API: one run across nine ATS platforms. Use it when your company list spans Greenhouse, Lever, Ashby, Workday and others.
- Company ATS Detector (free): which ATS does a company use?
- Workday Jobs Scraper, Ashby Jobs Scraper and Lever Jobs Scraper: the same engine for the other big platforms.
API example
curl -X POST \"https://api.apify.com/v2/acts/make_no_mistakes~greenhouse-jobs-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"companies": ["airbnb", "figma"], "onlyWithPay": true, "maxItemsPerCompany": 50}'
FAQ
Does it work with custom-domain careers pages? Yes, as long as the jobs come from Greenhouse. Pass the company's domain and the careers-page link is followed; or paste any Greenhouse board URL.
Why are some companies missing pay? Pay ranges are published only where the employer opted
into Greenhouse pay transparency (Stripe, for example, does not). Use onlyWithPay to keep only
the ones that did.
Is this affiliated with Greenhouse? No. This is an independent tool, not affiliated with, endorsed by or sponsored by Greenhouse Software, Inc. The name only describes which job boards it reads.
Published by Make No Mistakes LLC. Questions and feature requests: open an issue on this Actor's Issues tab.