SEEK Jobs Scraper avatar

SEEK Jobs Scraper

Pricing

from $0.28 / 1,000 results

Go to Apify Store
SEEK Jobs Scraper

SEEK Jobs Scraper

$0.4/1K jobs | Scrape job listings from SEEK, JobsDB and JobStreet across 8 countries with advanced filters

Pricing

from $0.28 / 1,000 results

Rating

0.0

(0)

Developer

Vali G

Vali G

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

14 days ago

Last modified

Categories

Features

Limited permissions

Share

Scrape job listings from SEEK and the associated regional job boards using keyword, location, salary, work-type, work-arrangement, classification, and date filters. The Actor returns structured job listing data, including employer and advertiser details, listing dates, salary information when available, and the job description content.

Supported countries and job boards

Choose a country with the country input:

Country codeMarketJob board
auAustraliaSEEK
nzNew ZealandSEEK
hkHong KongJobsDB
thThailandJobsDB
idIndonesiaJobStreet
myMalaysiaJobStreet
phPhilippinesJobStreet
sgSingaporeJobStreet

Input

All input fields are optional in the supplied input schema. The defaults are country: "au" and limit: 100.

FieldTypeDescriptionExample
countrystringCountry/market code. One of au, nz, hk, th, id, my, ph, or sg. Defaults to au."au"
keywordsstringSearch terms describing a role, industry, or skill."Software developer"
locationstringSuburb, city, or region to search in."Sydney"
salarytypestringSalary period: annual, monthly, or hourly."annual"
salaryrangestringSalary range written as minimum-maximum. Use values that match the chosen salary period."60000-120000"
worktypearray of stringsFilter by work type. IDs: 242 = Full time, 243 = Part time, 244 = Contract/Temp, 245 = Casual/Vacation.["242", "243"]
workarrangementarray of stringsFilter by arrangement. IDs: 1 = On-site, 2 = Hybrid, 3 = Remote.["2", "3"]
classificationarray of stringsFilter by job classification IDs. Choose available classifications in the Actor input UI.["1200", "6281"]
subclassificationarray of stringsFilter by subclassification IDs. Supply the relevant IDs as strings.["6140", "1303"]
daterangestringListing age: "" = Any time, "1" = Today, "3" = Last 3 days, "7" = Last 7 days, "14" = Last 14 days, "31" = Last 30 days."7"
sortmodestringSort by KeywordRelevance (relevance) or ListedDate (date)."ListedDate"
limitintegerMaximum number of results to return, from 1 to 500. Defaults to 100.100

Available classifications

The supplied schema exposes these classification labels: Accounting; Administration & Office Support; Advertising, Arts & Media; Banking & Financial Services; Call Centre & Customer Service; CEO & General Management; Community Services & Development; Construction; Consulting & Strategy; Design & Architecture; Education & Training; Engineering; Farming, Animals & Conservation; Government & Defence; Healthcare & Medical; Hospitality & Tourism; Human Resources & Recruitment; Information & Communication Technology; Insurance & Superannuation; Legal; Manufacturing, Transport & Logistics; Marketing & Communications; Mining, Resources & Energy; Real Estate & Property; Retail & Consumer Products; Sales; Science & Technology; Self Employment; Sport & Recreation; Trades & Services.

Schema note: The provided classification configuration contains 29 IDs but 30 labels. To avoid documenting an incorrect ID-to-label mapping, choose classifications from the Actor's input UI and verify the schema mapping if you need to submit classification IDs programmatically.

Example input

Search for software developer jobs in Sydney, posted in the last week, with an annual salary range and hybrid or remote work options:

{
"country": "au",
"keywords": "Software developer",
"location": "Sydney",
"salarytype": "annual",
"salaryrange": "60000-120000",
"worktype": ["242", "243"],
"workarrangement": ["2", "3"],
"daterange": "7",
"sortmode": "KeywordRelevance",
"limit": 100
}

You can omit any filters you do not need. For example, to collect recent listings across all locations, set country, daterange, and limit, and leave keywords and location out.

Output

The Actor returns structured job records. The exact fields available depend on the listing and market; some values may be null, empty, or absent. A representative record can contain the following fields:

FieldDescription
idJob listing identifier.
titleJob title.
urlLink to the job listing.
locationLocation object, which may include countryCode, country, suburb, state, and postcode.
advertiserAdvertiser details such as name, verification status, and registration date.
companyEmployer details such as company ID/name, profile or branding URLs, description, industry, size, website, reviews, and benefits, when available.
recruiterRecruiter name and profile photo URL, when available.
categoriesCategory objects with IDs and names.
classificationsHuman-readable classification labels.
workTypesWork-type IDs and names.
workArrangementsWork-arrangement IDs and names.
listedAtListing timestamp.
expiresAtExpiration timestamp, when available.
salarySalary period, minimum, maximum, and currency, when disclosed.
isLinkOutIndicates whether the listing links out to another application destination.
contactMatchesContact details matched to the listing, when available.
contentJob description content, which may contain HTML.
applicationsCountApplication count, when provided by the source.

Example output

The following is a shortened example showing the general record shape:

{
"id": "94630842",
"title": "Atlassian Platform Advisor",
"url": "https://au.seek.com/job/94630842",
"location": {
"countryCode": "AU",
"country": "Australia",
"suburb": "Adelaide",
"state": "South Australia",
"postcode": "5000"
},
"advertiser": {
"name": "EGM Partners",
"isVerified": true,
"registrationDate": "2015-08-31T00:28:52.000Z"
},
"categories": [
{ "id": "6283", "name": "Business/Systems Analysts" },
{ "id": "6281", "name": "Information & Communication Technology" }
],
"workTypes": [
{ "id": "242", "name": "Full time" }
],
"workArrangements": [
{ "id": "2", "name": "Hybrid" }
],
"listedAt": "2026-09-15T00:56:17.000Z",
"expiresAt": "2026-10-14T23:55:00.000Z",
"salary": {
"period": "annual",
"min": 120000,
"max": 130000,
"currency": "AUD"
},
"isLinkOut": false,
"contactMatches": [
{
"type": "Email",
"value": "caitlin.shears@egmpartners.com.au"
}
],
"content": "<!-- html content -->",
"applicationsCount": 11
}

How to use

  1. Open the Actor in Apify Console.
  2. Enter the desired search terms and filters in the Input tab.
  3. Start the Actor.
  4. Inspect the run's dataset to view or export the results.

Notes

  • Results depend on the selected market, available listings, and filters accepted by the underlying job board.
  • Salary and company details are only available when the source listing provides them. Salary currency depends on the selected market.
  • The content field may contain HTML; parse or clean it if you need plain text.
  • The limit input is capped at 500 results.
  • Use KeywordRelevance or ListedDate for sortmode; these are the accepted values in the supplied input schema.