Greenhouse Jobs Scraper: Open Roles, Salaries & Descriptions avatar

Greenhouse Jobs Scraper: Open Roles, Salaries & Descriptions

Pricing

from $0.85 / 1,000 jobs

Go to Apify Store
Greenhouse Jobs Scraper: Open Roles, Salaries & Descriptions

Greenhouse Jobs Scraper: Open Roles, Salaries & Descriptions

Get every open job from any company's Greenhouse job board via the official public API: title, departments, offices, remote flag, salary range (official pay ranges + parsed), posted date and full description. Filter by keyword, location, department, date. $1 per 1,000 jobs.

Pricing

from $0.85 / 1,000 jobs

Rating

0.0

(0)

Developer

Larkmoor Data

Larkmoor Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Get every open job from any company that hires through Greenhouse — Airbnb, Stripe, Figma, Discord, Coinbase, Duolingo, Reddit and thousands more — as one clean row per job: title, departments, offices, location, a remote flag, the salary range, when the job was first published, the job URL and the full description as plain text and HTML.

It reads Greenhouse's official public Job Board API (boards-api.greenhouse.io), the same feed companies use to embed their job boards on their own careers pages. No browser, no login, no proxies, no blocked runs.

What you can use it for

  • Job boards and aggregators: keep a niche job board (remote, AI, fintech, climate, a city) filled with fresh roles from the companies you track
  • Recruiting and sales leads: see which companies are hiring for which teams right now — a company opening 20 sales roles is a company with budget
  • Salary research: collect published pay ranges by title, level and location across hundreds of companies
  • Competitive intelligence: watch a competitor's hiring by department and office week by week
  • Job alerts: a daily scheduled run with postedWithinDays: 1 sends only new roles to Slack, email or a sheet
  • Career search: one list of every open "product designer" or "data engineer" role across your target companies

Why this one

  • $1 per 1,000 jobs, $0.001 per run start — about half of what other Greenhouse actors charge
  • Reliable: official public API, so runs do not fail on bot checks or page redesigns
  • Salary built in: the official pay-transparency range each company publishes (turn on includePayRanges), plus a salary parsed from the description text, with currency and period (year or hour)
  • Accepts anything: a board slug (stripe), a job-board URL (https://boards.greenhouse.io/stripe, job-boards.greenhouse.io/...) or a company website / careers page that embeds a Greenhouse board — it finds the board for you
  • Real filters: keywords (title or full text), locations, departments, remote only, posted within N days, salary only — and you only pay for the jobs that pass them
  • 256 MB memory, finishes a 700-job company in seconds

Input

FieldWhat it does
companiesGreenhouse board slugs, job-board URLs or company websites
keywordsKeep jobs mentioning any of these words
keywordsInTitleOnlyMatch keywords in the title only
locationsKeep jobs whose location or office contains any of these ("New York", "London", "Remote")
departmentsKeep jobs in matching departments ("Engineering", "Sales")
remoteOnlyOnly remote roles
postedWithinDaysOnly jobs first published in the last N days
withSalaryOnlyOnly jobs with a salary range
includePayRangesAlso read each job's official pay-transparency range (one extra request per job)
includeDescriptionInclude the description text and HTML (default on)
maxJobsPerCompany / maxResultsCaps per company and for the whole run

Example:

{
"companies": ["airbnb", "https://boards.greenhouse.io/stripe", "figma"],
"keywords": ["engineer"],
"keywordsInTitleOnly": true,
"locations": ["United States", "Remote"],
"includePayRanges": true,
"maxResults": 500
}

Output

{
"company": "Figma",
"boardSlug": "figma",
"jobId": "5551234004",
"title": "Compliance Engineer",
"department": "Business Operations",
"departments": ["Business Operations"],
"offices": ["San Francisco, CA", "New York, NY"],
"location": "San Francisco, CA • New York, NY • United States",
"remote": false,
"employmentType": null,
"salaryMin": 169000,
"salaryMax": 296000,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"salarySource": "pay_transparency",
"firstPublished": "2026-10-16T11:51:12-04:00",
"updatedAt": "2026-10-20T09:02:11-04:00",
"url": "https://boards.greenhouse.io/figma/jobs/5551234004",
"descriptionText": "Figma is growing our team of passionate creatives and builders...",
"descriptionHtml": "<p>Figma is growing...</p>"
}

Other columns: requisitionId, language, salaryText (the range exactly as written), and metadata (the custom fields a company publishes, such as employment type or level).

How much does it cost?

$1.00 per 1,000 jobs on the Free plan plus $0.001 per run, with automatic discounts on paid Apify plans. Platform compute is included. Filters run before you are charged, so filtered-out jobs cost nothing.

Worked examples:

  • Daily alert for 50 companies, about 40 new jobs a day: $0.04 a day, about $1.20 a month
  • Full snapshot of 200 companies (about 30,000 open jobs): $30
  • Salary study: every engineering role with a published range across 100 companies (about 2,500 jobs): $2.50

FAQ

Is this legal? Yes. It uses Greenhouse's public Job Board API, which Greenhouse documents for exactly this purpose (showing a company's open jobs anywhere). Job postings are public advertisements; no login, no candidate data and no personal data are touched.

How do I find a company's slug? Open the company's careers page. If a job link goes to boards.greenhouse.io/<slug> or job-boards.greenhouse.io/<slug>, the slug is that last part. Or just paste the careers page URL and the actor looks for the board link in the page (if a careers page loads its job list only with JavaScript, give the slug instead).

Can it search all Greenhouse companies at once? Greenhouse has no public directory of every board, so you give the companies. Lists of a few hundred work well in one run.

Why is the salary empty for some jobs? Not every company publishes a range. Many US companies do (especially for roles in California, Colorado, New York and Washington). Turn on includePayRanges to read the official range; the parsed-from-text range is always on.

Does it cover Lever, Ashby or Workday? This actor is focused on Greenhouse. For a mix of applicant tracking systems in one run, use our Career Site Jobs actor.

Tips

  • Schedule it daily with postedWithinDays: 1 and connect a Slack or email integration for a zero-maintenance job alert.
  • Use keywordsInTitleOnly for precise roles ("designer"), full-text keywords for skills ("Rust", "Kubernetes").
  • Combine locations: ["Remote"] with remoteOnly off to also keep jobs listing several offices plus remote.

Integrations

Works with Google Sheets, Slack, Zapier, Make, Airtable, webhooks, the Apify API and the Python and JavaScript clients. Download as JSON, CSV, Excel, XML or HTML.

Changelog

  • 2026-10-21 — First release: all open jobs per board, departments, offices, remote flag, official pay ranges and parsed salaries, posted-date, keyword, location and department filters, careers-page auto-detection.