Greenhouse Jobs Scraper & API: Every Open Job, No Login avatar

Greenhouse Jobs Scraper & API: Every Open Job, No Login

Pricing

from $70.00 / 1,000 company lookups

Go to Apify Store
Greenhouse Jobs Scraper & API: Every Open Job, No Login

Greenhouse Jobs Scraper & API: Every Open Job, No Login

Greenhouse jobs scraper and API: every open job on the Greenhouse boards of the companies you name, read live. Title, department, location, pay ranges and apply link. $0.10 per company, up to 1,000 jobs, descriptions free. No API key or login. Schedule it for new-job alerts.

Pricing

from $70.00 / 1,000 company lookups

Rating

0.0

(0)

Developer

Don Mangu

Don Mangu

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Greenhouse Jobs Scraper & API gets every open job on the Greenhouse job boards of the companies you name, read live during your run: title, department, location, remote, pay ranges when published, posted date and apply link. Paste board links, company names or websites. You pay $0.10 per company, with up to 1,000 jobs included, and there is no API key or login.

You pay $0.10 per company, including up to 1,000 jobs ($0.09 on the Scale plan, $0.07 on Business). Per job, that is $2 per 1,000 jobs for a company with 50 open jobs, $0.50 for one with 200, and $0.10 for one with 1,000. No API key, proxy or login. It does not search all Greenhouse jobs by keyword: you bring the list of companies.

What the Greenhouse jobs scraper returns

  • Pay ranges. salaryRanges lists every range the company adds to a job, such as one per pay zone. salaryMin, salaryMax, salaryCurrency and salaryPeriod hold the range in the currency of the job's country, else the first. With Include job description, pay written in the text fills the salary when a job has none (salarySource is text, else board).
  • Nested departments. departmentPath gives the full path and department the last level. Greenhouse has no team field.
  • Company fields. requisitionId, applicationDeadline when set, and updatedAt, the job's last change.
  • Language. Greenhouse gives each job's language, so that filter works without descriptions.
  • Own-site links. When a company shows its jobs on its own site, url and applyUrl point there, and companyDomain is its domain, such as dropbox.com.
  • Job type and remote. employmentType comes from the Employment Type and Time Type fields. A location that says "Remote" or "Hybrid" sets remote and workplaceType; on-site jobs stay null.

How to scrape Greenhouse jobs, step by step

  1. In Companies (companies), paste Greenhouse board links, company names or websites, up to 500. A job link reads the whole board. Or pick a list in Ready-made company lists (companyLists), such as tech-companies (204 on Greenhouse).
  2. Set filters if you need them, such as Title includes, Location or Posted since, and turn on Include job description for the full text.
  3. Run it. Each company costs $0.10, with up to 1,000 jobs included, also when the name is not on Greenhouse. Descriptions are free.
  4. Open the Jobs view of the results. Set Rows to return (outputMode) to companies for one summary row per company instead.
  5. To repeat it, save the input as a task and schedule it, as in Get only new and closed Greenhouse jobs on a schedule.

If a job's address on the company's careers page starts with boards.greenhouse.io/<name> or job-boards.greenhouse.io/<name>, paste it: a job link reads the whole board. Embed links work too. EU boards (job-boards.eu.greenhouse.io) are not supported yet. If the job opens on the company's own site with gh_jid= in the address, paste the website instead. Or type the name, such as discord.

A plain name can belong to another company. companyName is the name Greenhouse gives, and warning says when it differs from yours. matchedBy says how the board was found, and companySlug is its name.

Fields on every job

jobId, jobKey (the same in every run), locations, countryCodes, country, city and region from the location text, seniority and jobFunction from the title, employmentTypeNormalized (such as full_time), postedAt, and salaryAnnualMin and salaryAnnualMax (pay per year). With Include job description: description without email addresses, phone numbers or profile links, the tools it names, experienceYearsMin, experienceYearsMax, experienceLevel, educationMin, educationRequired, visaSponsorship, visaSponsorshipText and securityClearance. Rows also have the city's latitude, longitude and timeZone, remoteRegions, and ukVisaSponsor with ukSponsorRoutes.

Filters

Filters lower the price only above 1,000 jobs.

  • Words and places: titleIncludes and titleExcludes (whole words), department, location (a country name or code, else whole words), locationExcludes, remoteOnly, remoteRegions (where remote work may be done), and near with radiusKm (distance from one city).
  • Values: workplaceTypes, employmentTypes, seniorities, jobFunctions and languages. On Greenhouse, many jobs lack a workplace or job type, so those filters drop many.
  • Pay and dates: hasSalary, minAnnualSalary in minAnnualSalaryCurrency (no exchange rates), postedSince and postedBefore (a date or a period such as 7 days).
  • From the description: descriptionIncludes, skills (sets matchedSkills), maxExperienceYears and visaSponsorship turn on includeDescription and its price. descriptionFormat picks text, html or markdown.
  • Size: maxJobsPerCompany keeps the newest jobs.

A job without the value a filter needs is left out, and warning counts them. startUrls and urls are other names for companies. excludeCompanies leaves companies out. ukVisaSponsorOnly keeps companies on the UK visa sponsor register. companyLists adds ready-made lists of companies, such as tech-companies (204 on Greenhouse). Rows of list companies also end with their industry, headquarters country and size, in companyIndustry, companyCountry and companySizeBand, when known.

How much does the Greenhouse jobs API cost?

