Career Page Job Scraper — Greenhouse, Lever & Any ATS avatar

Career Page Job Scraper — Greenhouse, Lever & Any ATS

Pricing

$10.99/month + usage

Go to Apify Store
Career Page Job Scraper — Greenhouse, Lever & Any ATS

Career Page Job Scraper — Greenhouse, Lever & Any ATS

Scrape real job listings from any company career page. Supports Greenhouse, Lever, Workday, Ashby and 10+ ATS platforms. Returns job title, location, department, salary, required skills, remote status and apply link. Filter by keyword, department and remote.

Pricing

$10.99/month + usage

Rating

0.0

(0)

Developer

Scrape Pilot

Scrape Pilot

Maintained by Community

Actor stats

0

Bookmarked

11

Total users

5

Monthly active users

17 days ago

Last modified

Share

💼 Career Page Job Scraper — Extract Jobs from Any Company Career Page

The smartest Career Page Job Scraper on Apify. Extract live job listings from Greenhouse, Lever, Ashby, Workday, BambooHR, Smartrecruiters, and any custom career page — with titles, locations, salaries, skills, departments, and direct apply links. Built for recruiters, HR teams, and talent intelligence platforms.


🆓 Try FREE for 2 hours — no credit card required. Then just $10.99/month for unlimited career page job scraping across any company, any ATS, any scale.


📌 Table of Contents


🔍 What Is This Actor?

Career Page Job Scraper is a production-grade Apify actor that extracts live job listings directly from any company's career page — no job board middleman, no stale data, no login required.

This career page job scraper works with all major Applicant Tracking Systems (ATS) including Greenhouse, Lever, Ashby, Workday, BambooHR, Smartrecruiters, Recruitee, Teamtailor, and any custom-built career portal. Just provide one or many career page URLs and receive back structured job records with titles, locations, departments, salary ranges, experience levels, required skills, remote status, and direct apply links.

Whether you are a recruiter monitoring competitor hiring, a talent intelligence platform tracking workforce trends, a job aggregator building a niche job board, or an HR team analyzing the talent market — this career page job scraper gives you the raw data you need, fast and clean.


🚀 Why This Is the Best Career Page Job Scraper

FeatureThis ActorJob Boards (Indeed/LinkedIn)Generic Scrapers
Direct from company career page✅ Always fresh❌ Often delayed/incomplete⚠️ Hit or miss
Greenhouse support✅ JSON + API⚠️ HTML only
Lever support✅ 3-method extraction⚠️
Ashby support✅ Next.js JSON
Salary range extraction✅ Auto-detected✅ Sometimes
Skills auto-detection✅ 40+ skills
Remote job filter✅ Built-in
Department filter✅ Built-in⚠️
Experience level detection✅ Auto⚠️
Bulk URL processing✅ 100+ URLs⚠️
No job board fees❌ Per listing
Price$10.99/mo$0 (limited)Varies

This career page job scraper goes directly to the source — company career pages — giving you fresher, more complete job data than any job board aggregator.


💰 Pricing

🆓 Free Trial — 2 Hours, No Credit Card

Start your first career page job scraper run right now with a full 2-hour free trial. No credit card. No form. Click Try for free and paste your first career page URL in under 60 seconds.

During the free trial you get:

  • ✅ Full access to all supported ATS platforms (Greenhouse, Lever, Ashby, and more)
  • ✅ All output fields — title, salary, skills, location, department, apply link
  • ✅ Remote filter, keyword filter, department filter — all active
  • ✅ Bulk URL processing — scrape multiple career pages in one run
  • ✅ Complete JSON output ready for CRM or database import

After the free trial, continue with $10.99/month — less than the cost of a single LinkedIn job posting. This gives you:

  • Unlimited runs — scrape as many career pages as you need, as often as you want
  • All ATS platforms — Greenhouse, Lever, Ashby, Workday, BambooHR, and more
  • Full data — salary, skills, remote flag, experience level, department
  • Apify platform features — scheduling, webhooks, API integration
  • Priority support — fast responses via actor page

💡 What $10.99/Month Gets You vs Alternatives

