Seek.com.au Job Scraper avatar

Seek.com.au Job Scraper

Pricing

Pay per event

Go to Apify Store
Seek.com.au Job Scraper

Seek.com.au Job Scraper

Extract job listings from Seek.com.au — Australia and New Zealand's #1 job board. Filter by keyword, location, work type, and date. Exports to JSON, CSV, or Excel. No API key needed.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

14

Total users

4

Monthly active users

16 days ago

Last modified

Categories

Share

What does Seek Scraper do?

Seek Scraper extracts job listings from Seek.com.au — Australia and New Zealand's #1 job board — without requiring an API key or login. Search by keyword, location, work type, and date range to collect structured job data including titles, companies, salaries, classifications, and full job descriptions.

Unlike most scraping tools that require expensive residential proxies or browser automation, this actor uses a pure HTTP approach that works reliably from datacenter IPs — keeping your costs low and runs fast. With 170,000+ active listings and 22 results per page, it scales from a quick 10-job spot check to thousands of listings per run.

👥 Who is Seek Scraper for?

HR teams and recruiters monitoring the Australian job market:

  • 🔍 Track competitor job postings in your industry
  • 📊 Benchmark salary ranges for specific roles and locations
  • 🏢 Monitor company hiring patterns and team growth signals

Job market researchers and analysts:

  • 📈 Analyze demand trends for specific skills over time
  • 🌏 Compare job markets across Australian cities (Sydney, Melbourne, Brisbane, Perth)
  • 💡 Identify skill gaps and emerging job categories by classification

Salary researchers and career coaches:

  • 💰 Extract salary data for specific roles and industries
  • 📋 Build salary benchmarking datasets for clients
  • 🎯 Research compensation by location and work type

Recruitment agencies and talent sourcers:

  • 🔎 Monitor new job postings from specific companies
  • ⚡ Get alerted to high-volume hiring activity in target sectors
  • 📅 Track how long specific types of roles stay open

✅ Why use Seek Scraper?

  • Pure HTTP — no Playwright, no browser overhead — 5-10x faster than browser-based scrapers and no expensive residential proxy needed
  • Datacenter IPs work fine — Seek.com.au returns full HTML from standard IPs with the right headers
  • 22 results per page with clean ?page=N pagination — predictable, reliable scraping
  • 20% cheaper than the leading competitor ($0.002 vs $0.0025 per result)
  • Tiered pricing — Scale and Business users get automatic volume discounts
  • Optional deep detail mode — enable fetchJobDetails to get full job descriptions, work type, and advertiser data
  • Classification data included — every result includes industry category and sub-category from Seek's taxonomy
  • No API key, no login, no cookies required

📊 What data can you extract?

From search results (default mode):

FieldDescriptionExample
idSeek job ID"91129270"
urlFull Seek job URL"https://www.seek.com.au/job/91129270"
titleJob title"Senior Software Engineer"
companyEmployer name"Atlassian"
locationLocation string"Sydney NSW"
shortDescription1-2 sentence teaser"Join our platform team..."
listingDateRelative date posted"3d ago"
salarySalary range if shown"$120,000 – $150,000 per year"
classificationIndustry category"Information & Communication Technology"
subClassificationSub-category"Software Engineering"
scrapedAtISO timestamp"2026-03-31T04:56:39Z"

Additional fields with fetchJobDetails: true:

FieldDescriptionExample
workTypeEmployment type"Full time"
advertiserNameRecruiter or company"Atlassian"
fullDescriptionComplete job description textFull text, 200-1000 words

Salary data is shown when the employer provides it (roughly 20-30% of listings). Classifications use Seek's standard taxonomy covering 20+ industry categories.

💵 How much does it cost to scrape Seek jobs?

This Actor uses pay-per-event pricing — you pay only for results scraped. No monthly subscription. All platform compute costs are included.

FreeStarter ($29/mo)Scale ($199/mo)Business ($999/mo)
Per job$0.0023$0.002$0.00156$0.0012
100 jobs$0.23$0.20$0.16$0.12
1,000 jobs$2.30$2.00$1.56$1.20

Plus a one-time $0.02 run start fee per run.

Real-world cost examples:

QueryResultsDurationCost (Starter tier)
"software engineer" in Sydney, 22 results22~8s$0.06
"nurse" in Melbourne, 50 results50~18s$0.12
"accountant" all Australia, 100 results100~35s$0.22
"data analyst" all cities, 200 results200~70s$0.42

Free plan estimate: Apify's $5 free credit lets you scrape approximately 2,100 jobs on the Starter tier — enough to build a solid dataset for research or monitoring.

