Greenhouse Jobs Scraper: Salary Ranges & New Jobs
Pricing
from $2.00 / 1,000 job saveds
Greenhouse Jobs Scraper: Salary Ranges & New Jobs
Search open jobs across 5,800+ companies on Greenhouse, or read any company’s Greenhouse board: Airbnb, Stripe, Figma and more. Greenhouse pay ranges by zone, salary, seniority, visa, exact posting date, full text and application questions. Only-new-jobs mode. No login.
Pricing
from $2.00 / 1,000 job saveds
Rating
0.0
(0)
Developer
Bruno Petrelli
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share
Search open jobs across 5,800+ companies that hire through Greenhouse, or read any company's Greenhouse board in full: Airbnb, Stripe, Figma, Databricks, Robinhood, Toast and thousands more. Every job comes as a clean row with title, location, country, salary, Greenhouse pay ranges by zone, seniority, visa sponsorship, years of experience, the exact posting date, the full description and, if you want it, the application form's questions.
It reads Greenhouse's public Job Board API, the same data a company's careers page shows. That means:
- No proxies, no headless browser, no login. Nothing breaks when a careers page changes its design.
- Two ways to run it. Leave Greenhouse boards empty to search every company in our Greenhouse directory by title, location and date. Or paste the boards you care about and get every open job from each.
- Fast searches over thousands of companies. A daily index of every open Greenhouse job picks the companies that have a matching job, and only those are read live. A search for a week of software engineer jobs read 254 of the 5,801 companies and took about a minute.
- Salary, two ways. The pay range written in the description ("$159,000—$254,000 USD") becomes numbers, and the pay ranges the company set in Greenhouse come as data, one per zone or level. In a random sample of 200 jobs from 40 companies, 92 came with a salary.
- Only new jobs. Schedule it daily and get just the postings that are new since the last run, and pay only for those.
What you can use it for
- Job boards and newsletters: fresh tech and startup roles from thousands of companies, filtered by keyword, location, seniority and remote.
- Recruiters and talent teams: follow competitors' and target accounts' openings every day with only-new mode.
- Sales intelligence: hiring is a buying signal. A company opening five data engineering roles is shopping for data tools.
- Salary research: compare Greenhouse pay ranges by zone, level and company.
- Apply tools and AI agents: the application questions (required fields, choices) come with each job, and descriptions are plain text, ready for an LLM. Agents can call this Actor through the Apify MCP server.
Input
| Field | What it does |
|---|---|
| Job title keywords | Keep jobs whose title has any of these words. Whole-word match: intern does not match internal. |
| Exclude title keywords | Drop titles with these words, e.g. manager. |
| Locations | Keep jobs whose location, offices or country code contain the text: New York, Germany, DE. A two-letter code matches as a whole word or the country code, so US does not match "Dusseldorf". remote also matches jobs flagged remote. |
| Remote only | Only jobs marked Remote, or whose location says Remote. |
| Posted within (days) | Only jobs first published on Greenhouse in the last N days. |
| Seniority | Keep only these levels, read from the title: intern, entry, not stated (usually mid-level), senior, lead, director, executive. |
| Workplace type | Remote, hybrid, on-site, or not stated. Greenhouse has no such field: it comes from a custom field some companies add, or from a location that says Remote, Hybrid or On-site. About 85% of jobs don't state it: add Not stated to keep them. |
| Employment type | Greenhouse lists none, so it comes from the title (intern, part-time, contract). |
| Description keywords / Exclude description keywords | Whole-word match on the full description: Kubernetes, GDPR; exclude clearance. |
| Only jobs that state a salary | A pay range written in the description, or one the company set in Greenhouse. |
| Only jobs that offer visa sponsorship | The description says the company sponsors visas. Jobs that say nothing are dropped. |
| Greenhouse boards (optional) | Empty: search the whole directory. Or the boards to read in full: the address (job-boards.greenhouse.io/airbnb, boards.greenhouse.io/stripe), a link to any job on it, or just the board name (airbnb). Any public board works, in our directory or not. |
| Exclude companies | When searching the directory: skip these companies. |
| Max jobs | Newest first. Empty: 200 for a directory search, and every job (up to 5,000) when you give boards. |
| Max jobs per company | Newest first. Keeps one big employer from filling the results. |
| Job description | Plain text (default), HTML, both, or none. |
| Include application questions | Adds each job's application form (see Output). |
| Only new jobs (for scheduled runs) | Save only jobs that earlier runs of the same search or boards did not save. |
| Memory name | Optional: share one memory between tasks, or start over with a new name. |
Search the directory for data jobs in the US or remote, posted in the last 3 days, with a salary:
{"keywords": ["data scientist", "machine learning"],"locations": ["US", "remote"],"postedWithinDays": 3,"onlyWithSalary": true,"maxJobs": 100}
The 50 newest jobs of each of three companies, with their application questions (leave out maxJobsPerCompany for every job):
{"boards": ["https://job-boards.greenhouse.io/airbnb", "https://boards.greenhouse.io/stripe", "figma"],"includeApplicationQuestions": true,"maxJobsPerCompany": 50}
Daily monitoring of new sales roles across the directory (schedule it in Schedules):
{"keywords": ["account executive"],"seniority": ["senior", "unspecified"],"maxJobs": 200,"onlyNew": true}
How to find a company's Greenhouse board: open the company's careers page and click on any job. If the address contains greenhouse.io, the board name is the part after the slash (job-boards.greenhouse.io/airbnb → airbnb). Many companies show jobs on their own domain: there, the job link usually carries gh_jid=, and the Apply button leads to the Greenhouse board.
Output
One item per job. This one came from the example search of the form (with Include application questions on; 3 of its 12 questions shown):
{"id": "8233154","platform": "greenhouse","companySlug": "toast","company": "Toast","title": "Senior Software Engineer","department": "R & D : Engineering : Shared","team": null,"location": "Remote, US","locations": ["Remote, US", "Remote - USA"],"country": "US","remote": true,"workplaceType": "remote","employmentType": null,"experienceLevel": null,"seniority": "senior","postedAt": "2026-09-29T16:07:27.000Z","updatedAt": "2026-09-30T15:16:27.000Z","url": "https://careers.toasttab.com/jobs?gh_jid=8233154","applyUrl": "https://careers.toasttab.com/jobs?gh_jid=8233154","salary": { "min": 159000, "max": 254000, "currency": "USD", "period": "year", "text": "$159,000—$254,000 USD", "source": "description" },"payRanges": [{ "title": "Zone A", "min": 159000, "max": 254000, "currency": "USD", "period": null },{ "title": "Zone B", "min": 138000, "max": 221000, "currency": "USD", "period": null },{ "title": "Zone C", "min": 125000, "max": 200000, "currency": "USD", "period": null }],"yearsOfExperience": 5,"visaSponsorship": null,"applicationQuestions": [{ "label": "First Name", "required": true, "description": null, "fields": [{ "name": "first_name", "type": "input_text", "options": null }] },{ "label": "Resume/CV", "required": true, "description": null, "fields": [{ "name": "resume", "type": "input_file", "options": null }, { "name": "resume_text", "type": "textarea", "options": null }] },{ "label": "Do you now, or will you ever, require employment sponsorship to work in the country where this job is located?", "required": true, "description": null, "fields": [{ "name": "question_69450915", "type": "multi_value_single_select", "options": ["Yes", "No"] }] }],"descriptionText": "Bready* to make a change?\nToast is a rapidly growing company that's revolutionizing how the restaurant industry does business...","descriptionHtml": null,"scrapedAt": "2026-09-30T18:42:45.079Z"}
Field notes:
companySlugis the Greenhouse board name andcompanythe name the company gives on Greenhouse.postedAtis when the job was first published on Greenhouse;updatedAtits last change.urlis the job as the company publishes it (often on its own careers site, withgh_jid).countryis an ISO 3166-1 alpha-2 code (US,GB,DE), taken from the end of the location. It isnullwhen that is not clear: "Newark, CA" could be California or Canada.remote: truemeans the job offers a fully remote option.workplaceTypeisremote,hybrid,onsite, ornullwhen the job does not say.payRangesare the pay ranges the company set in Greenhouse, in currency units, one per zone or level, with the company's own label. Greenhouse has no period field:periodis filled only when the label says it ("Hourly Pay" →hour).nullwhen the company publishes none.salaryis the pay range written in the description, as numbers with its period. When the text has none, it is the first ofpayRanges(source: "platform"). A number is taken from the text only when it is clearly pay: it needs a pay word, a period or a currency code next to it, and bonuses, funding rounds or revenue are skipped. When in doubt the field staysnull.seniorityis read from the title:intern,entry,senior,lead(lead, staff, principal),director(director, head of) orexecutive(VP, C-level).nullmeans the title names no level.yearsOfExperienceis the minimum asked for in the description ("5+ years of experience" → 5).visaSponsorshipistruewhen the description offers visa sponsorship,falsewhen it says there is none, andnullwhen it does not say.applicationQuestions(with Include application questions): each question of the application form, whether it is required, and its fields. A field has the name the form uses, its type (input_text,input_file,textarea,multi_value_single_select,multi_value_multi_select) and the choices of a select.nullwhen not asked for.- The run's OUTPUT record in the key-value store has the totals: companies read, open jobs, matches, jobs already saved by an earlier run, boards not found on Greenhouse and inputs that are not Greenhouse boards.
Only new jobs
Turn on Only new jobs and schedule the task (daily or hourly). Each run saves only the jobs that earlier runs of the same search, or the same boards and filters, did not save, so you get just the new postings and pay only for those. The memory is kept for 180 days in a key-value store named greenhouse-jobs-state in your own Apify account.
Each search has its own memory. To share one between two tasks, give both the same Memory name; to start over, give a new one.
Pricing
Pay per event: you pay only for jobs saved to the dataset, not for the jobs that were read and filtered out, and not for jobs skipped by Only new jobs. Filters cost nothing, so a precise filter is the cheapest run. Set a maximum cost for a run and the Actor stops cleanly when it is reached.
Good to know
- Only public job boards are read: the same jobs anyone sees on the company's careers page.
- The directory holds the Greenhouse boards found in the public Common Crawl web index and checked live. It is rebuilt every month. A company that is not in it can still be read by giving its board.
- The daily index makes a directory search fast. A company whose first matching job appeared after the index was built is found once the index includes it (it is rebuilt every day). Boards you give are always read live.
- Pay ranges and application questions come from each saved job's own page, one request per job. With Job description: None those pages are not read (unless a description filter or the questions need them), so there are no pay ranges.
- Filters that read the description (description keywords, salary, visa) are decided on each job's page: the Actor reads the pages of the jobs that pass your other filters, newest first, and stops once enough pass. A title keyword keeps these runs short; a rare filter such as visa sponsorship reads more pages.
- Lever, Ashby, Workday, Workable and more? Our ATS Job Scraper reads 12 job platforms, Greenhouse included, with the same columns, and our Job Search API searches 20,000+ company career sites on 7 platforms. For Workday career sites there is our Workday Jobs Scraper.
Support
Found a board that doesn't load, or a field that looks wrong? Open an issue on the Actor's Issues tab with the board address. Issues get an answer within a few days.