Multi-ATS Job Postings & Hiring-Signal Scraper
Pricing
from $1.00 / 1,000 results
Multi-ATS Job Postings & Hiring-Signal Scraper
Scrape jobs from Greenhouse, Lever, Ashby & SmartRecruiters in one unified schema, plus per-company hiring signals (departments, locations, remote %, hiring velocity). Built for sales intelligence, recruiting, market research & AI agents. No API key, near-zero maintenance.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Alexandr Maier
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Pull job postings from Greenhouse, Lever, Ashby, and SmartRecruiters into one unified schema, and get hiring signals per company: department breakdown, locations, remote %, and how fast they're hiring.
Most job scrapers cover a single ATS and just dump raw postings. This one normalizes four ATS platforms into one format and adds the analytics layer that sales-intelligence, recruiting, and market-research teams actually pay for.
Data comes from each vendor's official public JSON API — no API key, no login, no proxy, no anti-bot. That makes it fast and near-zero maintenance: these endpoints rarely change.
What you get
Per job (unified across all four ATS):
{"ats": "ashby","company": "ramp","id": "03e2d4e1-...","title": "Technical Consultant, Mid-Market","department": "Sales","team": "Solutions Consulting","location": "Remote (US)","remote": true,"employmentType": "FullTime","publishedAt": "2026-07-07T20:47:09.753Z","url": "https://jobs.ashbyhq.com/ramp/03e2d4e1-..."}
Per company (hiring signal summary):
{"type": "company_signal","company": "spotify","ats": "lever","totalOpenRoles": 110,"remoteRoles": 30,"remoteShare": 27,"rolesPostedLast30Days": 32,"newestPostingAt": "2026-07-09T...","topDepartments": [{ "name": "Engineering", "count": 39 }, ...],"topLocations": [{ "name": "London", "count": 14 }, ...]}
How to find a company's token
The token is the identifier in a company's careers URL:
| ATS | Careers URL example | Token | Input |
|---|---|---|---|
| Greenhouse | boards.greenhouse.io/stripe | stripe | greenhouse:stripe |
| Lever | jobs.lever.co/spotify | spotify | lever:spotify |
| Ashby | jobs.ashbyhq.com/ramp | ramp | ashby:ramp |
| SmartRecruiters | jobs.smartrecruiters.com/Visa | Visa | smartrecruiters:Visa |
Input
| Field | Type | Description |
|---|---|---|
companies | array (required) | "<ats>:<company>" entries, e.g. "greenhouse:stripe" |
keywords | array | Keep roles whose title (or body, if included) matches |
locations | array | Keep roles whose location contains a substring |
departments | array | Keep roles in matching departments |
remoteOnly | boolean | Remote-flagged roles only |
postedWithinDays | integer | Only roles posted in the last N days (hiring-velocity monitoring) |
includeDescription | boolean | Include full role text (bigger output) |
signalsOnly | boolean | Output only the per-company summary, no individual rows |
Example: monitor competitors' engineering hiring, last 30 days
{"companies": ["greenhouse:stripe", "lever:spotify", "ashby:ramp"],"departments": ["Engineering"],"postedWithinDays": 30}
Use cases
- Sales intelligence — a company hiring 40 salespeople signals budget and expansion. Feed signals into your CRM.
- Competitive intel — track which departments and locations competitors are growing.
- Recruiting / talent — a fresh, deduplicated feed of open roles across your target companies.
- AI agents (MCP) — "What is company X hiring for right now?" is one clean tool call with flat JSON back.
- Market research — hiring velocity as a leading indicator across a sector.
Pricing (pay-per-event)
| Event | Price |
|---|---|
| Actor start | $0.005 |
| Company processed (with signals) | $0.01 |
| Job row saved | $0.00015 |
Scanning 10 companies with 2,000 total roles ≈ $0.005 + $0.10 + $0.30 = **$0.40**. Use signalsOnly to pay only per company when you just need the aggregates.
Honest notes
- Covers companies hosted on these four ATS platforms. It does not scrape LinkedIn, Indeed, or company career pages built on other systems.
- Uses official public endpoints only. No login, no personal data, no anti-bot evasion.
includeDescriptionisn't available for SmartRecruiters in this version (would need a per-role call).- All source-specific logic lives in
src/ats.js— the only file to touch if an ATS ever changes its format. Adding a new ATS = one function.