SEEK is where most Australian job ads live. If you want those listings in a spreadsheet, a database or an n8n workflow (for salary benchmarking, lead lists of companies that are hiring, or a daily feed of new jobs in one city), copying them by hand doesn't scale.
This tutorial uses Seek AU Job Scraper, an Apify actor I built that reads SEEK's own JSON search API. It needs no browser and no proxy, so a run takes seconds. The full examples are on GitHub: auto-actor/seek-au-job-scraper.
Input
{"keywords": "carpenter", "where": "Brisbane", "maxItems": 50} keywords and where work the way they do on seek.com.au; maxItems caps the number of jobs.
Python
"""Run Seek AU Job Scraper on Apify and print the results. pip install apify-client export APIFY_TOKEN=... # Apify Console -> Settings -> Integrations python example.py """ import os from apify_client import ApifyClient client = ApifyClient(os.environ["APIFY_TOKEN"]) run = client.actor("daedal_quintuplet/seek-au-job-scraper").call( run_input={ "keywords": "carpenter", "where": "Brisbane", "maxItems": 50 } ) jobs = client.dataset(run["defaultDatasetId"]).iterate_items() for job in jobs: print(job["title"], "|", job["company"], "|", job.get("salary") or "no salary listed", "|", job["url"]) Node.js
// Run Seek AU Job Scraper on Apify and print the results. // // npm install apify-client // APIFY_TOKEN=... node example.js (token: Apify Console -> Settings -> Integrations) const { ApifyClient } = require('apify-client'); async function main() { const client = new ApifyClient({ token: process.env.APIFY_TOKEN }); const run = await client.actor('daedal_quintuplet/seek-au-job-scraper').call({ "keywords": "carpenter", "where": "Brisbane", "maxItems": 50 }); const { items } = await client.dataset(run.defaultDatasetId).listItems(); for (const job of items) { console.log(job.title, '|', job.company, '|', job.salary || 'no salary listed', '|', job.url); } } main().catch((err) => { console.error(err); process.exit(1); }); No code: one HTTP request
Works from n8n, Make, Zapier or curl:
curl -X POST "https://api.apify.com/v2/acts/daedal_quintuplet~seek-au-job-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"keywords": "carpenter", "where": "Brisbane", "maxItems": 50}' What you get
One row per job:
| Field | Meaning |
|---|---|
id | SEEK job id |
title | Job title |
company | Advertiser |
locations | One or more locations |
salary | Salary text as shown on SEEK, when the ad states one |
workTypes | Full time, Part time, Contract/Temp, Casual/Vacation |
classifications | SEEK classification |
listingDate | When the ad was listed (ISO 8601) |
teaser | First lines of the ad |
bulletPoints | Up to three selling points, often empty |
isFeatured | Paid placement flag |
url | Link to the ad |
Only the fields SEEK returns in search results are included, not the full ad text.
Price
$0.001 per job ($1 per 1,000), paid per result, with no monthly fee. Apify's free plan includes $5 of usage a month, which is enough to try it.
Links: Store page · GitHub examples
