Greenhouse Jobs Scraper
Pricing
from $0.50 / 1,000 jobs
Greenhouse Jobs Scraper
Job listings from any Greenhouse board with title, department, locations and the pay range the company publishes, read live when you run it. Give it board links, board tokens or company domains, or leave the list empty to search more than 180,000 open Greenhouse jobs in our daily index.
Pricing
from $0.50 / 1,000 jobs
Rating
0.0
(0)
Developer
deriverge s.r.o.
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Greenhouse Jobs Scraper returns every open job on the Greenhouse boards you give it, one row per job: title, department, locations, posting and update dates, the apply link and the pay range when the company publishes one. Paste a board link such as https://job-boards.greenhouse.io/gitlab and click Start, or leave the list empty to search more than 180,000 open Greenhouse jobs from our daily index (29 September 2026). Greenhouse boards publish no employment type, workplace type or team, so those fields stay empty. It costs $1.00 per 1,000 jobs on the Free plan ($0.50 on Business), and the $5 of monthly credit in Apify's Free plan covers about 5,000 jobs.
What data does it return?
| Field | Description |
|---|---|
title, department | Title as posted and the first department the job is filed under, Product Security in the sample. |
companyName, company | Company name from the board (GitLab) and the board token from the link (gitlab). |
locations, countries | Greenhouse gives one location text per job, and it can name several places: Remote, Canada; Remote, Israel; Remote, United Kingdom; Remote, United States becomes CA, IL, GB and US. |
salaryText | Pay range from the board's pay transparency data with the label the company gave it, such as 203,200 - 275,000 USD (United States Salary Range). Several ranges are joined with a semicolon. |
salaryMin, salaryMax, salaryCurrency, salaryPeriod | The same range as numbers. With descriptions on, a range written only in the ad is read too. |
salaryYearlyMin, salaryYearlyMax | Pay per year (hourly × 2,080, monthly × 12), for comparing hourly and salaried jobs. |
postedAt, updatedAt | When the job was first published and when it last changed, as ISO 8601 timestamps. |
language | Language code Greenhouse stores with the job (en), present even without descriptions. |
url, applyUrl | The link Greenhouse gives for the job. Some companies point it at their own careers page with a gh_jid parameter, as Stripe does: https://stripe.com/jobs/search?gh_jid=8145117. |
seniority, jobCategory, workArrangement | Read from the title, department, location and description: lead, it-security and remote for the sample job. |
employmentTypes | Types named in the title, such as contract or internship; for most jobs the list is empty. |
skills, experienceYearsMin, educationLevel, visaSponsorship | Read from the description when it is on: GitLab, Go, Python, TypeScript, Rust and 10 years for the sample job. |
description | The ad as plain text. Greenhouse sends it in the same response as the job list. |
key, jobId, input, reference, firstSeenAt | A key such as greenhouse:gitlab:8731718002, the Greenhouse job ID, your input as typed, your own label and the time this run read the job. |
How to scrape Greenhouse jobs
- Put one Greenhouse board per line into Career sites. Links on
job-boards.greenhouse.ioandboards.greenhouse.iowork, including their EU versions and embed links that carry the token after?for=. The bare token (gitlab) or a company domain (gitlab.com) works as well. - To follow only some roles, set Title keywords, which also match the department, or Countries and Locations. The job filters cover seniority, job category, work arrangement and pay.
- Turn on Include the full job description to get the ad text, the skills and years of experience it asks for, and pay that is written only in the text.
- Click Start. The Output tab lists the jobs for download in CSV, Excel or JSON. A matching API input:
{"companies": ["https://job-boards.greenhouse.io/gitlab", "stripe"],"keywords": ["security"],"hasSalary": true,"includeDescription": true,"maxJobsPerCompany": 25}
Example output
One row from a run on 30 September 2026 over GitLab's board with Title keywords set to security, Only jobs with a salary and descriptions on; description is trimmed to its opening two sentences.
{"key": "greenhouse:gitlab:8731718002","ats": "greenhouse","company": "gitlab","companyName": "GitLab","jobId": "8731718002","title": "Principal Security Researcher","locations": ["Remote, Canada; Remote, Israel; Remote, United Kingdom; Remote, United States"],"remote": true,"department": "Product Security","team": null,"employmentType": null,"workplaceType": null,"salaryText": "203,200 - 275,000 USD (United States Salary Range)","postedAt": "2026-09-05T17:47:29.000Z","updatedAt": "2026-09-29T14:38:50.000Z","url": "https://job-boards.greenhouse.io/gitlab/jobs/8731718002","applyUrl": "https://job-boards.greenhouse.io/gitlab/jobs/8731718002","description": "GitLab is the intelligent orchestration platform for DevSecOps. GitLab enables organizations to increase developer productivity, improve operational efficiency, reduce security and compliance risk, and accelerate digital transformation. …","language": "en","reference": null,"input": "https://job-boards.greenhouse.io/gitlab","firstSeenAt": "2026-09-30T00:43:34.320Z","seniority": "lead","jobCategory": "it-security","employmentTypes": [],"workArrangement": "remote","countries": ["CA","IL","GB","US"],"salaryMin": 203200,"salaryMax": 275000,"salaryCurrency": "USD","salaryPeriod": "year","salaryYearlyMin": 203200,"salaryYearlyMax": 275000,"visaSponsorship": null,"skills": ["GitLab","Go","Python","TypeScript","Rust"],"experienceYearsMin": 10,"experienceYearsMax": null,"educationLevel": null}
How much does it cost to scrape Greenhouse jobs?
| Free plan | Starter | Scale | Business | |
|---|---|---|---|---|
| 1,000 jobs | $1.00 | $0.80 | $0.65 | $0.50 |
You pay only for the events in the table. There is no start fee, and compute time and proxies are included.
A board with 200 open jobs costs $0.20 on the Free plan and $0.10 on Business, whether or not you add descriptions. Jobs your filters remove, jobs the new-only mode skips and companies that turn out to use another system are not charged.
Limits
- On 29 September 2026, about one Greenhouse job in five in our index had a pay range in its board data. The others get pay numbers only when the description states a range and descriptions are on.
- With no workplace field to go on,
workArrangementrelies on words in the location, title and description, such asRemoteorHybrid. - Only the first department of a job is kept.
- A company can run several Greenhouse boards, for example one per region or brand. Add each board on its own line.
- Greenhouse keeps internal job postings off the public board, so they are not returned.
Searching all Greenhouse jobs
With Career sites empty, the actor searches the Greenhouse part of our daily index, where every board is re-read each day. The filters work the same way, except that title keywords match only the title. Results come newest first, up to Maximum jobs (index search), 1,000 when empty; a search that returned 955 jobs finished in about 9 seconds. Index rows name the company in company and the token in companySlug, and have no input or reference. Turning on the description re-reads each job on its board, which also drops jobs closed since the last build.
FAQ
Is it legal to scrape Greenhouse job boards?
Greenhouse job boards are public pages that companies publish to recruit, and the actor reads them through Greenhouse's Job Board API, which serves those same pages. It collects the job ads only, with no candidate or employee data. It is up to you to use the results lawfully.
What is a Greenhouse board token?
The name after the host in the board link: in https://job-boards.greenhouse.io/gitlab it is gitlab. If you only know the company's website, enter its domain. The actor looks for a Greenhouse link on the company's careers page and, failing that, for a board whose data contains the domain or whose name matches it.
How do I track new Greenhouse jobs every day?
Turn on Return only jobs posted since the last run, set a Watch name and schedule the run daily. Each run returns the jobs that were not on the boards the time before, and the CHANGES record also counts closed and retitled jobs. Jobs a run leaves out because of Maximum jobs per company or its maximum cost are not marked as seen, so the following run returns them.
Related scrapers
Support
This actor is built and maintained by deriverge s.r.o., a software company based in the Czech Republic. If a run fails or a field you need is missing, please open an issue in the Issues tab or write to us at info@deriverge.com. We respond in English and Czech. Runs can be scheduled in Apify Console or started from the API tab, which has examples for Python, JavaScript and cURL and works with Make, Zapier, n8n and the Apify MCP server. If the actor saves you time, a short review helps other people find it.