Greenhouse Job Boards Scraper - All Openings, No API Key avatar

Greenhouse Job Boards Scraper - All Openings, No API Key

Pricing

from $0.50 / 1,000 results

Go to Apify Store
Greenhouse Job Boards Scraper - All Openings, No API Key

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

ninhothedev

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

5 days ago

Last modified

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?

FieldExampleDescription
companyfigmaBoard token (company slug) the job came from
job_id5426468004Greenhouse public job ID (stable, good for deduplication)
internal_job_id4868517004Greenhouse internal job ID
titleAccount Executive, EnterpriseJob title
locationSan Francisco, CA • New York, NYLocation as published
departments["Sales"]List of department names
offices["US"]List of office names
is_remotefalsetrue when location or title says remote / anywhere / distributed
employment_typeFull timeEmployment type, when the board publishes it as a job field
requisition_id1451Company-internal requisition ID
updated_at2026-07-22T09:37:08ZLast update of the posting (UTC)
descriptionFigma 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_urlhttps://boards.greenhouse.io/figma/jobs/5426468004Direct link to the job and application page
sourcegreenhouseAlways greenhouse
scraped_at2026-10-15T18:03:26ZRun 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

  1. Add company board tokens – the slug from the board URL: https://boards.greenhouse.io/stripe → stripe. You can paste full board URLs too.
  2. Optionally set a title filter (e.g. engineer), a location filter (e.g. berlin or remote), turn off full descriptions for a listing-only run, and set the per-board and total limits. Click Start.
  3. 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.

ScenarioJobsCost
One company, up to 200 jobs200≈ $0.10
Default run (3 companies, 500 jobs)500≈ $0.25
25 companies, 200 jobs each5,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_id and requisition_id make 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 ApifyClient
client = 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.