Greenhouse Job Board Scraper avatar

Greenhouse Job Board Scraper

Pricing

from $1.80 / 1,000 results

Go to Apify Store
Greenhouse Job Board Scraper

Greenhouse Job Board Scraper

Scrape all open jobs from any company hiring on Greenhouse. Give it company slugs and get title, location, department, office, full description and apply link as structured data.

Pricing

from $1.80 / 1,000 results

Rating

0.0

(0)

Developer

Vault

Vault

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

What does Greenhouse Job Board Scraper do?

This Actor extracts every open role from any company that hires through Greenhouse, one of the most widely used applicant tracking systems in tech. Give it a list of company board slugs and it returns job title, company, location, department, office, posting date and a direct apply link as clean structured data.

Thousands of companies run their careers page on Greenhouse — Stripe, GitLab, Coinbase, Robinhood and many more. One run can pull hundreds of roles per company, and you can scrape as many companies as you like in a single run.

Results download as JSON, CSV, Excel or HTML, and are available through the Apify API. Schedule it to run daily and you have a continuously fresh hiring dataset.

Why use this scraper?

  • Sales and lead intelligence — a company opening ten engineering roles is a company with budget. Hiring activity is one of the strongest buying signals there is.
  • Recruitment and talent mapping — see exactly what your competitors are hiring for, where, and in which departments.
  • Build a job board — aggregate roles from hundreds of companies into your own niche site.
  • Market research — track hiring volume by function and location over time.
  • Job hunting — monitor every company you care about in one spreadsheet instead of checking dozens of careers pages.

How to find a company's slug

Open the company's Greenhouse careers page. The slug is the last part of the URL:

https://job-boards.greenhouse.io/stripe -> slug is "stripe"
https://job-boards.greenhouse.io/gitlab -> slug is "gitlab"

Add as many slugs as you want to the Company board slugs field. If a company isn't on Greenhouse, the Actor logs a warning and carries on with the rest — a bad slug never breaks your run.

How to use it

  1. Enter one or more company board slugs.
  2. Optionally set a keyword (for example engineer) or location (for example London) filter.
  3. Turn on Include full details if you want descriptions, departments and offices.
  4. Set Maximum jobs to cap the run size.
  5. Click Start, then open the Storage tab to export.

Input

FieldTypeDescription
companiesarrayGreenhouse board slugs. Required.
includeDetailsbooleanFetch full description, department and office. Default false.
keywordstringOnly return jobs whose title contains this text.
locationstringOnly return jobs whose location contains this text.
maxItemsintegerMaximum jobs across all companies. Default 1000.
{
"companies": ["stripe", "gitlab", "coinbase"],
"keyword": "engineer",
"includeDetails": false,
"maxItems": 500
}

Output

{
"title": "Android BSP Engineer",
"companySlug": "stripe",
"companyName": "Stripe",
"location": "Taipei, Taiwan",
"department": "Engineering",
"departments": ["Engineering"],
"office": "APAC",
"offices": ["APAC"],
"url": "https://stripe.com/jobs/search?gh_jid=8074125",
"jobId": 8074125,
"requisitionId": "See Opening ID",
"updatedAt": "2026-08-18T18:00:18-04:00",
"firstPublished": "2026-07-20T21:43:12-04:00",
"scrapedAt": "2026-08-25T03:17:21.586Z"
}

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

Data fields

FieldDescription
titleJob title.
companySlug / companyNameThe board slug you supplied, and the company's own name.
locationLocation string as published.
department / departmentsTeam the role sits in. Requires Include full details.
office / officesOffice the role is attached to. Requires Include full details.
descriptionHtml / descriptionTextFull job description as HTML and as plain text. Requires Include full details.
urlDirect apply link.
jobId / requisitionIdGreenhouse identifiers, useful for de-duplication.
updatedAt / firstPublishedWhen the posting was last changed and first published.
scrapedAtISO timestamp of capture.

A note on Include full details

Greenhouse serves department, office and description only from its detailed endpoint, which returns roughly 12x more data. Leaving the option off gives you a much faster, lighter run — but those three fields come back empty. Turn it on when you need them.

How much does it cost?

Billed per job returned, so the cost tracks exactly what you get. A run that matches nothing costs nothing. Use Maximum jobs to put a hard ceiling on any run, and prefer keyword or location filters over scraping everything and filtering later.

Tips

  • Run on a daily schedule and diff against yesterday's dataset to catch brand-new postings the day they appear.
  • Use jobId as your unique key when de-duplicating across runs.
  • firstPublished tells you how long a role has been open — useful for spotting hard-to-fill positions.
  • Leave Include full details off when scraping many companies at once, then re-run with it on for the shortlist you care about.

FAQ, disclaimers, and support

Where does the data come from? Greenhouse's public job board endpoint — the same source that powers the embedded careers page on the company's own website. Nothing private or logged-in is accessed.

Is this legal? The Actor reads only publicly published job listings. You remain responsible for complying with applicable terms and data protection law in how you use the results.

One of my companies returned nothing. That company either isn't on Greenhouse or uses a different slug. Check the URL of their careers page — the slug is the final path segment. The run continues normally and logs which slugs were missing.

Why are department and office empty? Turn on Include full details. See the note above.

Need another ATS covered, or a custom variant? Open an issue on the Issues tab.