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
Top comments (0)