Cheapest Greenhouse Scraper with Job Monitoring avatar

Cheapest Greenhouse Scraper with Job Monitoring

Pricing

from $0.25 / 1,000 greenhouse job events

Go to Apify Store
Cheapest Greenhouse Scraper with Job Monitoring

Cheapest Greenhouse Scraper with Job Monitoring

The cheapest Greenhouse ATS scraper with persistent job-change monitoring in our August 19, 2026 Store comparison. Extract roles, descriptions, locations, departments, and apply URLs without browser or default proxy fees. Only $0.25 per 1,000 results plus $0.001 per run.

Pricing

from $0.25 / 1,000 greenhouse job events

Rating

0.0

(0)

Developer

Andy Besos

Andy Besos

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 days ago

Last modified

Share

Scrape live job listings from public Greenhouse ATS job boards and turn them into structured recruiting data. This Greenhouse jobs scraper supports multiple companies per run, full job descriptions, location and department filters, API access, and persistent monitoring for new, updated, and removed vacancies.

The Actor calls Greenhouse's public Job Board API directly—no Greenhouse account, API key, browser, or residential proxy is required.

Why use this Greenhouse jobs scraper?

  • Scrape one or hundreds of public Greenhouse company boards in a single run.
  • Export job titles, locations, departments, offices, apply URLs, IDs, timestamps, and metadata.
  • Include full job descriptions as both original HTML and clean plain text.
  • Track newly posted, updated, unchanged, and removed jobs across scheduled runs.
  • Filter Greenhouse vacancies by location or department.
  • Download results as JSON, CSV, Excel, XML, or RSS through Apify Dataset exports.
  • Run from Apify Console, the REST API, JavaScript/Python clients, schedules, webhooks, Make, or Zapier.

The direct HTTP implementation is lightweight and includes retries with exponential backoff for temporary Greenhouse API or rate-limit errors. If one company board fails, the remaining boards continue; the run fails only when every requested board fails.

Cheapest Greenhouse scraper pricing

The default direct-API mode costs $0.001 per run plus $0.00025 per job or monitoring event. There is no browser or proxy charge in the default configuration.

ResultsActor event price
1$0.00125
100$0.026
1,000$0.251
10,000$2.501

In our August 19, 2026 comparison, this was the cheapest Greenhouse scraper with persistent job-change monitoring for a 1,000-result run among the first 50 relevant Apify Store results checked. Competitor prices can change, so the exact formula above is included for transparent comparison.

Prices above cover the Actor's chargeable run and dataset events. Standard Apify charges for retaining or downloading data after a run may apply. Enabling the optional Apify Proxy can also add proxy usage costs; direct mode is recommended and enabled by default.

How to scrape Greenhouse job listings

Add one or more entries to boards. Each entry can be:

  • A board token such as airbnb
  • A public board URL such as https://boards.greenhouse.io/airbnb
  • A modern job-board URL such as https://job-boards.greenhouse.io/airbnb
  • An individual job URL such as https://job-boards.greenhouse.io/airbnb/jobs/123
  • A Greenhouse API board URL

The Actor extracts and normalizes the company board token automatically.

Quick start: scrape one Greenhouse board

{
"boards": ["airbnb"],
"includeContent": true,
"maxItemsPerBoard": 100
}

Set maxItemsPerBoard to 0 to return every matching live job. The prefilled example returns one item so the first test stays fast and inexpensive.

Scrape multiple company career pages

{
"boards": [
"airbnb",
"https://boards.greenhouse.io/figma",
"https://job-boards.greenhouse.io/stripe"
],
"includeContent": true,
"maxItemsPerBoard": 0
}

Filter Greenhouse jobs by location and department

Filters are case-insensitive substring matches applied to the public Greenhouse fields after a board is fetched.

{
"boards": ["airbnb", "figma"],
"locationQuery": "Germany",
"departmentQuery": "Engineering",
"includeContent": true,
"maxItemsPerBoard": 0
}

Monitor new, updated, and removed jobs

Every successful run stores the current active-job snapshot in a named key-value store. Run the Actor on an Apify schedule with the same monitorId, boards, and filters to create a Greenhouse job change feed.

{
"boards": ["airbnb", "figma"],
"monitorId": "target-companies-daily",
"onlyChangesSince": "2026-08-01T00:00:00.000Z",
"includeContent": true,
"maxItemsPerBoard": 0
}

The first run creates a baseline and labels every active vacancy as new. Later runs compare the latest public job data with that baseline:

changeTypeMeaning
newThe job did not exist in the previous successful snapshot.
updatedOne or more monitored fields changed; changedFields lists them.
unchangedThe job is still active and its monitored data is unchanged.
removedA previously active job disappeared from the public board.

When onlyChangesSince is set, unchanged records are excluded. A removal event is emitted once, on the run that first detects the missing job.

Use a different monitorId for each independent company list or filter configuration. Mixing different board lists under one monitor ID can make deliberately omitted boards look removed.

Greenhouse Jobs API example