ToolPriceData SourceFreshnessSkills
This Career Page Job Scraper$10.99/moDirect company pages✅ Real-time✅ Auto-extracted
LinkedIn Recruiter$835/moLinkedIn listings✅ Fresh❌ Manual
Indeed Resume$100+/moIndeed listings
Greenhouse subscription$6,000+/yrOnly your company
Manual researchFreeAnywhere

🎯 $10.99/month gives you talent market intelligence that companies pay thousands for. Start with the free trial today.


🏗️ Supported ATS Platforms

This career page job scraper natively supports 8 major ATS platforms plus any generic career page:

Tier 1 — Full JSON Extraction (Highest Accuracy)

🌱 Greenhouse

Used by: Stripe, Airbnb, Dropbox, Figma, Notion, Robinhood, and thousands more.

This career page job scraper extracts Greenhouse jobs using three methods in priority order: __NEXT_DATA__ JSON from the React app → inline JSON blobs → Greenhouse public API (boards-api.greenhouse.io). This triple-method approach means the actor succeeds even when Greenhouse updates their frontend.

Supported URL formats:

https://boards.greenhouse.io/stripe
https://boards.greenhouse.io/airbnb
https://www.greenhouse.io/careers (company-hosted)

🎯 Lever

Used by: Netflix, Reddit, Shopify, Atlassian, Duolingo, and many more.

Lever jobs are extracted from window.LeverPostings JavaScript variable first, then __NEXT_DATA__, then HTML selectors as final fallback — three extraction layers for maximum coverage.

Supported URL formats:

https://jobs.lever.co/netflix
https://jobs.lever.co/shopify

🌟 Ashby

Used by: Linear, Vercel, Railway, Retool, and fast-growing startups.

Ashby is a Next.js SPA. This career page job scraper navigates the __NEXT_DATA__ JSON tree using multiple known data paths (jobPostings, initialJobPostings, company.jobPostings) with JSON-LD fallback.

Supported URL formats:

https://jobs.ashbyhq.com/linear
https://jobs.ashbyhq.com/vercel

Tier 2 — HTML + JSON-LD Extraction

ATSCompanies Using ItExtraction Method
WorkdayWalmart, Target, MicrosoftHTML + JSON-LD
SmartrecruitersVisa, Bosch, KPMGHTML cards + JSON-LD
BambooHRMid-size companiesHTML selectors
RecruiteeEuropean companiesHTML + JSON-LD
TeamtailorScandinavian companiesHTML + JSON-LD

Tier 3 — Generic HTML Parser

Any company career page not using the above ATS platforms is handled by the generic parser, which tries three methods in sequence:

  1. JSON-LD JobPosting schema — reads structured job data if the page uses schema.org markup
  2. HTML card detection — searches for job cards using 8 common class-name patterns
  3. Link scan fallback — scans all page links for job-related keywords (/jobs/, /careers/, /apply/)

🎯 Use Cases

🔍 Competitive Talent Intelligence

Use this career page job scraper to monitor what roles your competitors are hiring for — updated daily. Know before your board does that a rival is building an AI team or expanding into a new market.

📊 Hiring Trend Analysis

Track which skills, roles, and departments companies are growing fastest by scraping their career pages weekly. Build charts showing month-over-month hiring velocity by department or role type.

🏗️ Building a Niche Job Board

Aggregate job listings from dozens of companies in a specific industry (fintech, climate tech, SaaS, healthcare) without paying job board listing fees. This career page job scraper feeds your job board directly from company sources.

💼 Recruiting & Headhunting

Build target prospect lists by identifying which companies are actively hiring for specific roles. Use salary data and required skills to qualify leads before outreach.

📈 Workforce & Market Research

Analyze hiring patterns across an industry to understand which technologies are growing in demand, which roles are being replaced by AI, or how remote work policies are evolving company by company.

🤖 HR Tech & ATS Integration

Feed live job data from company career pages into your own HR platform, talent marketplace, or AI matching engine. This career page job scraper provides clean, structured JSON that integrates with any system.

🔔 Job Alert Automation

