Job listing data from Seek in Australia and New Zealand

Seek data scraping, Seek job search, Seek data extraction, Seekautomation, website scraping, web scraping, job data, labor market data, employment data, recruiting, staffing

Seek Scraper
Solutions

How the feed is delivered

You name the slice - classifications and sub-classifications, locations, work types, a listing-date window, a set of advertiser ids - and we build the crawl around it. Output arrives as CSV, JSON, XLSX or an API, on whatever schedule fits: daily suits most job feeds, more often where speed is the point.

Columns are named the way your systems expect, not the way we found them. Deduplication runs on the numeric job id. Rows are marked new, changed or expired between runs, so you can load deltas instead of reloading a full snapshot every time.

Maintenance is ours. When Seek shifts its markup or its query shape, that is our work to redo, not a ticket for your engineers.

Fields on a Seek job record

A listing is addressed by a numeric identifier: seek.com.au/job/91356335. It is the join key for everything else and it survives editing and expiry. The fields below use Seek's own names:

  • id, title and teaser - the numeric identifier, the headline, and the one-line summary the detail record calls abstract.
  • advertiser - a numeric id and a description, plus companyName. The site itself filters on it, at /jobs?advertiserid=38268918.
  • classifications - a two-level taxonomy. Each entry holds a classification and a subclassification, each with a numeric id and a description: 6281 Information & Communication Technology, 6282 Architects.
  • workTypes - the employment basis as a label, with numeric workTypeIds on the detail page. workArrangements.displayText carries Hybrid, Remote or On-site separately.
  • salaryLabel - advertiser-written free text, frequently an empty string, with currencyLabel beside it.
  • locations - a countryCode, a label such as Cremorne, Melbourne VIC, and a seoHierarchy array of contextualName levels walking up from suburb and postcode to All Melbourne VIC to Victoria VIC.
  • listingDate - a full ISO 8601 UTC timestamp rather than a date, with expiresAt on the detail record.
  • bulletPoints and content - the short selling lines above the ad, and the full description as HTML with its formatting intact.
  • roleId - a normalised role slug such as solutions-architect.
  • jobAdType - ORGANIC or SPONSORED, alongside isFeatured.

Results come back 22 to a page, fixed in the query, so wide coverage means splitting the search space by classification, location and date.

Fields on a Seek job record
Beyond the job ad itself

Beyond the job ad itself

Company profiles and reviews. A search result can carry an employer.companyUrl pointing at /companies/<slug>-<id> plus a companyProfileStructuredDataId. Those pages hold a description, an industry, listed perks and, where staff left them, star ratings and reviews. The detail query exposes companyReviews and companyTags next to the ad.

Screening questions. An ad can carry a questionnaire block: right to work in Australia, years of experience in the role, licences held, software used. It states the real requirements more sharply than the prose does, and it never appears in the description text.

Expired ads. An expired listing does not return 404. It keeps its identifier, status flips to Expired, isExpired goes true, and the share link the site generates moves to /expiredjob/<id>.

Personal data. Some ads name a contact. The record carries a phoneNumber field and a contactMatches array with entries such as type Phone and a number. We deliver commercial listing information only; named individuals and their direct contact details are excluded on request, set at the start of a project. Australia's Privacy Act 1988 is the regime covering personal information here, and how you use any of it is a decision for you and your own advisers.

What Seek is as a data source

Seek runs the job boards for Australia and New Zealand, and since the 2024 unification the same platform sits underneath Jobstreet and Jobsdb in Asia. For anyone building a pipeline, that matters more than the branding does, because the brands are skins over one system.

Hostnames moved. A request to www.seek.com.au now answers with HTTP 308 to au.seek.com, and www.seek.co.nz answers with 308 to nz.seek.com. Old links still land on the right record, but a crawler that does not follow redirects collects nothing at all.

One system, several brands. The robots.txt served by au.seek.com, nz.seek.com, my.jobstreet.com and hk.jobsdb.com is byte for byte the same file, comment lines included. The results page on each is driven by the same GraphQL operation, jobSearchV6, and the market is chosen by a sitekey value - AU on au.seek.com, NZ on nz.seek.com. Jobstreet Malaysia and Jobsdb Hong Kong return the same category vocabulary Seek uses in Australia, down to strings like Accounting and Administration & Office Support.

The practical effect is that a crawler written against seek.com.au ports to the sibling brands with a parameter change instead of a rewrite, and one schema covers the brands on it.

Get a Quote
dev_w
25

Developers

customers
500+

Customers worldwide

pages
1 500 000 000+

Pages extracted

stime
15000+

Hours saved for our clients

Plans

Airplane

€199 / one-time

setup fee - included

Data limits100,000
Frequencyone-time
Run timeup to 5 days
Data storing7 days

Helicopter

€169 / mo

setup fee €499

Data limits250,000
Frequencymonthly
Run timeup to 5 days
Data storing14 days

Glasses

€229 / mo

setup fee €499

Data limits1,000,000
Frequencyweekly
Run timeup to 5 days
Data storing30 days

DNA

€549 / mo

setup fee €799

Data limits3,000,000
Frequency3 times daily
Run timesame day
Data storing90 days

Why teams pull Seek data

Pay data that is not on the ad. A hirer must enter a structured pay range when posting, but SEEK's developer documentation says those monetary values only refine candidate searches and are not directly visible to candidates. What appears on the ad is a separate free-text field capped at 50 characters. That is why so many Seek ads show no salary, and why the ones that do read like $100k + super + bonus rather than a clean pair of numbers. Any pay benchmark on Seek has to parse that string and live with blank rows.

