ADP Workforce Now Jobs Scraper avatar

ADP Workforce Now Jobs Scraper

Pricing

from $0.69 / 1,000 results

Go to Apify Store
ADP Workforce Now Jobs Scraper

ADP Workforce Now Jobs Scraper

Collect open jobs from public ADP Workforce Now career sites. Results include job and requisition IDs, posting dates, locations, employment types, pay details and description text or HTML. Supply one or more career URLs or tenant cids, and choose whether to fetch descriptions.

Pricing

from $0.69 / 1,000 results

Rating

0.0

(0)

Developer

Axiom Works

Axiom Works

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Returns: one row per open job with title, jobId, postedAt, location, employmentType, salaryMin, salaryMax, descriptionText and jobUrl. Input: {"careerSites": ["https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=cf5674db-9e68-440d-9919-4e047e6a1415&ccId=19000101_000001&lang=en_US"], "maxItems": 50} Best for: tracking an employer's openings, building job boards and job alerts from ADP career sites, pay range research across employers.

{
"title": "Donations Processor",
"jobId": "588896",
"postedAt": "2026-10-15T17:03:00.000-04:00",
"location": "San Marcos Store, San Marcos, TX, US",
"employmentType": "Full Time",
"salaryMin": 14,
"salaryMax": 15,
"salaryPeriod": "Hourly"
}

What does ADP Workforce Now Jobs Scraper do?

ADP Workforce Now Jobs Scraper is an ADP Workforce Now scraper for the public career centers that thousands of employers run on ADP. Give it one or more career-center URLs (the links that contain cid=) or bare tenant cids, and it returns every open job as a clean row: job title, the public job ID used in share links, the employer's requisition number, the posting date, the first location with city, state and postal code, all posted locations, the employment type, the job class, the pay range with currency and pay period, the full job description as HTML and plain text, the employer's website and a share link to the job.

It reads the same public JSON that the career center page loads in your browser, so it needs no login, no cookies and no ADP account. It works like an ADP Workforce Now jobs API: the job list is paged 20 at a time, and for each job one extra request fetches the full description (you can switch that off for a faster run).

Typical uses: watching an employer's new openings every day, feeding jobs from ADP-hosted career sites into a job board or an applicant-tracking workflow, and comparing posted pay ranges across employers and locations.

What data can you get from ADP Workforce Now?

