Greenhouse Jobs Scraper
Pricing
from $1.20 / 1,000 job results
Greenhouse Jobs Scraper
Scrape open jobs from any company's Greenhouse job board, with department, seniority, job function and stated pay. Or get only new and closed jobs since your last run. No login, no proxy.
Pricing
from $1.20 / 1,000 job results
Rating
0.0
(0)
Developer
Novasphere
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 hours ago
Last modified
Categories
Share
Get the open jobs from any company's Greenhouse job board in a clean format. Run it once for the full list, or on a schedule to get only the jobs that were posted or taken down since the last run.
It reads Greenhouse's public job board API, so there's no login, no browser and no proxy. A board usually takes a second or two.
Use it to
- Watch hiring at a list of companies: competitors, customers, prospects, a fund's portfolio
- Send new roles to Slack, email, a spreadsheet or your own job board
- Give an AI agent a tool for "who is hiring for X at these companies"
- Build hiring-signal data for sales or research
Input
Add one job board per line, in any of these forms:
| You enter | Example |
|---|---|
| The job board link | https://job-boards.greenhouse.io/stripe |
| A link to any job on it | https://job-boards.greenhouse.io/gitlab/jobs/8860302002 |
| The company's website | stripe.com (the Actor follows its careers page to the Greenhouse board) |
| The board or company name | stripe |
Older boards.greenhouse.io links, embedded boards (...embed/job_board?for=stripe) and EU boards (job-boards.eu.greenhouse.io) work too. The board name is the part after greenhouse.io/ in the board's address.
Then pick what to output:
- All open jobs: everything currently on each board that passes your filters.
- Only changes since the last run: jobs that are new since the previous run, plus jobs that have been taken down. Runs with the same Feed name share their memory, so use one feed name per watchlist. The first run counts every job as new, unless you tick Skip existing jobs on the first run.
Optional filters: words in the job title (include or exclude), seniority, job function, location, department, remote / hybrid, and posted within the last N days.
{"companies": ["https://job-boards.greenhouse.io/stripe", "gitlab", "airbnb"],"mode": "changes","feedName": "competitors","titleKeywords": ["engineer", "product"],"departmentKeywords": ["engineering"]}
Output
One item per job:
{"change": "new","company": "GitLab","title": "Account Executive - France","location": "Remote, France","workplaceType": "remote","employmentType": null,"seniority": null,"jobFunction": "sales","department": "EMEA - Commercial","team": null,"salary": null,"salaryText": null,"postedAt": "2026-10-02T15:31:50Z","url": "https://job-boards.greenhouse.io/gitlab/jobs/8860302002","applyUrl": "https://job-boards.greenhouse.io/gitlab/jobs/8860302002","platform": "greenhouse","board": "gitlab","jobId": "8860302002","allLocations": ["Remote, France", "France"],"country": null,"updatedAt": "2026-10-15T19:24:46Z","firstSeenAt": "2026-10-22T08:00:14Z","closedAt": null,"checkedAt": "2026-10-22T08:00:14Z"}
| Field | What it is |
|---|---|
change | new or closed in changes mode; empty when listing all open jobs |
company | The company name Greenhouse shows |
title, location | As the employer lists them |
allLocations | The job's location plus its office locations |
department | The job's department |
salary, salaryText | Pay range, when the employer states one in the description |
workplaceType | remote or hybrid when the location says so |
employmentType | Only when the employer adds it as a custom field, so often empty |
seniority | intern, entry, senior, lead, manager, director or executive, read from the job title. Empty when the title doesn't say |
jobFunction | Area of work (engineering, sales, data, design, people, ...), read from the job title, then the department or team |
postedAt, updatedAt | When the job was first published and last updated (ISO 8601, UTC) |
url, applyUrl | The job's page; many employers send it to their own careers site |
platform, board, jobId | Where the job came from. jobId is Greenhouse's job ID |
firstSeenAt, closedAt | Changes mode: when this feed first saw the job, and when it noticed it was gone |
checkedAt | When the board was read |
description | Plain-text job description, only if you tick Include the job description |
team and country are always empty: Greenhouse's public job list doesn't include them.
Each run also saves a summary to its key-value store under OUTPUT: boards checked, boards not found or unreadable (with the reason), and job counts.
Running it as a change feed
- Set What to output to Only changes and give the feed a name.
- Add a schedule, for example daily.
- Connect an integration (webhook, Slack, email, Google Sheets, Zapier, Make) to receive each run's new and closed jobs.
Using it from an AI agent or code
Every input is plain JSON, so it works through the Apify API, the Python and JavaScript clients, and Apify's MCP server (https://mcp.apify.com) for Claude, ChatGPT and other agents. The input also accepts a comma-separated string for companies and the keyword fields.
Good to know
- Not affiliated with or endorsed by Greenhouse. The name only says which job boards this reads.
- Only public job-board data is read. There's no candidate or employee data.
- Job descriptions are the employer's text. Respect each employer's terms if you republish them.
- In changes mode every job on a board is tracked, and filters only decide what's output, so changing a filter later won't resend old jobs.
- In changes mode, if a run stops at your maximum charge, the changes it couldn't output are kept and come out on the next run.
- The feed's memory is kept in your account in a key-value store named
greenhouse-jobs-feed-<feed name>. Delete it to start the feed fresh. - Boards that can't be found or read are listed in the run summary; the rest of the run carries on.
- Tracking companies on other job boards too? The multi-platform version reads Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable, Recruitee, Personio and BambooHR in one run. To search new jobs across thousands of companies at once, try Career Site Job Search.