Greenhouse Jobs Scraper - Any Company's Job Board avatar

Greenhouse Jobs Scraper - Any Company's Job Board

Pricing

from $1.05 / 1,000 jobs

Go to Apify Store
Greenhouse Jobs Scraper - Any Company's Job Board

Greenhouse Jobs Scraper - Any Company's Job Board

All open jobs from any company's Greenhouse job board, with departments, offices and pay ranges where published.

Pricing

from $1.05 / 1,000 jobs

Rating

0.0

(0)

Developer

Afterstar

Afterstar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 days ago

Last modified

Categories

Share

Pricing: $1.50 per 1,000 jobs. On a schedule (only new jobs): $0.006 per board checked + $1.50 per 1,000 new, changed or removed jobs.

What does Greenhouse Jobs Scraper do?

All open jobs from any company's Greenhouse job board, with departments, offices and pay ranges where published. Every job comes in one clean table: company, title, department, team, locations, remote or on-site, employment type, salary (where the company publishes it), posting date, the job link, the apply link and the full description as plain text.

Run it once for a list, or schedule it to get only the new jobs each day. The tool remembers what it has seen, so a daily check costs a fraction of a cent when nothing is new.

What you get

InputA Greenhouse board name like stripe, or its link https://job-boards.greenhouse.io/stripe
Per jobCompany, title, department, offices, remote where the job says so, pay range where published, dates, job and apply links, description
ScheduleOnly new jobs, or new + changed + removed jobs
Price$1.50 per 1,000 jobs; on a schedule $0.006 per board checked

Use cases

  • Track hiring at your target companies or competitors: new roles, closed roles, pay changes.
  • Feed a job board, a newsletter or a Slack channel with fresh openings.
  • Sales and recruiting signals: which companies are hiring for what, right now.

Input

FieldWhat it does
Greenhouse job boardsOne per line: stripe or https://job-boards.greenhouse.io/stripe
Company namesOr type names (Stripe, SpaceX): looked up in our directory of 4,175 public Greenhouse boards
Keywords + where to searchOnly jobs with these words in the title, or in the title and description
Posted after / beforeA date window (jobs without a date are kept)
Location contains / exclude / remote onlyMatch the location text and the country the board gives (Germany also matches a board's DE); drop places; only remote jobs
Minimum salary / only with salaryFilter by the top of the published salary range
Max jobs per boardNo fixed cap (default 10,000 per board)
Output modeAll jobs, only new jobs, or new + changed + removed jobs

Output

One row per job, with the same keys for every job system:

{
"id": "greenhouse:<company>:<job id>",
"changeType": "new",
"firstSeenAt": "2026-10-04T19:30:00Z",
"ats": "greenhouse",
"company": "…",
"title": "Senior Backend Engineer",
"department": "Engineering",
"locations": ["Berlin, Germany"],
"remote": true,
"employmentType": "FullTime",
"salaryMin": 70000,
"salaryMax": 90000,
"salaryCurrency": "EUR",
"postedAt": "2026-10-01T09:00:00Z",
"url": "…",
"applyUrl": "…",
"descriptionText": "…"
}

Every row has every key (null when the job system doesn't give a value). changeType is new, changed, unchanged or removed; a changed row lists changedFields and the previous values. Emails and phone numbers inside descriptions are replaced by [redacted] unless you switch that off. Rows have no recruiter name or contact fields.

If a board doesn't exist or doesn't answer, you get one row with changeType: "status" and a statusCode (not_found, rate_limited, source_error) instead of an error, and you're not charged for it.

Schedule it: only new jobs, every day

  1. Add your boards and save it as a task.
  2. Run it once with Baseline only switched on. It remembers today's jobs and lists nothing. Or skip this and accept that the first run lists every current job once.
  3. Set Output mode to Only new results (or New, changed and removed) and add a schedule.
  4. Connect an integration (Slack, Google Sheets, Zapier, Make, n8n), or put a webhook URL in the input.

Each saved task keeps its own memory, and switching a task between modes keeps it.

Apify webhook template (Integrations → Webhook → payload):

{"datasetUrl": "https://api.apify.com/v2/datasets/{{resource.defaultDatasetId}}/items?clean=true&format=json"}

Each run also saves a summary (OUTPUT in the run's key-value store): counts of new, changed, unchanged and removed jobs per board.

How much does it cost?

  • $1.50 per 1,000 jobs listed (on paid Apify plans 10-30% less).
  • On a schedule (only new, changed or removed jobs): $0.006 per board checked plus $1.50 per 1,000 new, changed or removed jobs. Checking 10 boards daily with a few new jobs costs about $2.70 a month.
  • Status rows (errors) are free. Set a spending limit on the run and the tool stops there.

Good to know

  • salaryPeriod is year, month, week, day or hour, whatever word the board uses (its own wording stays in salaryText); a rare period (every 2 weeks, one-time) comes as the board wrote it.
  • "Removed" jobs are reported only when a board was fetched completely and without filters, so a hiccup never reports every job as closed.
  • Freshness: every run reads each job board live (no cache); fetchedAt on each row says when.
  • Pay ranges come from Greenhouse's pay-transparency field. Many companies leave it empty, so not every job has pay.

How it compares

Instead ofWith this tool
Checking career pages by handEvery open job of every board in one table, with the same columns for every company
A general web scraperReads the job board's own job data, so titles, locations, salaries and dates come as fields, not page text
Re-running a full export daily'Only new' mode lists just the jobs added since the last run; nothing new costs a fraction of a cent

FAQ

What do I put in? The company's Greenhouse board name, like stripe, or its link https://job-boards.greenhouse.io/stripe.

Does every job have pay? No. Pay comes from Greenhouse's pay-transparency field, and many companies leave it empty.

How do I get only new jobs every day? Save the input as a task, set Output mode to 'Only new results' and add a schedule. The first run can be a 'Baseline only' run, so it remembers today's jobs and lists nothing.

Can I check several companies at once? Yes, one per line. Every job row says which company it belongs to.

Does it output recruiter names or e-mails? The tool has no recruiter name or contact fields. E-mail addresses and phone numbers inside descriptions are replaced by [redacted] unless you switch that off.

Source: each company's public job board on Greenhouse. This tool is not affiliated with or endorsed by Greenhouse.

More Afterstar tools

Found a problem or need a field? Open an issue on the Issues tab.