Company Careers Page & ATS Jobs Scraper avatar

Company Careers Page & ATS Jobs Scraper

Pricing

from $8.00 / 1,000 results

Go to Apify Store
Company Careers Page & ATS Jobs Scraper

Company Careers Page & ATS Jobs Scraper

Turn a list of company domains into their live job openings, with titles, locations, departments, salaries and full descriptions.

Pricing

from $8.00 / 1,000 results

Rating

0.0

(0)

Developer

Maged

Maged

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Give it a list of company websites. Get back every job those companies are hiring for right now — title, location, department, salary, posting date, apply link and the full description text. No job-board account, no cookies, no login, no per-company setup.

What does Company Careers Page & ATS Jobs Scraper do?

Most companies don't post their openings on job boards — they publish them on their own careers page, powered by an applicant tracking system. This Actor takes a plain list of company domains (figma.com, notion.so, monzo.com), finds each company's live job board automatically, and extracts every open role into a clean, structured dataset.

It works across the applicant tracking systems behind the large majority of company careers pages, so you get consistent, structured results whichever one a company uses.

You can also paste a careers URL or job-board URL directly, or just type a company name. Results land in an Apify dataset you can export as JSON, CSV or Excel, pull through the API, schedule to re-run daily, or wire into Make, Zapier, Google Sheets and n8n.

Why use this Actor?

  • Recruiting intelligence — track which competitors are hiring, for what, and where.
  • Sales and lead generation — a company posting five sales roles is a company buying sales tooling. Hiring signals are among the strongest buying signals available.
  • Job boards and aggregators — build a niche board sourced straight from employer career sites, so listings are fresh and never duplicated by reposters.
  • Market and investment research — headcount growth by department is a leading indicator of a company's direction.
  • Job seekers — monitor a shortlist of dream companies and get the opening the same day it goes live.
  • AI and RAG pipelines — full description text per posting, ready to embed.

How to use Company Careers Page & ATS Jobs Scraper

  1. Click Try for free and open the Input tab.
  2. In Companies, paste one company per line: a domain (stripe.com), a name (Figma), or a careers/job-board URL.
  3. Optionally narrow the results with Job title keywords, Location keywords, Remote jobs only or Posted within (days).
  4. Click Start. Watch the log — it reports how many openings each company holds.
  5. Open the Output tab and export as JSON, CSV, Excel or HTML, or fetch it from the API.

To keep a list permanently fresh, use Schedules to run it every morning and send new rows straight to your CRM, spreadsheet or Slack.

Input

FieldTypeDescription
companiesarrayRequired. One entry per company: domain, company name, or careers/job-board URL.
titleKeywordsarrayKeep only jobs whose title contains one of these words. Empty = keep all.
locationKeywordsarrayKeep only jobs matching these locations, teams or departments. Empty = keep all.
remoteOnlybooleanKeep only postings flagged remote by the employer. Default false.
postedWithinDaysintegerKeep only jobs published in the last N days. 0 = no limit.
fetchDescriptionsbooleanInclude full description text. Default true.
outputJobsbooleanPush one row per job opening. Default true.
outputCompanyBoardsbooleanPush one summary row per company. Default true.
maxJobsPerCompanyintegerCap job rows per company. 0 = unlimited.
proxyConfigurationobjectProxy used for requests.
{
"companies": ["figma.com", "notion.so", "Monzo", "https://www.company.com/careers"],
"titleKeywords": ["engineer", "designer"],
"locationKeywords": ["London", "Remote"],
"remoteOnly": false,
"postedWithinDays": 30,
"fetchDescriptions": true,
"maxJobsPerCompany": 0
}

Output

Two row types share one dataset, separated by the entityType field and by the ready-made Jobs and Companies & boards views on the Output tab. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

A job row:

{
"entityType": "job",
"companyInput": "figma.com",
"companyId": "figma.com",
"companyUrl": "https://figma.com",
"jobId": "5426468004",
"title": "Account Executive, Enterprise",
"department": "Sales",
"team": null,
"location": "San Francisco, CA • New York, NY • United States",
"isRemote": null,
"employmentType": null,
"compensation": null,
"postedAt": "2025-01-28T18:57:29-05:00",
"applyUrl": "https://figma.com/careers/5426468004",
"description": "Figma is growing our team of passionate creatives and builders...",
"scrapedAt": "2026-09-09T19:57:27.157568+00:00"
}

A company_board row:

{
"entityType": "company_board",
"companyInput": "figma.com",
"companyId": "figma.com",
"jobsFound": 158,
"error": null,
"scrapedAt": "2026-09-09T19:57:27.157568+00:00"
}

Data fields

FieldDescription
titleJob title as published by the employer
department / teamOrg unit the role sits in
locationAll locations attached to the posting
isRemoteEmployer's remote flag, where published
employmentTypeFull time, part time, contract, permanent…
compensationPublished salary range, where the employer discloses one
postedAtPublication date, normalized to ISO-8601
applyUrlDirect link to the application page
descriptionFull posting text, cleaned of markup

How much does it cost to scrape company job listings?

The Actor is billed per result, so cost scales with the number of openings you collect, not with the number of companies you check.

RunJobs collectedApproximate cost
10 companies, ~30 openings each300~$0.90
100 companies, daily monitoring~3,000~$9.00
One large enterprise board2,000~$6.00

Every Apify account includes free monthly platform usage, which is enough to try the Actor on a handful of companies at no cost.

Tips

  • Cap large employers. A single enterprise board can hold thousands of openings. Set maxJobsPerCompany to keep runs predictable.
  • Filter at the source. titleKeywords, locationKeywords and postedWithinDays are applied before rows are stored, so filtering cuts both run time and cost.
  • Turn off descriptions for monitoring runs. With fetchDescriptions: false a daily "what's new" run is much faster and lighter; switch it back on when you need the text.
  • Paste board URLs for tricky companies. If a company's careers page is fully JavaScript-driven, giving the job-board URL directly is the most reliable input.
  • Schedule it. Combined with Apify Schedules and integrations, this becomes a live hiring-signal feed.

FAQ

Which systems are supported? The applicant tracking systems that power the large majority of company careers pages. Paste a domain, a company name or a careers/job-board URL and the Actor handles the rest.

What if a company isn't found? You still get a company_board row with jobsFound: 0 and a clear message, so nothing silently disappears from your list. Companies on unsupported systems or fully custom careers pages can't be resolved — paste their job-board URL if they have one.

Do I need cookies, a login or an API key? No. Only publicly published job listings are collected.

Why do some rows have no description? A few careers systems do not publish description text publicly; those rows carry every other field. Some employers also leave fields such as salary or department blank.

Is scraping job listings legal? This Actor collects only publicly available job postings that employers publish for candidates to read, and no personal data. As with any scraping project, you are responsible for how you use the data and for complying with applicable laws and the target sites' terms.

Support

Found a company that doesn't resolve, or want another system supported? Open an issue on the Issues tab and include the company URL — new board types are added based on what users ask for. Custom versions and higher-volume setups are available on request.