Career Page Job Scraper — Greenhouse, Lever & Any ATS
Pricing
$10.99/month + usage
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
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
💼 Career Page & Job Listing Scraper v2 — Greenhouse, Lever, Ashby + 10+ ATS
Extract structured job listings from any company career page — supports Greenhouse, Lever, Ashby, Workday, SmartRecruiters, BambooHR, Recruitee, Teamtailor, and generic HTML.
Get job titles, locations, departments, links, descriptions, remote status, experience level, skills, and more. No API key required.
💡 What is Career Page & Job Listing Scraper v2?
This actor scrapes public job listings directly from company career pages, not from job boards. It automatically detects the ATS (Applicant Tracking System) and uses the best extraction method:
- Greenhouse – extracts from
__NEXT_DATA__JSON or public API (boards-api.greenhouse.io). - Lever – extracts from
window.LeverPostings,__NEXT_DATA__, or HTML selectors. - Ashby – extracts from
__NEXT_DATA__or JSON‑LD. - Generic – supports Workday, SmartRecruiters, BambooHR, Recruitee, Teamtailor, and any custom HTML via JSON‑LD, structured data, or fallback link scanning.
The actor returns clean, structured JSON with fields like Job_ID, Title, Location, Department, Career_Link, Job_Type, Salary_Range, Description, Posted_Date, Remote (boolean), Experience_Level, Skills, ATS_Platform, and more.
No API key required. Works with residential proxies to avoid IP blocks.
📦 What Data Can You Extract?
| 🧩 Data Type | 📋 Description |
|---|---|
| 🆔 Job ID | Unique identifier from the ATS or generated. |
| 🎬 Title | Job title. |
| 📍 Location | City, state, country, or “Remote”. |
| 🏢 Department | Team or functional area. |
| 🔗 Career Link | Direct URL to apply or view details. |
| 🕒 Job Type | Full‑time, Part‑time, Contract, etc. |
| 💰 Salary Range | Extracted if present in description. |
| 📝 Description | Short description (up to 500 chars). |
| 📅 Posted Date | YYYY‑MM‑DD if available. |
| 🏠 Remote | Boolean (true/false). |
| 📈 Experience Level | Intern, Junior, Mid‑Level, Senior, Manager, Staff/Principal. |
| 🛠️ Skills | Extracted from title + description (Python, React, AWS, etc.). |
| 🤖 ATS Platform | Greenhouse, Lever, Ashby, Workday, etc. |
| 🌐 Company URL | Original career page URL. |
| ⏱️ Timestamp | ISO extraction time. |
⚙️ Key Features
- ATS Detection – Automatically identifies the ATS from the URL or page content.
- JSON‑First Extraction – Uses
__NEXT_DATA__,window.LeverPostings, and JSON‑LD before falling back to HTML parsing. - Residential Proxy Ready – Works with Apify residential proxies to avoid blocking.
- Bulk Processing – Scrape multiple career page URLs in one run.
- Filtering – Filter by keyword, remote‑only, department, or job type.
- Skills & Experience Inference – Automatically extracts skills and experience level from job data.
- Clean Output – Missing fields are omitted; all strings are sanitised.
📥 Input Parameters
The actor accepts a JSON object with the following fields:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
career_page_urls | array or string | Yes | – | List of career page URLs (e.g., https://boards.greenhouse.io/stripe). Can be newline‑separated string. |
career_page_url | string | No | – | Single URL alternative. |
keyword | string | No | – | Filter jobs by title keyword (case‑insensitive). |
remote_only | boolean | No | false | Return only remote jobs. |
department | string | No | – | Filter by department (partial match). |
job_type_filter | string | No | – | Filter by job type (e.g., Full-time). |
max_results | integer | No | 100 | Maximum number of jobs to return total. |
proxyConfiguration | object | No | – | Apify proxy configuration. Residential recommended. |
Example Input
{"career_page_urls": "https://boards.greenhouse.io/stripe\nhttps://jobs.lever.co/anthropic","remote_only": false,"max_results": 50,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
📤 Output Fields
Each job returns an object with the following possible fields:
| Field | Type | Description |
|---|---|---|
Job_ID | string | Unique identifier (from ATS or generated). |
Title | string | Job title. |
Location | string | Location (city, state, country). |
Department | string | Department or team. |
Career_Link | string | Direct URL to the job posting. |
Job_Type | string | Employment type (e.g., Full-time). |
Salary_Range | string | Salary range (if found). |
Description | string | Short description (up to 500 chars). |
Posted_Date | string | YYYY-MM-DD (if available). |
Remote | boolean | Whether the job is remote. |
Experience_Level | string | Intern, Junior, Mid‑Level, Senior, Manager, Staff/Principal. |
Skills | array | Extracted skills (e.g., ["Python","React"]). |
ATS_Platform | string | Greenhouse, Lever, Ashby, Generic, etc. |
Company_Career_URL | string | Original career page URL. |
Proxy_Status | string | Always RESIDENTIAL-SECURE when proxy used. |
Timestamp | string | ISO 8601 extraction timestamp. |
Example Output (Greenhouse)
[{"Job_ID": "7532733","Title": "Account Executive, AI Sales","Location": "San Francisco, CA","Department": "1175 Enterprise - Account Executives (NA)","Career_Link": "https://stripe.com/jobs/search?gh_jid=7532733","Job_Type": "Full-time","Salary_Range": null,"Description": "<h2>Who we are</h2> <h3>About Stripe</h3> <p>Stripe is a financial infrastructure platform for businesses...</p>","Posted_Date": "2026-04-01","Remote": false,"Experience_Level": "Mid-Level","Skills": [],"ATS_Platform": "Greenhouse","Company_Career_URL": "https://boards.greenhouse.io/stripe","Proxy_Status": "RESIDENTIAL-SECURE","Timestamp": "2026-04-11T05:07:12.447920Z"}]
🛠 How to Use on Apify
- Create a task with this actor.
- Provide input – one or more career page URLs (Greenhouse, Lever, Ashby, etc.).
- Configure filters – optional keyword, remote‑only, department.
- Enable proxy – set
proxyConfiguration.useApifyProxy: truewithRESIDENTIALgroup. - Run – the actor will scrape each URL and push jobs to the Dataset.
- Export – download as JSON, CSV, or Excel.
Running via API
curl -X POST "https://api.apify.com/v2/acts/your-username~career-page-job-scraper/runs" \-H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_API_TOKEN" \-d '{"career_page_urls": ["https://boards.greenhouse.io/stripe"],"max_results": 20,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}'
🎯 Use Cases
- Job Aggregation – Build a custom job board from specific companies.
- Competitive Intelligence – Monitor who is hiring and for what roles.
- Recruitment Research – Analyse salary ranges, skills, and remote trends.
- Data Enrichment – Augment your CRM with live job listings.
- Talent Sourcing – Identify companies expanding in your region.
❓ Frequently Asked Questions
Q1. Which ATS platforms are supported?
Full support: Greenhouse, Lever, Ashby. Partial support (generic HTML/JSON‑LD): Workday, SmartRecruiters, BambooHR, Recruitee, Teamtailor, Jobvite, Breezy, iCIMS, Workable, and any custom career page with structured data.
Q2. Do I need an API key?
No. The actor uses only public web pages and public APIs (e.g., Greenhouse’s public boards API).
Q3. Why do I need residential proxies?
Many ATS pages block datacenter IPs. Residential proxies reduce the chance of being blocked, especially when scraping multiple companies.
Q4. How accurate are the extracted skills and experience level?
They are based on simple keyword matching and may not be perfect. You can disable or adjust the logic by modifying the script.
Q5. What if a career page uses JavaScript rendering?
The actor uses curl_cffi (which mimics a real browser) and can execute some JS. For heavy JS frameworks, consider using a Playwright‑based actor.
Q6. Can I scrape job details (full description, requirements)?
The actor extracts a short description (up to 500 chars). For full details, you can follow the Career_Link and scrape that page separately.
Q7. How are Job_IDs generated?
If the ATS provides an ID (Greenhouse, Lever, Ashby), it is used. Otherwise, a deterministic hash is generated from the link and title.
Q8. What happens if a URL fails to load?
The actor logs a warning and skips that URL. Other URLs are processed normally.
🔍 SEO Keywords
job scraper, career page scraper, Greenhouse job extractor, Lever jobs API, Ashby job scraper, workday job listings, ATS data extraction, recruitment intelligence, bulk job scraping, Apify career scraper