Career Site Jobs Scraper for Workday, Greenhouse, Lever and Ashby

Every open job from a company's own careers site, across nine applicant tracking systems, in one clean schema with salary where the employer publishes it.

Run on Apify →See pricing

What it does

Job boards are a copy of a copy. The original posting lives on the company's own careers site, which is almost always powered by an applicant tracking system such as Workday, Greenhouse, Lever or Ashby. Reading those directly gives you fresher, more complete listings, real posting dates and salary ranges where the employer publishes them.

This actor reads the public job feeds of nine ATS: Workday, Greenhouse, Lever, Ashby, Workable, Recruitee, Teamtailor, Personio and BambooHR. Pass careers URLs or ats:slug shortcuts, or switch on searchAllCompanies to scan the built-in index of 811 Greenhouse, Lever and Ashby companies (YC startups plus well-known employers) without knowing any names. Every posting comes back with title, company, department, team, location, country, remote/hybrid/onsite, employment type, salary min/max/currency, posted date and apply link, plus an optional full description.

Workday sites are read through the same JSON the careers page uses, so you get real posting dates instead of 'Posted 30+ Days Ago', and searches past Workday's 2,000-result cap are split automatically. It is built for recruiters, job-board and newsletter builders, hiring-signal sales teams, labor-market researchers and AI agents that need a jobs tool.

How it works

  1. Each entry in companies is recognized as a careers URL, an ats:slug pair (for example greenhouse:gusto) or a company name or domain from the built-in index; with searchAllCompanies on, the whole index is scanned instead.
  2. The actor calls each ATS's public job feed. For Workday it makes one detail request per job, at most 5 at a time per company, to get the real posting date and description.
  3. Keyword, exclude-keyword, location, remote and recency filters are applied as case-insensitive substring matches; filtered-out jobs are never charged.
  4. Salary is parsed where the employer publishes it in structured form, and every posting is mapped into one schema.
  5. The run stops at maxJobs or your spend limit; sites whose robots.txt disallows job pages are skipped and not charged.

Input example

A typical run input (JSON). Every field is also available as a form in the Apify console.

{
  "companies": [
    "https://boards.greenhouse.io/gusto",
    "https://jobs.lever.co/spotify",
    "https://jobs.ashbyhq.com/amplitude",
    "https://adobe.wd5.myworkdayjobs.com/external_experienced"
  ],
  "keywords": [
    "engineer"
  ],
  "postedWithinDays": 30,
  "maxJobs": 200,
  "includeDescription": false
}
All input fields
FieldTypeRequiredDefaultWhat it does
companiesarraynoCareer sites to scrape, one per line: a careers URL from Greenhouse (boards.greenhouse.io/…), Lever (jobs.lever.co/…), Ashby (jobs.ashbyhq.com/…), Workday (company.wd5.myworkdayjobs.com/Site), Workable…
searchAllCompaniesbooleannofalseScan every company in the built-in index (hundreds of YC startups and well-known tech employers) and return jobs matching your filters. No need to know company names.
atsarrayno[]When searching the built-in index, only scan companies on these applicant tracking systems. The index covers Greenhouse, Lever and Ashby; other ATS work through careers URLs in Companies. Empty = all.
industriesarrayno[]Only scan index companies in these industries, e.g. 'Fintech', 'Healthcare', 'B2B', 'Consumer'. Partial, case-insensitive match.
keywordsarrayno[]Keep jobs whose title, department or team contains any of these, e.g. 'engineer', 'data', 'product manager'. Empty = all jobs.
excludeKeywordsarrayno[]Drop jobs whose title contains any of these, e.g. 'intern', 'senior'.
locationsarrayno[]Keep jobs whose location or country contains any of these, e.g. 'London', 'United States', 'Remote'. Empty = anywhere.
remoteOnlybooleannofalseOnly jobs marked remote by the employer.
postedWithinDaysintegernoOnly jobs first published in the last N days. Leave empty for all open jobs.
maxJobsintegerno100Stop after this many jobs. You pay per job: 1,000 jobs = $1. Filtered-out jobs are never charged.
includeDescriptionbooleannofalseAdd the full plain-text job description to each row (bigger rows, same price).