Schedule this career page job scraper to run daily and use Apify webhooks to send new job alerts to Slack, email, or a custom dashboard — faster than any generic job alert service.

📋 Salary & Compensation Research

Collect salary range data from job listings at scale. Build compensation benchmarks across companies, roles, and locations using the Salary_Range field extracted wherever companies disclose pay.


📊 What Data Is Extracted?

This career page job scraper extracts the following data per job listing:

📄 Core Job Fields

  • Job Title — full role title exactly as posted
  • Job ID — unique identifier (ATS-specific or generated)
  • Department — team or function (Engineering, Product, Sales, Finance, etc.)
  • Job Type — Full-time, Part-time, Contract, Intern
  • Posted Date — when the job was published (where available)

📍 Location & Remote

  • Location — city, state, country, or "See posting"
  • Remote — boolean flag (true/false) — auto-detected from title and location text

💰 Compensation

  • Salary Range — extracted from job description text where disclosed (e.g. $120,000 - $160,000/yr)

🧠 Intelligence Fields

  • Experience Level — auto-detected: Intern, Junior, Mid-Level, Senior, Staff/Principal, Manager
  • Skills — up to 12 technical skills detected from title and description
  • Career Link — direct URL to the full job posting page
  • Company Career URL — the career page URL that was scraped

🔧 Meta Fields

  • ATS Platform — which ATS was detected (Greenhouse, Lever, Ashby, etc.)
  • Timestamp — ISO extraction time

🧠 Smart Detection Features

Experience Level Auto-Detection

This career page job scraper automatically assigns an experience level to every job based on keywords in the title:

LevelKeywords Detected
Internintern, internship, co-op
Juniorjunior, jr., associate, entry, new grad
Mid-Level(default — no explicit level keyword)
Seniorsenior, sr., lead
Staff / Principalstaff, principal, vp, head of, chief, director
Managermanager, director, vp, head

Remote Job Detection

Remote status is auto-detected from title and location text containing: remote, work from home, wfh, distributed, anywhere, flexible.

Salary Range Extraction

Salary data is extracted using regex pattern matching on job description text. Detects formats like:

$120,000 - $160,000/yr
$85K - $110K
$45/hr
$200,000

📋 Output Fields (Full Reference)

Every record from this career page job scraper contains:

FieldTypeDescriptionExample
Job_IDstringUnique job ID (ATS-native or generated)"GH-4892731", "LVR-abc123"
TitlestringFull job title"Senior Software Engineer, Backend"
LocationstringCity, state/country, or "See posting""San Francisco, CA", "Remote"
DepartmentstringTeam or function"Engineering", "Product", "Sales"
Career_LinkstringDirect URL to the job posting"https://boards.greenhouse.io/stripe/jobs/..."
Job_TypestringEmployment type"Full-time", "Contract", "Intern"
Salary_RangestringCompensation range (if disclosed)"$120,000 - $160,000", null
DescriptionstringJob description excerpt (max 500 chars)"We are looking for a..."
Posted_DatestringPublication date (YYYY-MM-DD)"2024-11-01"
RemotebooleanWhether the role is remotetrue or false
Experience_LevelstringAuto-detected seniority"Senior", "Junior", "Mid-Level"
SkillsarrayAuto-detected required skills (max 12)["Python", "AWS", "PostgreSQL"]
ATS_PlatformstringDetected ATS system"Greenhouse", "Lever", "Ashby"
Company_Career_URLstringSource career page URL"https://boards.greenhouse.io/stripe"
TimestampstringISO extraction timestamp"2024-11-01T10:30:00Z"

⚙️ Input Parameters

