Pricing
from $1.00 / 1,000 results
Seek.com.au Jobs Scraper
Scrape Seek.com.au job listings with titles, companies, locations, salaries, work arrangements, and full descriptions. HTTP-only, no login required.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
14
Total users
4
Monthly active users
2 months ago
Last modified
Categories
Share
Scrape jobs from Seek.com.au β titles, companies, locations, salaries, work types, arrangements, classifications, and full descriptions. HTTP-only; no login, no cookies, no proxy required.
Output (per job)
type=job_seekid,url,jobLink(alias ofurl)title,company,companyLogolocation={ city, state, postCode, country }locationDescriptionβ human-readable label (e.g."Mulgrave, Melbourne VIC")locationAreaβ Seek tracking area (e.g."Eastern Suburbs")broaderLocationNameβ parent region (e.g."Melbourne")workTypeβ e.g."Full Time","Contract/Temp"workTypeLabelsβ raw enum list (e.g.["FULL_TIME"])workArrangementβ display text (e.g."On-site","Hybrid","Remote")workArrangementTypesβ enum list (e.g.["ONSITE"])salary,salaryDetails={ min, max, currency, type }postedAt,postedAtLabel(e.g."2d ago"),expiresAtclassification,subClassificationnormalisedRoleTitle,normalisedOrganisationNamedescriptionHtml,descriptionTextteaserβ short 1-line summarybulletPoints(list)questionnaire(list of screening questions, when present)recruiterName,recruiterAgency,recruiterProfileadvertiserId,advertiserName,advertiserVerifiedisPrivateAdvertiser(true when advertiser posts without a company identity)isLinkOut(true = external direct-apply flow)isVerified,isExpired,status,sourceZonedisplayType,isFeatured,isPremium,isStandout,isBranded(listing promo flags)applyUrl,applyLink(alias),directApplyUrl(when external)phoneNumber(when recruiter provides one)videoUrl,videoPosition(when job includes an advertiser video)branding={ logoUrl, coverImageUrl, thumbnailCoverImageUrl, id }companyId,companySlug,companyIndustry,companySize,companyWebsitecompanyDescription,companyRating,companyReviewCount,companyPerkscompanyProfile(raw nested profile object, when returned)emails,phoneNumbers(extracted from description text)scrapedAt
If a search returns zero matching jobs, a single job_seek_blocked sentinel record is emitted.
Input
| Field | Type | Description |
|---|---|---|
searchUrls | string[] | Seek search or job URLs. Prefill: https://www.seek.com.au/python-jobs. |
searchTerm | string | Keywords used to build a search URL when searchUrls are missing. |
location | string | Optional location, e.g. "Sydney NSW". Combined with searchTerm. |
workTypes | string[] | Filter by work type (Full Time, Part Time, Contract/Temp, Casual/Vacation). |
workArrangements | string[] | Filter by work arrangement (On-site, Hybrid, Remote). |
dateRange | enum | Filter by posted date (any, 1, 3, 7, 14, 30 days). |
salaryMin / salaryMax | integer | Filter by parsed salary range. |
sortBy | enum | KeywordRelevance or ListedDate. |
maxItems | integer | Max jobs per run. Default 3. |
scrapeJobDetails | boolean | Fetch each job's detail page for the full description. Default true. |
How it works
- Fetch each
searchUrlsentry (or build one fromsearchTerm+location+sortBy). - Parse the inline
window.SEEK_REDUX_DATAJSON blob and readresults.results.jobs[]β Seek ships the full job list as embedded JSON (no browser, no GraphQL auth, no pagination needed for the first page). - For each job, fetch
https://www.seek.com.au/job/<id>to get the full description and apply link. - Apply client-side filters (
workTypes,workArrangements,dateRange,salaryMin,salaryMax) before emitting each row.
FAQ
Do I need a proxy? No. Seek serves clean HTML to datacenter IPs.
Do I need login / cookies? No.
Why is the sentinel emitted? When the given URL / filters match no jobs, we still emit one record so downstream pipelines never see an empty output.
Are salaries always populated? No β Seek advertisers often omit salary. When it's missing the scraper simply doesn't include the salary / salaryDetails keys (no nulls).
