💼 Career Site Job Listing API
Pricing
from $4.99 / 1,000 results
💼 Career Site Job Listing API
💼 Career Site Job Listing API scrapes and aggregates job openings from leading career sites—titles, locations, salaries & descriptions—fast and reliable. 🚀 Perfect for recruiters, aggregators, and job boards. 📈 Boost your listings with clean, structured data.
Pricing
from $4.99 / 1,000 results
Rating
0.0
(0)
Developer
API Empire
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape real, fresh job postings straight from company career sites — no paid job board, no stale aggregator data. This Actor reads jobs directly from ADP WorkforceNow public career sites, maps them to a clean, standardized job-posting schema, geo-enriches every location, and streams matches into your dataset live.
The output schema matches the popular Fantastic.jobs ATS API format, so it's a drop-in for pipelines you already have.
✨ Why Choose This Actor?
- 🎯 Source-of-truth data — pulled from the company's own ADP career site, not a third-party cache.
- ⚡ Live streaming — every matching job is saved the moment it's found; a crash never loses progress.
- 🛡️ Never get blocked — browser-grade HTTP fingerprinting (
impit) plus an automatic, sticky proxy ladder (direct → datacenter → residential). - 🗺️ Geo-enriched — city, region, country, latitude, longitude for every location (free OpenStreetMap geocoding).
- 🔎 Powerful filtering — title, location, description, organization, salary, remote, and time-window filters with prefix matching.
- 🧭 Clean output views — Overview, Locations, Salary, Descriptions, and Raw tabs in the dataset.
🔑 Key Features
| Feature | Description |
|---|---|
| 🔗 Bulk URLs | Paste many ADP career-site URLs (or bare cids) at once. |
| ⏱️ Time range | 1h, 24h, 7d, or 6m backfill. |
| 🔎 Search filters | Title / location / description / organization include and exclude lists, with :* prefix matching. |
| 💰 Salary filter | Return only jobs that publish a salary range. |
| 🏠 Remote filter | Return only remote-detected jobs. |
| 🗺️ Geocoding | Toggle free OpenStreetMap lat/lng enrichment. |
| 🛰️ Discovery mode | Optionally auto-discover live ADP career sites via Common Crawl. |
| 🛡️ Smart proxies | Auto-fallback ladder, sticky once escalated, fully logged. |
📥 Input
{"timeRange": "6m","limit": 100,"descriptionType": "text","enableGeocoding": true,"titleSearch": ["Engineer", "Nurse:*"],"locationSearch": ["Toronto"],"aiHasSalary": false,"proxyConfiguration": { "useApifyProxy": false }}
| Field | Type | Description |
|---|---|---|
| (companies) | — | The set of ADP companies to crawl is built into the Actor. Enable scrapeAllCompanies to auto-discover and crawl every ADP site instead. |
proxyConfiguration | object | Proxy settings. Defaults to no proxy; auto-escalates on block. |
timeRange | string | 1h / 24h / 7d / 6m. |
limit | integer | Max jobs to save (1–5000). |
descriptionType | string | text or html. |
enableGeocoding | boolean | Resolve locations to lat/lng (default true). |
includeAi / includeLinkedIn | boolean | Keep or drop the ai_* / linkedin_org_* columns. |
titleSearch / …ExclusionSearch | array | Include / exclude by title (:* = prefix). |
locationSearch, descriptionSearch, organizationSearch | array | Same pattern for location / description / company. |
aiHasSalary | boolean | Only jobs with a salary. |
remoteOnly | boolean | Only remote jobs. |
datePostedAfter | string (date) | Overrides timeRange when set. |
scrapeAllCompanies | boolean | Discovery mode (auto-find ADP sites). |
discoveryIndexes, discoveryMaxPages, maxCompanies | integer | Discovery-mode caps. |
📤 Output
Each row is one job posting. Example (trimmed):
{"id": "563134","date_posted": "2026-06-04T03:55:00","title": "AI PRACTITIONER","organization": "ONT.COLLEGE OF TEACHERS","url": "https://workforcenow.adp.com/mascsr/default/mdf/recruitment/recruitment.html?cid=108450a1-fa83-41bf-a7d1-030ba77254bd&jobId=563134","employment_type": ["FULL TIME PERMANENT"],"salary_raw": {"@type": "MonetaryAmount", "currency": "CAD","value": { "minValue": 88806, "maxValue": 102253, "unitText": "YEAR" }},"cities_derived": ["Toronto"],"regions_derived": ["Ontario"],"countries_derived": ["Canada"],"locations_derived": ["Toronto, Ontario, Canada"],"lats_derived": [43.6534817],"lngs_derived": [-79.3839347],"remote_derived": false,"description_text": "…","source": "adp","source_domain": "workforcenow.adp.com"}
Key fields: id, date_posted, title, organization, url, employment_type, salary_raw + ai_salary_*, locations_raw, the *_derived geo fields, remote_derived, and description_text. The full schema mirrors the Fantastic.jobs format (including ai_* and linkedin_org_* placeholder columns).
🚀 How to Use (Apify Console)
- Log in at console.apify.com → Actors.
- Open Career Site Job Listing API.
- Set your filters (time range, title/location search, salary, …). The company set is built in; enable 🛰️ Auto-discover ALL ADP Companies to crawl every ADP site.
- Set your filters (time range, title/location search, salary, …).
- Leave proxy as no proxy — it auto-escalates only if needed.
- Click Start and watch jobs stream into the log in real time.
- Open the Output tab and switch between the 🧭 Overview / 📍 Locations / 💰 Salary / 📝 Descriptions views.
- Export to JSON / CSV / XLSX.
🤖 Use via API
curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"timeRange": "6m","limit": 50}'
🛡️ Proxy & Anti-Blocking
The Actor starts with no proxy. If the source returns a block (403/429/5xx) or a connection error, it automatically:
- Falls back to a datacenter proxy.
- Then to a residential proxy (retried up to 3×).
- Sticks with the escalated tier for all remaining requests.
Every escalation is logged so you can see exactly what happened.
💳 Pricing
This Actor uses the Pay-Per-Event model. The primary event is job-listing — you are charged once per job saved to your dataset. You only pay for results you actually receive; start-up is billed via the standard synthetic start event. Set a per-run charge limit and the Actor stops cleanly when it's reached.
❓ FAQ
Where do the jobs come from? Directly from public ADP WorkforceNow career sites — the same pages job-seekers see.
Why is lats_derived empty for some jobs?
Geocoding is best-effort and rate-limited. Disable it for speed, or re-run; offline fallback still fills city/region/country.
Why are ai_* / linkedin_org_* mostly null?
They're present for schema compatibility. Salary-derived ai_salary_* fields are filled deterministically from the posting.
Can I scrape every ADP company? Yes — enable 🛰️ Auto-discover ALL ADP Companies. Use the discovery caps; full crawls are long.
📨 Support & Feedback
Open an issue on the Actor's Issues tab with your input and run URL and we'll help.
Data is collected only from publicly available career sites. You are responsible for compliance with applicable laws and the target site's terms.