You can run the scraper from any HTTP client. Replace YOUR_APIFY_TOKEN with an Apify API token:

curl -X POST \
"https://api.apify.com/v2/acts/clintsa~greenhouse-job-board-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"boards": ["airbnb"],
"includeContent": true,
"maxItemsPerBoard": 10
}'

For longer bulk runs, start the Actor asynchronously and fetch items from its default dataset after the run succeeds.

Input options

FieldTypeWhat it controls
boardsstring arrayRequired Greenhouse board tokens, board URLs, or job URLs.
includeContentbooleanAdds descriptionHtml and descriptionText.
locationQuerystringKeeps jobs whose location contains the supplied text.
departmentQuerystringKeeps jobs whose department contains the supplied text.
maxItemsPerBoardintegerActive jobs exported per board; 0 means no limit.
monitorIdstringPersistent namespace used for change tracking.
onlyChangesSinceISO timestampReturns only new, updated, and removed events detected since the timestamp.
requestDelayMillisintegerOptional delay between company-board requests.
useApifyProxybooleanEnables Apify Proxy as an optional network fallback.
proxyConfigurationobjectProxy settings used when useApifyProxy is enabled.

Greenhouse job data output

One Apify Dataset item is created for every matching active job or removal event. A typical result looks like this:

{
"boardToken": "airbnb",
"jobId": 7995199,
"internalJobId": 7151791,
"requisitionId": "REQ-123",
"title": "Software Engineer",
"location": "Berlin, Germany",
"departments": ["Engineering"],
"offices": ["Berlin"],
"url": "https://job-boards.greenhouse.io/airbnb/jobs/7995199",
"updatedAt": "2026-08-18T09:30:00Z",
"metadata": [],
"sourceUrl": "https://boards-api.greenhouse.io/v1/boards/airbnb/jobs",
"scrapedAt": "2026-08-19T10:38:56.000Z",
"descriptionHtml": "<p>Build products used around the world.</p>",
"descriptionText": "Build products used around the world.",
"changeType": "new",
"changeDetectedAt": "2026-08-19T10:38:56.000Z",
"firstSeenAt": "2026-08-19T10:38:56.000Z",
"lastSeenAt": "2026-08-19T10:38:56.000Z"
}

The run also writes a SUMMARY record containing requested, successful, and failed board counts; exported job count; change totals; proxy usage; and completion time.

Greenhouse scraper use cases

  • Build or refresh a job board with current Greenhouse vacancies.
  • Monitor competitor hiring and headcount signals.
  • Create recruiting, sales, or investment-intelligence feeds.
  • Detect new roles for alerts and workflow automations.
  • Track removed job postings and hiring changes over time.
  • Analyze hiring by company, location, office, or department.
  • Supply structured live job data to AI agents and data pipelines.

FAQ

Is this the cheapest Greenhouse jobs scraper with monitoring?

Yes in our August 19, 2026 Store comparison: its $0.251 listed Actor event price for a 1,000-result run was the lowest among relevant results checked that also advertised persistent new, updated, and removed job monitoring. Because marketplace prices change, use the exact formula—$0.001 per run plus $0.00025 per result—for future comparisons.

The low price is possible because the Actor calls Greenhouse's public API directly with 256 MB memory. It does not launch a browser or use a proxy by default.

Does Greenhouse have a public jobs API?

Greenhouse exposes published job-board data through its public Job Board API. This Actor handles board URL parsing, multi-company runs, retries, normalized datasets, exports, and change monitoring around that API.

Do I need a Greenhouse API key?

No. The Actor reads only publicly published Greenhouse job-board data. Private candidates, applications, scorecards, and employer account data are not accessible.

Can I scrape several Greenhouse companies at once?

Yes. Add multiple board tokens or URLs to boards. Results retain boardToken, so each job can be attributed to its company board.

Can this Actor detect deleted or closed jobs?

It detects a removal when a vacancy present in the previous snapshot is absent from the next successful run using the same monitorId. This means the job is no longer published on that board; it does not reveal the employer's internal reason.

Does the Greenhouse scraper require a proxy?

Usually not. It calls the public API directly. Apify Proxy is available as an explicit fallback but remains disabled by default.

Why did a board return no data?

Check that the company actually uses a public Greenhouse job board and that its token is correct. A branded careers page may redirect to Greenhouse while hiding the token in a for query parameter; you can paste that full Greenhouse URL and let the Actor normalize it.

Limitations and responsible use

  • Only publicly published Greenhouse Job Board API data is returned.
  • Output completeness depends on what each employer exposes publicly.
  • Location and department filters match Greenhouse's published text; they do not infer geography or job taxonomy.
  • Job removal is an observed board-state change, not proof that a position was filled.
  • Respect applicable laws and the terms governing how you use exported data.

Local development

npm install
mkdir -p storage/key_value_stores/default
printf '{"boards":["airbnb"],"maxItemsPerBoard":1}' > storage/key_value_stores/default/INPUT.json
npm start

Run the unit tests with npm test. Deploy from this directory with apify push; keep access tokens outside the source code.