SEEK Scraper — Australia & NZ Jobs with Salary Data avatar

SEEK Scraper — Australia & NZ Jobs with Salary Data

Pricing

from $0.45 / 1,000 job scrapeds

Go to Apify Store
SEEK Scraper — Australia & NZ Jobs with Salary Data

SEEK Scraper — Australia & NZ Jobs with Salary Data

Scrape SEEK.com.au & seek.co.nz job listings: titles, companies, salaries, categories, full descriptions, geo-coordinates and company ratings. Filter by keyword, location, radius, salary range and category. $0.65/1,000 results. Deduplication and daily incremental feeds built in.

Pricing

from $0.45 / 1,000 job scrapeds

Rating

0.0

(0)

Developer

Unfenced Group

Unfenced Group

Maintained by Community

Actor stats

2

Bookmarked

102

Total users

16

Monthly active users

9 days ago

Last modified

Share

SEEK.com.au Scraper

seek-com-au-scraper

Extract structured job listings from SEEK.com.au — Australia's largest job board with 150,000–200,000 active listings. Search by keyword, location, salary, category and more. No API key required. Pay per result at $0.65/1,000 listings — no monthly fees, no minimums.


Why this scraper?

📋 Complete job data

Title, company, location, work type, remote/hybrid arrangement, categories and — with detail fetching — the full job description in HTML, plain text and Markdown.

💰 Structured salary

Raw salary label plus parsed salaryMin, salaryMax, salaryPeriod and currency. Filter results by a salary range (annual or hourly) directly at the source.

🔍 Precise filters

Filter by keyword, location, radius, work type, category, sub-category, salary range and listing age. Every filter is applied server-side by SEEK, so you only pay for matching results.

📍 Enriched output

Geo-coordinates for each location, structured location and category hierarchies, employer profile links, and optional company ratings and review data.

🔄 Incremental feeds

Skip already-seen jobs with the built-in 90-day deduplication store. Run daily and only collect new listings, with repost detection built in.


Input parameters

ParameterTypeDefaultDescription
searchQuerystring"developer"Keywords to search for, e.g. software engineer or nurse. Leave empty to browse all jobs.
locationstringAll AustraliaLocation label as used on SEEK, e.g. Sydney NSW, Melbourne VIC, All Australia.
radiusKminteger(empty)Include jobs within this many km of the location. Requires a specific location (not All Australia).
workTypestring(empty)Employment type: Full time, Part time, Contract/Temp or Casual/Vacation.
classificationIdinteger(empty)SEEK category ID, e.g. 1223 for ICT. Leave empty for all categories.
subClassificationIdinteger(empty)SEEK sub-category ID. Requires classificationId to be set.
salaryMininteger(empty)Only return jobs with a listed salary at or above this value.
salaryMaxinteger(empty)Only return jobs with a listed salary at or below this value.
salaryTypestringannualWhether salaryMin/salaryMax are annual or hourly amounts.
daysOldinteger(empty)Only return jobs listed within this many days. E.g. 7 = last week.
sortModestringListedDateSort by ListedDate (most recent) or KeywordRelevance.
fetchDetailsbooleanfalseFetch the full job description and detail-only fields. Slower but complete.
fetchCompanyProfilebooleanfalseFetch each employer's SEEK company page for rating, reviews, industry, size and website. One extra request per unique company.
startUrlsarray(empty)Direct SEEK job or search URLs to scrape instead of running a search.
skipRepostsbooleanfalseSkip jobs already returned in a previous run (90-day deduplication store).
countrystringAUWhich SEEK site to scrape: AU (seek.com.au) or NZ (seek.co.nz).
includeKeywordsarray(empty)Post-filter: keep only jobs whose text contains at least one of these words.
excludeKeywordsarray(empty)Post-filter: drop jobs whose text contains any of these words.
fromDatestring(empty)Post-filter: keep jobs listed on or after this date (YYYY-MM-DD).
toDatestring(empty)Post-filter: keep jobs listed on or before this date (YYYY-MM-DD).
maxItemsinteger5Maximum number of listings to return.