Output example

Postings from different ATS come back in one shared schema, like these:

titlecompanyNameatslocationworkplaceTypesalaryTextpostedAtjobUrl
Sr. Manager Risk & ControlsAdobeworkdaySan Jose; Seattle2026-10-16https://adobe.wd5.myworkdayjobs.com/external_experienced/job/San-Jose/…
Customer Support Developer (Databases)AirbyteashbyUnited Statesremote$99K - $115K2026-10-08https://jobs.ashbyhq.com/airbyte/9d81a132-…
Benefits Advising (Renewals) LeaderGusto, Inc.greenhouseDenver, CO - Hybridhybrid2026-07-29https://job-boards.greenhouse.io/gusto/jobs/8078212
Art Director - MexicoSpotifyleverMexico Cityhybrid2026-10-…https://jobs.lever.co/spotify/223f9722-…

Pricing

Pay per event: you are charged only for the results you receive, with no subscription. Set a maximum total charge on any run and it stops cleanly at the cap.

Charged forWhenPricePer 1,000Worked example
Job resultCharged per job posting delivered (description included at no extra cost)$0.003$3100 jobs = $0.30; 1,000 jobs = $3; a full index scan for remote data roles (~400 jobs) ≈ $1.20
Actor Start (platform start fee)Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event).$0.00005—One run at 1 GB = $0.00005

Prices are read from the live Apify Store listing when this page is built. The listing is always authoritative.

Try Career Site Jobs on Apify. Pay only for the results you get.

Run on Apify →

Use cases

Hiring-signal prospecting

Find out who is hiring data engineers, security staff or sales reps right now by scanning the index with keywords.

Job boards and newsletters

Feed a niche board or a weekly jobs email with postings straight from career sites, filtered by keyword, location and remoteOnly, with posted dates you can trust.

Recruiting and sourcing

Track every open role at a list of target companies across Workday, Greenhouse and Lever in one dataset, and spot new openings with postedWithinDays.

Salary and labor-market research

Collect salary ranges where employers publish them (common on Ashby) and compare titles, locations and workplace types across hundreds of companies.

How it compares

ActorForge Career Site JobsJob board scrapersSingle-ATS scrapers
SourceCompany careers sites (9 ATS)Aggregated job boardsOne ATS
Workday real posting datesYesVariesOnly if Workday-specific
Search without knowing company namesYes, 811-company indexYes, whole boardNo
Companies with custom-built careers pagesNoYes, if they post to the boardNo
SmartRecruitersNoVariesVaries
SalaryWhere the employer publishes it in structured formVariesVaries
Price$3 per 1,000 jobsVariesVaries; the leading multi-ATS actor is $12 per 1,000 plus a start fee

Job board scrapers reach companies with custom careers pages or unsupported ATS such as SmartRecruiters, which this actor cannot read. If the companies you care about use one of the nine supported ATS, going to the source is fresher and cheaper.

Limits and honest notes

FAQ

Which applicant tracking systems are supported?

Workday (*.myworkdayjobs.com), Greenhouse, Lever, Ashby (including EU Greenhouse and Lever hosts), Workable, Recruitee, Teamtailor, Personio and BambooHR. SmartRecruiters and custom-built careers pages are not supported.

Can I search jobs without listing company names?

Yes. Set searchAllCompanies to true to scan the built-in index of 811 Greenhouse, Lever and Ashby companies verified on 2026-10-18, then narrow with keywords, locations, remoteOnly, industries and postedWithinDays. Workday and the other ATS need the company's careers URL.

Why are Workday posting dates more accurate here?

Workday's careers page shows relative labels like 'Posted 30+ Days Ago'. The actor makes one detail request per job, which is where the real posting date and description live, so postedAt is an actual date.