EventPriceWhat you get
Company lookup (company-lookup)$0.10 (Scale $0.09, Business $0.07)One company's job list, up to 1,000 jobs, including the first check with Only new jobs
Extra 1,000 jobs (extra-1000-jobs)$0.045 (see the Store page)Each further 1,000 job rows of the same company, or part of them
New jobs check (new-jobs-check)$0.002A later check with Only new jobs, per started 1,000 open jobs on the board

So 100 companies cost $10 ($7 on the Business plan). A daily Only new jobs check of them then costs $0.20.

A website that links no job board, and whose name is not on Greenhouse, costs the company price. A company over your spending limit is neither delivered nor charged.

Get only new and closed Greenhouse jobs on a schedule

Turn on Only new jobs since my last check (onlyNewJobs), save the input as a task, and schedule it. The first check of a company returns its full list for the company price. Later checks return new and closed jobs, with change set to new or closed and an alert line (alertText), for $0.002 per started 1,000 open jobs on the board.

Alert webhook URL (alertWebhookUrl) posts to Slack, Discord, Teams, Make, Zapier or n8n after a check with changes, not on quiet days (alertMaxJobs, alertOnFirstCheck).

Rows have firstSeenAt, closed rows closedAt and daysOpen. reposted marks a new job matching one closed within 30 days; skipReposts leaves those out, counted in skippedRepostsCount and skippedReposts. With includeUpdatedJobs, changed jobs come back as updated, with changedFields and previous values.

Each monitorName and filter set keeps its own memory in your Apify account.

For AI agents

Use it to answer "is company X hiring for Y right now?" for companies on Greenhouse. Input (only companies is required, up to 500):

{"companies": ["https://boards.greenhouse.io/dropbox", "duolingo"], "jobFunctions": ["engineering"], "postedSince": "7 days", "maxJobsPerCompany": 50}

Output, one row per job: company, companyStatus, title, departmentPath, location, countryCode, remote, jobFunction, salaryMin, salaryMax, salaryCurrency, postedAt, url and more, plus description with includeDescription. A company without jobs gets a status row.

Price: $0.10 per company with up to 1,000 jobs, also when the name is not on Greenhouse. Descriptions are free. More in How much does the Greenhouse jobs API cost?.

Many companies, or companies on different job boards? ATS Jobs API reads Greenhouse and 21 other job boards in one run for $0.045 per company.

Output

A job row from a real run, shortened. Unknown values are null.

{
"rowType": "job",
"company": "https://boards.greenhouse.io/dropbox",
"ats": "greenhouse",
"companyName": "Dropbox",
"companyStatus": "ok",
"charged": true,
"requisitionId": "R11708",
"title": "Product Manager",
"departmentPath": "EPD > Product Team > Prod - DocSend (Sub Team)",
"location": "Remote - Canada: Select locations",
"countryCode": "CA",
"employmentType": "Regular, Full Time",
"salaryMin": 157300,
"salaryMax": 212700,
"salaryCurrency": "CAD",
"postedAt": "2026-09-23T19:29:14.000Z",
"url": "https://jobs.dropbox.com/listing/8220578?gh_jid=8220578"
}

Set Rows to return (outputMode) to companies for one summary row per company, or both. rowType is job, company or status. Summary rows have boardUrl, openJobs, jobsPostedLast7Days, jobsPostedLast30Days, jobsOpenOver90Days, newestPostedAt, oldestPostedAt, remoteJobs, remoteShare, engineeringShare, salesShare, salaryCoverage, salaryMedians, medianSalaryMin, medianSalaryMax, medianSalaryCurrency, medianSalaryPeriod, topDepartments, topLocations, countries, seniorityCounts, functionCounts, functionCountsLast30Days, leadershipRoles and firstHireRoles. Descriptions add topTools, toolCoverage, visaSponsorshipShare and medianExperienceYearsMin. Only new jobs adds newJobs, closedJobs, updatedJobs, repostedJobs, medianDaysOpen, newFunctions, newCountries and previousCheckAt.

The COMPANIES record has each company's status, with inputDomain, careerPageSource, fetchedAt, error, chargedEvent, chargedEventCount, extraJobBlocksCharged, upstreamCalls, companyTotalOpenJobs, companyMatchedJobs, companyJobsReturned, companyJobsWithoutDate, newJobsCount, closedJobsCount, updatedJobsCount and firstCheck.

Statuses and charges

companyStatusMeaningCharged
ok, no_matching_jobs, no_open_jobsThe board was readYes
not_foundGreenhouse has no board by this nameYes
source_errorGreenhouse failed or did not answerYes
no_job_board_foundThe website links no job board, and its name is not on GreenhouseYes
unsupported_job_boardAnother job board, linked or found on the website, or an EU board. error says whyNo
website_unavailableWe could not read the website, and its name is not on GreenhouseNo
invalid_input, duplicateNot a link, website or name, or the same board as another entryNo
skipped_time_limit, skipped_spending_limitOut of time, or over your spending limitNo
skipped_client_disconnectedOnly in Live Jobs HTTP API. Your client disconnected firstNo
internal_errorSomething failed on our sideOnly if it happened after we read the board

Other job boards: ATS Jobs API and more

This Actor reads only Greenhouse. The same list of companies works in our other job Actors:

FAQ

Is this an official Greenhouse API? No. It reads the public Greenhouse job board API, with no login. It is not affiliated with or endorsed by Greenhouse, whose name is a trademark of its owner.

Why did a name return not_found? Board names often differ from brand names. Paste a job's link or the company's website.

Found a problem? Open an issue under Issues.

Related Actors. Live Jobs HTTP API returns jobs in one HTTP response, at its own prices plus platform usage. Tech Jobs Search searches the open jobs of 824 companies by keyword.