Collecting Job Listings from Multiple ATS Platforms
Description and use
Gather job listings from multiple ATS platforms using an Apify Actor to produce a unified dataset with salary information.
Problem
Companies hide job postings behind different ATSs with varying schemas, making it hard to aggregate job data into a single, consistent format.
Outcome
Collected 3,141 job listings from 30 tech companies, with 54% including salary ranges. Unified schema enabled salary analysis and cost estimation ($3.14 for jobs, $0.056 for detection).
Workflow
- 1. Prepare a JSON input listing company identifiers (ATS:slug, plain URLs, or ATS shortcuts).
- 2. Run the Apify Actor in detection mode to identify the ATS used by each company and count open jobs.
- 3. Execute the Actor in jobs mode with a maxJobsPerCompany cap, batching companies to control runtime.
- 4. Parse job descriptions to extract salary ranges where structured data is absent.
- 5. Review and adjust the salary parser for edge cases (e.g., Intel, NVIDIA formats).
- 6. Export the resulting dataset for analysis or integration into internal systems.
- 7. For recurring feeds, enable onlyNewJobs to fetch only new listings and avoid duplicate charges.
Evidence
1,691 of 3,141 (54%) had a salary range.
The Actor reads the pay range from the description (salarySource: "description") and splits it into salaryMin, salaryMax, salaryCurrency and salaryPeriod.
- Record date: 2026-10-01T02:44:15.809Z