ATS Jobs Scraper avatar

ATS Jobs Scraper

Pricing

from $3.00 / 1,000 validated ats job returneds

Go to Apify Store
ATS Jobs Scraper

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

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

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 companies input (slug, hosted URL, or greenhouse:stripe) and optional title, location, department, or remote filters before results are written.
  • Use each returned sourceApiUrl, jobUrl, ats, and scrapedAt field 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

FieldTypeWhat it controls
companiesarrayOne or more public career URLs, ATS slugs, or ats:slug values.
maxJobsPerCompanyintegerValidated result boundary for each board (1–1,000, default 50).
titleIncludesstringCase-insensitive title text selection.
locationIncludesstringCase-insensitive public location selection.
departmentIncludesstringCase-insensitive public department selection.
remoteOnlybooleanKeep only jobs the ATS marks remote.
includeDescriptionsbooleanPublic description HTML and clean text in each record.
atsOverridestringForce 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.

FieldMeaning
jobId, ats, atsToken, companyNameStable public identity for the job and its board.
jobTitle, location, departmentPublic role and organization fields for filtering and analysis.
descriptionText, applyUrlPublic role detail and direct employer application path.
postedAt, scrapedAt, sourceApiUrlFreshness 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.com career URL; a bare tenant slug is not enough.
  • Preserve sourceApiUrl and jobUrl when 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.