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

2

Total users

1

Monthly active users

4 days ago

Last modified

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 IDUnique identifier from the ATS or generated.
🎬 TitleJob title.
📍 LocationCity, state, country, or “Remote”.
🏢 DepartmentTeam or functional area.
🔗 Career LinkDirect URL to apply or view details.
🕒 Job TypeFull‑time, Part‑time, Contract, etc.
💰 Salary RangeExtracted if present in description.
📝 DescriptionShort description (up to 500 chars).
📅 Posted DateYYYY‑MM‑DD if available.
🏠 RemoteBoolean (true/false).
📈 Experience LevelIntern, Junior, Mid‑Level, Senior, Manager, Staff/Principal.
🛠️ SkillsExtracted from title + description (Python, React, AWS, etc.).
🤖 ATS PlatformGreenhouse, Lever, Ashby, Workday, etc.
🌐 Company URLOriginal career page URL.
⏱️ TimestampISO 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:

ParameterTypeRequiredDefaultDescription
career_page_urlsarray or stringYesList of career page URLs (e.g., https://boards.greenhouse.io/stripe). Can be newline‑separated string.
career_page_urlstringNoSingle URL alternative.
keywordstringNoFilter jobs by title keyword (case‑insensitive).
remote_onlybooleanNofalseReturn only remote jobs.
departmentstringNoFilter by department (partial match).
job_type_filterstringNoFilter by job type (e.g., Full-time).
max_resultsintegerNo100Maximum number of jobs to return total.
proxyConfigurationobjectNoApify 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:

FieldTypeDescription
Job_IDstringUnique identifier (from ATS or generated).
TitlestringJob title.
LocationstringLocation (city, state, country).
DepartmentstringDepartment or team.
Career_LinkstringDirect URL to the job posting.
Job_TypestringEmployment type (e.g., Full-time).
Salary_RangestringSalary range (if found).
DescriptionstringShort description (up to 500 chars).
Posted_DatestringYYYY-MM-DD (if available).
RemotebooleanWhether the job is remote.
Experience_LevelstringIntern, Junior, Mid‑Level, Senior, Manager, Staff/Principal.
SkillsarrayExtracted skills (e.g., ["Python","React"]).
ATS_PlatformstringGreenhouse, Lever, Ashby, Generic, etc.
Company_Career_URLstringOriginal career page URL.
Proxy_StatusstringAlways RESIDENTIAL-SECURE when proxy used.
TimestampstringISO 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

  1. Create a task with this actor.
  2. Provide input – one or more career page URLs (Greenhouse, Lever, Ashby, etc.).
  3. Configure filters – optional keyword, remote‑only, department.
  4. Enable proxy – set proxyConfiguration.useApifyProxy: true with RESIDENTIAL group.
  5. Run – the actor will scrape each URL and push jobs to the Dataset.
  6. 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