SEEK Scraper | Australia & NZ Job Listings with Salary avatar

SEEK Scraper | Australia & NZ Job Listings with Salary

Pricing

from $1.50 / 1,000 results

Go to Apify Store
SEEK Scraper | Australia & NZ Job Listings with Salary

SEEK Scraper | Australia & NZ Job Listings with Salary

SEEK job scraper & API for Australia & New Zealand: search jobs by keyword, location & category and export title, company, salary, work type, classification, posting date, description and apply URL. Recruitment, salary benchmarking and job-board market data — fast, no login.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

98

Total users

7

Monthly active users

5 days ago

Last modified

Share

SEEK Jobs Scraper — Australia & NZ Listings with Salary, Super & Visa Sponsorship

Extract live job listings from seek.com.au and seek.co.nz with structured salary parsing, superannuation detection, visa sponsorship signals, and full classification data. This SEEK scraper turns SEEK's free-form job ads into clean, analysis-ready rows — title, company, salary range, work type, classification, location and apply URL — so you can scrape SEEK at scale with no login and no coding.

Export to JSON, CSV, Excel, or API.

Built for recruiters and talent-intelligence teams, compensation and HR analysts, immigration and skilled-migration consultants, workforce planners, B2B sales teams tracking who's hiring, and market researchers who need live SEEK job data for Australia and New Zealand.


🔎 Why scrape SEEK?

SEEK is the dominant job board in Australia and New Zealand, carrying tens of thousands of live vacancies across every industry, city and classification. Each ad is a high-frequency signal: who is hiring, for what roles, at what pay, in which locations, and whether they will sponsor a visa. That makes SEEK data one of the richest open sources for labour-market, recruitment and compensation intelligence in the ANZ region.

Collecting it by hand is slow and lossy. Salary is written as free text ($120k–$150k + super), super is sometimes included and sometimes not, visa willingness is buried in the description, and listings rotate constantly. Copy-pasting a few pages into a spreadsheet does not scale to hundreds of roles, let alone a full market scan, and it loses all the structure you actually want to analyse.

This SEEK scraper does the structuring for you — paginating through search results, de-duplicating by job ID, parsing salary into numeric bounds, flagging superannuation and visa sponsorship, and normalising classification and work arrangement into tidy fields.

Common reasons people scrape SEEK:

  • Recruitment & talent mapping — build live talent-pool maps by city × classification and track competitor hiring.
  • Salary benchmarking — price open roles against live market medians with structured salaryMin/salaryMax and super flags.
  • Visa & immigration research — identify Subclass 482/TSS/186 sponsor employers by occupation.
  • Workforce planning — quantify skills demand and build regional demand heatmaps.
  • B2B lead generation — find companies actively hiring for your buyer-persona roles.
  • Macro & equity signals — use job-posting velocity as a leading indicator for sector expansion/contraction.
  • Job-board aggregation — feed a niche job site or newsletter with fresh, structured ANZ listings.

✨ What this SEEK scraper does

  • ✅ Three input modes — search by keyword + location + country, paste ready-made SEEK search URLs, or paste direct SEEK job URLs to enrich known listings.
  • ✅ Automatic pagination — walks ?page=N across the result set, de-duplicating by job ID, and returns hundreds of listings per search (SEEK caps a single search facet at ~550 results; fan out across cities/classifications for more).
  • ✅ Structured salary parsing — converts free-form salary text into numeric salaryMin / salaryMax, a salaryPeriod (annual / hourly / daily / monthly), a salaryHasSuper flag, and the original salaryRaw string. With scrapeDetails, it also mines the description for a salary when the card is silent.
  • ✅ Superannuation detection — flags whether pay is plus super, inclusive of super, or excludes super (11.5% SG in Australia), so you can normalise to total comp.
  • ✅ Visa sponsorship detection — a three-tier keyword cascade over teaser, bullets and description classifies each role as explicit_sponsorship, open_to_sponsorship, or no_sponsorship (482/TSS/186/ENS aware).
  • ✅ Full classification data — top-level classification, subClassification, workType and workArrangement (on-site / hybrid / remote).
  • ✅ Rich company & location fields — company name, companyLogo, companyUrl, parsed city / state / postcode, plus isFeatured, roleId and the search teaser.
  • ✅ Detail enrichment — set scrapeDetails: true to visit each job for the full description, skills, and description-level salary/visa parsing.
  • ✅ Filters & targeting — work type, work arrangement, posted-within date range, and per-country (AU / NZ) targeting.
  • ✅ Fast & reliable — pure Cheerio HTTP (no headless browser), with retry + exponential backoff on 429/403, session rotation, and a graceful no-results exit so empty searches never fail the run.
  • ✅ Export anywhere — JSON, CSV, Excel, HTML, XML, RSS, or straight to the Apify API.

