Careers24.com Scraper
Under maintenancePricing
from $1.49 / 1,000 results
Careers24.com Scraper
Under maintenanceScrape job listings from Careers24.com — South Africa's leading job board. Extracts title, company, salary (ZAR), description, contract type and more. No API key required.
Pricing
from $1.49 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
Careers24 Scraper

Extract structured job listings from Careers24.com — South Africa's leading recruitment platform with 7,000+ active vacancies across all sectors and provinces. Returns full job details including salary, description, contract type, and company information. No API key required.
Why this scraper?
🇿🇦 Full South Africa coverage
Access all 7,000+ live job listings spanning every province and major city — from Johannesburg and Cape Town to Durban, Pretoria, and beyond.
🔎 Flexible search and filtering
Search by keywords and location ID, filter by contract type (Permanent, Contract, Temporary, Part-Time, Internship), and limit results to jobs posted within 1, 7, 14, or 30 days.
💰 Salary data in ZAR
Where disclosed by the recruiter, salary figures are returned as structured salaryMin, salaryMax, salaryCurrency (ZAR), and salaryPeriod (MONTH/YEAR/HOUR) fields.
📋 Three description formats
Every job listing includes the full description as raw HTML (descriptionHtml), plain text (descriptionText), and Markdown (descriptionMarkdown) — ready for downstream processing or LLM pipelines.
🔄 Cross-run deduplication
A 90-day deduplication store (careers24-scraper-job-dedup) tracks previously seen listings. Enable skipReposts to receive only genuinely new postings on each scheduled run.
⚡ Fast and lightweight
Runs in 256 MB memory. Suitable for large scheduled extractions — 1,000 results typically complete in under 10 minutes.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
keywords | string | "" | Job title or keywords. Leave blank for all listings. |
locationId | integer | 1 | Numeric location ID. 1 = all of South Africa. See table below. |
maxItems | integer | 100 | Maximum number of results to return. |
daysOld | integer | — | Max age in days: 1, 7, 14, or 30. Leave blank for all. |
contractType | select | any | any, permanent, contract, temporary, part-time, internship |
fetchDetails | boolean | true | Fetch full description and salary from each listing page. |
skipReposts | boolean | false | Skip listings already seen in previous runs. |
startUrls | array | [] | Optional: scrape specific listing URLs directly. |
Common location IDs
| Location | locationId |
|---|---|
| All of South Africa | 1 |
For city and suburb-level IDs, use the Careers24 search interface and note the
locationidparameter in the resulting URL, then pass it directly as input.
Output schema
{"id": "2356513","url": "https://www.careers24.com/jobs/adverts/2356513-senior-software-engineer-sandton/","title": "Senior Software Engineer","location": "Sandton, Gauteng","region": "Gauteng","jobType": "Permanent","company": "Discovery Health","companyUrl": "https://www.careers24.com/now-hiring/12345-discovery-health/","descriptionHtml": "<div class=\"job-description\">We are looking for...</div>","descriptionText": "We are looking for a Senior Software Engineer to join...","descriptionMarkdown": "## About the role\n\nWe are looking for a Senior...","salaryMin": 55000,"salaryMax": 75000,"salaryCurrency": "ZAR","salaryPeriod": "MONTH","publishDate": "2026-04-23","publishDateISO": "2026-04-23T00:00:00.000Z","daysLeft": 61,"applyUrl": null,"contentHash": "a3f9c12d8e7b0145","source": "careers24.com","scrapedAt": "2026-04-23T09:14:52.341Z","isRepost": false,"originalPublishDate": null,"originalUrl": null}
Field notes:
salaryMin/salaryMax—nullwhen the recruiter posts "Market Related" (majority of listings)salaryCurrency— alwaysZARapplyUrl—nullwhen application is handled internally on Careers24region— extracted province name when determinable from location stringdaysLeft— remaining display time as posted by Careers24isRepost—trueif this listing was seen in a previous run within 90 days
Examples
1 — All IT jobs in Gauteng, last 7 days
{"keywords": "IT","locationId": 1,"daysOld": 7,"contractType": "any","maxItems": 200}
2 — Permanent accounting roles, max 50
{"keywords": "accountant","contractType": "permanent","maxItems": 50}
3 — Daily delta feed (new listings only)
{"keywords": "","locationId": 1,"daysOld": 1,"skipReposts": true,"maxItems": 500}
4 — Specific listing URLs
{"startUrls": [{ "url": "https://www.careers24.com/jobs/adverts/2356513-senior-software-engineer-sandton/" }]}
5 — Fast list-only scan (no detail fetching)
{"keywords": "nurse","fetchDetails": false,"maxItems": 1000}
💰 Pricing
$1.49 per 1,000 results — you only pay for successfully retrieved listings. Failed retries and filtered reposts are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.15 |
| 1,000 | ~$1.49 |
| 10,000 | ~$14.90 |
| 100,000 | ~$149.00 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Use the Max results cap in the input to control your spend exactly.
Performance
| Run size | Fetch details | Approx. time |
|---|---|---|
| 100 results | Yes | ~2 min |
| 1,000 results | Yes | ~15 min |
| 5,000 results | Yes | ~75 min |
| 10,000 results | No | ~20 min |
Known limitations
- Salary data is absent for the majority of listings (recruiters post "Market Related")
- Apply URLs are typically unavailable — applications are handled within the Careers24 platform
- Location IDs for cities and suburbs must be looked up manually from the Careers24 search URL
- International listings (outside South Africa) are included in
locationId=1results; usedaysOldorkeywordsfilters to narrow scope
Technical details
- Source: careers24.com — South Africa's leading online job board, part of Media24/Naspers
- Memory: 256 MB
- Repost storage: KeyValueStore
careers24-scraper-job-dedup, 90-day TTL - Retry: Automatic retry on network errors with exponential backoff, 3 attempts per request
Additional services
Need a custom actor, additional filters, scheduled runs, or integration support? Send an email to info@unfencedgroup.nl — we build on request.
Built by unfenced-group · Issues? Open a ticket or send a message.