Greenhouse Jobs API & Hiring Signals
Pricing
from $1.20 / 1,000 greenhouse jobs
Greenhouse Jobs API & Hiring Signals
Export public Greenhouse jobs as normalized records with filters, optional employer-published pay ranges, stable hashes, and free hiring summaries.
Pricing
from $1.20 / 1,000 greenhouse jobs
Rating
0.0
(0)
Developer
Murilo Lira
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Share
Export published jobs from one or more Greenhouse Job Boards as clean JSON, CSV, or Excel-ready records. Filter by keyword, location, department, date, or explicit remote status, optionally fetch employer-published pay ranges, and receive a deterministic hiring summary for each company.
This Actor uses Greenhouse's documented public Job Board API. Greenhouse states that Job Board data is public and that authentication is not required for GET endpoints. No proxy, login, cookie, LLM, or third-party API key is required.
What you get
Each job record can include:
- company and Greenhouse board token;
- public job ID, internal job ID, and requisition ID when exposed;
- title, location, department, office, and language;
- first-published, updated, and application-deadline timestamps;
- cleaned description text and source HTML;
- explicit
remote,hybrid, oronsitelabels when observable; - employer-published pay ranges when optional detail enrichment is enabled;
- application URL, source API URL, and a stable content hash;
- raw source payload only when requested.
Each hiring-summary record contains source, matched, and published job counts; department and location distributions; explicit remote and disclosed-salary counts; and the newest observed update.
Unknown source values remain null. The Actor does not invent salary, workplace type, publication date, or company metadata.
Input example
{"boards": ["stripe", "https://boards.greenhouse.io/cloudflare"],"keywords": ["data", "machine learning"],"excludeKeywords": ["intern"],"locations": ["United States", "Remote"],"maxJobs": 250,"includeContent": true,"includePayTransparency": true,"maxPayDetails": 50,"includeSummary": true}
The board token is normally the company segment in a Greenhouse URL. For example, the token in https://boards.greenhouse.io/example is example. Official board and API URLs are also accepted and normalized.
Output example
{"recordType": "job","source": "greenhouse","boardToken": "example","companyName": "Example, Inc.","jobId": "123456","internalJobId": "7890","requisitionId": "ENG-42","title": "Senior Data Engineer","location": "Remote - US","workplaceType": "remote","departments": ["Engineering"],"offices": ["United States"],"language": "en","firstPublishedAt": "2026-06-01T16:00:00Z","updatedAt": "2026-07-10T16:00:00Z","applicationDeadline": null,"descriptionText": "Build and operate reliable data systems...","descriptionHtml": "<p>Build and operate reliable data systems...</p>","salaryRanges": [{"minimum": 120000,"maximum": 180000,"currency": "USD","interval": "YEAR","title": "US salary range","description": "Base salary"}],"applicationUrl": "https://boards.greenhouse.io/example/jobs/123456","sourceApiUrl": "https://boards-api.greenhouse.io/v1/boards/example/jobs/123456","contentHash": "e7b9...","collectedAt": "2026-07-17T12:00:00Z","metadata": null,"raw": null}
Filtering behavior
keywordsuses OR matching across title, location, description, and department.excludeKeywordsremoves a job when any term matches the same fields.locationsanddepartmentsuse case-insensitive substring matching against the corresponding published fields.remoteOnlykeeps only jobs explicitly marked remote in title or location. It does not treat missing location as remote.updatedAfteris inclusive. Jobs whose update date is missing are preserved rather than guessed.maxJobsis a global cap across all boards.
Filtering happens after one list request per board and before optional pay-detail requests.
Cost controls
The cheapest mode is includeContent: false, includePayTransparency: false, and a small maxJobs. A normal run makes one public request per board. Pay enrichment adds at most maxPayDetails requests globally, never per board.
The Actor is designed for 256 MB of memory and has no proxy or model-inference cost. Store pricing is $0.0012 per published greenhouse_job (US$1.20 per 1,000 jobs), plus a one-time $0.00005 apify-actor-start event per run. Hiring summaries are included at no extra charge.
API usage
After the Actor is published, it can be called with any Apify API client. The default dataset contains both jobs and summaries; filter on recordType when only one type is needed. RUN_SUMMARY in the default key-value store reports successful and failed boards, request totals, publication totals, and charge-limit status.
Limits and responsible use
- Only currently published jobs exposed by Greenhouse are returned.
- A valid board can legitimately contain zero jobs.
- Pay ranges are returned only when the employer exposes them through Greenhouse.
- Workplace labels are conservative text classifications, not employer guarantees.
- Board failures are isolated. The run continues when at least one requested board succeeds.
- The Actor only reads documented public
GETendpoints and never submits applications. - Respect applicable laws, the source's terms, and job-posting rights in your use and redistribution of the data.
Support
For a reproducible issue, include the board token, a minimal redacted input, run ID, expected result, and observed result. Never post an Apify token or private applicant data.