{
"career_page_urls": [
"https://boards.greenhouse.io/stripe",
"https://jobs.lever.co/shopify",
"https://jobs.ashbyhq.com/linear"
],
"keyword": "engineer",
"remote_only": false,
"department": "Engineering",
"job_type_filter": "Full-time",
"max_results": 100,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}
ParameterTypeDefaultDescription
career_page_urlsarray[]List of career page URLs to scrape. Accepts Greenhouse, Lever, Ashby, and any ATS or custom career page.
career_page_urlstring""Single career page URL shortcut — automatically added to the list
keywordstring""Only return jobs containing this keyword in the title. Example: "engineer", "product", "data"
remote_onlybooleanfalseSet to true to return only remote-flagged jobs
departmentstring""Filter by department name. Example: "Engineering", "Marketing", "Sales"
job_type_filterstring""Filter by job type: "Full-time", "Part-time", "Contract", "Intern"
max_resultsinteger100Maximum total jobs to return across all URLs
proxyConfigurationobjectOffApify proxy configuration — recommended for large-scale runs

📦 Example Inputs & Outputs

Example 1: Scrape Greenhouse Career Page (Stripe)

Input:

{
"career_page_url": "https://boards.greenhouse.io/stripe",
"keyword": "engineer"
}

Output:

[
{
"Job_ID": "GH-6234891",
"Title": "Senior Software Engineer, Payments Infrastructure",
"Location": "San Francisco, CA",
"Department": "Engineering",
"Career_Link": "https://boards.greenhouse.io/stripe/jobs/6234891",
"Job_Type": "Full-time",
"Salary_Range": "$180,000 - $250,000",
"Description": "We are looking for a Senior Software Engineer to join our Payments Infrastructure team...",
"Posted_Date": "2024-11-01",
"Remote": false,
"Experience_Level":"Senior",
"Skills": ["Python", "Go", "PostgreSQL", "Kafka", "AWS", "Docker", "Kubernetes"],
"ATS_Platform": "Greenhouse",
"Company_Career_URL": "https://boards.greenhouse.io/stripe",
"Timestamp": "2024-11-10T08:30:00Z"
}
]

Example 2: Scrape Multiple ATS Career Pages

Input:

{
"career_page_urls": [
"https://boards.greenhouse.io/airbnb",
"https://jobs.lever.co/shopify",
"https://jobs.ashbyhq.com/linear"
],
"remote_only": true,
"max_results": 50
}

Output: Up to 50 remote job records from all three companies — unified in a single structured dataset regardless of each company's ATS system.


Example 3: Find All Senior Engineering Roles

Input:

{
"career_page_urls": [
"https://boards.greenhouse.io/notion",
"https://boards.greenhouse.io/figma",
"https://jobs.lever.co/duolingo",
"https://jobs.ashbyhq.com/vercel"
],
"keyword": "senior",
"department": "Engineering"
}

Output: All senior engineering jobs from 4 top companies — with salary ranges (where disclosed), required skills, and direct apply links.


Example 4: Intern Hunting Across Startups

Input:

{
"career_page_urls": [
"https://boards.greenhouse.io/robinhood",
"https://jobs.lever.co/reddit",
"https://jobs.ashbyhq.com/railway"
],
"job_type_filter": "Intern",
"max_results": 30
}

Output: All internship listings across 3 companies filtered by job type, with location, department, and apply links.


Example 5: Generic Career Page (Non-ATS)

Input:

{
"career_page_url": "https://www.tesla.com/careers",
"keyword": "data scientist",
"max_results": 20
}

Output: Jobs extracted from Tesla's custom career portal using JSON-LD schema detection and HTML card fallback parsing.


🔧 ATS-Specific Extraction Guide

How Greenhouse Extraction Works

The actor first reads the __NEXT_DATA__ JSON embedded in the Greenhouse React app page, traversing known data paths (props.pageProps.initialData.jobs, props.pageProps.jobs). If that returns nothing, it extracts the company slug from the URL and calls the Greenhouse public API (boards-api.greenhouse.io/v1/boards/{slug}/jobs) directly — no API key needed. This dual approach handles both frontend-rendered and API-served Greenhouse boards.

How Lever Extraction Works

Lever embeds job data directly in a window.LeverPostings JavaScript variable on the page. The actor reads this first using regex extraction. If absent, it reads __NEXT_DATA__ JSON. If both fail, it falls back to Lever's known HTML CSS selectors (.posting, [data-qa='posting']). Three layers means near-100% reliability on any Lever board.

How Ashby Extraction Works

