Job Postings & Career Page Scraper – Workday, Greenhouse, Lever
Pricing
$1.00 / 1,000 jobs
Job Postings & Career Page Scraper – Workday, Greenhouse, Lever
Job postings scraper for career pages: every open job listing from Workday, Oracle, ADP, Greenhouse, Lever, Ashby, SmartRecruiters, Recruitee, Workable, Personio, Breezy, Teamtailor, Rippling, BambooHR, JazzHR, Pinpoint, JOIN, Jobvite, Manatal in one schema, remote, salary. ATS hiring data by URL.
Pricing
$1.00 / 1,000 jobs
Rating
0.0
(0)
Developer
Forever Tools
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
20 days ago
Last modified
Categories
Share
Company Jobs Scraper — Workday, Greenhouse, Lever, Ashby, SmartRecruiters, Recruitee, Workable, Personio, Breezy, Teamtailor, Rippling, BambooHR, JazzHR, Pinpoint, JOIN, Jobvite, Manatal, Oracle, ADP
Get every open job at the companies you care about in one clean, unified schema, straight from the official public job-board endpoints of nineteen widely used applicant tracking systems (ATS).
Input is flexible: paste job-board URLs, ats:slug pairs, bare board names, or just company websites:
the actor finds the careers page and detects which ATS the company uses.
Great for: job boards & aggregators, hiring-intent signals for sales (who's hiring SDRs in Berlin?), recruiting & sourcing, competitor/team-growth tracking, labour-market research, and AI agents that need live job data.
Input example
{"companies": ["https://www.figma.com","https://jobs.ashbyhq.com/notion","greenhouse:stripe","https://jobs.lever.co/palantir","ServiceNow","https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite","https://careers.jpmorgan.com"],"keywords": ["engineer", "data"],"locations": ["London", "Remote"],"postedWithinDays": 30}
https://careers.jpmorgan.com is a plain company website: the actor finds that it runs on Oracle Recruiting Cloud. The same works for ADP Workforce Now and the other systems.
Output (one row per job, same fields for every ATS)
{"company": "Stripe","ats": "greenhouse","boardSlug": "stripe","jobId": "8172503","title": "Abuse Research Engineer","department": "Security Analytics","location": "Remote from the US","remote": true,"workplaceType": null,"employmentType": null,"salaryMin": null, "salaryMax": null, "salaryCurrency": null, "salaryPeriod": null,"postedAt": "2026-09-09T14:52:09.000Z","updatedAt": "2026-09-25T20:45:00.000Z","url": "https://stripe.com/jobs/search?gh_jid=8172503","applyUrl": "https://stripe.com/jobs/search?gh_jid=8172503","descriptionText": "Who we are ...","descriptionHtml": "<p>Who we are ..."}
Salary is filled in when the company publishes it: from the ATS's structured pay fields (Greenhouse pay-transparency ranges, Ashby, Lever, Recruitee, Rippling) or, failing that, from a pay range written in the job description (salaryText shows the text it was read from).
The key-value store record REPORT lists, per company, the detected ATS, total open jobs and how many were returned.
Pricing
$0.001 per job ($1 per 1,000 jobs), description included. You only pay for jobs that pass your filters. No subscription.
Examples: all ~500 open roles at a mid-size tech company = about $0.50; a daily feed of new jobs (postedWithinDays: 1)
across 200 companies usually returns a few hundred rows = a few tens of cents per day. Companies where no job board is
found cost nothing (they only appear in the REPORT record). Apify platform compute is billed separately and is small:
the actor calls JSON endpoints, no browser.
How it works
- Resolve each input. An
ats:slugpair or a job-board URL is used directly. A company website is fetched (plus/careersand/jobs) and scanned for a link to a supported ATS. A bare name likeServiceNowis tried as a board slug on every supported ATS except Workday (Workday needs the full career-site URL). - Fetch the board through the ATS's public job-board endpoint, the same data the company's own careers page shows.
- Normalize every posting into the schema above, so a Greenhouse job and a Workday job have the same fields.
- Filter and push. Filters run before a job is saved, so filtered-out jobs are never charged.
Filters
| Input | What it does |
|---|---|
keywords | Keep jobs whose title contains any of the words (case-insensitive substring: engineer matches "Senior Software Engineer"). |
locations | Keep jobs whose location text contains any of the words. Remote also matches jobs flagged as remote. |
remoteOnly | Keep only remote jobs. |
postedWithinDays | Keep jobs posted in the last N days. Jobs where the ATS doesn't publish a date are kept. 0 = no limit. |
includeDescription | Turn off to get smaller rows without descriptionText / descriptionHtml. |
maxJobsPerCompany | Cap rows per company (0 = all). |
Use cases
Hiring signals for B2B sales
Put your target accounts in companies, filter titles like SDR, RevOps or Data Engineer, and schedule it weekly.
A company opening those roles is often buying tools for them.
Job boards and niche aggregators
Build a niche board (remote Rust jobs, climate-tech jobs in Europe) from a curated list of employers. The unified
schema means one importer handles every ATS, and url / applyUrl send candidates to the employer's own page.
Recruiting and competitor tracking
Track open roles and department growth at competitors, or catch new postings at the companies your candidates want.
Labour-market research and AI agents
Pull clean, structured postings with salary ranges (where published) for analysis, or give an LLM agent live job data through the Apify API or MCP server.
FAQ
Which input format should I use?
The job-board URL or ats:slug is fastest and most reliable. Company websites work when the careers page links to a
supported ATS; if detection fails, the REPORT record says so and you can paste the board URL instead.
Why did a company return 0 jobs? Either the company uses an unsupported system (iCIMS, Taleo, SuccessFactors, in-house pages), its board currently has no openings, or your filters removed everything. REPORT shows the detected ATS and the total open jobs before filtering.
Is salary included?
Yes, when the company publishes it (salaryMin, salaryMax, salaryCurrency, salaryPeriod, salaryText): structured
pay ranges from the ATS where available, otherwise a range stated in the description (needs includeDescription).
salaryCurrency stays null when a description says only "$" without naming the currency. Many companies publish no
pay at all (common outside the US), so expect nulls.
How do I get only new jobs every day?
Save a task with your companies and postedWithinDays: 1, and add an Apify schedule. Deduplicate on ats + jobId
if you keep a history.
Does it scrape LinkedIn or Indeed? No. It reads employers' own ATS job boards only. That is where postings originate, usually with fuller descriptions.
Is this legal to use? It reads public job postings that companies publish for anyone to see, through public endpoints, without logging in, and collects no personal data. You are responsible for how you use the data.
Supported ATS & slugs
| ATS | Example board URL | slug |
|---|---|---|
| Greenhouse | boards.greenhouse.io/stripe | stripe |
| Lever (US & EU) | jobs.lever.co/palantir | palantir |
| Ashby | jobs.ashbyhq.com/notion | notion |
| SmartRecruiters | jobs.smartrecruiters.com/ServiceNow | ServiceNow |
| Recruitee | bunq.recruitee.com | bunq |
| Workable | apply.workable.com/huggingface | huggingface |
| Personio | personio.jobs.personio.de | personio |
| Breezy HR | acme.breezy.hr | acme |
| Teamtailor | acme.teamtailor.com | acme |
| Rippling | ats.rippling.com/acme/jobs | acme |
| BambooHR | acme.bamboohr.com/careers | acme |
| JazzHR | acme.applytojob.com/apply | acme |
| Pinpoint | acme.pinpointhq.com | paste the URL or pinpoint:acme (not guessed from a bare name) |
| JOIN | join.com/companies/acme | acme |
| Jobvite | jobs.jobvite.com/acme/jobs | acme |
| Manatal | careers-page.com/acme | acme |
| Oracle Recruiting Cloud | jpmc.fa.oraclecloud.com/hcmUI/CandidateExperience/en/sites/CX_1001 | paste the full career-site URL |
| ADP Workforce Now | workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=<uuid> | paste the full career-center URL (or adp:<cid>) |
| Workday | nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite | paste the full career-site URL |
Notes
- Only public job postings are read, through each ATS's documented public job-board endpoint. No logins, no personal data.
- Workday and Oracle list at most 2,000 jobs per search; with a single title keyword the search is done on their side (whole words), so large employers still work well.
- Companies using other systems (iCIMS, legacy Taleo, …) are reported in REPORT as "no supported job board found".
- JazzHR shows a posting date on only some job pages, so
postedAtis often empty there; BambooHR pay is the employer's free text (salaryText), parsed into min/max only when it is a clear range. - Oracle Recruiting Cloud: the company name is the career site's name, and pay is not published by Oracle's public API.
- ADP Workforce Now: the public API has no company name, so
companyis the career center's cid; use theinputcolumn to tell companies apart. Pay comes from the posting's pay range when the employer sets one. - Schedule it daily with
postedWithinDays: 1to get a feed of new jobs. - Built and maintained with AI assistance. Problems or requests: use the Issues tab.
Related tools
Other actors by the same developer (same flat pay-per-result pricing, no subscription):
- App Store Reviews Scraper – Apple iOS, Multi-Country
- Article Scraper & Text Extractor – Clean Markdown for LLM/RAG
- Bluesky Posts Scraper – Profiles & Threads, No Login
- Company Enrichment from Domain (Logo, Socials, Tech)
- DNS Lookup & WHOIS Domain Checker — SPF/DMARC, SSL Expiry
- Email Validator & MX Record Checker – Bulk, Disposable, Role
- Bulk PageSpeed Insights, Lighthouse & Core Web Vitals
- PDF Extractor & Parser – Bulk PDF to Text with Metadata
- SEO Audit Crawler & Broken Link Checker – Website Health
- Sitemap Extractor & Bulk URL Status Checker
- Steam Reviews Scraper – Game Reviews & App Details
- Website Technology Detector – Tech Stack, CMS & Analytics
- Website Screenshot API – Bulk Full Page PNG, JPEG & PDF
Integrations
Run it from the Apify API, a schedule, or no-code tools: the Apify apps for Zapier, Make and n8n can start any public actor ("Run Actor") and read its dataset. AI agents can call it through the Apify MCP server.
Ready-made examples
One-click tasks you can run or copy and adapt:
- Get all open jobs at Stripe and Notion from their career pages
- Scrape NVIDIA job postings from its Workday career site
- Remote engineering jobs at AI startups (Greenhouse & Ashby)
- Scrape Palantir job postings from its Lever careers page
- Product manager job openings at Figma, Discord and Airbnb
- New fintech jobs from the last 7 days (Brex, Ramp, Robinhood)
- Scrape ServiceNow job postings from SmartRecruiters
- Data science and ML jobs at Databricks & Snowflake
- Tech jobs in London from company career pages
- Export a Greenhouse job board with full job descriptions