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
emitErrorItemsenabled to receive stable diagnostic rows for missingcid, unsupported URLs, empty tenants, or unexpected responses.
Input recipes
- Small smoke test: Use the default ADP URL with
maxItems: 20andincludeRaw: true. - Direct API URL: Paste a public ADP
job-requisitionsURL and setincludeRaw: falsefor a compact dataset. - Multi-company monitor: Add several public ADP career-center URLs to
startUrls, keepmaxItemsbounded, and schedule the run.
What data can you extract?
| Field | Description |
|---|---|
itemType |
job for job rows or error for diagnostic rows. |
jobId |
ADP job item ID. |
clientRequisitionId |
Employer/client requisition identifier. |
externalJobId |
External job ID when ADP exposes it. |
title |
Public job title. |
companyName |
Company name when included by ADP. |
careerCenterUrl |
Canonical ADP career-center URL for the tenant. |
jobUrl |
Canonical public job URL including the ADP job ID. |
sourceUrl |
Original input URL. |
cid, ccId, lang |
ADP tenant/career-center/language identifiers. |
postDate, currentServerDate |
Raw public ADP date values. |
locationText, city, region, postalCode, country |
Location text and normalized location parts. |
workLevel, jobClass, department |
Common ADP classification fields. |
isInternalPosting |
Internal-posting flag when exposed. |
expectedTotal, returnedCount |
Count diagnostics from the ADP response. |
rawRequisition |
Original ADP requisition object when includeRaw is enabled. |
errorCode, errorMessage |
Stable diagnostics for invalid or unsupported inputs. |
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"
}
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: 20until you confirm the output shape for a tenant. - Keep raw data when exploring: Leave
includeRaw: truefor first runs so you can inspect source fields beyond the normalized columns. - Check diagnostics: If a row has
itemType=error, inspecterrorCodeanderrorMessagebefore 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."
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
errorCodeorerrorMessagefrom the dataset.