Ashby is a pure Next.js app — all data lives in __NEXT_DATA__. The actor walks multiple known data paths to find the job postings array, then falls back to JSON-LD JobPosting schema if the Next.js data structure has changed.

How Generic Pages Work

For any ATS not listed above, the actor tries: JSON-LD schema.org JobPosting markup → HTML job card selectors (8 patterns) → link scan for job-related URLs. Most modern company career sites using React, WordPress, or Webflow can be parsed successfully.


🎛️ Filtering Options

All filters are applied after extraction — the actor fetches all jobs first, then filters. This ensures the filter is applied consistently regardless of whether the ATS supports server-side filtering.

Keyword Filter (keyword)

Only returns jobs where the keyword appears in the job title. Case-insensitive.

keyword: "machine learning" → Senior Machine Learning Engineer, ML Research Lead
keyword: "design" → Product Designer, UX Design Lead, Brand Designer
keyword: "sales" → Account Executive, Sales Development Representative

Remote Only (remote_only: true)

Returns only jobs where remote status was detected as true. Detection uses: "remote", "work from home", "wfh", "distributed", "anywhere", "flexible" in title or location.

Department Filter (department)

Returns only jobs where the department contains the filter string. Case-insensitive partial match.

department: "Engineering" → Engineering, Software Engineering, Data Engineering
department: "Product" → Product, Product Management, Product Design

Job Type Filter (job_type_filter)

Returns only jobs matching the employment type.

job_type_filter: "Full-time"
job_type_filter: "Contract"
job_type_filter: "Intern"

🧰 Skill Detection List

This career page job scraper automatically detects 40+ technical skills from job titles and descriptions:

Languages: Python, JavaScript, TypeScript, Java, Go, Rust, Ruby, Swift, Kotlin, C++, C#

Frontend: React, Angular, Vue

Backend: Node.js, Django, FastAPI, Flask

Databases: SQL, PostgreSQL, MySQL, MongoDB, Redis, Elasticsearch, DynamoDB

Cloud & DevOps: AWS, GCP, Azure, Docker, Kubernetes, Terraform

Data & AI: Kafka, Spark, Machine Learning, Deep Learning, LLM, NLP, Computer Vision, PyTorch, TensorFlow

Design: Figma, Sketch, UX, UI

Process: Agile, Scrum

Skills are returned as a clean array in the Skills field — max 12 per job.


🌐 Proxy Configuration