🎯 Use cases

  • Recruitment agencies & RPOs — monitor live demand by role and region, benchmark posting velocity, and source target-company lists.
  • Compensation & reward teams — build live salary bands by classification, city and seniority, and model super-inclusive vs exclusive pay.
  • Migration & relocation consultants — filter visaSponsorship: explicit_sponsorship to build Subclass 482/TSS/186 sponsor lists by occupation and demonstrate genuine market demand.
  • Workforce & skills planners — quantify skills gaps, map regional demand heatmaps, and power government or university skills dashboards.
  • B2B sales & lead gen — identify companies hiring 5+ roles per month and time outreach to active-hiring signals.
  • Equity research & macro analysts — track hiring velocity as a high-frequency leading indicator for ASX sectors and corporate earnings.
  • Job boards & aggregators — syndicate fresh, de-duplicated ANZ listings with structured salary and classification.
  • Market researchers & journalists — quantify remote-work adoption, super disclosure, or sector hiring trends across Australia and New Zealand.

📥 Input

Pick a country and location from the menus, optionally type a keyword, and run. Leave everything empty for a fresh mixed sample of the latest jobs (capped for speed). Advanced users can paste SEEK search or job URLs into startUrls.

ParameterTypeDescription
countryselectau (seek.com.au) or nz (seek.co.nz). Default au.
keywordstringJob title or keyword, e.g. software engineer, registered nurse. Empty = all recent jobs.
locationselectPick a city or state/region from the menu, or "All locations" for the whole country.
locationCustomstringFree-text place (e.g. Cairns QLD, Christchurch). Used only when location is "All locations".
workTypeselectall / full-time / part-time / contract / casual.
workArrangementselectall / onsite / hybrid / remote.
dateRangeselectPosted within: 0 (any time), 1, 3, 7, 14, 31 days.
scrapeDetailsbooleanVisit each job for full description, skills, and description-level salary/visa parsing. Slower but richer. Default false.
maxRecordsintegerStop after this many jobs. SEEK caps a single search at ~550. 0 = no limit. Default 100.
maxPagesintegerStop after this many result pages (~22 jobs/page). 0 = no limit.
requestDelayintegerMilliseconds between page requests. 1000–2000 ms recommended. Default 1000.
startUrlsarrayOptional SEEK search or job URLs. Overrides the menus above.
proxyConfigurationproxyResidential proxy is ON by default and required — SEEK blocks datacenter IPs. Match the country to your target site (AU for seek.com.au, NZ for seek.co.nz).
{
"country": "au",
"keyword": "software engineer",
"location": "all-sydney-nsw",
"workType": "full-time",
"dateRange": "7",
"scrapeDetails": true,
"maxRecords": 200,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "AU"
}
}

📤 Output

Every job is one clean dataset item. Fields present on every record include the core listing, location, classification and salary; description, skills and description-level visa detection are populated when scrapeDetails: true. companyLogo, companyUrl, postcode, salaryRaw/salaryMin/salaryMax, salaryHasSuper and visaSponsorship are present when SEEK exposes them for that listing.