Output schema

Fields the source does not provide for a given job are returned as null (or an empty array), never omitted.

Always present

FieldTypeDescription
idstringSEEK job ID
urlstringFull URL to the job listing
titlestringJob title
companystringAdvertiser / company name
locationstringPrimary location label, e.g. Sydney NSW
locationsarrayAll location labels for the listing
salaryLabelstring | nullRaw salary string, e.g. $80,000 – $90,000 per year (null if not disclosed)
salaryMinnumber | nullParsed minimum salary (null if not disclosed)
salaryMaxnumber | nullParsed maximum salary (null if not disclosed)
salaryPeriodstring | nullYEAR, MONTH, WEEK, DAY or HOUR
currencystringAUD (or NZD for country: NZ)
workTypestringWork type, e.g. Full time
workArrangementstring | nullRemote/hybrid arrangement, e.g. Hybrid
classificationsarrayCategory and sub-category labels
classificationStructuredarrayCategory/sub-category IDs and labels
teaserstring | nullShort job preview
bulletPointsarrayHighlight bullet points (premium listings only)
isFeaturedbooleanWhether the listing is featured/promoted
advertiserobject{ id, name, isVerified, registrationDate } (last two require fetchDetails)
employerobject{ id, name, companyId, companyUrl } — company profile link
roleIdstring | nullSEEK role slug
tagsarrayListing tags, e.g. Early applicant
locationHierarchyarrayStructured location hierarchy per location
displayTypestringSEEK display type, e.g. standard or promoted
listingDateDisplaystringHuman-readable listing age, e.g. 3d ago
jobScorenumberQuality/relevance score 0–3
jobScoreReasonsarrayReasons behind the score, e.g. salary_disclosed, full_description, recent_7d
latitudenumber | nullGeocoded latitude of the location
longitudenumber | nullGeocoded longitude of the location
publishDatestringListing date (Sydney timezone), YYYY-MM-DD
publishDateISOstringSame as publishDate
listingDateRawstringRaw ISO listing timestamp from the source
contentHashstringContent fingerprint for change detection
changeStatusstring | nullNEW, UPDATED or null across runs
isRepostbooleanWhether this job was seen in a previous run
originalPublishDatestring | nullFirst-seen date (populated when isRepost is true)
originalUrlstring | nullFirst-seen URL (populated when isRepost is true)
summarystringOne-line title — company — location summary
sourcestringseek.com.au (or seek.co.nz)
scrapedAtstringISO timestamp of extraction

With fetchDetails: true

FieldTypeDescription
descriptionstring | nullFull HTML job description
descriptionTextstring | nullPlain-text description
descriptionMarkdownstring | nullMarkdown description
isExpiredbooleanWhether the listing has expired
statusstring | nullListing lifecycle status, e.g. Active
isLinkOutboolean | nullWhether applying links out to an external site
expiresAtUtcstring | nullListing expiry timestamp (UTC)

With fetchCompanyProfile: true

FieldTypeDescription
companyProfileobject | null{ name, isClaimed, website, industry, size, rating, reviewCount, recommendedPct, workLifeBalance, careerOpportunity, executiveMgmt, diversity }

Example record

