Jobs
SEEK Scraper: Scrape SEEK Jobs in Australia Without an API
Scrape SEEK Australia jobs by keyword, salary, work type, classification and date. Get titles, salary labels and categories as JSON or CSV, plus API code.
Jobs
Scrape SEEK Australia jobs by keyword, salary, work type, classification and date. Get titles, salary labels and categories as JSON or CSV, plus API code.
SEEK is Australia’s largest job marketplace, and for most professional roles in Sydney, Melbourne, Brisbane or Perth it’s the only board that matters. That makes it the best public source for Australian labour market data: which classifications are hiring, what salaries employers advertise, and how much work is hybrid. SEEK doesn’t offer a public API to get at any of that.
The SEEK Job Scraper uses the same filters you’d set on seek.com.au (keywords, location, salary range, work type, work arrangement, classification, date listed and distance) and returns each result as a structured row. No SEEK account or API key is needed.
| Field | Example |
|---|---|
id |
91959303 |
title, teaser |
“Software Engineer”, short summary |
companyName, advertiserName, advertiserId |
Employer, and who placed the ad |
salaryLabel |
“Salary + Equity up to $300k” |
listingDate, listingDateDisplay |
ISO 8601 date, “13h ago” |
locations, locationCountries |
["Sydney NSW"], ["AU"] |
workTypes |
["Full time"] |
workArrangements |
["Hybrid"] |
classificationNames, classificationIds |
“Information & Communication Technology”, 6281 |
subclassificationNames, subclassificationIds |
“Engineering - Software”, 6290 |
bulletPoints |
The three selling points shown on the ad |
isFeatured, displayType |
Promoted vs standard listings |
brandingSerpLogoUrl |
Employer logo |
SEEK’s classification tree is the standout. Every job is tagged with a classification and subclassification, so you can count roles by category without guessing from job titles. The bulletPoints array is the employer’s own pitch, which is useful for spotting perks like equity, four-day weeks or visa sponsorship.
The scraper works from search results, so you get the teaser and bullet points but not the full job description.
keywords, the only required field.where to a city or region such as Melbourne VIC, or leave it as All Australia.{
"keywords": "data engineer",
"where": "Sydney NSW",
"distance": 25,
"salaryRange": "150000-",
"salaryType": "annual",
"workType": "242",
"workArrangement": "3",
"classification": "6281",
"daterange": 14,
"sortMode": "ListedDate",
"maxPages": 10,
"pageSize": 100
}
That pulls full-time (242), hybrid (3) ICT (6281) roles advertising $150k or more, listed in the last two weeks, within 25 km of Sydney. Newest come first.
SEEK lets employers advertise hourly rates, and so does the scraper. This is useful for hospitality, retail and healthcare:
{
"keywords": "barista",
"where": "Brisbane QLD",
"salaryType": "hourly",
"salaryRange": "30-",
"workType": "245,243",
"daterange": 7,
"maxPages": 5
}
workType: 242 Full time, 243 Part time, 244 Contract/Temp, 245 Casual. Comma-separate to combine.workArrangement: 2 On-site, 3 Hybrid.daterange: 1, 3, 7, 14, 30 or 60 days. 0 means any time.classification / subclassification: SEEK’s numeric category IDs, e.g. 6281 ICT, 6290 Engineering - Software, 6263 Design & Architecture, 6268 Graphic Design, 6008 Marketing & Communications.salaryRange: min-max or min- as a string, read as annual or hourly depending on salaryType.sortMode: KeywordRelevance or ListedDate.Volume is maxPages multiplied by pageSize. With 100 pages of 100 results you can pull up to 10,000 jobs per search.
{
"id": "91959303",
"title": "Software Engineer",
"companyName": "Techno Recruitment",
"advertiserName": "Techno Recruitment",
"salaryLabel": "Salary + Significant Equity up to $300k",
"listingDate": "2026-05-07T01:55:26Z",
"listingDateDisplay": "13h ago",
"isFeatured": true,
"displayType": "promoted",
"locations": ["Sydney NSW"],
"workTypes": ["Full time"],
"workArrangements": ["Hybrid"],
"classificationNames": ["Information & Communication Technology"],
"subclassificationNames": ["Engineering - Software"],
"bulletPoints": [
"Be part of a world class AI Engineering team building AI Engines within FinTech",
"Serious equity component, autonomy and no beauracracy"
]
}
SEEK has APIs for advertisers posting jobs, but nothing public for searching them. The quickest way to use the scraper as a SEEK API is the synchronous endpoint, which runs the actor and returns the dataset in one request:
curl -X POST \
"https://api.apify.com/v2/acts/epicscrapers~seek-job-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN&format=csv" \
-H "Content-Type: application/json" \
-d '{"keywords":"registered nurse","where":"All Australia","daterange":1,"sortMode":"ListedDate","maxPages":3,"pageSize":100}'
Drop &format=csv to get JSON. In Python:
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("epicscrapers/seek-job-scraper").call(run_input={
"keywords": "project manager",
"where": "Perth WA",
"classification": "6281",
"maxPages": 5,
"pageSize": 100,
})
jobs = list(client.dataset(run["defaultDatasetId"]).iterate_items())
hybrid = [j for j in jobs if "Hybrid" in (j.get("workArrangements") or [])]
print(f"{len(hybrid)}/{len(jobs)} Perth PM roles are hybrid")
Salary benchmarking by band. SEEK’s salary filter is applied by SEEK itself, so you can count how many roles sit in each band. Run the same search with salaryRange set to 80000-100000, 100000-120000, 120000-150000 and so on, and you get a distribution even when salaryLabel text varies. Split by where to compare Sydney against Melbourne or Adelaide.
Lead generation for recruitment agencies. Compare advertiserName to companyName and filter out ads already placed by agencies. Employers advertising directly and repeatedly in one subclassification are good prospects for a specialist recruiter. Group by companyName and subclassificationNames to see who’s hiring what.
Labour market dashboards. Schedule a weekly run per classification and chart job counts over time, along with the share of hybrid (workArrangements) and contract (workTypes) roles. That’s a solid proxy for sector demand, published well before official vacancy statistics.
Job alerts. A daily task with daterange: 1 and sortMode: "ListedDate" gives you only fresh ads. Deduplicate on id, then push to Slack or Google Sheets with Apify integrations.
Employer branding research. Mine bulletPoints across a classification to see which perks competitors lead with, and how often isFeatured ads appear in your category.
For the Indian market, see the Naukri scraper guide. If you need Australia alongside other countries in one consistent schema, or full descriptions and numeric salary fields, Indeed runs au.indeed.com as one of 62 sites. The Indeed scraper guide covers it. Many Australian analysts run both, since the employer mix on SEEK and Indeed differs.
Not for searching jobs. SEEK’s APIs are for advertisers and recruitment software partners posting ads. To read listings at scale, a scraper is the practical option.
The scraper reads public search results only. It doesn’t log in, touch candidate profiles or collect applicant data. Review SEEK’s terms and the Australian Privacy Act for your use case. This isn’t legal advice.
The work arrangement filter supports 2 (On-site) and 3 (Hybrid). For remote roles, add terms like “remote” to your keywords and check workArrangements in the output.
It targets SEEK Australia (au.seek.com). For New Zealand jobs, nz.indeed.com is available through the Indeed scraper.
Up to 100 pages of 100 results, so 10,000 per search. Set maxPages to 0 for no page cap.
Enter a keyword, pick your filters, and you’ll have SEEK jobs in a spreadsheet in minutes. Run the SEEK Job Scraper on Apify or see the actor page.