{
"jobId": "78234511",
"title": "Senior Software Engineer (Backend Go/Rust)",
"company": "Atlassian",
"companyLogo": "https://image-service-cdn.seek.com.au/logo/atlassian.png",
"companyUrl": "https://www.seek.com.au/companies/atlassian",
"location": "Sydney NSW",
"city": "Sydney",
"state": "NSW",
"suburb": null,
"postcode": "2000",
"classification": "Information & Communication Technology",
"subClassification": "Developers/Programmers",
"workType": "Full time",
"workArrangement": "Hybrid",
"salaryRaw": "$170,000 – $200,000 + super",
"salaryMin": 170000,
"salaryMax": 200000,
"salaryPeriod": "annual",
"salaryHasSuper": true,
"visaSponsorship": "explicit_sponsorship",
"bullets": [
"Greenfield platform team",
"Hybrid: 2 days in Sydney CBD office",
"Visa sponsorship available for the right candidate"
],
"teaser": "Join our platform team building backend services in Go and Rust…",
"description": "We're hiring a senior backend engineer to join our platform team in Sydney…",
"skills": ["Go", "Rust", "PostgreSQL", "Kafka", "AWS"],
"isFeatured": true,
"roleId": "developer-programmer",
"agentName": null,
"listingUrl": "https://au.seek.com/job/78234511",
"listedAt": "2d ago",
"scrapedAt": "2026-06-22T03:14:22.481Z"
}
FieldDescription
jobIdSEEK job identifier (used for de-duplication).
titleJob title.
companyEmployer or agency name.
companyLogoCompany logo image URL (present when available).
companyUrlCompany profile/website URL (present when available).
locationRaw location string from SEEK.
city / state / suburb / postcodeParsed location. state is an AU code (NSW/VIC/QLD/WA/SA/TAS/ACT/NT) — null for NZ.
classificationTop-level industry (e.g. Information & Communication Technology).
subClassificationSecond-level taxonomy (e.g. Developers/Programmers).
workTypeFull time / Part time / Contract/Temp / Casual.
workArrangementOn-site / Hybrid / Remote.
salaryRawOriginal salary text preserved as displayed.
salaryMin / salaryMaxNumeric salary bounds (AUD/NZD).
salaryPeriodannual / hourly / daily / monthly.
salaryHasSupertrue if plus/inclusive of super, false if excluded, null if silent.
visaSponsorshipexplicit_sponsorship / open_to_sponsorship / no_sponsorship (present when signals are found).
bulletsListing card bullet points (array).
teaserShort search-result teaser text.
descriptionFull job description, HTML stripped (with scrapeDetails: true).
skillsStructured skills list (with scrapeDetails: true).
isFeaturedtrue for premium/featured listings.
roleIdSEEK role identifier.
agentNameRecruiter name, if posted via an agency.
listingUrlJob detail URL on SEEK.
listedAtPosting age / listing date.
scrapedAtISO-8601 scrape timestamp.

🔁 Pagination & scale

The SEEK scraper paginates automatically: for each search it requests page 1, then appends ?page=2, ?page=3, and so on, collecting every job card from SEEK's embedded window.SEEK_REDUX_DATA state. Results are de-duplicated by jobId across all pages, so you never get repeats even when SEEK repeats listings. Pagination stops when a page returns no jobs, when a page yields only already-seen jobs (SEEK looping the last page), or when your maxRecords / maxPages limit is hit.

A single SEEK search facet caps at roughly 550 results (~22 jobs/page × ~25 pages). To collect larger datasets, fan out across multiple cities, states or classifications using several startUrls — the dataset is de-duplicated across all of them in one run.

Because the actor reads SEEK's own JSON state blob (search → results.results.jobs[], detail → jobdetails.result.job) with a string-aware balanced-brace matcher, and falls back to a DOM parser only if that state is missing, it stays resilient to SEEK's layout changes.