The leading competitor (websift/seek-job-scraper) charges $0.0025/result — we charge $0.002 (20% cheaper) with tiered discounts for high-volume plans.

🚀 How to scrape Seek jobs

  1. Go to the Seek Scraper page on Apify Store
  2. Click Try for free — no credit card required
  3. In the Keywords field, enter the job role you're looking for (e.g. "software engineer")
  4. Set your Location (e.g. "Sydney", "Melbourne", or leave empty for all Australia)
  5. Optionally select a Work Type (Full time, Part time, Contract/Temp, Casual)
  6. Set Max Results — start small (20-50) to test, then scale up
  7. Click Start and wait a few seconds
  8. Click Export to download results as JSON, CSV, or Excel

Example inputs for different use cases:

// Quick salary research — software engineers in Sydney
{
"keywords": ["software engineer"],
"location": "Sydney",
"maxResults": 100
}
// Job market monitoring — all nursing jobs posted this week
{
"keywords": ["nurse", "registered nurse", "aged care"],
"location": "",
"dateRange": "7",
"maxResults": 500
}
// Deep extract with full descriptions — tech roles in Melbourne
{
"keywords": ["data scientist", "machine learning engineer"],
"location": "Melbourne",
"workType": "full time",
"maxResults": 50,
"fetchJobDetails": true
}

⚙️ Input parameters

ParameterTypeDefaultDescription
keywordsstring[]["software engineer"]Search keywords. Each keyword performs a separate search.
locationstring"Sydney"Location to search. Examples: "Sydney", "Melbourne", "Brisbane", "Perth", "Auckland". Leave empty for all Australia.
workTypestring""Filter by work type. Options: "full time", "part time", "contract/temp", "casual/vacation", or empty for all.
dateRangestring""Filter by days since posting. Options: "1" (today), "3", "7", "14", "30", or empty for all time.
maxResultsinteger50Maximum total job listings to scrape across all keywords.
fetchJobDetailsbooleanfalseVisit each job's detail page to get full description, work type, and advertiser details. Uses more credits.

📄 Output examples

Standard mode output (one job):

{
"id": "91129270",
"url": "https://www.seek.com.au/job/91129270",
"title": "Senior Software Engineer",
"company": "Atlassian",
"location": "Sydney NSW",
"shortDescription": "Join our platform engineering team building the infrastructure that powers millions of developers worldwide.",
"listingDate": "2d ago",
"salary": "$140,000 – $180,000 per year",
"workType": "",
"classification": "Information & Communication Technology",
"subClassification": "Software Engineering",
"advertiserName": "",
"fullDescription": "",
"scrapedAt": "2026-03-31T05:00:00.000Z"
}

With fetchJobDetails: true:

{
"id": "91129270",
"url": "https://www.seek.com.au/job/91129270",
"title": "Senior Software Engineer",
"company": "Atlassian",
"location": "Sydney NSW",
"shortDescription": "Join our platform engineering team...",
"listingDate": "2d ago",
"salary": "$140,000 – $180,000 per year",
"workType": "Full time",
"classification": "Information & Communication Technology",
"subClassification": "Software Engineering",
"advertiserName": "Atlassian",
"fullDescription": "About the Role\\n\\nAtlassian's Platform team is responsible for...",
"scrapedAt": "2026-03-31T05:00:00.000Z"
}

💡 Tips for best results

  • Start with 20-50 results to verify your search works as expected, then increase maxResults
  • Use specific keywords"senior java developer" returns more targeted results than "developer"
  • Leave location empty for national monitoring — Seek serves all Australian state results when location is omitted
  • Set dateRange: "7" for weekly monitoring workflows — combine with Apify scheduling for automatic monitoring
  • Use multiple keywords to cover variations — ["registered nurse", "RN", "nursing"] covers more listings
  • Enable fetchJobDetails only when you need full descriptions — it's 3-5x slower and costs more per job
  • Salary data appears in ~20-30% of listings — sort exported data by salary to filter roles with salary disclosure
  • Schedule runs daily or weekly via Apify's built-in scheduler to track job market trends over time

🔗 Integrations

Seek Scraper → Google Sheets for salary benchmarking: Connect the actor's output to Google Sheets using Apify's native integration. Schedule daily runs to build a live salary benchmark database for your HR team. Filter the sheet by classification to get role-specific salary ranges.

Seek Scraper → Slack/Discord for job alerts: Use Apify webhooks to send new job listings to a Slack channel the moment a run completes. Set dateRange: "1" and schedule the actor to run daily — your team gets fresh job alerts every morning without manual searching.