A rolling window, not an archive. A Seek ad runs 30 days. One archived listing carried a listedAt of 2024-11-07 and an expiresAt of 2024-12-07. Search exposes about a month of the market at any moment, and postings you missed cannot be recovered later.

Who is actually hiring. isPrivateAdvertiser separates ads placed under a concealed employer name from branded ones, and isLinkOut marks ads that push applications to the employer's own site. Those two flags decide whether a row belongs in an agency-versus-employer count.

It is already an official input. Jobs and Skills Australia builds its Internet Vacancy Index from ads lodged on Seek, CareerOne and Workforce Australia, coded to four-digit ANZSCO. Seek's own classification is not ANZSCO, so lining a private feed up with the public labour market series takes a mapping step.

Our Blog

Reads Our Latest News & Blog

Learn how to use web scraping to solve data problems for your organization

How Artificial Intelligence Is Used In Web Scraping

How Artificial Intelligence Is Used In Web Scraping

Leveraging advances in technology, the AI-powered web scraper has skyrocketed in demand and is helping to expand capabilities by automating tedious daily tasks and speeding up data collection from thousands of websites several times over.

What is Web Scraping and What is it Used For?

What is Web Scraping and What is it Used For?

Web scraping is a method of obtaining web data by extracting it from pages of web resources with the help of a program, that is, in automatic mode. It is used to syntactically convert web pages into more usable forms.

Web Scraping for Machine Learning

Web Scraping for Machine Learning

If you specialize in machine learning, you need to feed large amounts of data to the algorithms. Web scraping is the easiest and the most efficient method of collecting the data from all over the Internet.

scrapeit logo

Working with ScrapeIt

ScrapeIt is a managed scraping team. We build the crawler, run it, watch it and hand over clean data on a schedule. Nothing to host, nothing to babysit, no parser to repair when the markup shifts.

Scope and method are agreed before anything is built. Seek's robots.txt disallows */job/, /graphql and all query strings for every user agent, so we put that in front of you at the scoping stage rather than after the invoice.

FAQ

Does Seek have a public API for job listings?

SEEK runs a GraphQL API, but it is a partner API for hirers and recruitment software, documented at developer.seek.com. An approved partner can post, update and query their own ads - positionTitle, jobCategories, positionLocation, offeredRemunerationPackage and so on - and those PositionProfile objects are dropped 180 days after the ad closes. It is not a way to read the board. The public site's own GraphQL endpoint is listed under Disallow in robots.txt. Bulk listing data comes from a crawl, not from an API key.

What does a plain HTTP request to seek.com.au actually return?

Not the listing. A request to au.seek.com/job/ with an ordinary browser user agent comes back as HTTP 403 with Server: cloudflare and a Cf-Mitigated: challenge header, serving a short interstitial page in place of the ad. The response also asks for a long list of client hints through Accept-CH and Critical-CH. A fetch-and-parse script therefore does not work here, and that sets the engineering cost. We make no claim about defeating protections - we work with what the site returns and keep request rates low.

Can you recover the salary when the ad does not show one?

No. The structured range a hirer enters drives Seek's salary filter, and SEEK's own documentation says those monetary values are not directly visible to candidates. What is published is the salaryLabel field, free text capped at 50 characters, which many advertisers leave empty. We return salaryLabel exactly as written and, if you want it, a parsed minimum, maximum and period derived from that string with a confidence flag on each row. Blank stays blank; we do not invent a figure to fill a column.

How far back can you get Seek job history?

A Seek ad runs 30 days from posting, so search only ever exposes about a month of the market and there is no public archive to backfill from. If you need a time series, the honest answer is to start capturing now and let it accumulate; every row is stamped with listingDate and the collection run time so the series is usable from the first week. Identifiers you already hold keep resolving at /expiredjob/ after the ad comes down, but ids you never captured cannot be discovered afterwards.

Can you cover Jobstreet and Jobsdb as well as Seek?

Yes, and it is largely the same build. Since the 2024 unification, au.seek.com, nz.seek.com, my.jobstreet.com and hk.jobsdb.com serve an identical robots.txt and the same search payload shape, with the market selected by a sitekey value such as AU or NZ. The two-level classification vocabulary is shared, so Accounting on Jobstreet Malaysia lines up with Accounting on Seek without a crosswalk table. One schema covers Australia, New Zealand and the Asian brands.

How does it Work?

Step 1 - Make a Request

You share your needs, expectations, and desired timeframe. We’ll suggest the best solution based on your request and budget.

Step 2 - Configuring Custom Web Crawlers

Our specialists configure the crawlers and extract a sample dataset for your review before proceeding with the full-scale extraction.

Step 3 - Collect and Deliver

Once you approve the sample, we launch the project and start full data collection. We gather, filter, and structure the data for easy use, delivering it on time in your preferred format.

Step 4 - Maintain and Support

Our team manages ongoing processes, monitors website changes, and supports all data extraction cycles. We can also help integrate data into your systems or create dashboards to simplify analysis.

Request a Quote

Tell us more about you and your project information.
Which sites, which fields, how often. A couple of lines is enough.

We reply within 1 business day. No obligation.

scrapiet

Scrapeit Sp. z o.o.
10/208 Legionowa str., 15-099, Bialystok, Poland
NIP: 5423457175
REGON: 523384582