Greenhouse Jobs Scraper & Monitor
Pricing
from $0.19 / 1,000 greenhouse job results
Greenhouse Jobs Scraper & Monitor
Greenhouse jobs scraper for known public boards with snapshots, exact details and explicit change monitoring.
Pricing
from $0.19 / 1,000 greenhouse job results
Rating
0.0
(0)
Developer
Cliqto Media
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
This Greenhouse jobs scraper reads public boards you already know. Export a current snapshot, fetch exact job details, or compare two snapshots to find changes.
The Actor calls public Greenhouse Job Board GET endpoints. It needs no Greenhouse account, browser, or proxy. It never submits job applications.
Quick start
This input reads one public board without job descriptions:
{"mode": "snapshot","boards": ["figma"],"includeContent": false,"maxJobsPerBoard": 500,"maxJobsTotal": 500}
You can use a raw board token or a supported Greenhouse board URL:
{"mode": "snapshot","boards": ["airbnb","https://job-boards.greenhouse.io/figma","https://job-boards.eu.greenhouse.io/proton"],"includeContent": true,"titleKeywords": ["engineer"],"locations": ["remote"]}
Filters are case-insensitive. Filters run before output limits. A board that hits a limit is marked partial, so it cannot produce false removal events.
Fetch exact job details
Use the board token and numeric Greenhouse job-post ID:
{"mode": "details","jobs": ["airbnb/1234567"],"includeContent": true,"includeQuestions": true,"includePayTransparency": true}
Questions and pay ranges are optional. Each option adds one detail request for each relevant job. Values appear only when the employer exposes them.
Monitor job changes
First, create a snapshot:
{"mode": "monitor","boards": ["proton"]}
The run saves SNAPSHOT in its default key-value store. It reports that store
ID in RUN_SUMMARY.currentSnapshotKeyValueStoreId.
Pass the store ID to a later run:
{"mode": "monitor","boards": ["proton"],"baselineKeyValueStoreId": "PRIOR_RUN_KVS_ID","monitorOutput": "changes_only"}
The Actor never changes the prior store. Several runs can compare against the
same snapshot. Set monitorOutput to all to include unchanged jobs.
Monitor rows can be baseline, new, updated, unchanged, or removed.
A removal appears only when both board snapshots are complete and compatible.
The removal time is when the absence was observed, not an employer closure
time.
An inaccessible, expired, incompatible, or damaged baseline fails closed. The Actor does not invent changes or silently create a replacement baseline.
Output
Each Dataset item is one current job or one verified removal tombstone. Its
stable ID is {lowercaseBoardToken}:{greenhouseJobPostId}.
Important fields include:
- source job, internal and requisition IDs;
- title, location, departments and offices;
- source and Greenhouse URLs;
- first-published and updated timestamps;
- optional HTML plus separate plain text;
- optional public questions and structured pay ranges;
- change status, changed fields and versioned hashes;
- source request evidence.
Example:
{"schemaVersion": 1,"recordType": "job","stableId": "exampleco:1234567","boardToken": "exampleco","jobId": "1234567","title": "Software Engineer","location": { "name": "Remote" },"changeStatus": null,"changedFields": [],"updatedAt": "2026-09-10T09:30:00.000Z","absoluteUrl": "https://example.invalid/jobs/1234567"}
The default key-value store contains two records:
RUN_SUMMARYexplains coverage, limits, retries, output, baseline and charge counts for every input.SNAPSHOTcontains versioned state for a later monitor run.
Always inspect RUN_SUMMARY. A successful platform status alone does not prove
that every source input was complete.
How charging works
Apify charges USD 0.001 once after valid input is accepted. Each useful job or
verified monitoring change saved to Dataset has one job-result charge.
The row price depends on your Apify plan:
- FREE: USD 0.000240;
- BRONZE: USD 0.000230;
- SILVER: USD 0.000210;
- GOLD, PLATINUM and DIAMOND: USD 0.000190.
Empty boards, failed inputs and rows that are not saved have no row charge.
Outcomes and retries
Each input ends as COMPLETE, EMPTY, NOT_FOUND, PARTIAL, DRIFTED,
FAILED, or UNPROCESSED.
EMPTYandNOT_FOUNDare valid source outcomes.PARTIALmeans a limit or detail problem left work incomplete.DRIFTEDmeans the source response no longer matches the supported shape.FAILEDmeans a technical request failed after bounded retries.UNPROCESSEDmeans a run-wide stop left the input untouched.
The Actor tries network, 408, 429, and 5xx failures at most three times. Do not loop on invalid input, 404, source drift, or a damaged baseline.
For support, send the Apify run ID, UTC time, redacted input and RUN_SUMMARY.
Never send tokens, cookies, authorization headers, or application answers.
Limits
- Up to 100 boards per snapshot or monitor run.
- Up to 5,000 matching jobs per board.
- Up to 10,000 matching jobs per run.
- Up to 500 exact jobs in details mode.
- Four boards and eight detail requests can run concurrently.
- Description responses are capped at 64 MiB per board.
- Detail responses are capped at 2 MiB each.
These bounds keep runs predictable. The Actor marks omitted work instead of claiming more coverage than it observed.
Limitations
- You must already know each board token or URL.
- This is not a global Greenhouse company index.
- Other applicant tracking systems are not supported.
- Greenhouse can remove a posting without a reason or closure time.
- Source changes, access limits, and network failures can make a run partial.
- You are responsible for lawful downstream retention and republication.
Greenhouse is a trademark of its owner. This project is not affiliated with or endorsed by Greenhouse Software, Inc.