{
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

When to Use Proxy

  • Scraping 10+ career pages in one run
  • Any page returning 403 or 401 errors
  • Career pages hosted behind Cloudflare or similar protection (common for large enterprise sites like Workday)
  • Running this career page job scraper on a daily schedule

When Proxy Is Optional

  • Small runs of 1–5 career pages
  • Greenhouse and Lever boards (these are lightly protected public pages)
  • One-off lookups on a single career URL

The actor uses curl_cffi with Chrome 110 browser impersonation, which bypasses basic bot detection even without a proxy for smaller volumes.


⚡ Performance & Speed

Speed Benchmarks

ModeCareer PagesJobs ExtractedEstimated Time
Single Greenhouse board1~20–200~10–20 seconds
Single Lever board1~20–100~10–15 seconds
Single Ashby board1~10–50~10–20 seconds
Multi-company batch5~100~1–2 minutes
Multi-company batch20~400~5–8 minutes
Large batch50~1000~15–20 minutes

Rate Limiting

The actor applies a 1.5–3 second random delay between career page requests to avoid triggering rate limits. This makes it safe to run large batches without getting blocked.

Scheduling for Daily Monitoring

Use Apify's built-in scheduler to run this career page job scraper every day at a set time. Combine with a webhook to push new job results to Slack, email, Google Sheets, or your ATS automatically.


❓ FAQ

Q: What is the difference between this and a job board like Indeed or LinkedIn? A: Job boards show you what companies chose to post — often delayed, sometimes incomplete, and always filtered through the board's algorithm. This career page job scraper goes directly to each company's own career page and extracts every live job, exactly as the company posted it, in real time.

Q: Does this work for Workday career pages? A: Workday pages are partially supported via HTML + JSON-LD extraction. Workday is a complex Java SPA and some pages may require additional selectors. If a Workday page is not extracting correctly, contact us via the actor page.

Q: Why are some jobs missing a salary range? A: Most companies do not disclose salary in job postings. The Salary_Range field is only populated when the company explicitly states compensation in the job description text. In regions where salary disclosure is required by law (e.g. Colorado, New York, California), coverage is much higher.

Q: Can I scrape LinkedIn company job pages? A: LinkedIn blocks automated access and is not supported. This career page job scraper is designed for direct company career pages, not job boards.

Q: How fresh is the data? A: Completely fresh — every run fetches live data directly from the career page. There is no caching. Jobs posted an hour ago will appear in your results.

Q: What does the 2-hour free trial include? A: Everything. All ATS platforms, all filters, all output fields, full JSON output. After 2 hours, subscribe for $10.99/month to continue with unlimited runs.

Q: Can I use this to build a job board? A: Yes — many users build niche job boards using this career page job scraper as their data source. JSON output integrates cleanly with any database or CMS. Ensure you comply with each company's Terms of Service regarding data reuse.

Q: What if a career page uses a custom ATS I have not listed? A: The generic HTML parser handles most custom career pages. It tries JSON-LD schema detection first, then HTML card patterns, then link scan. Success rate on custom pages is lower than on named ATS platforms but still covers the majority of modern career sites.

Q: Can I get the full job description text? A: The Description field returns up to 500 characters of the job description. For full descriptions, use the Career_Link URL to fetch the individual job posting page.

Q: How do I set up daily job monitoring? A: Go to your actor run page → Schedules → Create Schedule. Set it to run daily at your preferred time. Add a webhook to automatically send new results to Slack, email, or your preferred destination.


📜 Changelog

v2.0.0 (Current)

  • ✅ Greenhouse: added __NEXT_DATA__ JSON extraction + public API fallback via board slug
  • ✅ Lever: added window.LeverPostings extraction as primary method
  • ✅ Ashby: improved __NEXT_DATA__ traversal with 5 known data paths
  • ✅ All ATSs: JSON-first approach with HTML fallback — significantly higher success rate
  • ✅ 404 handling: follows redirects, tries alternate URL variants
  • ✅ Salary range auto-extraction from description text
  • ✅ Experience level auto-detection (Intern → Staff/Principal)
  • ✅ Skills auto-detection — 40+ technical skills
  • ✅ Remote flag auto-detection
  • ✅ Department, job type, and remote-only filters
  • ✅ JSON-LD JobPosting schema support for generic pages
  • ✅ 3-method link scan fallback for unknown ATS platforms

v1.0.0

  • ✅ Initial release with Greenhouse and Lever support
  • ✅ Basic HTML card extraction for generic pages
  • ✅ Keyword filtering
  • ✅ JSON output

This career page job scraper collects publicly accessible job posting data from company career pages — the same information visible to anyone visiting those pages in a browser.

Please follow these guidelines:

  • Use extracted job data for legitimate recruiting, research, aggregation, and talent intelligence purposes
  • Respect each company's Terms of Service regarding data reuse — some companies prohibit automated scraping of their career pages
  • Do not use this tool to scrape personal candidate data, employee information, or any gated content
  • Do not use extracted data to impersonate job postings or misrepresent employment opportunities
  • Job posting data (titles, descriptions, salaries) is generally considered public factual information — its use for research and aggregation is broadly accepted

🤝 Support & Feedback

  • Bug report or broken ATS? Contact us via the Apify actor page — we fix broken parsers fast
  • Need a new ATS added? Request it via the actor page or Apify Community forum
  • Loving it? Please leave a ⭐ review — it helps other recruiters find this career page job scraper!

🆓 2-hour free trial → 💳 $10.99/month after — the most complete career page job scraper on the Apify platform.


Built with ❤️ on Apify · Career Page Job Scraper for Greenhouse, Lever, Ashby & More
Extract live job listings from any company career page — fresh data, smart filters, zero job board fees