Seek.com.au Jobs Scraper
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
5.0
(7)
Developer
Crawler Bros
Actor stats
8
Bookmarked
2
Total users
1
Monthly active users
2 days 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).