Seek Scraper → Make/Zapier for recruitment CRM: Trigger a Make scenario when the actor finishes. Filter results by keyword and company, then create records in your ATS or CRM automatically. Ideal for tracking specific companies' hiring activity.

Seek Scraper scheduled monitoring: Use Apify's cron scheduler (0 8 * * *) to run daily at 8 AM. Track how many new jobs appear each day for specific classifications — useful for market research, consulting reports, and workforce planning.

Seek Scraper → Python/Pandas analysis: Pull dataset results via the Apify API and analyze with Pandas. Group by classification and location, calculate average salaries from listings that include pay ranges, and visualize hiring trends over time.

🖥️ Using the Apify API

Node.js:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('automation-lab/seek-scraper').call({
keywords: ['software engineer'],
location: 'Sydney',
maxResults: 100,
});
const dataset = await client.dataset(run.defaultDatasetId).listItems();
console.log(dataset.items);

Python:

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/seek-scraper').call(run_input={
'keywords': ['software engineer'],
'location': 'Sydney',
'maxResults': 100,
})
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item['title'], item['company'], item['salary'])

cURL:

curl -X POST "https://api.apify.com/v2/acts/automation-lab~seek-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"keywords": ["software engineer"],
"location": "Sydney",
"maxResults": 100
}'

🤖 Use with AI agents via MCP

Seek Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP).

Add the Apify MCP server to your AI client — this gives you access to all Apify actors, including this one:

Setup for Claude Code

$claude mcp add --transport http apify "https://mcp.apify.com"

Setup for Claude Desktop, Cursor, or VS Code

Add this to your MCP config file:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com"
}
}
}

Your AI assistant will use OAuth to authenticate with your Apify account on first use.

Example prompts

Once connected, try asking your AI assistant:

  • "Use automation-lab/seek-scraper to find all software engineering jobs in Sydney posted this week with salaries above $100K"
  • "Scrape 200 nursing jobs in Melbourne and analyze which hospitals are hiring the most right now"
  • "Get the top 50 data analyst job listings from Seek and summarize the most common required skills and average salary range"

Learn more in the Apify MCP documentation.

Seek Scraper only accesses publicly available job listings — the same data anyone can view by visiting seek.com.au in a browser without logging in. We follow ethical scraping practices: reasonable request rates, no personal data extraction beyond what's publicly displayed, and no scraping of private/member-only content.

This actor is intended for:

  • Job market research and analysis
  • Salary benchmarking with publicly-disclosed salary data
  • Monitoring publicly listed job opportunities
  • Academic and business research

Always comply with Seek's Terms of Use and applicable local laws. This actor does not scrape login-protected content, personal candidate information, or private employer data. The operator and user are responsible for how extracted data is used and stored.

❓ FAQ

How many jobs does Seek have? Seek.com.au typically has 150,000–170,000+ active job listings at any given time across Australia, New Zealand, and Southeast Asia. The actor reports the total count on the first page of each search.

How fast does it scrape? In default mode (no detail pages), the actor scrapes approximately 22 jobs every 3-5 seconds — or roughly 250–400 jobs per minute. With fetchJobDetails: true, it slows to about 40-60 jobs per minute due to individual page requests.

How much does it cost compared to Seek's official API? Seek does not offer a public job listing API. This actor is the most cost-effective way to access Seek job data programmatically at $0.002/result (Starter tier) with no subscription requirement.

Why are some salary fields empty? Most Seek listings don't disclose a salary range — this is the employer's choice. In our testing, roughly 20-30% of listings include salary data. Use salary != "" filtering when exporting to isolate listings with pay disclosure.

Why am I getting different results than I see on Seek.com.au? Seek personalizes results based on cookies and browsing history. This actor fetches results without cookies, so you see the default unfiltered results — which may differ from personalized results in your browser. This is actually better for research as it removes personalization bias.

Results seem unrelated to my keyword — what's wrong? When a specific keyword has no exact matches, Seek returns similar or related jobs rather than zero results. If you're doing niche research, check the classification field to see what industry categories are being returned. Try more specific multi-word keywords to improve relevance.

Can I scrape Seek's Southeast Asian sites (Jobstreet, JobsDB)? This actor focuses on seek.com.au (Australia). Jobstreet and JobsDB use different HTML structures. If you need those sites, they would require separate scrapers.

🔍 Other job scraper tools

Looking for more job market data? Check out these other actors from automation-lab:


Built by automation-lab — specializing in reliable, cost-efficient data extraction tools for the Australian market.