ATS Universal Job Scraper avatar

ATS Universal Job Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
ATS Universal Job Scraper

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

Rahul Sharma

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

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 output
jobs.lever.co/spotify → Lever pipeline → unified output
jobs.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

PlatformCompaniesExamples
Greenhouse7,500+Airbnb, Stripe, Figma, Webflow, HubSpot, Datadog, Coinbase
Lever5,000+Spotify, Palantir, Outreach
Ashby1,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

FeatureDescription
Auto-detectionDetects Greenhouse, Lever, or Ashby from URL
Skills extraction500-term taxonomy, required vs preferred
ClassificationSeniority (intern→c-level), category (13), work mode
Change detectionTrack new/updated/removed between runs
DeduplicationCross-platform duplicate detection
Salary estimationPeer-based estimation across all platforms
AnalyticsPer-company hiring summaries
Output profilesFull / Compact / Minimal

Input reference

FieldTypeDefaultDescription
careerUrlsstring[]requiredCareer page URLs or slugs
defaultPlatformenum""Fallback for plain slugs
includeDescriptionbooleantrueInclude descriptions
includeQuestionsbooleanfalseApplication questions (Greenhouse)
departmentFilterstring""Filter by department
locationFilterstring""Filter by location
maxJobsPerCompanyinteger0Limit per company
enableClassificationbooleantrueSeniority + category + work mode
enableSkillsExtractionbooleanfalseSkills taxonomy extraction
enableSalaryEstimationbooleanfalsePeer-based salary estimation
enableChangeDetectionbooleanfalseTrack changes between runs
deltaOnlybooleanfalseOnly output changes
deduplicateAcrossBoardsbooleanfalseCross-platform dedup
includeAnalyticsbooleanfalsePer-company summaries
outputProfileenum"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.