Greenhouse Jobs Scraper
Pricing
from $0.80 / 1,000 jobs
Greenhouse Jobs Scraper
Track company hiring on Greenhouse. Collect open roles, departments and teams, offices, pay ranges, job metadata, posting dates, apply links, application questions and full job descriptions. Filter by keywords, location and remote status for recruiting and hiring-signal research.
Pricing
from $0.80 / 1,000 jobs
Rating
0.0
(0)
Developer
Hamza
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
8 days ago
Last modified
Categories
Share
Greenhouse Jobs Scraper: Greenhouse Career Board Jobs in JSON, CSV and Excel
Track company hiring on Greenhouse job boards. Get every open role for the companies you choose: title, department, location, employment type, posting date, apply link and an optional full description. No login, no cookies, no browser, so runs finish fast.
What you get
Company, job title, department and team, location and all locations, remote or workplace type, employment type, salary range where the company publishes it, posted and updated dates, job link, apply link and an optional plain-text description.
Why use this actor
- Keywords search the full job text. A keyword matches the title, department, team and the whole job description, not only the title. Searching python finds every role that mentions python.
- Many companies in one run. Add company slugs or board links and run them in parallel.
- Useful filters. Location, department or team, and remote-only.
- Clean fields ready for spreadsheets, CRMs and hiring-signal dashboards.
Use cases
- Recruiting and talent sourcing across target companies
- Hiring-signal research for sales and investors
- Salary research where companies publish pay ranges
- Job boards and newsletters that list roles from many employers
- Competitor and market tracking
Input
| Field | What it does |
|---|---|
Companies (companies) | Company board slugs or Greenhouse career-board URLs. Only this platform is accepted. |
Keywords (keywords) | Keep only jobs where at least one of these words appears in the job title, department, team or full job description. Leave empty for all jobs. |
Locations (locations) | Keep only jobs whose location contains at least one of these texts (for example London, Remote, Germany). |
Departments or teams (departments) | Keep only jobs whose department or team contains one of these texts (for example Engineering, Sales). |
Remote jobs only (remoteOnly) | Keep only jobs marked remote or with remote in the location. Default: false. |
Include full job description (includeDescription) | Adds the job description (plain text and HTML) to every result. Billed at the higher job-with-description rate when on. Default: true. |
Include pay ranges and application questions (includeDetails) | Makes one extra request per job to get pay ranges and the application form. Turn off for a faster run that skips them. Default: true. |
Max jobs per company (maxJobsPerCompany) | Maximum number of jobs returned for each company. Default: 1000. Range: 1-10000. |
Parallel companies (concurrency) | How many companies are fetched at the same time. Default: 5. Range: 1-20. |
Example input
{"companies": ["stripe"],"keywords": ["python"],"remoteOnly": true,"maxJobsPerCompany": 100}
You can paste a company slug (for example stripe) or a Greenhouse board link (for example https://boards.greenhouse.io/airbnb).
Output
Each job carries everything the Greenhouse board API returns for it. Fields the API does not give for a job are left out of that record, so you never get columns full of nulls. Example (shortened):
{"platform": "greenhouse","company": "airbnb","companyName": "Airbnb","jobId": "8184174","title": "Account Manager ","department": "2. Business","team": "Business Development","departmentPaths": ["2. Business > Sales & Partnerships > Business Development"],"departments": [{"id": 247,"name": "Business Development","child_ids": [],"parent_id": 73691}],"offices": [{"id": 151,"name": "London, United Kingdom","location": "London, United Kingdom","child_ids": [],"parent_id": 64290}],"location": "London, United Kingdom","locations": ["London, United Kingdom"],"remote": false,"workplaceType": "hybrid","metadata": [{"id": 9245691,"name": "Is this job part of ACC?","value": false,"value_type": "yes_no"},{"id": 10216612,"name": "Workplace Type","value": "Hybrid","value_type": "single_select"}],"salaryMin": 46000,"salaryMax": 54000,"salaryCurrency": "GBP","salaryInterval": "year","salaryText": "United Kingdom Annual Pay Range: GBP 46000 - 54000","payRanges": [{"title": "United Kingdom Annual Pay Range","min": 46000,"max": 54000,"currency": "GBP","text": "How We'll Take Care of You:\n\nOur job titles may span more than one career level...."}],"requisitionId": "MULTI","internalJobId": "3541546","language": "en","postedAt": "2026-09-09T04:35:19-04:00","updatedAt": "2026-09-29T20:00:54-04:00","description": "Airbnb was born in 2007 when two hosts welcomed three guests to their San Francisco home, and has since grown to over 5 million hosts who have welcomed over 2 billion guest arrivals in almost every country across the globe. Every day, hosts offer unique stays and experiences that make it possible fo...","descriptionHtml": "<div class=\"content-intro\"><p><span style=\"font-family: helvetica, arial, sans-serif; font-size: 12pt;\">Airbnb was born in 2007 when two hosts welcomed three guests to their San Francisco home, and ha...","applicationQuestions": [{"description": null,"label": "First Name","required": true,"fields": [{"name": "first_name","type": "input_text","values": []}]}],"locationQuestions": [{"description": null,"label": "Longitude","required": false,"fields": [{"name": "longitude","type": "input_hidden","values": []}]}],"dataCompliance": [{"type": "gdpr","requires_consent": false,"requires_processing_consent": false,"requires_retention_consent": false,"retention_period": null,"demographic_data_consent_applies": false}],"jobUrl": "https://careers.airbnb.com/positions/8184174?gh_jid=8184174","applyUrl": "https://careers.airbnb.com/positions/8184174?gh_jid=8184174","scrapedAt": "2026-10-03T21:55:17.488Z"}
Main fields: department and team (resolved from the board's department tree), departments, offices, location, locations, remote, workplaceType and employmentType (only when the company sets them in job metadata), metadata, salaryMin, salaryMax, salaryCurrency, salaryInterval, salaryText, payRanges, requisitionId, internalJobId, language, applicationDeadline, education, postedAt, updatedAt, description, descriptionHtml, applicationQuestions, locationQuestions, complianceQuestions, demographicQuestions, dataCompliance, aiDisclaimer, aiOptOutUrl, jobUrl, applyUrl, scrapedAt.
Pricing
- Job: $0.0008 per event ($0.80 per 1,000).
- Job with description: $0.0015 per event ($1.50 per 1,000).
You only pay for jobs that are returned.
Tips
- Use the exact company slug from the board link, not the display name.
- Turn off the description option and the pay and questions option for a lighter, faster run.
- Combine department and location filters to build precise lead lists.
FAQ
Why is a company reported as not found? The slug may be wrong or the company may not use Greenhouse. Copy the slug from its careers page link.
Why do some jobs lack a field? Greenhouse only returns what the company filled in. For example, workplace type and employment type appear only when the company sets them in job metadata, and pay appears only when a pay range is published. Missing fields are left out of the record.
Is salary always present? No. Only jobs with a published pay range have it.
Limits
Only Greenhouse company boards are supported. Links for other platforms are ignored. Closed or unpublished jobs and missing salary fields are not supplied. Requests can be rate-limited or refused, and a small test is not proof of sustained-volume performance. Board terms and attribution requirements may apply, so check them before collecting or republishing data. Use collected data lawfully.