SEEK Scraper | Australia & NZ Job Listings with Salary
Pricing
from $1.50 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
98
Total users
7
Monthly active users
5 days ago
Last modified
Categories
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/salaryMaxand 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=Nacross 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, asalaryPeriod(annual/hourly/daily/monthly), asalaryHasSuperflag, and the originalsalaryRawstring. WithscrapeDetails, 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, orno_sponsorship(482/TSS/186/ENS aware). - ✅ Full classification data — top-level
classification,subClassification,workTypeandworkArrangement(on-site / hybrid / remote). - ✅ Rich company & location fields — company name,
companyLogo,companyUrl, parsedcity/state/postcode, plusisFeatured,roleIdand the searchteaser. - ✅ Detail enrichment — set
scrapeDetails: trueto visit each job for the fulldescription,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_sponsorshipto 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.
| Parameter | Type | Description |
|---|---|---|
country | select | au (seek.com.au) or nz (seek.co.nz). Default au. |
keyword | string | Job title or keyword, e.g. software engineer, registered nurse. Empty = all recent jobs. |
location | select | Pick a city or state/region from the menu, or "All locations" for the whole country. |
locationCustom | string | Free-text place (e.g. Cairns QLD, Christchurch). Used only when location is "All locations". |
workType | select | all / full-time / part-time / contract / casual. |
workArrangement | select | all / onsite / hybrid / remote. |
dateRange | select | Posted within: 0 (any time), 1, 3, 7, 14, 31 days. |
scrapeDetails | boolean | Visit each job for full description, skills, and description-level salary/visa parsing. Slower but richer. Default false. |
maxRecords | integer | Stop after this many jobs. SEEK caps a single search at ~550. 0 = no limit. Default 100. |
maxPages | integer | Stop after this many result pages (~22 jobs/page). 0 = no limit. |
requestDelay | integer | Milliseconds between page requests. 1000–2000 ms recommended. Default 1000. |
startUrls | array | Optional SEEK search or job URLs. Overrides the menus above. |
proxyConfiguration | proxy | Residential 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"}
| Field | Description |
|---|---|
jobId | SEEK job identifier (used for de-duplication). |
title | Job title. |
company | Employer or agency name. |
companyLogo | Company logo image URL (present when available). |
companyUrl | Company profile/website URL (present when available). |
location | Raw location string from SEEK. |
city / state / suburb / postcode | Parsed location. state is an AU code (NSW/VIC/QLD/WA/SA/TAS/ACT/NT) — null for NZ. |
classification | Top-level industry (e.g. Information & Communication Technology). |
subClassification | Second-level taxonomy (e.g. Developers/Programmers). |
workType | Full time / Part time / Contract/Temp / Casual. |
workArrangement | On-site / Hybrid / Remote. |
salaryRaw | Original salary text preserved as displayed. |
salaryMin / salaryMax | Numeric salary bounds (AUD/NZD). |
salaryPeriod | annual / hourly / daily / monthly. |
salaryHasSuper | true if plus/inclusive of super, false if excluded, null if silent. |
visaSponsorship | explicit_sponsorship / open_to_sponsorship / no_sponsorship (present when signals are found). |
bullets | Listing card bullet points (array). |
teaser | Short search-result teaser text. |
description | Full job description, HTML stripped (with scrapeDetails: true). |
skills | Structured skills list (with scrapeDetails: true). |
isFeatured | true for premium/featured listings. |
roleId | SEEK role identifier. |
agentName | Recruiter name, if posted via an agency. |
listingUrl | Job detail URL on SEEK. |
listedAt | Posting age / listing date. |
scrapedAt | ISO-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
- Open the actor on Apify Console and set
country,keywordandlocation(or pastestartUrls). - Keep the residential proxy ON with the country matched to your target site (AU or NZ).
- Optionally enable
scrapeDetailsfor full descriptions, skills and visa detection. - Set
maxRecords/maxPagesto control volume, then click Start. - Download results as JSON, CSV, Excel, XML, HTML or RSS, or pull them via the Apify API.
- 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
scrapeDetailsonly 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
startUrlsto sweep a whole state or sector in one de-duplicated run. - Normalise total comp — when
salaryHasSuperisfalse, multiply base by 1.115 for an AU super-inclusive figure. - Filter after the fact — e.g.
items.filter(j => j.visaSponsorship === 'explicit_sponsorship')orj.salaryPeriod === 'daily'for day-rate contracts. - Keep
requestDelayat 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.
🔗 Related scrapers
- Workana Jobs Scraper — Freelance Projects, Budgets & Skills
- ZipRecruiter Job Listings & Salary Scraper (US, UK, IE, CA)
- Xing Jobs Scraper — DACH Job Listings & Salaries
- Naukri Scraper — India Jobs, Salary & Company Ratings
- GulfTalent Jobs Scraper — Gulf Jobs, Salaries & Leads
- Arbeitsagentur Job Scraper — Salary, Contact & Details
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.