Does every job include a salary?

No. Salary is returned only where the employer publishes it in structured form, which is common on Ashby, sometimes on Lever and Recruitee and rare elsewhere. Otherwise the salary fields are null.

Are recruiter names or emails included?

No. The actor lists only currently open, publicly listed jobs as shown on the careers page. Recruiter names, job mailboxes and application-form fields are never returned.

How much does it cost?

$0.003 per job delivered, with the full description included at no extra cost. 100 jobs cost $0.30 and 1,000 jobs cost $3; a full index scan for remote data roles (about 400 jobs) is roughly $1.20.

Use it from code

Run the actor through the Apify API with the input above.

cURL

curl -X POST "https://api.apify.com/v2/acts/actor-forge~career-site-jobs/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"companies": ["https://boards.greenhouse.io/gusto", "https://jobs.lever.co/spotify", "https://jobs.ashbyhq.com/amplitude", "https://adobe.wd5.myworkdayjobs.com/external_experienced"], "keywords": ["engineer"], "postedWithinDays": 30, "maxJobs": 200, "includeDescription": false}'

JavaScript (Node.js)

// Node.js 18+ (built-in fetch). Set APIFY_TOKEN in your environment.
const input = {
  "companies": [
    "https://boards.greenhouse.io/gusto",
    "https://jobs.lever.co/spotify",
    "https://jobs.ashbyhq.com/amplitude",
    "https://adobe.wd5.myworkdayjobs.com/external_experienced"
  ],
  "keywords": [
    "engineer"
  ],
  "postedWithinDays": 30,
  "maxJobs": 200,
  "includeDescription": false
};

const res = await fetch(
  "https://api.apify.com/v2/acts/actor-forge~career-site-jobs/run-sync-get-dataset-items",
  {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.APIFY_TOKEN}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify(input),
  }
);
const items = await res.json();
console.log(items.length, items[0]);

Python

# pip install apify-client   (set APIFY_TOKEN in your environment)
import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])
run_input = {
    "companies": [
        "https://boards.greenhouse.io/gusto",
        "https://jobs.lever.co/spotify",
        "https://jobs.ashbyhq.com/amplitude",
        "https://adobe.wd5.myworkdayjobs.com/external_experienced"
    ],
    "keywords": [
        "engineer"
    ],
    "postedWithinDays": 30,
    "maxJobs": 200,
    "includeDescription": False
}

run = client.actor("actor-forge/career-site-jobs").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

The run-sync-get-dataset-items endpoint waits for the run (up to 5 minutes) and returns the dataset rows directly. For longer runs, start the run asynchronously and read the dataset when it finishes, as the Python example does. Replace APIFY_TOKEN with your own token from the Apify console.

Step-by-step guides

How to Find a Company's Job Board and ATS (Workday, Greenhouse, Lever, Ashby)

Open any job on the company's careers page and look at the host: myworkdayjobs.com, greenhouse.io, lever.co, ashbyhq.com and similar tell you the…

Related actors

Startup Funding Rounds Tracker — Recently Funded (SEC Form D)

Track recently funded US startups from official SEC Form D filings: company, amount raised and offered, round date, industry, exemption, business…

$10 per 1,000 · filing result

Any URL to Markdown — Web Pages, PDF, Word, Excel & OCR

Turn any URL into clean, LLM-ready Markdown: web pages, PDFs, Word, Excel, PowerPoint, EPUB, CSV and JSON, plus OCR for images and scanned PDFs. One…

$1 per 1,000 · page result

Business Places Data — Google Maps Alternative, 80M+ POIs

Business leads by city from open Overture Maps data: name, category, address, lat/lon, phone, website, email, socials and brand for 80M+ places…

$3 per 1,000 · area query

Try Career Site Jobs on Apify. Pay only for the results you get.

Run on Apify →

More Business Leads & Company Data tools · All actors