SEEK, JobStreet & JobsDB Jobs Scraper avatar

SEEK, JobStreet & JobsDB Jobs Scraper

Pricing

from $1.00 / 1,000 job (search row)s

Go to Apify Store
SEEK, JobStreet & JobsDB Jobs Scraper

SEEK, JobStreet & JobsDB Jobs Scraper

Job ads from SEEK (Australia, New Zealand), JobStreet (Malaysia, Singapore, Philippines, Indonesia) and JobsDB (Hong Kong, Thailand) in one format: salary, full description, contact emails and phones, company profile.

Pricing

from $1.00 / 1,000 job (search row)s

Rating

0.0

(0)

Developer

SteadyRows

SteadyRows

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

What this does

Gets job ads from the eight SEEK group job sites in one run and one output format:

  • SEEK: Australia, New Zealand
  • JobStreet: Malaysia, Singapore, Philippines, Indonesia
  • JobsDB: Hong Kong, Thailand

For each job you get the title, company, location, salary, work type, work arrangement (on-site, hybrid, remote), classification and listing date. With details on (the default) you also get the full description as text and HTML, the emails and phone numbers written in the ad, the expiry date, the employer's screening questions, and the company's website, industry, size and rating.

It reads the sites' own public search data, not rendered pages, so it needs no proxy and no browser. 1,000 jobs with full details take about four minutes; search rows alone take seconds.

Input examples

Data analyst jobs in Sydney, with full details:

{ "countries": ["au"], "keywords": ["data analyst"], "location": "Sydney", "maxJobs": 200 }

Daily monitoring: everything new for two keywords on three sites, posted in the last day:

{ "countries": ["my", "sg", "ph"], "keywords": ["accountant", "finance manager"], "postedWithinDays": 1, "sort": "newest", "maxJobs": 500 }

Every nurse job in Australia (goes past the sites' 500-per-search limit automatically):

{ "countries": ["au"], "keywords": ["nurse"], "maxJobs": 20000 }

A results page copied from the site, filters included (keyword, location, classification, salary, date, work type and sort order are read from the address):

{ "searchUrls": ["https://www.seek.com.au/data-analyst-jobs/in-All-Sydney-NSW?daterange=7&salaryrange=100000-150000&salarytype=annual", "https://www.seek.com.au/jobs-in-information-communication-technology/business-systems-analysts/in-Melbourne-VIC"], "maxJobs": 500 }

Remote and hybrid contract roles across Australia and New Zealand, search rows only (cheaper):

{ "countries": ["au", "nz"], "keywords": ["python developer"], "workTypes": ["contract"], "workArrangements": ["remote", "hybrid"], "includeDetails": false }

Output

{
"id": "94853289",
"site": "SEEK Australia",
"country": "au",
"title": "Data Analyst",
"company": "The Cabinet Office",
"location": "Sydney NSW",
"salary": "$116,981 - $129,492 plus 12% super",
"currency": "AUD",
"workTypes": ["Contract/Temp"],
"workArrangement": "Hybrid",
"classification": "Information & Communication Technology",
"subclassification": "Business/Systems Analysts",
"teaser": "FTC opportunity up to 30 June 2028, based in Martin Place, Sydney CBD...",
"listedAt": "2026-09-24T05:25:11Z",
"promoted": false,
"url": "https://www.seek.com.au/job/94853289",
"keyword": "data analyst",
"descriptionText": "The Cabinet Office\n\nData Analyst\n\nYou. At the centre of big ideas...",
"descriptionHtml": "<strong>The Cabinet Office</strong>...",
"expiresAt": "2026-10-08T05:25:09.000Z",
"emails": ["recruiter@example.gov.au"],
"phones": [],
"appliesOnCompanySite": true,
"screeningQuestions": [],
"advertiserVerified": true,
"advertiserSince": "2023-06-26T02:37:22.031Z",
"companyWebsite": null,
"companyIndustry": null,
"companySize": null,
"companyRating": null,
"companyReviewCount": null
}

Fields an ad doesn't have are null or an empty list. About 4 in 10 ads state a salary; about 1 in 6 contain an email address.

Limits worth knowing

  • Search URLs. Paste the address of any results page from the eight sites; the salary range, which has no separate input field, works this way. A URL that already names a classification is split by subclassification and work type when it hits the 500 cap.
  • More than 500 jobs per search. The sites show only 500 jobs for one search. When you ask for more, the actor repeats the search inside each job classification, then each subclassification and work type, and skips duplicates. In a test, "nurse" on SEEK Australia returned 8,971 jobs of the roughly 9,500 the site reported. A job found by two keywords or two slices is delivered (and charged) once.
  • With a limit below the total, the biggest classifications for your keyword come first, so you get the closest matches.
  • Keyword matching is loose. The sites match by meaning as well as by words, so a search can return related roles. "Most relevant first" (the default) keeps the closest matches at the top.
  • Salary is the text the advertiser wrote, in the local currency of the site.
  • If the details of one job can't be fetched, the job is still delivered as a search row and charged at the lower search-row price.

Pricing

You pay per job delivered: one price for a search row, a higher one for a job with full details. Set a maximum cost per run in the run options and the actor stops cleanly when it reaches it.

EventPrice
Job with details$1.50 per 1,000
Job, search row only$1.00 per 1,000
Run start$0.002

Support

Open an issue on the Issues tab. Broken runs get fixed first.