💼 Greenhouse Jobs Scraper - Tech Hiring Data
Pricing
from $2.40 / 1,000 results
💼 Greenhouse Jobs Scraper - Tech Hiring Data
Returns open jobs from any company that hires through Greenhouse: job title, company, department, location, remote flag, employment type, posted date, full description and apply link. Works for Stripe, Airbnb, Coinbase and thousands more. Filter by keyword, location and remote-only roles.
Pricing
from $2.40 / 1,000 results
Rating
0.0
(0)
Developer
Ben
Maintained by CommunityActor stats
0
Bookmarked
158
Total users
7
Monthly active users
11 hours ago
Last modified
Categories
Security
Limited permissionsShare
💼 Greenhouse Jobs Scraper — Tech Company Hiring Data via the Official API
Extract job listings from companies hiring on Greenhouse ATS — Stripe, Airbnb, Cloudflare, Discord, Figma, Notion, Uber, Coinbase, Databricks and 40+ more tech leaders — as clean, structured data. It runs on Greenhouse's official public job-board API, so there's no anti-bot fragility, no login, and no API key to manage. Price: $3.00 per 1,000 jobs on the Apify Free plan until November 9, 2026, $1.90 from then on. Export to JSON/CSV/Excel, run on a schedule, call via API, or connect to Make, Zapier or n8n.
🧑💻 What is the Greenhouse Jobs Scraper?
It turns Greenhouse-hosted career pages into a structured hiring dataset. Use the built-in list of 40+ top tech employers, or supply your own Greenhouse company tokens, then filter by keyword, location or remote-only. Every matching role comes back with its title, company, departments, location, posting date and apply URL — so job boards, recruiters and talent-intel teams get fresh listings without manual browsing.
What data does it extract?
job_title— the role titlecompany_nameandcompany_token— employer and its Greenhouse sluglocationandremote_flag— location string plus an auto-detected remote indicatordepartments— list of teams/departments the role sits inemployment_type— typicallyFull-timeposted_date— when the listing was last updated (ISO timestamp)job_url— direct apply/listing URLjob_description— full description text (whenincludeDescriptionis enabled)remote_scope,is_hybrid,visa_sponsorship,timezone_requirement— who can really apply (whenincludeDescriptionis on, see below)job_id,sourceandscraped_at— stable ID, source label and run timestamp
⬇️ Input
Use the built-in company list, or target specific employers, then filter:
| Field | Description |
|---|---|
companies | Greenhouse company tokens (e.g. stripe, airbnb, cloudflare). Leave empty to use the built-in 40+ tech-company list |
keywords | Filter by title keywords, e.g. ["engineer", "devops", "product"] |
location | Filter by location text, e.g. "remote", "San Francisco", "New York" |
remoteOnly | Only return remote positions (true / false) |
maxResults | Cap the run (1–5000, default 100) |
includeDescription | Fetch and include full job descriptions and the remote eligibility fields (slower, richer output) |
remoteScope | Keep only jobs with this remote scope: worldwide, unspecified, country, region, or one place like country:US, region:EMEA |
Example input
{"companies": ["stripe", "cloudflare", "notion", "figma"],"keywords": ["senior", "engineer"],"location": "remote","remoteOnly": true,"maxResults": 200,"includeDescription": true}
⬆️ Output
Every job is one clean row (view as a table, or export JSON / CSV / Excel):
{"job_id": "5547632003","job_title": "Senior Software Engineer, Payments","company_name": "Stripe","company_token": "stripe","job_description": "We are looking for a Senior Software Engineer to join...","location": "Remote (US)","remote_flag": true,"employment_type": "Full-time","departments": ["Engineering", "Payments"],"posted_date": "2026-05-28T14:02:00+00:00","job_url": "https://boards.greenhouse.io/stripe/jobs/5547632003","source": "Greenhouse","scraped_at": "2026-06-26T15:30:00.000000"}
Remote eligibility fields
Most "Remote" roles are not open to everyone. With includeDescription or remoteScope set, each row also reads the location and the description with plain keyword rules (no AI model, so a sentence the rules do not know gives unspecified):
| Field | Values |
|---|---|
remote_scope | worldwide, country:US,CA (ISO codes), region:EMEA (EMEA, Americas, APAC, Europe, EU, ...), unspecified |
is_hybrid | true when the text names a hybrid model or days in the office |
visa_sponsorship | yes, no ("we cannot sponsor visas"), unspecified |
timezone_requirement | the phrase as written, such as UTC+1 to UTC+3, or null |
Example: location Remote (US only) and text "We cannot sponsor visas" gives "remote_scope": "country:US", "is_hybrid": false, "visa_sponsorship": "no", "timezone_requirement": null. Set "remoteScope": "worldwide" to keep only roles open anywhere.
💰 What a run costs
| Apify plan | Per 1,000 jobs, until Nov 9, 2026 | Per 1,000 jobs, from Nov 9, 2026 |
|---|---|---|
| Free | $3.00 | $1.90 |
| Bronze | $2.70 | $1.71 |
| Silver | $2.55 | $1.62 |
| Gold | $2.40 | $1.52 |
| Platinum | $2.25 | $1.52 |
| Diamond | $2.10 | $1.52 |
The new prices apply from November 9, 2026, 20:33 UTC. Apify's standard start event ($0.00005 per GB of memory) is the only other charge. A job a filter drops is not saved or charged.
💡 Use cases
- 🧲 Job boards: aggregate fresh tech roles from 40+ premium employers into your listings.
- 🎯 Recruiters & talent intel: track hiring velocity and open roles by company, team and seniority.
- 📈 Market research: analyze tech hiring trends across regions, skills and roles over time.
- 🛠️ Developer-tool marketing: find companies hiring for your stack to target outreach.
❓ FAQ
How do I scrape Greenhouse job listings? Run it with the built-in company list,
or pass your own companies tokens, then optionally filter by keywords,
location or remoteOnly. You get structured jobs with title, company, departments,
location, posting date and apply URL.
Is this the official Greenhouse API? Yes — it uses Greenhouse's public
job-board JSON API (api.greenhouse.io/v1/boards/{token}/jobs). Listings are
intentionally public and meant for indexing.
Do I need an API key or login? No. The job-board API is public — no Greenhouse account or credentials required.
How do I find a company's Greenhouse token? It's the slug in the board URL:
boards.greenhouse.io/{token}. That {token} is what goes in the companies array.
Which companies are included by default? 40+ tech leaders such as Stripe, Airbnb, Cloudflare, Discord, Figma, Notion, Uber, Coinbase, Databricks, Datadog, Snowflake, Reddit, Robinhood, Twilio, Vercel and more.
Can I scrape companies not on the built-in list? Yes — just add their Greenhouse
token to the companies array.
Are full job descriptions included? Only when includeDescription is true.
Without it you get fast metadata-only results; with it each job makes one extra API
call to fetch the description text.
How do I get only remote roles? Set remoteOnly: true, or filter by
location: "remote". A remote_flag is set on every job automatically.
How fresh is the data? Real-time — each run reads the current state of every job board.
Can I run it on a schedule or via API? Yes — schedule recurring runs in Apify, call it via the API/SDK, or connect it to Make, Zapier or n8n.
Is scraping Greenhouse jobs legal? It reads publicly available job listings via the official board API. Respect each company's Terms of Service and handle any data responsibly.
🔗 You might also like
- Lever Jobs Scraper — Lever ATS job boards
- Workday Jobs Scraper — Workday career sites
- ATS Jobs Aggregator — multi-ATS hiring data
- Remote Jobs Intelligence — remote-first job listings
- Remote Jobs Aggregator — remote jobs from RemoteOK, Remotive, Himalayas and three more boards in one run, with only-new alerts
- Relocate.me Jobs Scraper — tech jobs abroad with relocation or visa sponsorship
Keywords: Greenhouse jobs scraper, Greenhouse ATS API, tech jobs scraper, job board API, scrape job listings, recruiting data, hiring data, jobs aggregator, developer jobs, remote jobs scraper, ATS scraper, talent intelligence, job postings API, tech company hiring, Stripe jobs.
Workflow and data quality
For best results, run this actor as part of a repeatable data pipeline rather than a one-off scrape. Start with a focused input, export the dataset to CSV or JSON, and keep a stable unique field such as URL, ID, domain, package name or title as your deduplication key. Schedule the same task daily or weekly when you need monitoring, then compare each new dataset with the previous run to identify fresh records, removed records and changed fields.
The output is designed to be practical for business workflows: spreadsheets, dashboards, enrichment steps, alerts, CRM imports and lightweight internal APIs. Null values mean the source did not provide that field, not that the actor guessed. For larger projects, combine this actor with related Apify scrapers and use the shared URL/company/domain fields to build a richer dataset without manual copy-paste work.