⚙️ How to use

  1. Open the actor on Apify Console and set country, keyword and location (or paste startUrls).
  2. Keep the residential proxy ON with the country matched to your target site (AU or NZ).
  3. Optionally enable scrapeDetails for full descriptions, skills and visa detection.
  4. Set maxRecords / maxPages to control volume, then click Start.
  5. Download results as JSON, CSV, Excel, XML, HTML or RSS, or pull them via the Apify API.
  6. Automate: schedule daily runs (e.g. 8am AEST) and push new rows to Google Sheets, Make, Zapier, n8n, Slack or a webhook using Apify's native integrations.

💡 Tips

  • Match proxy country to the site — use apifyProxyCountry: "AU" for seek.com.au and "NZ" for seek.co.nz for the most complete, geo-correct results.
  • Enable scrapeDetails only when you need it — it adds one HTTP request per job. Without it you still get salary, super, classification and a visa hint from the teaser/bullets.
  • Fan out to beat the ~550 cap — paste multiple city or classification startUrls to sweep a whole state or sector in one de-duplicated run.
  • Normalise total comp — when salaryHasSuper is false, multiply base by 1.115 for an AU super-inclusive figure.
  • Filter after the fact — e.g. items.filter(j => j.visaSponsorship === 'explicit_sponsorship') or j.salaryPeriod === 'daily' for day-rate contracts.
  • Keep requestDelay at 1000–2000 ms for smooth, reliable runs that avoid rate-limits.

❓ FAQ

Is scraping SEEK legal? This actor collects only publicly available job postings — it does not scrape candidate profiles, résumés or any personal data. You are responsible for complying with SEEK's Terms of Service and applicable privacy law (Australian Privacy Act, NZ Privacy Act, GDPR). Use the data for legitimate business intelligence, recruitment and market research.

Do I need a SEEK login or API key? No. SEEK search and detail pages are publicly accessible, and there is no official public SEEK API for bulk job data — this actor is that API. You only need an Apify account.

Do I need proxies? Yes — residential proxy is required and is ON by default. SEEK blocks datacenter IPs, so keep the proxy enabled with the RESIDENTIAL group and the country matched to your target site. The actor also retries with exponential backoff and session rotation on 429/403.

How many results can I get, and how fast? A single SEEK search facet caps at ~550 results (~22 jobs/page). Search-only runs are fast; enabling scrapeDetails adds one request per job. For larger datasets, fan out across multiple cities or classifications in one run.

What export formats are supported? JSON, CSV, Excel (XLSX), HTML, XML and RSS from the dataset view, plus JSON / JSON Lines via the Apify API for streaming into your own pipeline.

How fresh is the data? Every run scrapes SEEK live, so results reflect the current listings at run time. Schedule daily (or more frequent) runs to keep a dashboard up to date; scrapedAt records the exact timestamp.

Can I filter by salary, work type, remote, or visa sponsorship? Yes. Use the workType, workArrangement and dateRange inputs at search time, then filter the structured salaryMin/salaryMax, salaryPeriod, salaryHasSuper and visaSponsorship fields in your dataset.

Can I scrape both Australia and New Zealand in one run? Run twice (set country to au then nz) and merge, or paste startUrls from both domains into a single run — results are de-duplicated together.

What's the difference between the salaryHasSuper values? true = salary includes or is plus superannuation; false = explicitly excludes super; null = the listing is silent. For total comp in AU, add ~11.5% when super is excluded.

Why did a run return zero jobs? Usually a very niche keyword/location or an out-of-range date filter — try a broader search or "Any time". If the state blob can't be read, the IP may have been blocked; confirm the residential proxy is ON with the correct country.


The most complete SEEK scraper on Apify — structured salary + super parsing, visa sponsorship detection, and full classification data for Australia and New Zealand. ▶️ Hit Start to pull your first SEEK jobs in seconds.