FieldDescriptionExample
idStable ID of the job (ADP's itemID). Unique within a run.9201902889465_1
titleJob title as the employer posted itDonations Processor
jobIdPublic job ID the career center uses in share links588896
requisitionIdEmployer's own requisition number5364
itemIdADP's internal requisition item ID9201902889465_1
postedAtPosting date, ISO 8601 with the employer's UTC offset2026-10-15T17:03:00.000-04:00
locationFirst job location as ADP names itSan Marcos Store, San Marcos, TX, US
cityCity of the first locationSan Marcos
stateState or province code of the first locationTX
postalCodePostal code of the first location78666
allLocationsEvery location the job is posted for["Hamilton, NJ, US", "Falls Church, VA, US"]
employmentTypeWorker categoryFull Time
jobClassEmployer's job class, when setManual Labor
salaryMinLower end of the posted pay range14
salaryMaxUpper end of the posted pay range15
salaryCurrencyCurrency code of the pay rangeUSD
salaryPeriodPay period of the rangeHourly
salaryTextPay range as the career center shows it14 To 15 (USD) Hourly
descriptionHtmlFull job description as HTML<div><p>This position is responsible for...
descriptionTextJob description as plain textThis position is responsible for receiving donated goods...
companyWebsiteEmployer website linked from the career center logohttp://goodwillcentraltexas.org
tenantIdADP tenant cid of the career centercf5674db-9e68-440d-9919-4e047e6a1415
jobUrlPublic share link to the jobhttps://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=...&jobId=588896&lang=en_US
scrapedAtWhen the run collected the job (UTC)2026-10-16T00:08:39Z
sourceUrlADP endpoint the record was read fromhttps://workforcenow.adp.com/mascsr/default/careercenter/public/events/staffing/v1/job-requisitions/9201902889465_1?cid=...

Pay fields, the job class and the company website are set by each employer. Many employers leave them blank, and then those fields are null. The description fields are null when you set includeDescription to false.

How to use ADP Workforce Now Jobs Scraper

  1. Find the employer's ADP career center. On the employer's own site, open their careers page. Many employers embed the ADP career center in a frame, so look for a "Careers" or "View all jobs" link, or open the frame in a new tab, and copy the address that contains cid= followed by a long ID such as cf5674db-9e68-440d-9919-4e047e6a1415.
  2. Open the Actor in Apify Console and paste one URL (or just the cid) per line into Career-center URLs or cids.
  3. Set Maximum jobs to how many jobs you want in total. The limit is shared across all career sites: the first site is read in full before the next one starts.
  4. Leave Include job descriptions on if you need the full text, or turn it off for a faster run that still returns every other field.
  5. Click Start. When the run finishes, open the Output tab and export the jobs as JSON, CSV, Excel, XML or HTML, or read them through the API.

Tips:

  1. Keep the ccId and lang parameters that appear in the employer's URL. The Actor uses them for the share links in jobUrl, so links open the same career center the employer published.
  2. A bare cid works too. Then the share link has no ccId, and lang comes from the Language field.
  3. Schedule the Actor daily and compare id values between runs to find new and closed jobs.
  4. The API is public and works without a proxy. If a run ever gets HTTP 403 or 429 errors, turn on Apify Proxy in the Proxy section; blocked requests are then retried on a new IP.

Input

Use titleKeywords and locationKeywords to return a focused set of openings. Each is an optional list of case-insensitive substrings, empty by default. A job matches any term within a list; when both lists are supplied it must match both. Location matching checks every posted location, including its name, city, state or province code, and postal code. Matching uses literal substrings. The company branding request is deferred until the first matching job; a run with no matching jobs skips that request. Requests to each tenant start at least half a second apart, counting response time toward that spacing.

Filters run on the public job list before description requests. Rejected jobs are neither saved nor charged, and maxItems counts only matching jobs across all career sites. The Actor continues through list pages until enough matches are saved or the career center is exhausted. A restrictive filter can return fewer results than the limit or zero results successfully. Use "titleKeywords": ["processor"], "locationKeywords": ["San Marcos"] to find processor openings in San Marcos. Empty lists return all jobs.

FieldTypeRequiredDescription
careerSitesarray of stringsYesADP Workforce Now career-center URLs containing cid=<uuid>, or bare 36-character cids. ccId and lang are kept from the URL. Entries without a cid are skipped with a warning. If all entries are skipped, the run succeeds with 0 results and guidance to supply a career-center URL or bare tenant UUID.
titleKeywordsarray of stringsNoTitle substrings; OR within the list, default [].
locationKeywordsarray of stringsNoSubstrings across posted locations; AND with title filter, default [].
maxItemsintegerNoMaximum number of jobs in total across all career sites, 1-10000, default 50.
includeDescriptionbooleanNoFetch the full description for each job (one extra request per job), default true.
langstringNoLocale used when a URL has no lang= (and for bare cids), default en_US. Examples: en_US, en_CA, fr_CA, es_ES.
proxyConfigurationobjectNoProxy settings, default no proxy.
{
"careerSites": [
"https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=cf5674db-9e68-440d-9919-4e047e6a1415&ccId=19000101_000001&lang=en_US",
"c5bf927d-75b0-4e6e-8d59-de5517866227"
],
"maxItems": 50,
"includeDescription": true,
"lang": "en_US",
"proxyConfiguration": { "useApifyProxy": false }
}

The language setting changes only ADP's own labels. Job titles and descriptions stay in whatever language the employer wrote them in. ADP lists jobs only in the locales an employer publishes in, so a locale the employer doesn't use (for example fr_CA on a US-only career center) returns no jobs. When that happens the Actor retries the career center in en_US, and jobUrl uses the locale that worked.

Output

Each job is one item in the run's dataset. Two real items from local test runs (descriptions shortened here):

[
{
"id": "9201902889465_1",
"title": "Donations Processor",
"jobId": "588896",
"requisitionId": "5364",
"itemId": "9201902889465_1",
"postedAt": "2026-10-15T17:03:00.000-04:00",
"location": "San Marcos Store, San Marcos, TX, US",
"city": "San Marcos",
"state": "TX",
"postalCode": "78666",
"allLocations": ["San Marcos Store, San Marcos, TX, US"],
"employmentType": "Full Time",
"jobClass": "Manual Labor",
"salaryMin": 14,
"salaryMax": 15,
"salaryCurrency": "USD",
"salaryPeriod": "Hourly",
"salaryText": "14 To 15 (USD) Hourly",
"descriptionHtml": "<div><div><p><br></p><p>&nbsp; &nbsp; ... NEW HIRE BONUS</p>...",
"descriptionText": "NEW HIRE BONUS\nEarn up to $350 in new hire bonuses! $250 after 60 days of employment + $100 after 90 days\nThis position is responsible for receiving donated goods...",
"companyWebsite": "http://goodwillcentraltexas.org",
"tenantId": "cf5674db-9e68-440d-9919-4e047e6a1415",
"jobUrl": "https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=cf5674db-9e68-440d-9919-4e047e6a1415&ccId=19000101_000001&jobId=588896&lang=en_US",
"scrapedAt": "2026-10-16T00:08:39Z",
"sourceUrl": "https://workforcenow.adp.com/mascsr/default/careercenter/public/events/staffing/v1/job-requisitions/9201902889465_1?cid=cf5674db-9e68-440d-9919-4e047e6a1415&lang=en_US&locale=en_US"
},
{
"id": "9201299865324_1",
"title": "Management Consultant",
"jobId": "568803",
"requisitionId": "1079",
"itemId": "9201299865324_1",
"postedAt": "2026-10-13T11:55:00.000-04:00",
"location": "Hamilton, NJ, US",
"city": "Hamilton",
"state": "NJ",
"postalCode": "08690",
"allLocations": ["Hamilton, NJ, US", "Falls Church, VA, US"],
"employmentType": "Full Time Regular",
"jobClass": null,
"salaryMin": 70000,
"salaryMax": 90000,
"salaryCurrency": "USD",
"salaryPeriod": "Annually",
"salaryText": "70000.00 To 90000.00 (USD) Annually",
"descriptionHtml": null,
"descriptionText": null,
"companyWebsite": null,
"tenantId": "cf1a92f4-16eb-4267-86ca-bc956024f426",
"jobUrl": "https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=cf1a92f4-16eb-4267-86ca-bc956024f426&jobId=568803&lang=en_US",
"scrapedAt": "2026-10-16T00:09:09Z",
"sourceUrl": "https://workforcenow.adp.com/mascsr/default/careercenter/public/events/staffing/v1/job-requisitions?cid=cf1a92f4-16eb-4267-86ca-bc956024f426&lang=en_US&locale=en_US&$top=20&$skip=1"
}
]

The second item comes from a run with includeDescription: false, so its description fields are null, and that employer sets no job class and no logo link. You can download the dataset as JSON, CSV, Excel, XML, RSS or HTML from the Output tab or the API.

How much does it cost to scrape ADP Workforce Now?

ADP Workforce Now Jobs Scraper is charged per result: you pay for each job returned, and nothing for career sites that have no openings or don't exist. maxItems caps how many jobs a run can return, and so caps the charge. See the Pricing tab for the current price. Platform usage for the run itself is included.

If you set a maximum cost per run in the run options, the Actor stops when that budget is used up and says so in the status message, keeping every job saved so far.

Use with AI agents (MCP)

Connect ADP Workforce Now Jobs Scraper to Claude, Cursor or any MCP client through the Apify MCP server:

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

Example prompts:

  1. "Get the 20 newest jobs from this ADP career center and list the ones in Austin with their pay range: https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=cf5674db-9e68-440d-9919-4e047e6a1415&ccId=19000101_000001&lang=en_US"
  2. "Scrape the open jobs for ADP tenant c5bf927d-75b0-4e6e-8d59-de5517866227 without descriptions and group them by state."
  3. "Compare the hourly pay ranges posted by these two ADP career sites and summarise the differences."

Agents see the input fields described above. The only field they must fill is careerSites; maxItems is shared across all career sites.

Integrations and API

Run ADP Workforce Now Jobs Scraper from your own code with the Apify API. Set APIFY_TOKEN to your Apify API token (send it in the Authorization header, never in the URL).

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("axiomworks/adp-workforce-now-jobs-scraper").call(run_input={
"careerSites": ["cf5674db-9e68-440d-9919-4e047e6a1415"],
"maxItems": 50,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["title"], item["location"], item["jobUrl"])

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('axiomworks/adp-workforce-now-jobs-scraper').call({
careerSites: ['cf5674db-9e68-440d-9919-4e047e6a1415'],
maxItems: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

cURL

curl -X POST "https://api.apify.com/v2/acts/axiomworks~adp-workforce-now-jobs-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"careerSites": ["cf5674db-9e68-440d-9919-4e047e6a1415"], "maxItems": 50}'

You can also connect the Actor to Make, Zapier, n8n, Google Sheets, Slack or your own webhooks from the Integrations tab, for example to post new jobs to a channel after each scheduled run.

FAQ

Where do I find an employer's cid? Open the employer's careers page and find the ADP career center. Its address looks like https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=<id>&ccId=<id>&lang=en_US. If the jobs show inside a frame on the employer's site, right-click the frame and open it in a new tab to see that address. There is no public directory of ADP tenants, so the Actor cannot search for employers by name.

What about old links like workforcenow.adp.com/jobs/apply/posting.html?client=...? Those use a client code, not a cid, so the Actor cannot read them. It skips them with a warning. Open the link in a browser, follow it to the current career center and copy the address with cid=.

Why did my run return 0 results? Either the cid does not exist (the log and status message say "career site not found"), or the employer has no open jobs right now. Both end the run successfully with 0 results and no charge. Check that you copied the whole cid from a working career page.

Why are the pay fields empty for some jobs? Each employer decides whether to publish pay. When the career center shows no pay range, salaryMin, salaryMax, salaryCurrency, salaryPeriod and salaryText are null. The same goes for jobClass and companyWebsite.

How fresh is the data? Every run reads the career center live, so you get the jobs that are open at that moment. postedAt is the date the employer posted the job, and scrapedAt is when your run collected it.

How fast is it? The job list loads 20 jobs per request, and each description is one more request, spaced out politely. A run of 50 jobs with descriptions usually takes about a minute. With includeDescription: false it is several times faster.

Can I scrape several employers in one run? Yes. Put one URL or cid per line. maxItems is the total for the whole run, so raise it if you want every job from every employer.

This Actor collects only job postings that employers publish on public ADP career centers, which anyone can view without logging in. It does not access ADP accounts, applicant data or anything behind a login. Job postings can name contact people, so if you store or reuse that data, follow the laws that apply to you, such as the GDPR or CCPA. This is not legal advice; ask a lawyer if you are unsure about your use case.

ADP Workforce Now Jobs Scraper is an independent tool. It is not affiliated with, endorsed by or sponsored by ADP or ADP Workforce Now.

ActorWhat it does
LinkedIn Jobs ScraperCollects job postings from LinkedIn job search
Google Jobs ScraperCollects job listings from Google's jobs search
Reed.co.uk Jobs ScraperCollects job listings from Reed.co.uk
Remote Job Listings ScraperCollects remote job listings

Feedback

Found a bug, or need a field that isn't here? Open an issue on the Issues tab and we'll look at it.