Greenhouse Jobs Scraper | Hiring Updates & Company Watchlists
Pricing
from $1.28 / 1,000 delivered job post versions
Greenhouse Jobs Scraper | Hiring Updates & Company Watchlists
Export public Greenhouse vacancies by company, title, department and location. Track new or changed job versions. $1.50 per 1,000 records; no start fee.
Pricing
from $1.28 / 1,000 delivered job post versions
Rating
0.0
(0)
Developer
Signal Foundry
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Retrieve the current public vacancies of employers on your Greenhouse watchlist, then keep only newly observed or changed job versions on repeat calls. Useful for recruitment research, company hiring signals and job-feed integrations.
Pricing
$1.50 per 1,000 delivered records ($0.0015 per result). No Actor start fee. Platform usage is included in this Actor's price. Set a run charge limit in Apify to bound the cost. Skipped duplicate versions are not charged.
For example, 100 delivered records cost $0.15. Zero delivered records have no result charge.
Quick start
Open Input, supply your filters and click Start. The default dataset can be exported as JSON, CSV or Excel. Each public Example provides a ready-to-use preset.
{"boardTokens": ["cloudflare"],"titleContains": "engineer","maxJobsScanned": 1000,"onlyNew": false,"maxItems": 25}
Repeat calls and change tracking
Use onlyNew: true and the same stateKey for a stable feed. The first call delivers current matching versions. Later calls skip already delivered versions and charge only for newly delivered versions. Use a different stateKey for a different query. Reset saved history only when you want a replay.
History retains the most recent 25,000 fingerprints. Versions that leave this bounded history may be delivered again. Collection scans within the configured scan limit before the delivery limit is applied, so unchanged rows cannot consume maxItems. Use onlyNew: false for complete snapshots within these limits.
Search skills in job descriptions
Use descriptionContains for a case-insensitive substring in the public description, such as python. It combines with the title, department, location and update-date filters before results are delivered or charged. Matching uses extracted text, excluding HTML attributes, scripts and styles. Source introductions and conclusions are included when Greenhouse puts them in the description.
Set includeDescription: true to add descriptionText to each result for job-feed and search integrations. Entity-encoded source HTML is converted to whitespace-normalized text; no HTML or scripts are executed. Missing source descriptions produce an empty string and cannot match a nonempty description filter. The Actor does not infer skills, salary, remote eligibility or other attributes from this text.
{"boardTokens": ["anthropic"],"titleContains": "engineer","descriptionContains": "python","includeDescription": true,"maxJobsScanned": 1000,"onlyNew": false,"maxItems": 10}
Both options are off by default. Existing requests retain their output fields and version identifiers. With description output enabled, text changes also create a new version fingerprint. Use a separate stateKey when changing a feed's filters or description-output setting. A filter can return no matches within the scan limit.
Real output example
Captured from the live source on 2026-10-02. Selected fields are shown below; source dates are preserved.
{"companyName": "Cloudflare","title": "AI Security Research & Red Team Engineer","jobId": "8097321","location": "Hybrid","departments": ["Security"],"offices": [{"name": "Austin, TX","location": "Austin, TX, United States"},{"name": "New York, NY","location": "New York, New York, United States"}],"firstPublished": "2026-08-10T11:02:09-04:00","updatedAt": "2026-10-02T14:24:13-04:00","jobUrl": "https://boards.greenhouse.io/cloudflare/jobs/8097321?gh_jid=8097321","signalId": "cloudflare:8097321:6626369bc7c5d365a8c1a41a"}
API integration
Send your JSON input to the synchronous Apify endpoint. Supply your own Apify token in the Authorization header.
curl --request POST \'https://api.apify.com/v2/acts/signalfoundryhq~greenhouse-hiring-radar/run-sync-get-dataset-items?maxTotalChargeUsd=0.05' \--header 'Authorization: Bearer YOUR_APIFY_TOKEN' \--header 'Content-Type: application/json' \--data '{"boardTokens":["cloudflare"],"titleContains":"engineer","maxJobsScanned":1000,"onlyNew":false,"maxItems":10}'
For runs longer than the synchronous endpoint timeout, start an asynchronous Actor run, wait for its final status and retrieve the default dataset. The default key-value store OUTPUT record contains delivered count, skipped duplicates and charge-limit status.
Coverage and limitations
- Provide explicit employer boards. This Actor does not discover every Greenhouse customer or search a global jobs database.
- Up to 25 boards, 10,000 raw listings scanned, and 5,000 delivered records per run. Boards are examined in supplied order. Increase the scan limit when combining filters or several boards.
- One result is one public job post version, identified by board token, job ID and a fingerprint of emitted metadata. Multiple location-specific posts can represent one underlying job; use internalJobId if available to group them.
- Title, department and location filters are case-insensitive substrings. Location checks displayed locations and offices. Remote eligibility, salary, visa sponsorship and employer attributes are not inferred.
- The record includes public title, company name, departments, offices, source dates and application URL. Public description text is optional; applicant data is not returned. With description output off, description-only edits may still create a row if the source updated_at timestamp changes.
- Jobs removed from a board disappear from later snapshots; this Actor does not emit deletion/closed-job events.
- An invalid or inaccessible board causes a failed run rather than a silent partial result.
Source and reuse
Data is fetched through the documented, unauthenticated Greenhouse public Job Board API. This Actor is an independent integration and is not affiliated with Greenhouse or the employers. Source content remains subject to the relevant employer and provider rights; this Actor does not grant a separate licence to job-description text.
Support
Report a reproducible issue through this Actor's Issues tab. Include the run ID and filters. Never post an Apify token or private information.