ADP Jobs Scraper avatar

ADP Jobs Scraper

Pricing

from $0.60 / 1,000 adp job saveds

Go to Apify Store
ADP Jobs Scraper

ADP Jobs Scraper

Extract public job postings from ADP Workforce Now career centers.

Pricing

from $0.60 / 1,000 adp job saveds

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Extract public job postings from ADP Workforce Now career centers on workforcenow.adp.com. This jobs and recruiting data scraper turns public ADP career-center URLs into structured job rows for recruiting intelligence, job-board backfills, market research, and hiring monitors.

At a glance

  • Primary job: Collect current public ADP Workforce Now job postings without browser automation or credentials.
  • Input: Public ADP recruitment page URLs or public ADP job-requisitions API URLs containing cid.
  • Output: One dataset row per job with title, requisition IDs, location, dates, job URL, tenant identifiers, and optional raw ADP JSON.
  • Best for: Recruiting intelligence, competitor hiring tracking, job-board sourcing, lead generation, and scheduled monitoring.

Common workflows

  • Backfill ADP-hosted openings: Export all current jobs from an employer's public ADP career center.
  • Monitor hiring changes: Schedule repeat runs for the same ADP tenants and compare dataset exports over time.
  • Feed recruiting systems: Send requisition IDs, job URLs, titles, and locations into spreadsheets, CRMs, data warehouses, or automation tools.
  • Validate source URLs: Keep emitErrorItems enabled to receive stable diagnostic rows for missing cid, unsupported URLs, empty tenants, or unexpected responses.

Input recipes

  • Small smoke test: Use the default ADP URL with maxItems: 20 and includeRaw: true.
  • Direct API URL: Paste a public ADP job-requisitions URL and set includeRaw: false for a compact dataset.
  • Multi-company monitor: Add several public ADP career-center URLs to startUrls, keep maxItems bounded, and schedule the run.

What data can you extract?

FieldDescription
itemTypejob for job rows or error for diagnostic rows.
jobIdADP job item ID.
clientRequisitionIdEmployer/client requisition identifier.
externalJobIdExternal job ID when ADP exposes it.
titlePublic job title.
companyNameCompany name when included by ADP.
careerCenterUrlCanonical ADP career-center URL for the tenant.
jobUrlCanonical public job URL including the ADP job ID.
sourceUrlOriginal input URL.
cid, ccId, langADP tenant/career-center/language identifiers.
postDate, currentServerDateRaw public ADP date values.
locationText, city, region, postalCode, countryLocation text and normalized location parts.
workLevel, jobClass, departmentCommon ADP classification fields.
isInternalPostingInternal-posting flag when exposed.
expectedTotal, returnedCountCount diagnostics from the ADP response.
rawRequisitionOriginal ADP requisition object when includeRaw is enabled.
errorCode, errorMessageStable diagnostics for invalid or unsupported inputs.

Input configuration

SettingJSON keyUse it forExample
ADP career center URLsstartUrlsPublic ADP Workforce Now recruitment or job-requisitions URLs.https://workforcenow.adp.com/...recruitment.html?cid=...
Maximum jobsmaxItemsCap saved job rows and control spend.20
Include raw ADP requisitionincludeRawPreserve the original source object for fields not yet normalized.true
Emit error rowsemitErrorItemsSave diagnostic rows for bad inputs, empty tenants, and non-JSON responses.true

Example input

{
"startUrls": [
{
"url": "https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?ccId=19000101_000001&cid=070b2b3d-d077-4d73-b340-6055055056a6&lang=en_US"
}
],
"maxItems": 20,
"includeRaw": true,
"emitErrorItems": true
}

Example output

{
"itemType": "job",
"jobId": "9201203789874_1",
"clientRequisitionId": "2833",
"externalJobId": "595246",
"title": "Cybersecurity Compliance Engineer",
"careerCenterUrl": "https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=070b2b3d-d077-4d73-b340-6055055056a6&ccId=19000101_000001&lang=en_US",
"jobUrl": "https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=070b2b3d-d077-4d73-b340-6055055056a6&ccId=19000101_000001&lang=en_US&jobId=9201203789874_1",
"sourceUrl": "https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?ccId=19000101_000001&cid=070b2b3d-d077-4d73-b340-6055055056a6&lang=en_US",
"cid": "070b2b3d-d077-4d73-b340-6055055056a6",
"ccId": "19000101_000001",
"lang": "en_US",
"postDate": "2026-07-13T09:26:00.000-04:00",
"locationText": "Philadelphia, Philadelphia, PA, US",
"city": "Philadelphia",
"region": "PA",
"postalCode": "19114",
"country": "US",
"workLevel": "Regular Full-Time",
"jobClass": "Professional",
"department": "",
"isInternalPosting": false,
"expectedTotal": 23,
"returnedCount": 20,
"scrapedAt": "2026-07-16T10:00:54.791Z"
}

