Greenhouse Jobs: Export Any Company's Job Board avatar

Greenhouse Jobs: Export Any Company's Job Board

Pricing

from $0.50 / 1,000 jobs

Go to Apify Store
Greenhouse Jobs: Export Any Company's Job Board

Greenhouse Jobs: Export Any Company's Job Board

Export every open job from any company's Greenhouse job board: title, location, remote or hybrid, department, posting date, salary range when the company publishes it, full description and apply link. Paste board URLs or just company names. Lever and Ashby boards work too. No login.

Pricing

from $0.50 / 1,000 jobs

Rating

0.0

(0)

Developer

DeepMine

DeepMine

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

Paste Greenhouse job boards (https://job-boards.greenhouse.io/duolingo) or just company names, and get every open job as one clean row each: title, location, remote or hybrid, department, posting date, salary range when the company publishes it, full description and job link.

๐Ÿ’ผ Title๐Ÿข Company๐Ÿ“ Location๐Ÿ  Workplace๐Ÿ—‚๏ธ Department๐Ÿ’ฐ Salary๐Ÿ“… Posted
Staff Machine Learning Engineer, App Ads ModelingRedditRemote - United StatesRemoteAds EngineeringUSD 230,000 - 322,000 per year2026-09-25
Software Engineer, Ingestion PlatformRedditRemote - United StatesRemoteBE PlatformUSD 164,200 - 229,900 per year2026-09-18
Senior Creative, SocialDuolingoNew York, NYโ€“Marketing and CommunicationsUSD 142,800 - 193,200 per year2026-09-22

$0.90 per 1,000 jobs on the Starter plan ($1.00 Free, $0.60 Scale, $0.50 Business). The prefilled run (100 jobs: 50 from each of 2 companies) costs about $0.09.

It reads Greenhouse's public job board API, the one each company's careers page uses. No browser and no login. Jobs come exactly as the company published them, read live on every run.

What you can do with it

  • Salary as numbers: salaryMin, salaryMax, currency and period next to the readable salary, with every pay zone listed. How many jobs publish pay depends on the company: 91 of 100 in the sample above, none on some boards.
  • Research pay by role, team and city: the ๐Ÿ’ฐ With Salary list holds every job with a published pay range, ready for salary benchmarks.
  • Monitor hiring at target accounts (competitors, customers, prospects) and see new roles every day.
  • Feed a job board or a job search app with fresh, first-party postings that include salary, the company logo and the job link.
  • Filter before you pay: title words, locations (whole words or country codes), remote only, posted in the last N days. Jobs your filters drop cost nothing.
  • One format for every ATS: Lever, Ashby, SmartRecruiters and Workday boards work in the same run, with the same fields.

What to paste

ATSWhat to pasteSalaryLogoNotes
Greenhousehttps://job-boards.greenhouse.io/duolingo, boards.greenhouse.io/duolingo or just Duolingowhen the company publishes pay rangesyesPay zones are listed one after another in salary
Leverhttps://jobs.lever.co/palantir (EU: jobs.eu.lever.co/...)when publishedyes
Ashbyhttps://jobs.ashbyhq.com/notionwhen publishedyes
SmartRecruitershttps://jobs.smartrecruiters.com/BoschGroupnonoDescriptions take one extra request per job
Workdayhttps://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSitefrom the description (most US jobs)yesReads past Workday's 2,000-job limit, or only as far as the newest jobs you asked for. Descriptions take one extra request per job

You can also paste:

  • Just the company name, e.g. Duolingo or Scale AI. The name is tried on Greenhouse, Lever, Ashby and SmartRecruiters.
  • The company's own careers page, e.g. https://www.notion.com/careers. The page is checked for a link to its job board.
  • ats:board if you know it, e.g. greenhouse:stripe, lever:palantir.

Input

{
"companies": [
"https://job-boards.greenhouse.io/reddit",
"https://job-boards.greenhouse.io/duolingo",
"Figma"
],
"titleKeywords": ["engineer"],
"locations": ["United States"],
"remoteOnly": false,
"postedWithinDays": 30,
"maxJobsPerCompany": 100,
"maxResults": 1000
}
FieldWhat it does
companiesGreenhouse job board URLs or company names, one per line. Other job board URLs and careers pages work too.
titleKeywordsKeep jobs whose title contains any of these (not case-sensitive).
locationsKeep jobs whose location contains any of these as whole words (India doesn't match Indiana). A country name also matches the job's country. Two letters are a country code and match only the job's countries: US, GB (or UK), DE, CA (Canada, not California). A job's countries include every place its location names, so UK keeps "San Francisco, CA; London, UK", "Remote - UK" and "London". Two letters that aren't a country code (NY, WA) match as a word.
remoteOnlyKeep only jobs marked remote.
maxJobsPerCompanyEach company's newest jobs, up to this many (default 100), so one big company can't take all of maxResults. 0 = every job. You pay per job, so this caps the cost per company.
maxResultsStop after this many jobs in total, which caps the run's cost.
postedWithinDaysKeep only jobs posted in the last N days (0 = any date). The filters are under ๐ŸŽ›๏ธ Filters in the form, includeHtml under ๐Ÿงพ Output.
includeDescriptionFull description as text (on by default). Workday's pay range is read from the description, so with it off Workday rows have no salary. Turning it off makes SmartRecruiters and Workday faster. With a location or remote filter, Workday jobs whose list entry doesn't show the country or remote status are still checked, one request each.
includeHtmlAlso the description with its original HTML formatting (descriptionHtml).

Output

One row per job. Rows come in the order of your companies list, each company's jobs newest first.

Two datasets, both with the same rows:

  • ๐Ÿ’ผ All Jobs (default dataset). Views: ๐Ÿ“Š Overview (๐Ÿ–ผ๏ธ Logo, ๐Ÿ’ผ Title, ๐Ÿข Company, ๐Ÿ“ Location, ๐Ÿ  Workplace, ๐Ÿ—‚๏ธ Department, ๐Ÿ’ฐ Salary, ๐Ÿ“… Posted, ๐Ÿ”— Job Page) and ๐Ÿ“ Details (๐Ÿ’ผ Title, ๐Ÿข Company, ๐Ÿ•’ Job Type, ๐Ÿ—‚๏ธ Department, ๐Ÿ—บ๏ธ All Locations, ๐ŸŒ Country, โš™๏ธ ATS, ๐Ÿ“‹ Job Board, ๐Ÿ†” Job ID, ๐Ÿ”— Job Page). The separate apply link (applyUrl) is in the rows and the downloads.
  • ๐Ÿ’ฐ With Salary: the delivered jobs that publish a pay range, in the same order, at no extra charge. View ๐Ÿ’ฐ Salaries: ๐Ÿ–ผ๏ธ Logo, ๐Ÿ’ผ Title, ๐Ÿข Company, ๐Ÿ“ Location, ๐Ÿ’ฐ Salary, ๐Ÿ’ฐ Salary Min, ๐Ÿ’ฐ Salary Max, ๐Ÿ’ฑ Currency, โฑ๏ธ Pay Period, ๐Ÿ“… Posted, ๐Ÿ”— Job Page.

Output fields

In row order:

  • companyLogo: the company logo from its job board page (Greenhouse, Lever, Ashby, Workday). A stable image link that doesn't expire. Empty on SmartRecruiters or when the board shows no logo.
  • title: job title.
  • company: company name as its job board shows it.
  • location: the job's location as the company wrote it.
  • workplaceType: Remote, Hybrid or On-site from the company's own field, or Remote when the location says so. Empty when the company doesn't say.
  • employmentType: Full-time, Part-time, Contract, Internship, Temporary or Other from the company's own field, else from the title when it says so ("Software Engineer Intern", "(12-month contract)"). Many Greenhouse boards publish no job type, so it's often empty there.
  • department: department or team the company files the job under.
  • salary: the published pay, e.g. USD 87,000 - 102,000 per year. When a posting lists several ranges (pay zones), each one is listed.
  • salaryMin: the lowest pay across the published ranges, as a number.
  • salaryMax: the highest pay across the published ranges, as a number.
  • salaryCurrency: ISO currency code, e.g. USD.
  • salaryPeriod: year, month, week, day or hour, from the posting's own wording. When the posting doesn't say, it comes from the amount (20,000 or more a year, 300 or less an hour) for USD, EUR, GBP, CAD, AUD, CHF, NZD and SGD. Otherwise it's empty.
  • postedAt: when the job was published, in UTC (2026-09-25T18:53:46Z). Workday gives only the day (2026-09-27). Lever gives the date the posting was created.
  • jobUrl: the job's page on the company's career site.
  • applyUrl: a separate application page (Lever, Ashby, SmartRecruiters). Empty when you apply on the job page itself (Greenhouse, Workday).
  • locations: every place the job is offered, as a list.
  • countryCode: ISO code of the job's country; for a job in several countries, the first one listed.
  • description: the full job description as plain text, one line per paragraph, โ€ข for list items. Only with includeDescription (on by default).
  • descriptionHtml: the description with the company's formatting. Only with includeHtml.
  • ats: Greenhouse, Lever, Ashby, SmartRecruiters or Workday.
  • boardUrl: the company's job board the job was read from.
  • jobId: the job's id on its ATS.
  • companyInput: the entry of your companies list that led to this job.
  • scrapedAt: when this run read the job (UTC).

Example row (description shortened):

{
"companyLogo": "https://recruiting.cdn.greenhouse.io/external_greenhouse_job_boards/logos/000/004/762/original/200x75.png?1705381755",
"title": "Staff Machine Learning Engineer, App Ads Modeling",
"company": "Reddit",
"location": "Remote - United States",
"workplaceType": "Remote",
"employmentType": "Full-time",
"department": "Ads Engineering",
"salary": "USD 230,000 - 322,000 per year",
"salaryMin": 230000,
"salaryMax": 322000,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"postedAt": "2026-09-25T01:13:27Z",
"jobUrl": "https://job-boards.greenhouse.io/reddit/jobs/8187652",
"applyUrl": null,
"locations": ["Remote - United States"],
"countryCode": "US",
"description": "Reddit is a community of communities. Itโ€™s built on shared interests, passion, and trust...",
"ats": "Greenhouse",
"boardUrl": "https://job-boards.greenhouse.io/reddit",
"jobId": "8187652",
"companyInput": "https://job-boards.greenhouse.io/reddit",
"scrapedAt": "2026-09-28T00:33:33Z"
}

The run's ๐Ÿงพ Run summary (the OUTPUT record in the key-value store) shows, per company, which job board was found and how, how many jobs it lists, how many matched your filters and how many were delivered, plus any error.

When something goes wrong

  • A company that isn't found (a wrong name, a removed job board) is listed in the run summary and the status message. The run still delivers everything else.
  • If a job board or a job's details can't be read after several retries on fresh IPs, the run ends as failed with the reason, so you notice. The jobs that were read are still in the dataset. A job whose details failed is left out and not charged.
  • When maxResults is reached, the companies after that point get nothing; the run summary marks them as skipped. Raise maxResults or lower maxJobsPerCompany to reach more companies.

Pricing

You pay per job delivered: $1.00 per 1,000 jobs on the Free plan, $0.90 on Starter, $0.60 on Scale and $0.50 on Business. Descriptions are included at the same price. Company lookups, pages that fail, jobs removed by your filters and the ๐Ÿ’ฐ With Salary list cost nothing.

Examples on Starter: the prefilled run (100 jobs) about $0.09; the default maxResults of 1,000 jobs $0.90; every job at 10 companies with 300 openings each (3,000 jobs) $2.70. maxJobsPerCompany and maxResults cap what a run can cost.

FAQ

Why do some jobs have no salary? The company decides whether to publish a pay range on Greenhouse. Some publish it on every job, some only in the description text, some not at all.

Do I need a proxy? The default Apify datacenter proxy is all these APIs need. Residential and SERP proxies are replaced with datacenter; your own proxy URLs work too.

How fresh is the data? Each run reads the job boards live; nothing comes from a cache or a database.

Can I search all companies at once? Not yet. This Actor reads the companies you list.

Can I get new jobs every day? Yes: save your input as a task, schedule it daily in Apify, and set postedWithinDays to 1 or 2 so each run brings only the latest postings.

Feedback

Missing a career site, a field or a company it can't find? Open an issue on the Issues tab and we'll look at it. If the data helped you, a short review on this page helps other people find it.