ATS Universal Job Scraper
Pricing
from $3.00 / 1,000 results
ATS Universal Job Scraper
One scraper for all ATS platforms. Auto-detects Greenhouse, Lever, and Ashby from career URLs. Unified output with skills extraction, classification, change detection, and analytics across 20,000+ companies.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Rahul Sharma
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Stop managing three scrapers. One input, 20,000+ companies across Greenhouse, Lever, and Ashby. Auto-detects the ATS platform. Unified output schema.
Paste any mix of career page URLs. The scraper detects whether each company uses Greenhouse, Lever, or Ashby, routes to the correct extraction pipeline, and outputs unified, enriched data.
No API key needed. All three ATS platforms expose public job board APIs.
How it works
You paste: We detect & extract:─────────────────────────────── ─────────────────────────boards.greenhouse.io/stripe → Greenhouse pipeline → unified outputjobs.lever.co/spotify → Lever pipeline → unified outputjobs.ashbyhq.com/notion → Ashby pipeline → unified output
Every job gets the same enrichment regardless of platform: skills extraction, seniority classification, category standardization, work mode detection, and salary data.
Platform coverage
| Platform | Companies | Examples |
|---|---|---|
| Greenhouse | 7,500+ | Airbnb, Stripe, Figma, Webflow, HubSpot, Datadog, Coinbase |
| Lever | 5,000+ | Spotify, Palantir, Outreach |
| Ashby | 1,000+ | Notion, Linear, Ramp, Plaid, Vercel, Supabase, PostHog |
Quick start
Mix companies from any platform
{"careerUrls": ["https://boards.greenhouse.io/stripe","https://boards.greenhouse.io/airbnb","https://jobs.lever.co/spotify","https://jobs.ashbyhq.com/notion","https://jobs.ashbyhq.com/ramp"],"enableClassification": true,"enableSkillsExtraction": true}
Monitor hiring changes across platforms
{"careerUrls": ["https://boards.greenhouse.io/stripe","https://jobs.lever.co/spotify","https://jobs.ashbyhq.com/notion"],"enableChangeDetection": true,"deltaOnly": true}
Use plain slugs with a default platform
{"careerUrls": ["webflow", "figma", "stripe"],"defaultPlatform": "greenhouse"}
Unified output
Every job includes a platform field so you know the source. The rest of the schema is consistent:
{"jobId": "abc-123","title": "Senior Backend Engineer","company": "Notion","boardToken": "notion","platform": "ashby","location": "San Francisco, California","department": "Engineering","applyUrl": "https://jobs.ashbyhq.com/notion/abc-123/application","payRanges": [{ "title": "Salary", "minValue": 180000, "maxValue": 240000, "currency": "USD", "interval": "yearly" }],"seniority": "senior","category": "engineering","workMode": "hybrid","skills": {"required": ["Python", "PostgreSQL", "AWS"],"preferred": ["Kubernetes"],"yearsExperience": "5+"},"scrapedAt": "2026-04-01T12:00:00.000Z","source": "ashby"}
Platform-specific bonus fields are preserved when available:
- Greenhouse:
offices,applicationQuestions,internalJobId - Lever:
team,commitment,hostedUrl,sections(structured lists) - Ashby:
team,employmentType,secondaryLocations,addressCountry,isRemote, multi-tier compensation (salary+equity+bonus)
Features
| Feature | Description |
|---|---|
| Auto-detection | Detects Greenhouse, Lever, or Ashby from URL |
| Skills extraction | 500-term taxonomy, required vs preferred |
| Classification | Seniority (intern→c-level), category (13), work mode |
| Change detection | Track new/updated/removed between runs |
| Deduplication | Cross-platform duplicate detection |
| Salary estimation | Peer-based estimation across all platforms |
| Analytics | Per-company hiring summaries |
| Output profiles | Full / Compact / Minimal |
Input reference
| Field | Type | Default | Description |
|---|---|---|---|
careerUrls | string[] | required | Career page URLs or slugs |
defaultPlatform | enum | "" | Fallback for plain slugs |
includeDescription | boolean | true | Include descriptions |
includeQuestions | boolean | false | Application questions (Greenhouse) |
departmentFilter | string | "" | Filter by department |
locationFilter | string | "" | Filter by location |
maxJobsPerCompany | integer | 0 | Limit per company |
enableClassification | boolean | true | Seniority + category + work mode |
enableSkillsExtraction | boolean | false | Skills taxonomy extraction |
enableSalaryEstimation | boolean | false | Peer-based salary estimation |
enableChangeDetection | boolean | false | Track changes between runs |
deltaOnly | boolean | false | Only output changes |
deduplicateAcrossBoards | boolean | false | Cross-platform dedup |
includeAnalytics | boolean | false | Per-company summaries |
outputProfile | enum | "full" | full / compact / minimal |
Pricing
Pay Per Result: $3 per 1,000 jobs ($0.003 per job).
Premium over individual platform scrapers because it solves the routing problem — one input, all platforms.
Cost-saving tip: Use deltaOnly on scheduled runs for 85-95% savings.
Individual platform scrapers
Need just one platform? Use our dedicated scrapers at lower cost ($2/1K):
Feedback
Found a bug? Open an issue on the Issues tab.