ATS Jobs Scraper
Pricing
from $3.00 / 1,000 validated ats job returneds
ATS Jobs Scraper
Extract live jobs from Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Recruitee, and Workable public career boards. Auto-detects the ATS from a company slug or career URL and returns one validated job record with apply URL, location, department, and description.
Pricing
from $3.00 / 1,000 validated ats job returneds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
ATS Jobs Scraper extracts one structured dataset record for each public job posting on a company career board. Recruiters, talent-intelligence teams, and AI agents provide Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Recruitee, or Workable URLs or board slugs and receive titles, locations, departments, descriptions, application URLs, timestamps, and source provenance.
Best fit for this Actor
- Choose this actor when you already know the employer career pages or ATS board slugs you want to collect.
- Use mixed
companiesinput (slug, hosted URL, orgreenhouse:stripe) and optional title, location, department, or remote filters before results are written. - Use each returned
sourceApiUrl,jobUrl,ats, andscrapedAtfield to support a source-linked recruiting or market-research workflow.
Use a dedicated sibling when you only ever collect one ATS: Greenhouse Jobs Scraper, Lever Jobs Scraper, Ashby Jobs Scraper, or Workday Jobs Scraper. Use Career Site Job Listing Scraper when the input is arbitrary career-page URLs and you want JSON-LD fallback. Do not use this actor for Indeed, LinkedIn, or Google Jobs aggregator search.
Recruiting workflow: from company boards to outreach priority
A talent researcher starts with a shortlist of employers. They paste Greenhouse tokens, Ashby board URLs, and one Workday career site, then filter for engineering and remote roles. The actor returns jobTitle, location, department, postedAt, and applyUrl; next, the researcher exports the dataset to compare open roles and prioritize employer outreach.
Quick start input
{"companies": ["stripe", "https://jobs.ashbyhq.com/posthog"],"maxJobsPerCompany": 3,"titleIncludes": "engineer","locationIncludes": "remote","includeDescriptions": true}
companies accepts raw board slugs and public career URLs. maxJobsPerCompany sets a clear collection boundary for each supplied board.
Input reference
| Field | Type | What it controls |
|---|---|---|
companies | array | One or more public career URLs, ATS slugs, or ats:slug values. |
maxJobsPerCompany | integer | Validated result boundary for each board (1–1,000, default 50). |
titleIncludes | string | Case-insensitive title text selection. |
locationIncludes | string | Case-insensitive public location selection. |
departmentIncludes | string | Case-insensitive public department selection. |
remoteOnly | boolean | Keep only jobs the ATS marks remote. |
includeDescriptions | boolean | Public description HTML and clean text in each record. |
atsOverride | string | Force bare slugs onto one ATS instead of auto-detect. |
What data you receive
Each dataset item is one public ATS job post. Source URLs and collection timestamps make the item useful for current, reviewable downstream work.
| Field | Meaning |
|---|---|
jobId, ats, atsToken, companyName | Stable public identity for the job and its board. |
jobTitle, location, department | Public role and organization fields for filtering and analysis. |
descriptionText, applyUrl | Public role detail and direct employer application path. |
postedAt, scrapedAt, sourceApiUrl | Freshness and provenance for each observation. |
{"jobId": "127817","jobTitle": "Senior Software Engineer","companyName": "Example Labs","department": "Engineering","location": "Remote — United States","isRemote": true,"employmentType": "Full-time","applyUrl": "https://boards.greenhouse.io/example/jobs/127817","jobUrl": "https://boards.greenhouse.io/example/jobs/127817","ats": "greenhouse","atsToken": "example","sourceApiUrl": "https://boards-api.greenhouse.io/v1/boards/example/jobs?content=true","scrapedAt": "2026-09-10T12:00:00.000Z"}
Use through the API
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~ats-jobs-scraper/runs?token=$APIFY_TOKEN" \-H "content-type: application/json" \-d '{"companies":["stripe"],"maxJobsPerCompany":25}'
Read the default dataset after the collection completes. OUTPUT provides the compact outcome and RUN_SUMMARY provides board coverage, source diagnostics, and charged event counts.
Use with AI agents through Apify MCP
As an AI agent, collect up to 25 current public engineering roles from the Stripe Greenhouse board and the PostHog Ashby board. Return each title, location, department, application URL, ATS name, and source URL. Read the dataset and report the run outcome, preserve provenance, and keep the collection within the stated result boundary and cost scope.
The actor is read-only and returns the dataset plus an OUTPUT outcome. An agent can use sourceApiUrl, jobUrl, and scrapedAt to present a current, traceable collection. Client setup lives at https://mcp.apify.com.
Pricing
This actor uses Pay per event plus Apify platform usage. A validated job written to the dataset is the billable event at $0.003 (job-scraped) plus a $0.00005 start event. Filters are applied before dataset writes, so unmatched boards finish VALID_EMPTY with no job charges. Open the live Pricing tab for current event details.
A typical 25-job Stripe collection costs about $0.075 in named events before platform usage. Invalid input is not billed for jobs.
Best results
- Provide known, public ATS board slugs or hosted career URLs when the workflow starts with selected employers.
- Use title, location, and department text to create a focused current dataset for a specific recruiting question.
- For Workday, paste the full
myworkdayjobs.comcareer URL; a bare tenant slug is not enough. - Preserve
sourceApiUrlandjobUrlwhen sharing results so collaborators can validate each public opening.
Builder's note
I designed the output around one public job post because that keeps filtering, dataset readback, and employer-level joins clear. Public Greenhouse, Lever, and Ashby JSON APIs already include descriptions; Workday, SmartRecruiters, and Workable need a second public detail call when descriptions are requested, and that cost stays inside the same job-scraped event.
Responsible use
Use public or authorized data in accordance with applicable laws, site terms, and your organization's data-handling practices. Keep source URLs with shared records so recipients can review the employer's public posting. This actor does not submit applications, collect candidate data, or bypass logins.
How it works (runtime)
The actor resolves each company to a public ATS JSON API, validates each job, then writes billed dataset rows. Empty matches finish VALID_EMPTY.