Seek Jobs Scraper: Australia, NZ, JobStreet & JobsDB avatar

Seek Jobs Scraper: Australia, NZ, JobStreet & JobsDB

Pricing

from $0.50 / 1,000 delivered jobs

Go to Apify Store
Seek Jobs Scraper: Australia, NZ, JobStreet & JobsDB

Seek Jobs Scraper: Australia, NZ, JobStreet & JobsDB

Scrape Seek Australia (seek.com.au) and NZ, JobStreet Malaysia, Singapore, Indonesia and Philippines, and JobsDB Hong Kong and Thailand jobs in one run: title, apply URL, and company, work type and salary as min/max with currency and period where published. $0.50 per 1,000 jobs + $0.001 per run.

Pricing

from $0.50 / 1,000 delivered jobs

Rating

0.0

(0)

Developer

David Brooks

David Brooks

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

11 hours ago

Last modified

Share

Scrape Seek, JobStreet and JobsDB jobs in one run — all eight SEEK-platform boards, Seek AU/NZ, JobStreet MY/SG/ID/PH, JobsDB HK/TH — at $0.50 per 1,000 jobs.

Seek Jobs Scraper extracts job listings from Seek Australia (seek.com.au), Seek New Zealand, JobStreet Malaysia, Singapore, Indonesia and the Philippines, and JobsDB Hong Kong and Thailand — one input, one output schema, one price. Every row carries the title, market country, job URL and apply URL; company, location, work type, classification, posted date, teaser and parsed salary (min, max, currency, period) are filled wherever the listing publishes them; add the full HTML description on request. Search by keywords, location, posted-within window, classification and work type, sorted by relevance or date.

What you get

  • Eight markets in one run: pass countries: ["AU","MY","SG"] and get one normalized dataset
  • Salary parsed into salaryMin, salaryMax, salaryCurrency (AUD/NZD/MYR/SGD/IDR/PHP/HKD/THB) and salaryPeriod — marketing text like "Weekly pay cycle" is never mistaken for a number
  • Work type and remote/hybrid/on-site arrangement normalized across markets
  • Optional full job description (HTML and plain text)
  • Stable sourceId per job for deduplication across runs; schemaVersion so keys never change under you

Sample row:

{
"sourceId": "seek:AU:94508431",
"sourceUrl": "https://www.seek.com.au/job/94508431",
"source": "seek",
"title": "Junior Engineer",
"company": "Bright Engineering Consultants Pty Ltd",
"location": "Doncaster East, Melbourne VIC",
"country": "AU",
"remote": "onsite",
"workType": "full-time",
"category": "Engineering",
"subcategory": "Process Engineering",
"salaryText": "$75,000 – $90,000 per year",
"salaryMin": 75000,
"salaryMax": 90000,
"salaryCurrency": "AUD",
"salaryPeriod": "year",
"postedAt": "2026-09-10T08:07:17.000Z",
"applyUrl": "https://www.seek.com.au/job/94508431/apply"
}

Input

FieldDescription
queryKeywords, e.g. "data engineer"
country / countriesOne market, or several of AU, NZ, MY, SG, ID, PH, HK, TH (default AU)
locationFree-text location filter
sortByrelevance (default) or date
since / datePostedDaysOnly jobs listed since an ISO date, or in the last N days (max 31)
classificationId / workTypeSEEK classification and work-type ids (optional filters)
includeDescriptionFetch the full description per job (slower, same price)
maxItemsHard cap on delivered jobs (default 50)
maxCostUsdHard stop on spend, enforced before each request

Pricing

Pay per event. You are charged only for delivered, validated results — never for empty pages, blocked requests, or duplicates. maxCostUsd is a hard stop enforced before each request.

EventPriceUnit
run-start$0.001per run
job$0.0005per delivered job — $0.50 per 1,000
  • 1,000 jobs across three markets ≈ $0.50
  • A daily 200-job monitor ≈ $3.03/month

Why this actor

  • All eight SEEK-platform markets in one run — Seek AU/NZ, JobStreet MY/SG/ID/PH and JobsDB HK/TH — with one input and one output schema, so a cross-market dataset needs no merging
  • One flat $0.50 per 1,000 jobs plus a $0.001 run-start fee, and the full description at no extra event price
  • Salary is parsed per market (IDR uses dots as thousands separators; AU/NZ/SG/HK all use a bare $) instead of passed through as text
  • Uses the site's JSON search API, so no browser, no residential proxy, and no Cloudflare timeouts — list-only runs finish in seconds
  • Charged only for validated rows: a blocked or empty run bills nothing at all, and a blocked run fails with a typed error instead of a silent empty dataset

Known limits

  • SEEK returns at most 100 jobs per page and caps deep pagination per query; split broad queries by location, classification, or posted-within window to get everything
  • salaryText is empty on most listings (employers choose not to publish); salaryMin/salaryMax are null then
  • remote reads unknown, and workType, company, category and teaser are null, on listings that leave that field out
  • Full descriptions require one extra request per job (about 3 jobs/second)
  • Job postings only; no candidate or applicant data is ever collected
  • Full descriptions come from the site's GraphQL endpoint, which JobStreet's robots.txt lists as disallowed; the actor keeps that route to a few requests per second and only uses it when you ask for descriptions

Use from an AI agent (MCP)

Add the actor as an MCP tool in Claude Desktop / Cursor via the Apify MCP server:

{ "mcpServers": { "seek-jobs": { "url": "https://mcp.apify.com?actors=<your-username>/seek-jobs", "headers": { "Authorization": "Bearer <APIFY_TOKEN>" } } } }

The tool accepts exactly the input fields above and returns the same rows.

Use from n8n / Make

Use the Apify node → "Run actor" with actor <your-username>/seek-jobs and a JSON input such as {"query":"nurse","countries":["AU","NZ"],"datePostedDays":1,"maxItems":500} on a daily schedule, then "Get dataset items".

FAQ

Why do I get fewer rows than the site's total?

The site caps deep pagination per query. Use datePostedDays, location or classificationId to slice a broad query into several runs.

Do I need a proxy?

Not a residential one. The JSON search API answers from datacenter IPs today, and the default input uses datacenter Apify Proxy with session rotation. If that changes the actor fails loudly with a typed block error, and you can switch the proxy group in the input.

This actor collects publicly listed job advertisements (employer postings) only. It never logs in, never uses accounts or cookies from accounts, and does not collect personal data about candidates. Request rates are kept modest and 429 responses are honored with backoff. Data is delivered to the requesting user for their own use; we do not build or resell a corpus.

Support

Open an issue on the Issues tab; first response within 6 hours on business days. Every run writes a RUN_SUMMARY record to the key-value store with items delivered, events charged, and the stop reason.