Company Jobs Scraper — Greenhouse, Lever & Ashby
Pricing
from $4.00 / 1,000 job postings
Company Jobs Scraper — Greenhouse, Lever & Ashby
Scrape every open job from a company's own careers page across Greenhouse, Lever, Ashby and SmartRecruiters: title, department, team, location, remote flag, employment type, posting date, requisition ID and apply link. Filter by title, location or remote. No API key.
Pricing
from $4.00 / 1,000 job postings
Rating
0.0
(0)
Developer
Hichem Ben Moussa
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Company Jobs Scraper — Greenhouse, Lever, Ashby & SmartRecruiters
Scrape every open role straight from a company's own careers page, across the four applicant tracking systems that most companies actually use. One input, one unified output schema, no matter which ATS a company runs.
This is the data behind two of the highest-value plays in B2B: hiring signals (a company posting 12 sales roles is expanding; one posting a "Head of Data" is about to buy tooling) and recruiting intelligence (every competitor's open headcount, updated daily).
No API key required.
Supported platforms
| Platform | Handle to use | Where the handle comes from |
|---|---|---|
| Greenhouse | greenhouse:stripe | boards.greenhouse.io/stripe |
| Lever | lever:leverdemo | jobs.lever.co/leverdemo |
| Ashby | ashby:ramp | jobs.ashbyhq.com/ramp |
| SmartRecruiters | smartrecruiters:BoschGroup | jobs.smartrecruiters.com/BoschGroup |
You can paste a full job-board URL instead of platform:handle and the actor will work out both.
What you get
| Field | Description |
|---|---|
title | Job title |
company | Company name as the board reports it |
platform | Which ATS the posting came from |
department | Department, e.g. Engineering, Sales |
team | Sub-team, where the board publishes one |
industry | Industry classification (SmartRecruiters) |
location | Primary location |
additionalLocations | Extra offices or remote regions the role is open to |
isRemote | Remote flag from the board, or inferred from the location text |
employmentType | Full-time, contract, intern… |
experienceLevel | Seniority, where published |
postedAt | When the role first went live |
updatedAt | Last edited |
requisitionId | Internal req number — useful for deduping against your own ATS |
description | Full job text as plain text (opt in) |
applyUrl, jobUrl | Direct links |
Example input
{"companies": ["greenhouse:stripe", "ashby:ramp", "lever:leverdemo"],"titleFilter": "engineer","remoteOnly": true,"maxJobsPerCompany": 50,"maxJobs": 200}
Track a list of target accounts by putting all of them in companies and scheduling a daily run.
Example output
{"title": "Abuse Investigator","company": "Stripe","platform": "greenhouse","department": "Risk Operations","location": "Dublin","isRemote": false,"postedAt": "2026-09-03T17:32:53.000Z","requisitionId": "See Opening ID","jobUrl": "https://stripe.com/jobs/search?gh_jid=8172508"}
Who uses this
- Sales and GTM teams — hiring signals are the cleanest public proxy for budget and expansion. A company opening its first "RevOps" role is in market for tooling now.
- Recruiters and talent teams — every competitor's open roles, salaries where published, and how long a req has been sitting
- Job boards and aggregators — fill a niche board from the source rather than re-scraping other boards
- Investors and analysts — headcount growth by department is a leading indicator that shows up months before a funding announcement
- Compensation researchers — track which roles a market is hiring for and where
Notes on field coverage
Different ATS platforms publish different amounts, and the actor is explicit about it rather than inventing values:
- Greenhouse leaves
departmentsempty on its jobs endpoint unless you request full content, which makes the response about twelve times larger. The actor instead reads Greenhouse's separate departments endpoint and joins it, so you get departments without paying for every job description. - SmartRecruiters usually leaves
departmentblank and puts the meaningful classification in its job function field. The actor maps function intodepartmentso the column is populated consistently, and addsindustryon top. employmentTypeandexperienceLevelare not published by Greenhouse at all — expect them to be null for Greenhouse rows and filled for Ashby, Lever and SmartRecruiters.- Workable is not supported. Its public widget endpoint currently returns an empty job list for every account tested, so rather than ship a mapping that silently yields nothing, it is left out.
Pricing
Pay per result. Each job posting returned counts as one result. Filters are applied before charging, so a run that keeps 20 of 700 postings costs 20.
Notes
- All four platforms serve these postings publicly, un-authenticated, as the feed that powers each company's own careers page.
- Big boards are big: Stripe alone had 702 open roles at the time of writing. Use
maxJobsPerCompanyso one large employer cannot consume an entire run. includeDescriptionis off by default on purpose — turning it on multiplies output size and run time substantially.- This is an unofficial actor and is not affiliated with Greenhouse, Lever, Ashby or SmartRecruiters.