{
"id": "79834521",
"url": "https://www.seek.com.au/job/79834521",
"title": "Registered Nurse",
"company": "St Vincent's Health",
"location": "Sydney NSW",
"locations": ["Sydney NSW"],
"salaryLabel": "$80,000 – $95,000 per year",
"salaryMin": 80000,
"salaryMax": 95000,
"salaryPeriod": "YEAR",
"currency": "AUD",
"workType": "Full time",
"workArrangement": "On-site",
"classifications": ["Nursing - General Medical & Surgical (Healthcare & Medical)"],
"classificationStructured": [{ "id": "1211", "label": "Healthcare & Medical", "subId": "6342", "subLabel": "Nursing - General Medical & Surgical" }],
"teaser": "Join our surgical ward team in a permanent full-time role.",
"bulletPoints": ["Permanent full-time", "Salary packaging available", "Career development"],
"isFeatured": false,
"advertiser": { "id": "60069543", "name": "St Vincent's Health", "isVerified": true, "registrationDate": "2014-03-01T00:00:00Z" },
"employer": { "id": "3037601", "name": "St Vincent's Health", "companyId": "3037601", "companyUrl": "https://www.seek.com.au/companies/..." },
"roleId": "Registered-Nurse",
"tags": ["Early applicant"],
"jobScore": 3,
"jobScoreReasons": ["salary_disclosed", "full_description", "recent_7d"],
"latitude": -33.8688,
"longitude": 151.2093,
"publishDateISO": "2026-07-05",
"status": "Active",
"isLinkOut": false,
"expiresAtUtc": "2026-08-04T13:59:59Z",
"isRepost": false,
"source": "seek.com.au"
}

Examples

Search by keyword and location

{
"searchQuery": "data engineer",
"location": "Melbourne VIC",
"maxItems": 50
}

Filter by salary range and work type

{
"searchQuery": "product manager",
"location": "Sydney NSW",
"workType": "Full time",
"salaryMin": 120000,
"salaryMax": 200000,
"salaryType": "annual",
"maxItems": 100
}

Get full descriptions for specific listings

{
"startUrls": [
{ "url": "https://www.seek.com.au/job/79834521" },
{ "url": "https://www.seek.com.au/job/79801234" }
],
"fetchDetails": true
}

Daily incremental feed (new listings only)

{
"searchQuery": "nurse",
"location": "All Australia",
"daysOld": 1,
"sortMode": "ListedDate",
"skipReposts": true,
"maxItems": 10000
}

💰 Pricing

$0.65 per 1,000 results — you only pay for successfully retrieved listings. Failed retries and filtered reposts are never charged.

ResultsCost
100~$0.07
1,000~$0.65
10,000~$6.50
100,000~$65.00

Volume discounts apply automatically on higher-tier Apify plans.

Flat-rate alternatives typically charge $29–$49/month regardless of usage.

Use the Max results cap in the input to control your spend exactly.


Performance

ModeResults/min
Search only (fetchDetails: false)~5,000
With full descriptions (fetchDetails: true)~1,300

Known limitations

  • Salary availability — only ~30% of SEEK listings publicly display salary figures, so salaryLabel, salaryMin, salaryMax and salaryPeriod are null for most results. The salaryMin/salaryMax filter still works on the employer's entered range even when the figure is hidden.
  • Push notifications: get new results delivered to Telegram, Discord, Slack, WhatsApp or any webhook the moment a scheduled run finds them
  • Contact details — SEEK does not expose recruiter names, emails or phone numbers, and this scraper never collects personal contact data.
  • Applicant counts — SEEK does not expose applicant numbers through its public API, so applicant-count data is not available.
  • Apply URL — SEEK does not expose a separate application URL; the listing URL is the entry point for applying. The isLinkOut flag indicates when applying redirects to an external site.
  • Company profile datafetchCompanyProfile fields are only available for employers with a claimed SEEK company page.

Technical details

  • Source: seek.com.au and seek.co.nz — Australia & New Zealand job listings
  • Coverage: everything the public search exposes, filterable via the input parameters above
  • Retry: automatic retry on network errors with exponential backoff
  • Formats: results export to JSON, CSV and Excel from the dataset

Rate this actor

If this scraper does its job, a short review on the Reviews tab helps other users find it. Something not working? Open an issue on the Issues tab instead — issues get fixed.


Need a custom scraper?

Unfenced Group builds Apify actors for any website — for free.

If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.

Get in touch: www.unfencedgroup.nl