Career Site Jobs Scraper: Greenhouse, Lever, Workday & ATS
Pricing
$1.50 / 1,000 jobs
Career Site Jobs Scraper: Greenhouse, Lever, Workday & ATS
Get every open job from company career sites. Paste a domain, careers page or ATS link: Greenhouse, Lever, Ashby, Workday, Workable, SmartRecruiters, Recruitee, Personio, Teamtailor, BambooHR are auto-detected. Salary, remote, location, description, filters and new-job monitoring.
Pricing
$1.50 / 1,000 jobs
Rating
0.0
(0)
Developer
RS Automation Labs
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
5 days ago
Last modified
Categories
Share
What does Career Site Jobs Scraper do?
Career Site Jobs Scraper pulls every open job straight from company career sites and their applicant tracking systems (ATS). Paste a company website such as notion.so, a careers page, or a job board link. The Actor finds the company's job board and returns each opening as one clean, normalized row: title, department, location, country, remote / hybrid / on-site, employment type, salary, posting date, apply link and the full description.
Supported ATS (auto-detected): Greenhouse, Lever, Ashby, Workday, Workable, SmartRecruiters, Recruitee, Personio, Teamtailor and BambooHR, plus any careers page that publishes schema.org JobPosting data. Think of it as a job board API for thousands of employers: no login, no browser, no API keys.
Jobs come from the companies' official public job feeds, the same data their own careers pages show. So results are fresh (often hours old), complete, and include jobs that never reach LinkedIn or Indeed.
Why use this career site job scraper?
- 🎯 Recruiting & sourcing agencies - watch target companies and get new openings before the job boards do.
- 📈 Sales & lead generation - hiring is a buying signal. Find companies hiring "Head of Data", "Salesforce admin" or "SOC analyst".
- 🧭 Job seekers & job boards - build a niche job board or a personal feed of remote engineering roles from your dream companies.
- 🔎 Market & competitor intelligence - track headcount plans, new offices, salary ranges and departments over time.
- 🤖 AI agents & data pipelines - normalized JSON with stable job keys, ready for RAG, matching or analytics.
Highlights
- Paste domains, careers pages, ATS URLs or
ats:slugshorthands. The board is detected automatically. - One schema for every ATS: normalized employment type, workplace type, ISO country, salary min/max/currency/period.
- Salary extraction: from structured ATS fields or parsed from the description (pay-transparency ranges).
- Filters: title keywords (include/exclude), location, country, remote/hybrid/on-site, employment type, posted in the last N days.
- New-jobs monitor: run it on a schedule and get only jobs that are new since the last run, plus free "closed" rows.
- Fast and cheap: public JSON APIs and no headless browser. A 300-job board takes about a second.
- Duplicate inputs, bad domains and companies without a board become free status rows, so one bad input never fails the run.
- All Apify platform features: scheduling, API, webhooks, Zapier / Make / n8n, Google Sheets and Slack integrations.
What data can I extract from company career sites?
| Field | Example |
|---|---|
company | Palantir |
title | Forward Deployed Software Engineer, New Grad |
department / team | Engineering |
location, city, region, country | New York, NY · US |
workplaceType / remote | remote · hybrid · onsite |
employmentType | FULL_TIME · PART_TIME · CONTRACT · INTERNSHIP |
salaryMin, salaryMax, salaryCurrency, salaryPeriod | 135000 · 145000 · USD · YEAR |
postedAt | 2026-10-22T21:34:28Z |
jobUrl, applyUrl | links to the posting and the application form |
descriptionText, descriptionHtml | full job description |
atsSource, atsBoard, atsBoardUrl | lever · palantir · https://jobs.lever.co/palantir |
boardJobCount | open jobs on the whole board |
jobKey | stable unique ID, e.g. lever:palantir:6ed76ce8-... |
How to scrape jobs from company career sites
- Click Try for free and open the Input tab.
- Add companies to Companies, one per line:
notion.so,https://jobs.lever.co/palantir,greenhouse:airbnb... - Optional: add filters, for example title contains
engineerand workplace typeremote. - Set Max jobs per company to keep the run small.
- Click Start and download the jobs as JSON, CSV, Excel or HTML, or connect the dataset to Google Sheets.
- Optional: turn on Only new jobs and add a schedule (for example daily) to get a new-jobs feed.
Which inputs work?
| Input | Example |
|---|---|
| Company domain | notion.so, stripe.com |
| Careers page | https://www.example.com/careers |
| ATS board URL | https://boards.greenhouse.io/airbnb, https://jobs.ashbyhq.com/ramp, https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite |
Shorthand ats:slug | greenhouse:airbnb, lever:palantir, ashby:ramp, smartrecruiters:BoschGroup, recruitee:bunq, workday:nvidia.wd5/NVIDIAExternalCareerSite |
For domains, the Actor reads the homepage and careers page to find the ATS link. If there is none, it tries the company name on the public ATS APIs. When the job board link is known, pasting it directly is fastest and most reliable.
How much does it cost to scrape career site jobs?
This Actor uses pay-per-event pricing: $0.0015 per job returned ($1.50 per 1,000 jobs). There is no start fee, and error rows, "no jobs" rows, duplicate inputs and closed-job rows are free. Platform compute is minimal because the Actor calls public JSON APIs instead of a browser.
| Jobs returned | Price |
|---|---|
| 100 | $0.15 |
| 1,000 | $1.50 |
| 10,000 | $15.00 |
Worked example: checking 50 companies with a title filter that matches 20 jobs each returns 1,000 jobs = $1.50. Apify's free plan includes $5 of monthly credit, which covers about 3,300 jobs a month.
To control cost:
- Use filters and Max jobs per company. You only pay for jobs that pass the filters.
- Use Only new jobs on scheduled runs. After the first run you pay only for jobs that are new.
- Set Maximum cost per run in the run options. The Actor stops cleanly when the limit is reached.
Input example
{"companies": ["notion.so", "https://jobs.lever.co/palantir", "greenhouse:airbnb"],"titleKeywords": ["engineer"],"workplaceTypes": ["remote", "hybrid"],"postedWithinDays": 30,"maxJobsPerCompany": 20,"includeDescription": true}
See the Input tab for all options.
Output example
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
[{"status": "ok","company": "Notion","companyDomain": "notion.so","title": "Software Engineer, Developer Platform","department": "Engineering","location": "San Francisco, California","country": "US","workplaceType": "hybrid","remote": false,"employmentType": "FULL_TIME","salaryText": "$179,000 – $200,000 per year","salaryMin": 179000,"salaryMax": 200000,"salaryCurrency": "USD","salaryPeriod": "YEAR","postedAt": "2026-10-19T17:28:06Z","jobUrl": "https://jobs.ashbyhq.com/notion/8c0bf773-e536-45c9-9a6c-8ee478148cc8","applyUrl": "https://jobs.ashbyhq.com/notion/8c0bf773-e536-45c9-9a6c-8ee478148cc8/application","descriptionText": "WHO WE ARE\n\nNotion is the collaborative AI workspace ...","atsSource": "ashby","atsBoard": "notion","atsDetection": "site-link","boardJobCount": 140},{"status": "error","input": "palantir.com","errorCode": "DUPLICATE_INPUT","errorMessage": "Same job board (lever:palantir) as input \"https://jobs.lever.co/palantir\" - read once, not charged twice"}]
Row status
status | Meaning | Charged |
|---|---|---|
ok | One open job | yes |
closed | Monitor mode: the job disappeared since the last run | free |
no-jobs | The company was checked but has no (matching / new) jobs | free |
error | See errorCode, errorMessage and errorHint | free |
Error codes: INVALID_INPUT, DUPLICATE_INPUT, DOMAIN_NOT_FOUND, NO_ATS_FOUND, BOARD_NOT_FOUND, ATS_NOT_SUPPORTED, BLOCKED, NETWORK_ERROR, BAD_RESPONSE, TIMEOUT, BUDGET_LIMIT, INTERNAL_ERROR.
The run summary (companies, jobs, ATS detected, error codes) is saved as OUTPUT in the default key-value store.
New job alerts: monitor career pages for new jobs
Turn on Only new jobs since the last run and schedule the Actor (Schedules → daily). Each run returns only jobs that were not returned before, plus a free closed row for every job that was removed. Job history lives in a named key-value store jobs-feed-monitor-<monitor name> in your account. Use a different Monitor name per task or filter set. Connect a webhook, Slack, email or Google Sheets integration to get alerts.
Tips
- Paste the job board URL if you know it. It skips website discovery and is the most reliable input.
- Workday boards list jobs 20 at a time and need one extra request per job for the description. Use filters and Max jobs per company for very large employers.
- Turn off Include full job description for faster, smaller exports.
- No proxy is needed for ATS APIs. Enable Apify Proxy only if a company website blocks discovery.
Use it via API, Python, JavaScript or an AI agent
Every run is available through the Apify API. Start a run, wait for it to finish and read the dataset in a few lines of Python with the official apify-client package:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("rs-automation-labs/career-site-jobs-scraper").call(run_input={"companies": ["notion.so","https://jobs.lever.co/palantir","greenhouse:airbnb"],"maxJobsPerCompany": 20})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
- JavaScript / cURL: the API tab on this page has ready-to-copy snippets with your token filled in.
- Schedules and webhooks: run it daily or weekly with Apify Schedules and get notified with webhooks.
- No-code: connect it to Make, Zapier, n8n, Google Sheets or Slack through Apify integrations.
- AI agents: call it from Claude, ChatGPT, Cursor or any MCP client through the Apify MCP server.
FAQ
Is it legal to scrape company career sites? This Actor reads only public job postings that companies publish to attract applicants, using the ATS providers' public job-board endpoints. It does not log in and does not collect personal data about candidates or employees. Our Actors are ethical and do not extract private user data. Your results could still contain personal data, such as a recruiter's name inside a description, which is protected by GDPR and similar laws. Don't use it without a legitimate reason, and consult your lawyers if unsure.
Which ATS are not supported?
iCIMS, Taleo, SuccessFactors, Jobvite and other systems without a public feed are reported as ATS_NOT_SUPPORTED (free). Their careers pages are still read if they publish schema.org JobPosting data.
Why did a domain return NO_ATS_FOUND?
The website does not link a supported job board and the company name did not match one. Paste the careers page or job board URL instead.
Can I use it through the API? Yes. See the API tab for Python, JavaScript, cURL, and MCP examples for AI agents.
Other Actors by RS Automation Labs
| Actor | What it does |
|---|---|
| PageSpeed Insights Bulk Checker | Bulk Lighthouse scores and real-user Core Web Vitals for many URLs or a sitemap |
| Video Transcript & AI Summary | Transcripts, subtitles and AI summaries for YouTube, TikTok, Reels, X and podcasts |
| AI PDF to JSON & Invoice OCR | Invoices, receipts, bank statements and any PDF or scan to validated JSON, CSV and Excel |
| AI Search Visibility & GEO Rank Tracker | Whether ChatGPT, Perplexity, Gemini, Claude, Grok and AI Overviews mention and cite your brand |
| Contact Details Scraper & Company Enrichment | E-mails, phones, socials, tech stack and hiring signals from a company domain |
Support
Found a bug or need another ATS? Open an issue on the Issues tab and include the run ID. Feature requests are welcome. Built and maintained by RS Automation Labs.