Careers Page Scraper | $2/1K | Domain to Open Jobs
Pricing
from $2.00 / 1,000 job listings
Careers Page Scraper | $2/1K | Domain to Open Jobs
Paste company websites, get every open job from their careers page. $2 per 1,000 listings, first 50 free on every run. Detects the ATS behind each site - Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Rippling, Breezy, Personio, BambooHR - and reads its public endpoint. No tokens, no proxies.
Pricing
from $2.00 / 1,000 job listings
Rating
0.0
(0)
Developer
omar khandji
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
9 hours ago
Last modified
Categories
Share
Careers Page Scraper — Company Domain to Open Jobs
You paste
stripe.com. You get all 545 open roles.One input: company websites. The Actor works out which applicant tracking system sits behind each careers page and reads that system's own public endpoint. No tokens to look up, no provider to choose, no proxies. 10 job listings free on every run.
Measured, on real companies
| You paste | It finds | You get |
|---|---|---|
stripe.com | Greenhouse | 545 roles |
anthropic.com | Greenhouse | 399 roles |
figma.com | Greenhouse | 177 roles |
ramp.com | Ashby | 123 roles |
notion.so | Ashby | 110 roles |
vercel.com | Greenhouse | 81 roles |
monzo.com | Greenhouse | 75 roles |
(2026-08-03 — 1,550 live roles from eight bare domains, nothing else supplied.)
How it finds the ATS
Two passes. It reads the company's careers page and looks at where it links —
boards.greenhouse.io/stripe, jobs.lever.co/figma — and if nothing is linked
it derives the likely handle from the domain and asks the providers directly.
Nine systems are supported: Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Rippling, Breezy HR, Personio, BambooHR.
A company running its own careers page with no hosted ATS behind it comes back
with "ats": null and no rows — an answer, not an error.
Why not scrape a job board
Job aggregators mean cookies, proxies, rate limits, and roles that are stale or reposted by three agencies. This reads the employer's own feed.
| Aggregator scraper | This Actor | |
|---|---|---|
| What breaks it | anti-bot, layout changes, expired cookies | nothing — these are the companies' own public endpoints |
| Freshness | an aggregator's copy | the role as the employer published it |
| Duplicates | the same role three times | one row per role |
| Proxy bill | yes | none |
Filter before you pay
Filters run before billing, so you are never charged for a job you excluded.
| Input | Effect |
|---|---|
keywords | Keep jobs whose title, department, company or location contains one of these |
excludeKeywords | Drop jobs matching any of these — intern, senior, sales |
locations | Keep jobs whose location contains one of these |
remoteOnly | Keep only roles whose location says remote, anywhere or distributed |
postedAfter | Keep jobs posted on or after YYYY-MM-DD |
Keywords match whole words and do not stem. engineer returns "Backend
Engineer" but not "Engineering Intern" — pass both if you want both. A substring
filter for ai would match "maintainer", which on a real board kept 40% of
unrelated roles.
Output
{"domain": "stripe.com","source_url": "https://boards.greenhouse.io/stripe/jobs/6789","title": "Account Executive, AI Sales","company": "stripe","location": "New York","department": "Sales","posted_at": "2026-07-20T09:12:00Z","source": "greenhouse","function": "Sales","seniority": "Mid"}
Roles are deduplicated by URL, so two domains resolving to the same board never bill you twice. Seniority and job function are inferred and attached.
What a run costs
Two parts, and the second is the one that keeps this Actor alive:
| $0.04 per search | one run, charged only when the run delivered at least one job |
| $2 per 1,000 job listings | $0.002 each, and only for listings actually delivered to you |
The search fee exists because a run costs real compute whether it returns six rows or six hundred. It is flat, so batching is the cheap way to use this Actor: fifty companies in one run pay the fee once.
A run that finds nothing is never charged at all.
The $0.04 search fee starts on 24 August 2026. Apify requires two weeks' notice before an existing user pays a charge they did not pay before, so until that date every run is billed on job listings alone.
Free tier — 10 job listings on every run
The first 10 job listings of every run are free, on every run you ever make, not just the first. Wire it into a pipeline and evaluate it on your own target companies before a cent is billed.
The free allowance never covers more than half of a run, so a run returning 20 listings gets 10 free rather than 20 — that is what stops it becoming an unlimited free plan for anyone willing to split one job into many tiny runs.
Pricing
$0.002 per job listing — $2 per 1,000, after the free 10.
Same price as the ATS Jobs API, which reads the same endpoints and returns the same rows with more control over providers and deltas.
Limits
- 100 companies per run, 15 per request in HTTP mode, so a request finishes inside Apify's five-minute ceiling.
- Workday pages 20 roles at a time and is capped at 200 roles per tenant.
Use it from an AI agent (MCP)
This Actor is a Model Context Protocol server. Point any MCP client at it and the tool appears with its full input schema — no wrapper code:
https://om-kh--careers-page-scraper.apify.actor/mcp
{"mcpServers": {"careers_page_jobs": {"url": "https://om-kh--careers-page-scraper.apify.actor/mcp","headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }}}}
One tool, careers_page_jobs. It takes the same arguments as the Start form and returns the
same rows, so an agent and a curl user can never get different answers.
Related scrapers
Same data, other sources — all with the same free tier, the same clean schema and the same pay-only-for-what-you-get billing: