Careers Page Scraper — Jobs from Any Company Site, Any ATS
Pricing
$1.00 / 1,000 jobs
Careers Page Scraper — Jobs from Any Company Site, Any ATS
Give career page or ATS board URLs; get open jobs with title, location, department, remote flag, description and apply URL. Greenhouse, Lever, Ashby, Workable and more. Unofficial Careers Page API.
Every open job from any company's careers page as clean JSON — title, location, department, remote flag, employment type, salary when published, posting date, full description and apply link. Paste a careers page, a company domain or an ATS board link; the Actor finds the applicant tracking system behind it (Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee or Personio) and reads its public job feed. No HTML guessing, no logins, no personal data.
Try it in 1 minute:
- Press Start — the prefilled input reads three public boards (Greenhouse, Lever, Ashby).
- In about 10 seconds the Output tab lists every open job of those companies, one record each, with apply links.
- Download it as JSON, CSV or Excel, or call the Actor from your code or AI agent.
Price: $1.00 per 1,000 jobs. Companies without a supported ATS, empty boards and filtered-out jobs are free.
Use it to:
- Build a job board or newsletter from the companies you follow — one scheduled run a day, only the boards you choose.
- Feed an AI job-search agent with structured, current openings instead of scraped HTML.
- Track hiring signals: which teams and locations a competitor or a portfolio company is hiring for, week over week.
- Fill a recruiting CRM or a spreadsheet with openings, departments and salary ranges across hundreds of companies.
- Research the remote-work market: filter to remote jobs by keyword across any list of employers.
How it works
- Recognise the board. A link like
boards.greenhouse.io/<company>,jobs.lever.co/<company>,jobs.ashbyhq.com/<company>,apply.workable.com/<company>,careers.smartrecruiters.com/<Company>,<company>.recruitee.comor<company>.jobs.personio.deis read directly. A careers page or a bare domain (acme.com, plus its/careersand/jobspages) is scanned for the ATS it links to, embeds or loads. - Read the public feed. Each ATS publishes its open jobs as JSON (Personio as XML) for its own careers widget; the Actor reads that feed — complete, current and without a browser.
- Normalise. Jobs from every ATS come out in one shape: ISO dates, a
remoteflag (from the ATS's own flag or the location text), locations as a list, plain-text descriptions with e-mail addresses and phone numbers removed. - Filter and deliver. Optional title keywords, location texts and remote only narrow the list before anything is charged.
Teamtailor, Workday and BambooHR boards are recognised but not read — they have no public list endpoint; such companies come back as UNSUPPORTED_ATS, free.
Input
| Field | What it does |
|---|---|
companies | Careers pages, company domains or ATS board links, one per line. Required. |
maxJobsPerCompany | Stop each company after this many jobs (default 500). |
keywords | Keep only titles containing any of these words (case-insensitive). |
locations | Keep only jobs whose location contains any of these texts. |
remoteOnly | Keep only jobs flagged remote or whose location says Remote / Anywhere. |
includeDescription | Plain-text description with contacts removed (default on). Workable and SmartRecruiters need one extra request per job for it. |
maxDescriptionLength | Cut descriptions after N characters (default 20,000; 0 = no limit). |
maxConcurrency, proxyConfiguration | Speed and retries. The first request goes out directly; the proxy is used only to retry after a network error. |
Output
One record per job:
| Field | What it is |
|---|---|
company, ats | Company slug or name, and the ATS it was read from |
id, title, url, applyUrl | The job, its public page and where to apply |
location, locations | Primary location and all locations when there are several |
department, team, employmentType | Department, team and full-time / part-time / contract as the ATS words it |
remote | true, false or null (unknown) |
postedAt | ISO 8601 publish or last-update time |
description | Plain text, e-mails and phones removed |
salary | Compensation range as text when the ATS publishes one |
input, position, status, error, scrapedAt | What you gave, the job's place in its company, and why an input gave nothing |
A company that gives no job gets one free record with status = NOT_FOUND, UNSUPPORTED_ATS, NO_RESULTS, INVALID_INPUT or FAILED and a plain-language error.
Example
{"input": "https://boards.greenhouse.io/examplecorp","company": "examplecorp","ats": "greenhouse","id": "4011223344","title": "Senior Backend Engineer, Payments","location": "Remote - United States","locations": ["San Francisco", "New York"],"department": "Engineering","team": null,"employmentType": "Full-time","remote": true,"url": "https://boards.greenhouse.io/examplecorp/jobs/4011223344","applyUrl": "https://boards.greenhouse.io/examplecorp/jobs/4011223344","postedAt": "2026-09-30T13:00:00.000Z","description": "We are hiring a Senior Backend Engineer for our payments platform.\n- Go or Java\n- Questions? Write to [e-mail removed]","salary": null,"position": 1,"status": "OK","scrapedAt": "2026-10-19T12:00:00.000Z"}
FAQ
Is this an official API? No, it's an unofficial API built on public pages — the same public job feeds each ATS serves to its own careers widgets.
Which ATS are supported? Greenhouse (including EU boards and embedded boards), Lever (including EU), Ashby, Workable, SmartRecruiters, Recruitee and Personio. Teamtailor, Workday and BambooHR are detected but not read, and come back free as UNSUPPORTED_ATS.
My company's careers page came back NOT_FOUND. The page does not link to a supported ATS — it may use a custom job list or one of the unsupported systems. Try the ATS board link directly if you know it (open a job on the careers page and look at the address).
Do you collect recruiter names or contact details? No. Descriptions are delivered as plain text with e-mail addresses and phone numbers removed, and no person names are collected.
How current is the data? Each run reads the live feed, so you get what the company shows right now. Schedule the Actor daily to follow changes.
Like it? A short review on the Store page helps other people find this Actor. Something missing or broken? Tell us on the Issues tab — we read every one.
Related Actors
- Remote Jobs Scraper — remote jobs from Himalayas, Remote OK and more
- Google Maps Email Extractor & Lead Scraper — business leads with emails from Google Maps
- Website Tech Stack Detector — CMS, frameworks and analytics of any site
- Web Fetch API — Fetch any URL as HTML, text, Markdown or JSON