Pricing

EventFreeBronzeSilverGoldPlatinumDiamondCharged when
Run start$0.005$0.005$0.005$0.005$0.005$0.005Once when the Actor starts.
Job item$0.00115$0.00100$0.00078$0.00060$0.00040$0.00028Each real job row saved to the dataset. Diagnostic error rows are not charged as jobs.

Pricing uses Apify Store discount tiers and will be recalculated from final cloud cost measurements before publication if needed.

Tips for best results

  • Use public ADP URLs: Open the URL in a private browser window first. If the job list is public, the Actor can usually process it.
  • Keep examples small: Start with maxItems: 20 until you confirm the output shape for a tenant.
  • Keep raw data when exploring: Leave includeRaw: true for first runs so you can inspect source fields beyond the normalized columns.
  • Check diagnostics: If a row has itemType=error, inspect errorCode and errorMessage before retrying.

Limits and responsible use

This Actor collects public job postings only. It does not log in, submit applications, access applicant profiles, retrieve candidate data, or use employer/admin sessions. Make sure your use follows ADP's terms, the target employer's terms, and applicable laws.

API usage

Node.js:

import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor("fetch_cat/adp-jobs-scraper").call({
startUrls: [{ url: "https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?ccId=19000101_000001&cid=070b2b3d-d077-4d73-b340-6055055056a6&lang=en_US" }],
maxItems: 20,
includeRaw: true,
emitErrorItems: true
});
console.log(run.defaultDatasetId);

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("fetch_cat/adp-jobs-scraper").call(run_input={
"startUrls": [{"url": "https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?ccId=19000101_000001&cid=070b2b3d-d077-4d73-b340-6055055056a6&lang=en_US"}],
"maxItems": 20,
"includeRaw": True,
"emitErrorItems": True,
})
print(run["defaultDatasetId"])

cURL:

curl -X POST "https://api.apify.com/v2/acts/fetch_cat~adp-jobs-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls":[{"url":"https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?ccId=19000101_000001&cid=070b2b3d-d077-4d73-b340-6055055056a6&lang=en_US"}],"maxItems":20,"includeRaw":true,"emitErrorItems":true}'

MCP and AI agents

Use this Actor from MCP-compatible tools through the official Apify MCP Server.

$claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/adp-jobs-scraper"

MCP JSON configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=fetch_cat/adp-jobs-scraper"
}
}
}

Tool input:

{
"startUrls": [
{ "url": "https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?ccId=19000101_000001&cid=070b2b3d-d077-4d73-b340-6055055056a6&lang=en_US" }
],
"maxItems": 20,
"includeRaw": true,
"emitErrorItems": true
}

Example prompts:

  • "Run ADP Jobs Scraper for this public ADP career-center URL and summarize the job titles by location."
  • "Extract up to 50 public ADP jobs and return a table with title, requisition ID, post date, and job URL."

FAQ

Does this Actor need ADP credentials? No. It is designed for public ADP Workforce Now career-center postings only.

Can it submit applications or collect applicant profiles? No. Application flows, candidate profiles, documents, and employer/admin pages are outside this Actor's scope.

Why did I get an MISSING_CID error? The input URL does not include ADP's public cid tenant parameter. Copy the full ADP career-center URL from the browser address bar.

Why are there fewer rows than expectedTotal? ADP may report the tenant total separately from the returned page. The Actor keeps the available public rows and records expectedTotal and returnedCount for diagnostics.

Support

If you need help, open an issue on the Actor page and include:

  • the run ID,
  • the input JSON you used,
  • a reproducible public URL (the full public ADP career-center URL),
  • the expected output,
  • the actual output,
  • any diagnostic errorCode or errorMessage from the dataset.