SEEK Jobs Scraper: Australia & New Zealand Jobs + Salary Alerts
Pricing
Pay per event
SEEK Jobs Scraper: Australia & New Zealand Jobs + Salary Alerts
Scrape SEEK.com.au and SEEK.co.nz job listings by keyword and location: title, company, salary (parsed to min/max/yearly), work type, remote/hybrid, classification, posting date and URL. Job alerts mode returns only new jobs. No login. $1 per 1,000 jobs.
Pricing
Pay per event
Rating
0.0
(0)
Developer
DataDesk
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Security
Limited permissionsShare
Scrape SEEK.com.au and SEEK.co.nz job listings by keyword and location: title, company, salary (parsed to min/max/yearly), work type, remote/hybrid, classification, posting date and URL. Job alerts mode returns only new jobs. No login. $1 per 1,000 jobs.
Scrape jobs from SEEK (seek.com.au and seek.co.nz) in seconds: no login, no browser, no proxy setup. Built for recruiters, staffing agencies, salary analysts and job seekers in Australia and New Zealand.
What you can do with it
- Daily job alerts for a role and city (e.g. electricians in Brisbane)
- Salary benchmarking by role, state and work type
- Lead lists of companies hiring right now in AU/NZ
- Job market dashboards in Google Sheets, Excel or BI tools
Why this scraper
- Clean, normalized salary: the text as shown plus
salaryMin,salaryMax,salaryCurrency,salaryPeriodand a yearly equivalent (salaryYearlyMin/salaryYearlyMax) so you can sort and compare. - Job alerts mode: turn on Only new jobs, schedule the Actor daily, and you get (and pay for) only jobs you have not received before.
- Fast and cheap: reads the site's own search data instead of rendering pages. A default run finishes in a few seconds.
- Pay only for results: $1.00 per 1,000 jobs + $0.005 per run. No results, no job charges. Your spending limit is respected exactly: we never deliver rows you did not pay for, and never charge for rows we did not deliver.
- Deduplicated across keywords and pages.
Job alerts (only new jobs)
- Set your search and turn on Job alerts mode: only new jobs.
- Give it an Alert name (one per saved search).
- Create a Schedule (e.g. every morning) and connect an integration (email, Slack, Google Sheets, Make, Zapier, webhook). Each run returns only jobs posted since the previous run. Runs with no new jobs cost almost nothing.
Sources and coverage
| Source | Coverage | Data |
|---|---|---|
| SEEK | Australia (seek.com.au) | title, advertiser, location, salary, work type, classification, teaser, bullet points |
| SEEK | New Zealand (seek.co.nz) | same fields |
How to use it
- Click Try for free (or Start): the prefilled input runs a quick test.
- Fill in the input fields (see the examples below). Every field is optional.
- Click Start and wait a few seconds to minutes, depending on how many jobs you ask for.
- Open the Output tab and export as JSON, CSV, Excel, XML or HTML, or read the results via API.
Input examples
Nurses in Australia (default):
{"keywords": ["nurse"], "countries": ["au"], "maxJobsPerSearch": 20}
Sydney, full-time, last 7 days:
{"keywords": ["accountant"], "countries": ["au"], "location": "Sydney NSW", "workType": "full-time", "postedWithinDays": 7}
AU + NZ contract:
{"keywords": ["electrician"], "countries": ["au", "nz"], "workType": "contract"}
Daily alerts:
{"keywords": ["data analyst"], "onlyNewJobs": true, "alertsKey": "seek-da"}
Input fields
| Field | Type | Description |
|---|---|---|
keywords | array | Job titles or skills, e.g. nurse, data analyst, electrician. One search per keyword. |
countries | array | SEEK sites to search: au (seek.com.au) and/or nz (seek.co.nz). |
location | string | Suburb, city or state, e.g. "Sydney NSW", "Melbourne", "Auckland". Empty = whole country. |
workType | string | Optional: only full-time, part-time, contract or casual jobs. Empty = all work types. |
maxJobsPerSearch | integer | Cap per keyword (and per country). You only pay for jobs saved. |
postedWithinDays | integer | Only jobs posted in the last N days. 0 = any date. |
onlyNewJobs | boolean | Remember jobs from earlier runs and save only jobs you have not received before. Schedule the Actor daily to get a job alert feed. You pay only for new jobs. |
alertsKey | string | Separate memory per alert (e.g. "sydney-nurses"). Use a different name for each saved search. |
Output example
One row per item. Values below are example values from a real test run (long text shortened):
{"source": "seek","country": "AU","jobId": "95698394","title": "Enrolled Nurse Advanced Skill","company": "Darling Downs Hospital & Health Service","advertiserId": "32285447","location": "Toowoomba, Toowoomba & Darling Downs QLD","locations": ["Toowoomba, Toowoomba & Darling Downs QLD"],"classification": "Healthcare & Medical","subClassification": "Nursing - General Medical & Surgical","workType": "Full time","workArrangement": "On-site","isRemote": false,"salary": "$82,578 - $87,626 per annum","salaryMin": 82578.0,"salaryMax": 87626.0,"salaryCurrency": "AUD","salaryPeriod": "year""…": "more fields below"}
Fields a source does not publish are null.
Output fields
| Field | Description |
|---|---|
source | Site the job came from |
country | Country code |
jobId | Job ID on the source site |
title | Job title |
company | Employer name |
advertiserId | Advertiser / employer ID on the source site |
location | Location as shown |
locations | All job locations (with details on) |
classification | Job category on the board |
subClassification | Job sub-category on the board |
workType | Work type (full-time, part-time, contract, casual) |
workArrangement | Work arrangement (on-site, hybrid, remote) |
isRemote | True for remote jobs |
salary | Salary as shown |
salaryMin | Minimum salary (number) |
salaryMax | Maximum salary (number) |
salaryCurrency | ISO currency code |
salaryPeriod | hour, day, week, month or year |
salaryYearlyMin | Minimum salary converted to a yearly amount |
salaryYearlyMax | Maximum salary converted to a yearly amount |
teaser | Short teaser text shown in search results |
bulletPoints | Highlight bullet points from the listing |
postedAt | Posting date (ISO 8601 UTC) |
postedText | Posting date text as shown on the site |
isFeatured | True if the listing is a featured/premium ad |
url | Job page URL |
keyword | Search keyword that found the job |
scrapedAt | When the job was scraped (ISO 8601 UTC) |
isNew | True when job alerts mode is on (job not seen in earlier runs) |
The Output tab has a Jobs view.
Pricing
Pay-per-event: you pay only for results delivered, no monthly fee.
- Job (
job): $1.00 per 1,000 ($0.001 each) - Actor start: $0.005 per run
| Run | Jobs | Cost |
|---|---|---|
| Quick test | 20 | $0.025 |
| Small run | 100 | $0.105 |
| Regular run | 1,000 | $1.005 |
| Large run | 10,000 | $10.005 |
Rows that are not delivered are never charged. Apify's free plan includes monthly credit, and you can set a maximum cost per run in the run options.
Integrations and API
- Export results as JSON, CSV, Excel, XML or HTML from the Output tab.
- Schedule runs (daily, hourly) and send results to Google Sheets, Slack, Zapier, Make, n8n, Airbyte or webhooks.
- Call it from code with the Apify API:
curl -X POST "https://api.apify.com/v2/acts/datadesk-io~seek-jobs-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"keywords": ["nurse"], "countries": ["au"], "maxJobsPerSearch": 20}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("datadesk-io/seek-jobs-scraper").call(run_input={'keywords': ['nurse'], 'countries': ['au'], 'maxJobsPerSearch': 20})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item.get('title'), item.get('company'), item.get('url'))
FAQ
Do I need an account or cookies? No. The Actor only reads public job listings.
Does it scrape personal data? No. It returns job ads and company names only, no candidate or recruiter profiles. Use the data in line with the site's terms and applicable laws (GDPR etc.).
Can I get full job descriptions? Rows include the summary/snippet the search shows. Open url for the full ad.
Something broke or you need a field? Open an issue on the Issues tab; we usually answer within a day.
How fresh is the data? Live: every run reads the source at that moment. Schedule it to keep a dataset up to date.
Why did I get fewer jobs than the maximum? The source had fewer matching jobs, or duplicates were removed. You only pay for jobs delivered.
Not affiliated with or endorsed by the job board. Trademarks belong to their owners.
Limitations
- Salary only when the advertiser publishes it.
- Full description not included (teaser + bullets are).
- Up to the max per keyword × country.
Support
Found a bug, or need a new field, source or filter? Open an issue in the Issues tab; we usually answer within 24 hours. Custom data work: datadesk.io@proton.me.