Greenhouse Jobs Scraper — Any Company's Careers Page avatar

Greenhouse Jobs Scraper — Any Company's Careers Page

Pricing

from $1.21 / 1,000 results

Go to Apify Store
Greenhouse Jobs Scraper — Any Company's Careers Page

Greenhouse Jobs Scraper — Any Company's Careers Page

Scrape every open job from any company's Greenhouse careers page: title, location, department, full description, and per-company custom fields. No login, no API key.

Pricing

from $1.21 / 1,000 results

Rating

0.0

(0)

Developer

Axery

Axery

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 hours ago

Last modified

Share

Greenhouse Job Board Scraper

Scrapes every open job from any company's Greenhouse careers page — title, location, department, full description, and the company's own custom application fields. No login, no API key.

Thousands of companies use Greenhouse to host their careers page (Stripe, Airbnb, Coinbase, and many more), each reachable through the same public JSON API. Useful for talent-market research, competitor hiring tracking, sales lead generation (which companies are scaling which teams), and building a multi-company job aggregator.

What makes this different

Descriptions come through clean. Greenhouse stores each job description as HTML with its own angle brackets entity-escaped (<h2>...</h2>). Passed straight through, every description carries literal < markers instead of readable text. This Actor decodes it properly and gives you both a real description_html and a stripped description_text.

Custom fields are kept, not guessed at. Every company defines its own application metadata — an "ACC?" flag, a Workday employee ID, a "Workplace Type" selector — and there is no fixed schema across companies. Rather than mapping a handful of names onto columns that would be wrong for most other companies, custom_fields carries the raw list through so nothing is silently dropped.

workplace_type is extracted when it's there. Many companies tag Remote/Hybrid/On-site as one of those custom fields under varying names; this Actor recognizes the common ones and surfaces it as its own column when present, without inventing a value when it isn't.

Any company, one call. Pass a list of board tokens and get every company's jobs into one dataset, run in parallel via one Actor call instead of one integration per company.

Input

FieldTypeNotes
boardTokensarrayThe token from the company's careers URL, e.g. stripe.
includeDescriptionbooleanKeep full HTML/text descriptions, or skip for a lighter dataset.
maxItemsintegerPer company. 0 = every open job.
incrementalbooleanOnly jobs not seen in previous runs.
proxyConfigurationobjectNot normally needed.

Finding a company's board token

It's in their careers page URL: boards.greenhouse.io/stripe or job-boards.greenhouse.io/stripe → token is stripe. Not every company uses Greenhouse, and a wrong or unused token returns a clear "board not found" error for that entry rather than an empty silent result.

Output

{
"job_id": "greenhouse.io:8130725",
"company_name": "Stripe",
"title": "Account Executive, AI Startups (Hunter)",
"location": "San Francisco",
"departments": ["Startups - Account Executives (NA)"],
"workplace_type": null,
"description_text": "Who we are\n\nAbout Stripe\nStripe is a financial infrastructure platform...",
"updated_at": "2026-08-18T21:38:47Z",
"url": "https://stripe.com/jobs/search?gh_jid=8130725"
}

Each run also writes a RUN_COVERAGE record to the key-value store with what was requested, what came back, and any per-company failures — so a partial run is visible rather than silent.

Local development

pip install -r requirements.txt
python test_local.py stripe airbnb --max 10 --out sample_output.json
python test_local.py coinbase --no-description

sample_output.json is real output from a live run against Stripe's board.