Greenhouse Jobs Scraper & API: Every Open Job, No Login
Pricing
from $70.00 / 1,000 company lookups
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
Maintained by CommunityActor 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.
salaryRangeslists every range the company adds to a job, such as one per pay zone.salaryMin,salaryMax,salaryCurrencyandsalaryPeriodhold 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 (salarySourceistext, elseboard). - Nested departments.
departmentPathgives the full path anddepartmentthe last level. Greenhouse has no team field. - Company fields.
requisitionId,applicationDeadlinewhen set, andupdatedAt, 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,
urlandapplyUrlpoint there, andcompanyDomainis its domain, such asdropbox.com. - Job type and remote.
employmentTypecomes from the Employment Type and Time Type fields. A location that says "Remote" or "Hybrid" setsremoteandworkplaceType; on-site jobs stay null.
How to scrape Greenhouse jobs, step by step
- 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 astech-companies(204 on Greenhouse). - Set filters if you need them, such as Title includes, Location or Posted since, and turn on Include job description for the full text.
- 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.
- Open the Jobs view of the results. Set Rows to return (
outputMode) tocompaniesfor one summary row per company instead. - To repeat it, save the input as a task and schedule it, as in Get only new and closed Greenhouse jobs on a schedule.
How to find a company's Greenhouse board link
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:
titleIncludesandtitleExcludes(whole words),department,location(a country name or code, else whole words),locationExcludes,remoteOnly,remoteRegions(where remote work may be done), andnearwithradiusKm(distance from one city). - Values:
workplaceTypes,employmentTypes,seniorities,jobFunctionsandlanguages. On Greenhouse, many jobs lack a workplace or job type, so those filters drop many. - Pay and dates:
hasSalary,minAnnualSalaryinminAnnualSalaryCurrency(no exchange rates),postedSinceandpostedBefore(a date or a period such as7 days). - From the description:
descriptionIncludes,skills(setsmatchedSkills),maxExperienceYearsandvisaSponsorshipturn onincludeDescriptionand its price.descriptionFormatpickstext,htmlormarkdown. - Size:
maxJobsPerCompanykeeps 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?
| Event | Price | What 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.002 | A 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
companyStatus | Meaning | Charged |
|---|---|---|
ok, no_matching_jobs, no_open_jobs | The board was read | Yes |
not_found | Greenhouse has no board by this name | Yes |
source_error | Greenhouse failed or did not answer | Yes |
no_job_board_found | The website links no job board, and its name is not on Greenhouse | Yes |
unsupported_job_board | Another job board, linked or found on the website, or an EU board. error says why | No |
website_unavailable | We could not read the website, and its name is not on Greenhouse | No |
invalid_input, duplicate | Not a link, website or name, or the same board as another entry | No |
skipped_time_limit, skipped_spending_limit | Out of time, or over your spending limit | No |
skipped_client_disconnected | Only in Live Jobs HTTP API. Your client disconnected first | No |
internal_error | Something failed on our side | Only 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:
- ATS Jobs API: 22 job boards in one run, when you do not know which board a company uses.
- Lever Jobs Scraper & API
- Ashby Jobs Scraper & API
- Workday Jobs Scraper & API
- Tech Jobs Search: search the open jobs of 824 companies by keyword, place and salary.
- Live Jobs HTTP API: the same job data in one HTTP request, for scripts, Clay and no-code tools.
- Website Tech Stack Detector: the CMS, analytics and other tools on the same companies' websites.
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.