Greenhouse Jobs Scraper - Lever & ATS Hiring Signals avatar

Greenhouse Jobs Scraper - Lever & ATS Hiring Signals

Pricing

from $2.10 / 1,000 jobs

Go to Apify Store
Greenhouse Jobs Scraper - Lever & ATS Hiring Signals

Greenhouse Jobs Scraper - Lever & ATS Hiring Signals

Greenhouse and Lever jobs scraper: live jobs from many company career boards in one dataset with department, location, remote type, salary when posted, description and apply link. Filter by keyword, seniority or score, get only new roles on schedule, and use hiring-signal tags for sales research.

Pricing

from $2.10 / 1,000 jobs

Rating

0.0

(0)

Developer

Group Oject

Group Oject

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Security

Limited permissions

Share

Scrape live jobs from any public Greenhouse or Lever career board into one dataset: title, department, location, remote type, salary when published, full description and apply link. Every job also gets a hiring-signal score and sales-research tags. No ATS login or API key.

Paste board URLs such as https://boards.greenhouse.io/stripe or https://jobs.lever.co/palantir (or greenhouse:stripe, lever:palantir), filter by keyword, location, department or seniority, and schedule runs that return only newly posted roles.

Run the Actor | Pricing | Example tasks

Greenhouse Jobs Scraper output in Apify: signal score, tier, company, job title, company, ats, department

Real output from a default run of Greenhouse Jobs Scraper in Apify Console.

What can this Greenhouse and Lever jobs scraper do?

  • Greenhouse jobs + Lever jobs in one schema - mix both ATS in one run; sourceAts tells you where each row came from.
  • Many companies per run - paste URLs, provider:slug entries or a newline-separated list.
  • Straight from the company's ATS - reads the public Greenhouse Job Board API and Lever Postings API at run time, so roles are current, not a cached database copy.
  • Filters - keywords, locations, departments, seniority, remote only, posted within N days, minimum hiring-signal score.
  • New-job monitoring - monitorMode + onlyNewJobs + stateKey returns only roles you have not seen before.
  • Hiring signals for sales and account research - score, tier, urgency tags, likely business needs, suggested target buyer and an outreach angle, each with the source URL as evidence.

What data can I extract from Greenhouse and Lever?

FieldMeaning
title, jobId, companySlug, companyName, sourceAtsRole, IDs, company board and ATS (greenhouse / lever)
department, roleCategory, seniorityDepartment from the ATS plus derived role family and seniority
location, locations, remoteType, employmentTypeLocations, Remote/Hybrid/On-site detection, commitment
salaryMin, salaryMax, salaryCurrency, salaryIntervalPay range when the board publishes it (Lever salary ranges; Greenhouse salary metadata fields)
description, descriptionHtmlPlain-text description, optional raw HTML
jobUrl, applyUrl, sourceUrl, apiUrlPosting, application and source links
postedAt, firstSeenAt, lastSeenAt, isNewDates and monitor flags
hiringSignalScore (0-100), hiringSignalTierRule-based priority score: Low / Medium / High
urgencyTags, likelyBusinessNeeds, targetBuyer, outreachAngle, signalEvidenceSales-research aids derived from the posting
matchedKeywords, matchedLocations, matchedDepartmentsWhich of your filters matched

Signal fields are heuristics to help you prioritise. They do not prove budget, buying intent or a decision-maker; always check the linked posting.

How much does it cost?

$3.00 per 1,000 jobs saved to the dataset ($0.003 per job), plus an Actor start charge of $0.00005 per GB of memory. 100 jobs = $0.30. maxTotalJobs defaults to 100 so a first test stays cheap, and the Actor respects your maximum run charge. See the Pricing tab for current rates.

How to scrape Greenhouse and Lever jobs

  1. Find the company's board: Greenhouse boards look like boards.greenhouse.io/<slug> or job-boards.greenhouse.io/<slug>; Lever boards look like jobs.lever.co/<slug>. The "Apply" button on a careers page usually reveals it.
  2. Paste the URLs into Career URLs (or greenhouse:<slug> / lever:<slug> into Company slugs).
  3. Optionally add keywords, locations, departments, seniority or a minimum hiring-signal score.
  4. Click Start and export the dataset as CSV, Excel or JSON.
  5. For a recurring feed, set monitorMode: true, onlyNewJobs: true and a stateKey, save as a task and schedule it.

Input example

{
"careerUrls": [
"https://boards.greenhouse.io/stripe",
"https://jobs.lever.co/palantir"
],
"companySlugs": ["greenhouse:airbnb"],
"keywords": ["sales", "account executive", "revenue"],
"locations": ["Remote", "United States"],
"seniorities": ["Senior", "Leadership"],
"minHiringSignalScore": 55,
"maxJobsPerCompany": 100,
"maxTotalJobs": 300
}

Output example

Shortened, illustrative record:

{
"companySlug": "exampleco",
"sourceAts": "greenhouse",
"jobId": "123456",
"title": "Senior Data Engineer",
"department": "Engineering",
"roleCategory": "Engineering",
"seniority": "Senior",
"location": "Remote - US",
"remoteType": "Remote",
"salaryMin": null,
"salaryMax": null,
"hiringSignalScore": 68,
"hiringSignalTier": "Medium",
"urgencyTags": ["new-role"],
"isNew": true,
"jobUrl": "https://boards.greenhouse.io/exampleco/jobs/123456",
"applyUrl": "https://boards.greenhouse.io/exampleco/jobs/123456"
}

The run's key-value store also contains SUMMARY and SOURCES (per-board fetched / kept / new counts and any error).

Monitor new Greenhouse and Lever jobs

Run once to set a baseline, then schedule. Keep monitorMode: true and the same stateKey; set onlyNewJobs: true to output only job IDs the monitor has not seen. Later runs can legitimately return zero rows. The monitor detects newly seen job IDs; it does not report closed roles. Connect a webhook, Make, Zapier or n8n to push new rows to Slack, email or a CRM.

Use cases

  • Sales prospecting - find companies hiring for roles that signal a need for your product (for example new SDR teams, data platform or security hires).
  • Recruiting and agency sourcing - watch target companies for new openings in your niche.
  • Competitor and portfolio monitoring - track which departments and regions are growing.
  • Job boards and newsletters - build a clean feed of tech jobs from company boards.
  • AI agents (MCP) - call the Actor from the Apify MCP server to answer "which of these 50 companies opened sales roles this week?".

Use it via API

from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("groupoject/hiring-signal-jobs-scraper").call(run_input={
"companySlugs": ["greenhouse:stripe", "lever:palantir"],
"keywords": ["engineer"],
"maxTotalJobs": 50,
})
for job in client.dataset(run["defaultDatasetId"]).iterate_items():
print(job["sourceAts"], job["title"], job["hiringSignalScore"])

Also works with Make, Zapier, n8n, Google Sheets and webhooks.

FAQ

How do I scrape Greenhouse or Lever jobs for a company? Add the company's job board URL (for example boards.greenhouse.io/

Do I need Greenhouse or Lever credentials? No. The Actor reads public job-board endpoints. You need an Apify account to run it.

Can I paste a company homepage? No. Provide the Greenhouse or Lever board URL or provider:slug. The Actor does not detect the ATS behind an arbitrary website, and it does not cover Ashby, Workday or other ATS.

Why is salary empty? Many companies do not publish pay on their board. Salary is never estimated or invented.

Why did a run succeed with zero results? The board may have no matching roles, the monitor found nothing new, or a board failed (see SOURCES). Try one known board with no filters first.

Is it legal? It collects publicly advertised jobs only, without logging in or touching candidate data. You are responsible for how you use the data.