ADP Jobs Scraper
Pricing
from $0.60 / 1,000 adp job saveds
Pricing
from $0.60 / 1,000 adp job saveds
Rating
0.0
(0)
Developer
Fetch Cat
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
a day ago
Last modified
Categories
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.
Quick start
- Copy a public ADP Workforce Now career-center URL containing
cid. - Paste it into
startUrls, set a smallmaxItems, and run the Actor. - Open the dataset and export job rows as JSON, CSV or Excel. Filter on
itemType=jobif diagnostic rows are enabled.
{"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}
The Actor keeps the jobs returned by each source; it does not guarantee all openings in an employer's reported total. Source order is retained, not sorted by date or relevance.
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
- Collect ADP-hosted openings: Export the available returned jobs from an employer's public ADP career center; results may be fewer than the employer's reported total.
- Compare hiring changes: Run the same ADP tenants again manually 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.
Ready-to-run examples
- Export ADP employer job listings — Collect up to 20 jobs from one public employer career center, without raw requisition objects.
For your own employer, replace the URL in the example input below with a full public ADP URL containing cid. Both recruitment-page and public job-requisitions URLs are accepted. Several URLs can be supplied in startUrls; maxItems caps saved job rows across them all.
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. |
Input configuration
| Setting | JSON key | Use it for | Example |
|---|---|---|---|
| ADP career center URLs | startUrls | Required public ADP Workforce Now URLs containing cid. | Full recruitment URL shown above |
| Maximum jobs | maxItems | Cap saved job rows and control spend. | 20 |
| Include raw ADP requisition | includeRaw | Preserve the original source object for fields not yet normalized. | true |
| Emit error rows | emitErrorItems | Save diagnostic rows for bad inputs, empty tenants, and non-JSON responses. | 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 and limits
This Actor uses pay-per-event pricing: start is a one-time charge per run, and item is charged for each saved job row. Diagnostic rows with itemType=error are not charged as job items. See the live Pricing tab for current rates and plan discounts.
Use maxItems to bound saved jobs across all input URLs. Diagnostic rows do not count toward this cap. A single response may contain fewer jobs than ADP's reported total; increasing the cap does not guarantee a complete employer inventory.
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 practical notes
This Actor collects public postings on workforcenow.adp.com only; other ADP products or domains are not supported. It does not log in, submit applications, access applicant profiles, retrieve candidate data, or use employer/admin sessions. Public visibility can change, and an inaccessible response does not establish whether a posting is private or deleted.
Fields missing from the source may be null or omitted. includeRaw preserves the original object, not a guarantee of full job descriptions. With emitErrorItems enabled, the Actor can save diagnostic rows for empty sources and certain input or response problems; disabling it omits those rows, not fatal execution errors. An EMPTY_TENANT row means zero requisitions were returned, not proof that an employer has no openings.
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});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python:
from apify_client import ApifyClientclient = 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(client.dataset(run["defaultDatasetId"]).list_items().items)
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. The general server can search and run Actors; the focused URL below exposes this Actor. Supply your Apify token through your client's supported authentication settings. After a run, retrieve its dataset to inspect the job rows rather than assuming the run response contains every result.
$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."
Related Actors
- LinkedIn Jobs Scraper
- Indeed Jobs Scraper — collect job listings from Indeed alongside ADP employer postings.
- Google Jobs Scraper
- Workday Jobs Scraper
- Greenhouse Jobs Scraper
FAQ
Can I export ADP jobs to CSV or use them through an API? Yes. Export the dataset as CSV, Excel or JSON, or use the API examples above to run the Actor and retrieve dataset items. The same job fields and source limitations apply.
Is this an official ADP API or the ADP employment report? No. This is an independent scraper for public employer career-center postings, not ADP's economic jobs report or an employer/admin API.
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 and feedback
For custom additions or integrations, email hello@fetchcat.dev.
Found an error or have a feature request? Open an issue with the run ID, a non-sensitive input example and what you expected. Include any diagnostic errorCode or errorMessage, but never credentials or private data.
Made with care for curious people, AI agents and the possibilities in data. ♥