SEEK, JobStreet & Jobsdb Scraper | All Jobs, from $0.60/1K
Pricing
from $0.60 / 1,000 jobs
SEEK, JobStreet & Jobsdb Scraper | All Jobs, from $0.60/1K
Scrape jobs from SEEK (Australia, New Zealand), JobStreet and Jobsdb (Singapore, Malaysia, Philippines, Indonesia, Hong Kong, Thailand). Every job of a search, past the 550-result cap. Full details, parsed salary, contacts, new-jobs monitoring, webhook.
Pricing
from $0.60 / 1,000 jobs
Rating
0.0
(0)
Developer
Alex Morain
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
What does SEEK, JobStreet & Jobsdb Jobs Scraper do?
It extracts job listings from the eight job boards run by SEEK: seek.com.au and seek.co.nz, JobStreet in Singapore, Malaysia, the Philippines and Indonesia, and Jobsdb in Hong Kong and Thailand. One run can search several of them. It works as a SEEK API for job data: it reads the same JSON API the sites use, without a browser, and returns clean rows with the full description, parsed salary, contacts and company data.
The difference you will notice first: it returns every job of a search, not just the first 550. SEEK Australia and New Zealand stop paginating after about 550 results, whatever the total, and a plain scraper stops with it. This actor splits a big search into smaller ones until each fits, then merges and deduplicates the results. JobStreet and Jobsdb have no such cap, and their searches are read straight through.
| Search on SEEK Australia (17-18 Oct 2026) | Jobs SEEK reports | Plain paginated search | This actor |
|---|---|---|---|
nurse | 8,756 | 500 (6%) | 8,509 to 8,522 (97%) |
data engineer | 3,171 | 499 (16%) | 3,266 (all of them) |
SEEK's own count is an estimate (it changes with the page size you ask for), which is why one search comes back slightly above it. The run summary (SUMMARY record) shows both numbers for every market, so you can check coverage on your own searches.
Why scrape SEEK, JobStreet and Jobsdb?
SEEK runs the largest job boards of Australia and New Zealand, and owns JobStreet and Jobsdb, which run on the same platform. The eight sites listed about 480,000 live jobs when we counted them (18 Oct 2026).
- Job market research and salary benchmarks: complete exports by category, region and work type, with salary amounts parsed into numbers, currency and period.
- Recruitment agencies and sales teams: find companies hiring, with the advertiser, company website, size and industry, plus the emails and phone numbers written in the ad.
- Job alerts and aggregators: run it daily in New jobs only mode and receive only the jobs you have not seen, by webhook if you like.
- Data pipelines: look up single jobs by URL, call it through the Apify API, schedule it, connect it to Make, Zapier, Google Sheets or your database.
What data can it extract?
| Field | Example |
|---|---|
title, companyName, advertiserName | Data Engineer, Example Health Group |
location, area, countryCode | Melbourne VIC, Victoria VIC, AU |
classification, subClassification | Information & Communication Technology, Database Development & Administration |
workTypes, workArrangements | Full time, Hybrid |
salaryLabel | $120,000 – $140,000 per year |
salaryMin, salaryMax, salaryCurrency, salaryPeriod | 120000, 140000, AUD, year |
listedAt, expiresAt | 2026-10-02T03:33:34Z |
description, descriptionHtml | Full job ad, as text and as HTML |
contactEmails, contactPhones | Emails and phones written in the ad |
screeningQuestions | Questions candidates answer when applying |
companyWebsite, companySize, companyIndustry, companyRating | Company profile on SEEK |
url, id, market | https://www.seek.com.au/job/95018609 |
Every row has the same columns, whether details were fetched or not, so CSV and Excel exports stay aligned.
How to scrape SEEK jobs
- Open the Input tab and pick one or more markets (Australia is selected by default).
- Type keywords as you would in the site's search box, and add a location if you want one city or state.
- Narrow down with categories, work types, work arrangements, date posted or salary if needed. Leave a field empty to keep all jobs.
- Set Max jobs per market. Put 0 to get every job of the search, past the 550 limit.
- Click Start, then download the results as JSON, CSV, Excel or HTML.
To monitor a search, set Mode to New jobs only and schedule the run (daily, hourly). Each run then returns and charges only jobs that no earlier run of the same search returned. Add a webhook URL to be notified with the new jobs.
How much does it cost to scrape SEEK?
You pay per job delivered, and a small fee per run:
| Event | Free plan | Bronze | Silver | Gold and above |
|---|---|---|---|---|
| Job (search fields) | $1.00 / 1,000 | $0.90 | $0.80 | $0.60 |
| Detailed job (with description, contacts, company) | $2.00 / 1,000 | $1.80 | $1.60 | $1.20 |
| Run start | $0.005 |
A job whose detail request fails is billed as a plain job. In New jobs only mode, jobs already returned before are not billed. The $5 of free monthly credit on the Apify free plan covers about 2,500 detailed jobs. You can cap what a run may spend with the maximum charge setting of the run: the actor stops cleanly at that amount.
Input
See the Input tab for every option. A few notes:
- Markets: AU and NZ are SEEK, SG, MY, PH and ID are JobStreet, HK and TH are Jobsdb. Category ids are the same on all eight.
- Job URLs: paste links such as
https://www.seek.com.au/job/95018609(or bare ids) to fetch those jobs only, with full details. The search fields are then ignored. - Salary filter: needs a salary type (per year, per month, per hour). SEEK matches on the salary range the advertiser entered, including ranges hidden from the ad.
- Sort: relevance is the site's order. Newest first also brings broader keyword matches to the top, because SEEK matches any of the words.
{"markets": ["AU", "NZ"],"keywords": "data engineer","workArrangements": ["hybrid", "remote"],"maxItems": 0,"includeDetails": true}
Output
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. One item per job:
{"id": "95018609","url": "https://www.seek.com.au/job/95018609","market": "AU","site": "SEEK Australia","title": "Data Engineer","companyName": "Example Health Group","location": "Melbourne VIC","classification": "Information & Communication Technology","subClassification": "Database Development & Administration","workTypes": ["Full time"],"workArrangements": ["On-site"],"salaryLabel": "$120,000 – $140,000 per year","salaryMin": 120000,"salaryMax": 140000,"salaryCurrency": "AUD","salaryPeriod": "year","listedAt": "2026-10-02T03:33:34Z","detailsFetched": true,"description": "About the role\n\nThis is a hands-on role...","expiresAt": "2026-11-01T12:59:59.999Z","contactEmails": ["jobs@example.com"],"companyWebsite": "https://www.example.com","companySize": "1,001-5,000 employees","companyIndustry": "Hospitals & Healthcare","companyRating": 3.7}
The run also writes a SUMMARY record in its key-value store: for each market, the jobs SEEK reports, the unique jobs found, and how many requests and search slices it took.
Tips
- Faster, cheaper exports: turn off full job details. The search fields alone (title, company, location, category, salary, teaser) are often enough for counts and benchmarks: a test export of 12,984 jobs (Australia and Malaysia) took a little over two minutes.
- Large exports with details: SEEK serves about 500 job details a minute per IP address, and about 4,500 per IP over a longer window. The actor keeps under the first limit on its own. For more than 4,500 detailed jobs in a run, turn on Apify Proxy in the Network section: the actor moves to a new IP when SEEK refuses (8,216 of 8,216 details on a test export, 22 minutes). Without a proxy, jobs past that point keep their search fields and are billed as plain jobs.
- Monitoring: keep the same search fields between runs. Changing the keywords or filters starts a new memory of seen jobs; set a Monitoring key to control this yourself.
- A search that stays above the limit: if one slice still holds more than 550 jobs after splitting by category, sub-category, work type, arrangement and region (rare), the log says how many jobs could not be reached. Narrow the search or split it by location.
FAQ
Can I scrape all jobs on SEEK, not only the first 550?
Yes, set Max jobs per market to 0. On SEEK Australia and New Zealand the actor splits the search until each part fits under the limit and merges the results without duplicates. Check SUMMARY to compare with the count SEEK announces.
Does it work for JobStreet and Jobsdb?
Yes, they run on SEEK's platform. Pick SG, MY, PH, ID (JobStreet) or HK, TH (Jobsdb) in Markets. Their searches have no 550 cap: a test on JobStreet Malaysia returned 5,655 jobs for 5,651 announced. Salary amounts are parsed in the local currency (MYR, PHP, IDR, HKD, THB, SGD).
Do I need a proxy or a SEEK account?
No account. The actor reads the public JSON API the sites use, from Apify's own servers. A proxy is only needed for exports of more than about 4,500 jobs with full details in one run.
Is it legal to scrape SEEK?
Our Actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our Actors, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. Contact details in the results are only those advertisers wrote in their public job ads.
Can I use it through the API?
Yes. See the API tab for ready-to-use calls in Python, JavaScript and cURL, or call it from an AI agent through the Apify MCP server.
Something is missing or broken?
Open an issue in the Issues tab with your input, and it will be looked at quickly.