Greenhouse Jobs Scraper - Lever & ATS Hiring Signals
Pricing
from $2.10 / 1,000 jobs
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Security
Limited permissionsShare
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

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;
sourceAtstells you where each row came from. - Many companies per run - paste URLs,
provider:slugentries 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+stateKeyreturns 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?
| Field | Meaning |
|---|---|
title, jobId, companySlug, companyName, sourceAts | Role, IDs, company board and ATS (greenhouse / lever) |
department, roleCategory, seniority | Department from the ATS plus derived role family and seniority |
location, locations, remoteType, employmentType | Locations, Remote/Hybrid/On-site detection, commitment |
salaryMin, salaryMax, salaryCurrency, salaryInterval | Pay range when the board publishes it (Lever salary ranges; Greenhouse salary metadata fields) |
description, descriptionHtml | Plain-text description, optional raw HTML |
jobUrl, applyUrl, sourceUrl, apiUrl | Posting, application and source links |
postedAt, firstSeenAt, lastSeenAt, isNew | Dates and monitor flags |
hiringSignalScore (0-100), hiringSignalTier | Rule-based priority score: Low / Medium / High |
urgencyTags, likelyBusinessNeeds, targetBuyer, outreachAngle, signalEvidence | Sales-research aids derived from the posting |
matchedKeywords, matchedLocations, matchedDepartments | Which 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
- Find the company's board: Greenhouse boards look like
boards.greenhouse.io/<slug>orjob-boards.greenhouse.io/<slug>; Lever boards look likejobs.lever.co/<slug>. The "Apply" button on a careers page usually reveals it. - Paste the URLs into Career URLs (or
greenhouse:<slug>/lever:<slug>into Company slugs). - Optionally add keywords, locations, departments, seniority or a minimum hiring-signal score.
- Click Start and export the dataset as CSV, Excel or JSON.
- For a recurring feed, set
monitorMode: true,onlyNewJobs: trueand astateKey, 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 ApifyClientclient = 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.
Related job scrapers
- Job Scraper - LinkedIn Jobs & Indeed - search LinkedIn and Indeed by keyword across many cities, with new-job alerts.
- Teamtailor Jobs Scraper - jobs from Teamtailor career sites.
- SmartRecruiters Jobs Scraper - jobs from SmartRecruiters company boards.