ADP Jobs Scraper
Pricing
from $0.35 / 1,000 results
ADP Jobs Scraper
Scrapes job listings from jobs.adp.com, the careers site of ADP, one of the largest payroll/HR platforms in the US. Optionally filter by team; returns job title, url, posted date, location and the full description, address list and employment type.
Pricing
from $0.35 / 1,000 results
Rating
0.0
(0)
Developer
Ibnu Adzim
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Scrapes job listings from jobs.adp.com — the careers site of ADP, one of the largest payroll/HR/HCM platforms in the US. A different source than the job boards this portfolio already covers (Indeed, Glassdoor, JobStreet, Bayt, HeadHunter, Reed): these are ADP's own open roles, not third-party-aggregated listings.
Public data only. No login, no cookies, no browser.
What you get
Two record types share one dataset, told apart by recordType.
JOB — one row per listing
Search rows (listing) carry job id, title, url, a posted-date preview and
a location summary. With Fetch full job details on (the default), each
row also gets a jobDetails object — the complete Schema.org JobPosting:
full HTML description, employment type, and a structured list of every
office/remote location the role is open to (each with a full postal
address).
SEARCH_SUMMARY — one row per query
How many pages were fetched and how many jobs were returned.
Input
| Field | What it does |
|---|---|
| Team / department filter | optional list of ADP's own category names (e.g. Sales); verified to actually filter |
| Max jobs / max pages per query | pagination caps |
| Fetch full job details | off = fast listing-only crawl |
Example
{"teams": ["Sales", "Finance/Accounting"],"maxItems": 200,"includeJobDetails": true}
Notes on reliability
- No WAF challenge. Serves data cold on every TLS profile tested.
- Runs unattended. No human-captured session, no expiring token.
teamsfilter is real, not a silent-widen trap. A bogus team value returns zero jobs (verified live), not the unfiltered baseline — unusual among filter parameters found across this portfolio, most of which DO silently widen.- Pagination verified genuine, not a repeat/clamp: page 1 and page 2 return zero overlapping job ids.
- Residential proxy by default on cloud runs.
- Failures never vanish. A job withdrawn mid-crawl degrades that one
row (
_detailError); every input maps to at least one output row.
A markup gotcha worth knowing
The detail page's JSON-LD script tag HTML-entity-encodes its own type
attribute — application/ld+json, not a literal application/ld+json
— which silently breaks a naive regex/selector looking for the standard
string. This actor anchors on the script's stable id="js-job-posting"
instead. See CRAWLING_METHOD.md for the full trail.
Output envelope
Every record carries _input, _source and _scrapedAt. Upstream field
names pass through verbatim under listing (search) and jobDetails
(detail) — no renaming. _source is S1-html-search for listing-only rows
and S1-html-search+S2-jsonld-detail once details are attached.