Greenhouse Job Boards Scraper - All Openings, No API Key
Pricing
from $0.50 / 1,000 results
Greenhouse Job Boards Scraper - All Openings, No API Key
Scrape all open jobs from any company's Greenhouse board: title, location, departments, remote flag, full description and apply link. No API key. For job boards, recruiters and sales teams.
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
ninhothedev
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
5 days ago
Last modified
Categories
Share
Greenhouse Jobs Scraper – All Open Jobs From Any Greenhouse Board
Greenhouse Jobs Scraper extracts every open position from any company's Greenhouse job board (boards.greenhouse.io/<company> or job-boards.greenhouse.io/<company>). Enter one or many company slugs and get job title, location, departments, offices, remote flag, full job description (clean text + HTML), requisition ID, custom job fields and the direct apply URL – exported to JSON, CSV, Excel or Google Sheets. It uses Greenhouse's free public Job Board API: no API key, no login, no proxy, and you pay only per job saved.
Greenhouse is the most widely used applicant tracking system among tech companies, so this is one of the fastest ways to collect fresh tech jobs at scale. Built for job-board and aggregator builders, recruiters and sourcers, HR-tech and labor-market analysts, and sales teams that prospect on hiring signals.
What data can you extract?
| Field | Example | Description |
|---|---|---|
company | figma | Board token (company slug) the job came from |
job_id | 5426468004 | Greenhouse public job ID (stable, good for deduplication) |
internal_job_id | 4868517004 | Greenhouse internal job ID |
title | Account Executive, Enterprise | Job title |
location | San Francisco, CA • New York, NY | Location as published |
departments | ["Sales"] | List of department names |
offices | ["US"] | List of office names |
is_remote | false | true when location or title says remote / anywhere / distributed |
employment_type | Full time | Employment type, when the board publishes it as a job field |
requisition_id | 1451 | Company-internal requisition ID |
updated_at | 2026-07-22T09:37:08Z | Last update of the posting (UTC) |
description | Figma is growing our team of... | Full description as clean plain text (up to 8,000 chars) |
description_html | <div class="content-intro">... | Original description HTML (up to 20,000 chars) |
metadata | [{"name": "Time Type", "value": "Full time"}] | The board's custom job fields (up to 15), e.g. job family or pay range where published |
apply_url | https://boards.greenhouse.io/figma/jobs/5426468004 | Direct link to the job and application page |
source | greenhouse | Always greenhouse |
scraped_at | 2026-10-15T18:03:26Z | Run timestamp (UTC) |
Every field is nullable – boards differ in how much they publish, and the actor never invents data.
How to use the Greenhouse Jobs Scraper
- Add company board tokens – the slug from the board URL:
https://boards.greenhouse.io/stripe→stripe. You can paste full board URLs too. - Optionally set a title filter (e.g.
engineer), a location filter (e.g.berlinorremote), turn off full descriptions for a listing-only run, and set the per-board and total limits. Click Start. - Download the jobs as JSON, CSV or Excel, or send them to Google Sheets, Make, Zapier, n8n or your app via the API. Schedule it daily to keep your data fresh.
Example input:
{"boardTokens": ["stripe", "figma", "doordashusa"],"includeContent": true,"titleFilter": "engineer","locationFilter": "remote","maxItemsPerBoard": 200,"maxItems": 500}
How to find a board token: open a job on the company's careers page. If the URL contains gh_jid= or the apply page is on greenhouse.io, the company uses Greenhouse; the segment after greenhouse.io/ is the token. The token is often the company name (gitlab, reddit, airbnb) but not always – DoorDash uses doordashusa. Unknown tokens are logged and skipped, they never break the run.
Output example
Real output from a test run (descriptions shortened):
[{"company": "figma","job_id": 5426468004,"internal_job_id": 4868517004,"title": "Account Executive, Enterprise","location": "San Francisco, CA • New York, NY • United States","departments": ["Sales"],"offices": ["US"],"description": "Figma is growing our team of passionate creatives and builders on a mission to make design accessible to all...","description_html": "<div class=\"content-intro\"><p>Figma is growing our team of passionate creatives ...","updated_at": "2026-07-22T09:37:08Z","requisition_id": "1451","is_remote": false,"employment_type": null,"metadata": null,"apply_url": "https://boards.greenhouse.io/figma/jobs/5426468004?gh_jid=5426468004","source": "greenhouse","scraped_at": "2026-10-15T18:03:26.701472Z"},{"company": "doordashusa","job_id": 8139265,"title": "Account Executive","location": "Seattle, WA","departments": ["534 In-Store Sales"],"offices": ["Washington"],"requisition_id": "P-111323","is_remote": false,"metadata": [{ "name": "Job Family", "value": "Sales Emerging Business" },{ "name": "Time Type", "value": "Full time" },{ "name": "USA: Pay Transparency Range", "value": "{'unit': 'USD', 'max_value': '155400.0', 'min_value': '105700.0'}" }],"apply_url": "https://job-boards.greenhouse.io/doordashusa/jobs/8139265","source": "greenhouse"}]
The default input (Stripe, Figma, DoorDash) returned 500 jobs in about 5 seconds.
Pricing
This actor uses pay-per-event pricing – you pay only for jobs saved to the dataset:
- $0.0005 per job = $0.50 per 1,000 jobs
- $0.00005 per actor start (per GB of memory, practically free)
No proxies or paid APIs are involved, so there are no extra costs.
| Scenario | Jobs | Cost |
|---|---|---|
| One company, up to 200 jobs | 200 | ≈ $0.10 |
| Default run (3 companies, 500 jobs) | 500 | ≈ $0.25 |
| 25 companies, 200 jobs each | 5,000 | ≈ $2.50 |
| 10 companies refreshed daily for 30 days (~1,000 jobs/day) | ~30,000 | ≈ $15.00 |
Title and location filters are applied before saving, so you only pay for matching jobs. Use Max jobs per board, Max jobs in total (up to 5,000 per run) and Apify's maximum cost per run to cap spending.
Use cases
- Job boards & aggregators – one request per company gives title, location, department, apply URL and full description, ready to index.
- Recruiting intelligence – see which teams competitors are staffing, where they open offices and how long roles stay open.
- Hiring-trend analysis – snapshot boards on a schedule and chart hiring by department and location;
job_idandrequisition_idmake runs easy to diff. - Sales prospecting on hiring signals – a company hiring data engineers is buying a data stack; search descriptions for tools and turn open roles into timed outbound lists.
- Salary and job-family research – collect the custom job fields many boards publish, such as job family or pay transparency ranges.
- AI and RAG pipelines – clean plain-text descriptions are ready to embed or summarize with LLMs.
Integrations and API
Run the Greenhouse scraper via the Apify API, CLI or integrations: Make, Zapier, n8n, Google Sheets, Slack, Airbyte or webhooks. Pair a daily schedule with a webhook to push new jobs straight into your database, CRM or job board.
Python example with the official apify-client:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("ninhothedev/greenhouse-jobs-scraper").call(run_input={"boardTokens": ["stripe", "figma"], "titleFilter": "engineer", "maxItems": 300})for job in client.dataset(run["defaultDatasetId"]).iterate_items():print(job["company"], job["title"], job["location"], job["apply_url"])
FAQ
Is it legal to scrape Greenhouse job boards? The actor reads only job postings that companies publish openly, through Greenhouse's public Job Board API – the same content any visitor sees. No login is used and no candidate data is accessed. Check your local laws and intended use.
Are there limits?
Up to 5,000 jobs per run (maxItems) and a per-board cap (maxItemsPerBoard, up to 5,000). Each board loads in a single request, so even large runs finish in seconds. For more jobs, split companies across runs.
Do I need proxies or an API key? No. The public Job Board API needs no key and no proxy.
Why are descriptions sometimes missing?
If you turn off Include full job descriptions, description and description_html are empty – that mode is faster and lighter.
Can I schedule it?
Yes – create an Apify Schedule (e.g. daily) and use job_id to detect new and closed jobs between runs.
What if a company uses Lever, Ashby or Workday? Use the matching related actor below, or the ATS Jobs Scraper for Greenhouse and Lever together.
Something does not work? Open an issue on the actor's Issues tab with the run ID and the board token – we usually respond within a day.
Related actors
- ATS Jobs Scraper – Greenhouse and Lever boards in one run.
- Lever Job Postings Scraper – jobs from any Lever board.
- Ashby Jobs Scraper – Ashby career boards with salary and apply links.
- Workday Jobs Scraper – Fortune 500 careers sites on Workday.
- Arbeitnow Jobs Scraper – Germany & EU jobs, remote and visa sponsorship.
- Website Contact & Email Extractor – emails and phones of hiring companies.