← Blog

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.

Epic Scrapers

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.

What you can extract from SEEK

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.

How to scrape SEEK jobs

  1. Open the actor on Apify and go to the Input tab.
  2. Enter keywords, the only required field.
  3. Set where to a city or region such as Melbourne VIC, or leave it as All Australia.
  4. Add filters, then click Start.
  5. Export the dataset as JSON, CSV, Excel or HTML.

Example: senior hybrid tech roles in Sydney

{
  "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.

Example: casual hourly roles

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
}

The filter codes, in one place

  • 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.

Sample output

{
  "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 API alternative: run it over HTTP

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")

Use cases

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.

Other job boards

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.

FAQ

Does SEEK have a public API?

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.

Can I filter for remote jobs?

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.

Does it work for SEEK New Zealand?

It targets SEEK Australia (au.seek.com). For New Zealand jobs, nz.indeed.com is available through the Indeed scraper.

How many jobs can I scrape?

Up to 100 pages of 100 results, so 10,000 per search. Set maxPages to 0 for no page cap.

Start scraping SEEK

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.