ADP Workforce Now Jobs Scraper
Pricing
from $0.03 / 1,000 adp job saveds
ADP Workforce Now Jobs Scraper
Extract live public ADP job requisitions, full descriptions, structured locations, IDs, and direct apply links from one or more employer career centers.
Pricing
from $0.03 / 1,000 adp job saveds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Extract live public job requisitions from ADP Workforce Now employer career centers.
Get job titles, requisition IDs, post dates, structured locations, full descriptions, and direct application links as clean JSON, CSV, Excel, XML, or RSS-ready data.
Use the scraper for recurring employer monitoring, job-board ingestion, recruiting intelligence, and labor-market analysis—without a browser, login, or private ADP account.
What does ADP Workforce Now Jobs Scraper do?
ADP Workforce Now Jobs Scraper reads one or more public workforcenow.adp.com career-center URLs.
It discovers the tenant identifier from each URL, paginates all live requisitions, and saves one dataset row per unique job.
When full details are enabled, it also retrieves each requisition's description and tenant-specific fields.
The Actor can:
- extract current public ADP Workforce Now jobs;
- combine jobs from multiple employers in one run;
- preserve ADP item, requisition, and external job IDs;
- return display locations and structured location objects;
- provide both HTML and plain-text descriptions;
- create canonical candidate application links;
- stop at a configurable global job limit;
- deduplicate jobs by ADP tenant and item ID;
- run on a schedule for continuous monitoring.
The separate myjobs.adp.com platform is not supported in this version.
Who is it for?
Job boards and aggregators
Build a direct employer job feed and avoid stale reposted vacancies.
Recruiters and staffing teams
Track newly posted roles at target employers and route matching opportunities into your CRM.
Labor-market analysts
Measure hiring activity, role mix, locations, and posting trends across selected companies.
Competitive intelligence teams
Monitor where competitors are expanding and which functions they are hiring.
Developers and data engineers
Use a typed JSON feed instead of maintaining tenant-specific ADP pagination code.
Why scrape ADP Workforce Now jobs?
Public employer career pages are a primary source of hiring intent.
They often contain jobs before aggregators index them and remove jobs sooner after employers close them.
A repeatable feed helps you:
- discover fresh openings;
- reduce ghost-job contamination;
- map hiring by geography;
- compare requisition volumes over time;
- enrich company or talent datasets;
- trigger alerts from new job IDs;
- create source-linked candidate experiences.
Why use this Actor?
The Actor uses ADP's anonymous public structured endpoints rather than rendering a heavy browser page.
Benefits include:
- fast HTTP-only extraction;
- no proxy required for the verified public route;
- no login or ADP credentials;
- bounded request concurrency;
- transient error retry with exponential backoff;
- strict validation of supported domains;
- fail-closed behavior when no useful jobs are extracted;
- one consistent schema across ADP tenants.
Supported URLs
Supply public URLs hosted on:
https://workforcenow.adp.com/
A valid URL must contain a cid query parameter.
Most career-center links also contain ccId and lang.
Example:
https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?ccId=19000101_000001&cid=39bc5efc-a576-4a4d-83eb-32e95d4e96c8&lang=en_US
URLs on other hosts are rejected rather than silently scraped as the wrong product.
How to scrape ADP Workforce Now jobs
- Open the employer's public ADP career center.
- Copy the complete browser URL.
- Add it to ADP career center URLs.
- Choose a maximum number of jobs.
- Keep Fetch full job details enabled for descriptions.
- Click Start.
- Export the dataset or connect it to your workflow.
For a cheap first run, keep the prefilled limit of 20 jobs.
Input
{"startUrls": [{"url": "https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?ccId=19000101_000001&cid=39bc5efc-a576-4a4d-83eb-32e95d4e96c8&lang=en_US","name": "Metrea"}],"maxItems": 20,"includeDetails": true,"maxConcurrency": 5}
Input fields
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array | required | Public ADP Workforce Now career-center URLs. |
startUrls[].url | string | required | URL containing the ADP cid. |
startUrls[].name | string | optional | Employer label copied into output. |
maxItems | integer | 20 | Global maximum across all supplied career centers. |
includeDetails | boolean | true | Fetch full descriptions and detail fields. |
maxConcurrency | integer | 5 | Concurrent detail requests, from 1 to 10. |
Output
Each dataset row represents one live ADP requisition.
{"tenantId": "39bc5efc-a576-4a4d-83eb-32e95d4e96c8","careerCenterId": "19000101_000001","employerName": "Metrea","itemID": "9201059050835_1","requisitionId": "2374","externalJobId": "566833","title": "Armament/Electrical/Avionics Advisor","postDate": "2026-07-15T15:39:00.000-04:00","locations": ["Kujawsko-Pomorskie, Kuyavian-Pomeranian Voivodeship, PL"],"locationDetails": [{"displayName": "Kujawsko-Pomorskie, Kuyavian-Pomeranian Voivodeship, PL","city": "Kujawsko-Pomorskie","region": "Kuyavian-Pomeranian Voivodeship","country": "PL"}],"organizationalUnits": [],"descriptionHtml": "<p>Company Overview...</p>","descriptionText": "Company Overview...","applyUrl": "https://workforcenow.adp.com/...&jobId=9201059050835_1","sourceUrl": "https://workforcenow.adp.com/...","scrapedAt": "2026-07-24T00:00:00.000Z"}
ADP job data fields
| Field | Meaning |
|---|---|
tenantId | ADP client identifier from cid. |
careerCenterId | Career-center configuration identifier. |
employerName | Optional label supplied with the URL. |
itemID | Stable ADP requisition item identifier. |
requisitionId | Employer-facing requisition ID when available. |
externalJobId | External posting ID when exposed by ADP. |
title | Requisition title. |
postDate | Source post timestamp. |
locations | Human-readable location labels. |
locationDetails | Structured city, region, country, and postal code. |
employmentType | Tenant-specific work type when available. |
workLevel | Tenant-specific job level when available. |
organizationalUnits | Organization labels exposed for the requisition. |
descriptionHtml | Original formatted requisition description. |
descriptionText | Clean text generated from the HTML. |
applyUrl | Direct career-center link containing the job ID. |
sourceUrl | Input career-center URL. |
scrapedAt | UTC extraction timestamp. |
Some optional fields vary by employer configuration.
The Actor preserves missing tenant-specific fields as absent instead of inventing values.
How much does it cost to scrape ADP jobs?
The Actor uses pay-per-event pricing:
- a small start charge per run;
- a charge for each saved ADP job.
The current BRONZE reference price is $0.001 per run plus $0.001 per saved job.
Apify plan tiers receive the tiered rates shown on the Actor page.
Platform compute usage is included in pay-per-event billing; you do not need to size servers.
Use a small maxItems value when evaluating a new employer feed.
Listing-only versus full-detail mode
Set includeDetails to true when you need descriptions and every available field.
This performs one additional public request per job.
Set it to false for fast high-frequency monitoring where IDs, titles, dates, and locations are enough.
Listing-only mode still emits the same schema, with unavailable detail fields omitted.
Multiple employer career centers
Add several URLs to startUrls to build a combined feed.
The maxItems limit applies to the whole run, not separately to every employer.
Use each URL's optional name to keep a readable employer label in downstream exports.
Deduplication uses tenantId:itemID, so identical-looking jobs from different ADP clients remain separate.
Scheduling and change monitoring
Use an Apify schedule to run hourly, daily, or weekly.
Recommended workflow:
- Run the Actor with stable input.
- Store
tenantIdplusitemIDas your unique key. - Compare the latest dataset with the previous run.
- Alert on new keys.
- Mark missing keys as closed only after your preferred grace period.
This approach handles reposted titles more reliably than title-based matching.
Integrations
Connect the dataset to:
- Google Sheets for recruiter watchlists;
- Slack for new-job alerts;
- Make for no-code routing;
- Zapier for CRM actions;
- webhooks for event-driven processing;
- BigQuery or Snowflake for hiring analytics;
- S3 for historical snapshots;
- Tableau or Power BI for dashboards;
- your own REST API or job board.
Apify datasets can be exported as JSON, JSONL, CSV, Excel, XML, and RSS.
API usage with JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/adp-workforce-now-jobs-scraper').call({startUrls: [{url: 'https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?ccId=19000101_000001&cid=39bc5efc-a576-4a4d-83eb-32e95d4e96c8&lang=en_US',name: 'Metrea',}],maxItems: 20,includeDetails: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
API usage with Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/adp-workforce-now-jobs-scraper').call(run_input={'startUrls': [{'url': 'https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?ccId=19000101_000001&cid=39bc5efc-a576-4a4d-83eb-32e95d4e96c8&lang=en_US','name': 'Metrea',}],'maxItems': 20,'includeDetails': True,})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
API usage with cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~adp-workforce-now-jobs-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls": [{"url": "https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?ccId=19000101_000001&cid=39bc5efc-a576-4a4d-83eb-32e95d4e96c8&lang=en_US","name": "Metrea"}],"maxItems": 20,"includeDetails": true}'
Use with Apify MCP
Connect Claude or another MCP client to Apify's MCP server:
https://mcp.apify.com?tools=automation-lab/adp-workforce-now-jobs-scraper
Claude Code setup
$claude mcp add --transport http apify-adp-jobs "https://mcp.apify.com?tools=automation-lab/adp-workforce-now-jobs-scraper"
Claude Desktop setup
Cursor setup
VS Code setup
Use this MCP JSON block in Claude Desktop, Cursor, or VS Code, adding your Apify authentication as required by your client:
{"mcpServers": {"apify-adp-jobs": {"type": "http","url": "https://mcp.apify.com?tools=automation-lab/adp-workforce-now-jobs-scraper"}}}
Example prompts:
- “Scrape the first 50 live jobs from this ADP Workforce Now career center.”
- “Return job IDs, titles, post dates, and locations from these employer URLs.”
- “Fetch full descriptions and summarize the skills these employers seek.”
- “Compare the current dataset with yesterday's and list new requisitions.”
For Claude Desktop, add the Apify MCP endpoint to your MCP server configuration and authenticate with your Apify token.
For Claude Code, register the same URL as an HTTP MCP server.
Reliability and respectful use
The Actor sends bounded requests to public endpoints.
It retries only transient 429 and server errors.
It does not attempt to bypass authentication, CAPTCHA, or private candidate areas.
Concurrency is capped at 10 and defaults to 5.
Use schedules and limits that match your legitimate data-refresh needs.
Troubleshooting
Why does the Actor say the cid is missing?
Copy the complete career-center URL from the browser, including everything after ?.
A shortened homepage URL does not identify an ADP tenant.
Why is employerName empty?
ADP's public feed does not consistently expose a company display name.
Set name beside each input URL when you want a stable employer label.
Why are employmentType or workLevel empty?
These are tenant-specific custom fields.
Not every employer configures or publishes them.
Why did a valid run return no jobs?
The employer may currently have no public requisitions, or the supplied career center may no longer be active.
The Actor fails rather than returning a misleading successful empty run.
Why is the description absent?
Make sure includeDetails is enabled.
Some tenants can still omit a description from their public detail record.
Tips for better ADP job data
- Keep employer labels consistent across scheduled inputs.
- Use stable IDs instead of job titles for deduplication.
- Store
postDateas a timestamp, including its source timezone offset. - Keep both HTML and text descriptions if downstream formatting matters.
- Start with 20 jobs before increasing limits.
- Use listing-only mode for very frequent discovery checks.
- Fetch details only for newly discovered IDs in your downstream pipeline.
- Preserve source and apply URLs for auditing.
Legal and privacy
This Actor extracts publicly accessible employer job postings.
Public availability does not remove your responsibility to follow applicable law, ADP terms, employer policies, copyright rules, and data-protection requirements.
Do not use the Actor to access candidate accounts, private applications, or authenticated HR data.
Job descriptions may be copyrighted by their employers.
Use the data for legitimate purposes and retain only what your workflow needs.
Related scrapers
Explore other job and business-data tools from Automation Lab:
Choose this Actor when the source URL is specifically on workforcenow.adp.com.
FAQ
Does it require an ADP login?
No. It only reads public employer career-center data.
Does it need a proxy?
No proxy was required for the verified public JSON route.
Can it scrape more than one company?
Yes. Add multiple URLs to startUrls.
Can it retrieve every current job?
Yes, up to your maxItems limit and the jobs publicly returned by each supplied tenant.
Does it include closed jobs?
No. The source endpoint represents currently public requisitions.
Can it scrape myjobs.adp.com?
No. That is a separate ADP platform and outside this version's scope.
Can I export to CSV or Excel?
Yes. Open the run dataset and choose your preferred export format.
Can I schedule the scraper?
Yes. Use Apify schedules and webhooks for recurring feeds.
What is the best unique key?
Use the combination of tenantId and itemID.
Is one row one job?
Yes. Every charged result is one saved public requisition.
Support
If a public ADP Workforce Now URL fails, include:
- the exact source URL;
- the run URL;
- whether detail mode was enabled;
- the expected public job count;
- one example job visible in the career center.
Do not share candidate credentials or private HR information.