SEEK Australia Jobs Scraper
parseforge/seek-scraper
JobsLead generationOther
Scrapes SEEK Australia job listings by keyword, location, or direct URL. Returns title, company, salary, location, and optional full job description.
- Total users
- 189
- Monthly active
- 16
- Total runs
- 3.8K
- Bookmarked
- 3
- Rating
- Not rated yet
- Last modified
- 12 days ago
Overview
SEEK Australia Jobs Scraper
Scrape SEEK Australia job listings by keyword, location, or direct URL, up to a million per run. Every job comes with its title, company, salary, location, and full description when you need it. No login or API key. Export to CSV, JSON, Excel, or XML.
SEEK's official API is not open to the public, and manual browsing is slow. This reads the public job search pages directly, filtered by classification, work type, salary, or date posted, and returns each match in one fixed schema. It works for any keyword, any location in Australia, and any SEEK search URL.
| Who uses it | What they scrape SEEK for |
|---|---|
| Recruiters | Build a fresh list of active candidates and roles in their niche |
| Market researchers | Track which skills and salaries are trending in Australian cities |
| Job boards | Populate their own site with current SEEK listings |
| Data analysts | Feed a pipeline of structured job data for dashboards |
| Sales teams | Find companies that are hiring right now for outreach |
What it does
This Actor collects SEEK job listings by keyword, location, or direct search URL, and returns each one as a flat row with title, company, salary, location, and optional full description.
- ๐ Keyword search: any job title, skill, or phrase, e.g. 'software engineer' or 'nurse'.
- ๐ Location filter: Sydney NSW, Melbourne VIC, All Australia, or any SEEK location.
- ๐ Direct URL: paste any SEEK search URL and scrape exactly those results.
- ๐ Computed filters: classification, sub-classification, work type, date posted, and salary range.
- ๐ Full details: optionally fetch the complete job description, screening questions, and contact info.
- โ๏ธ Rate control: set concurrency and request delay to stay polite and avoid blocks.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with SEEK data
๐ Track salary trends.
A market researcher runs the scraper weekly for 'data scientist' in Sydney and Melbourne, then charts the salary ranges to advise clients on pay benchmarks.
๐ฏ Build a lead list.
A B2B sales team scrapes 'project manager' jobs in Brisbane, filters for companies with active roles, and uses the company names for targeted outreach.
๐งฒ Power a niche job board.
A developer runs the scraper daily for 'nurse' jobs across Australia and feeds the structured data into their own healthcare job board.
๐ Monitor competitor hiring.
An HR analyst scrapes jobs from a list of competitor companies by using their names as keywords, then tracks hiring volume over time.
๐ค Feed a job alert system.
A startup uses the scraper to collect new 'UX designer' roles every hour, then sends email alerts to their subscribers.
Why choose this scraper
| What you get | |
|---|---|
| No API key | Scrapes the public SEEK search pages directly |
| Up to 1M jobs | One run can collect every listing you need |
| Full job text | Optional deep scrape of each job page |
| Structured output | Flat rows ready for CSV, JSON, Excel, or XML |
How it compares
This actor focuses on SEEK Australia with deep filtering and optional full job details, while the other SEEK scraper offers a simpler extraction and the Xing scraper targets a different job market.
| Feature | ParseForge | Seek Job Scraper | Xing Jobs Scraper |
|---|---|---|---|
| Keyword search | Yes | Yes | Yes |
| Location filter | Yes | Not listed | Not listed |
| Salary range filter | Yes | Not listed | Not listed |
| Full job description | Yes | Not listed | Not listed |
| Direct URL input | Yes | Not listed | Not listed |
| Rate limiting controls | Yes | Not listed | Not listed |
Configure the run
Drive the Actor from keywords, locations, and direct SEEK URLs, alone or together, and filters run as each job is read so only matches reach your dataset. The Input tab lists every parameter.
A first run with the defaults:
{
"keywords": "software engineer",
"maxItems": 10,
"includeDetails": false
}
A larger pull:
{
"keywords": "software engineer",
"maxItems": 200,
"includeDetails": false
}
Pricing
Pay-per-result: $0.03 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $3.00 |
| 1,000 results | $30.00 |
| 10,000 results | $300.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the SEEK Australia Jobs Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to SEEK through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/seek-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check your keyword and location. If you used a startUrl, make sure it is a valid SEEK search URL. Also try broadening your filters, like removing the salary range or date posted.
Why is the scraper slow?
If includeDetails is true, the scraper visits each job page, which takes time. You can increase maxConcurrency up to 20, but be careful not to get rate-limited.
Why did I get blocked or rate-limited?
SEEK may block aggressive scraping. Increase requestDelayMs to 1000 or more, and lower maxConcurrency to 5 or less. Also consider running during off-peak hours.
Why are some fields empty?
Not all job listings include every field, like salary or classification. If you need full details, enable includeDetails to fetch the complete job page.
Can I scrape jobs from New Zealand SEEK?
This scraper is built for seek.com.au. For New Zealand, use a different scraper or adjust the startUrl to a seek.co.nz search URL, but results may vary.
FAQ
| Question | Answer |
|---|---|
| Do I need a SEEK account or API key? | No. The scraper reads the public SEEK search pages, so no login or API key is required. |
| Can I scrape a specific SEEK search URL? | Yes. Paste any SEEK search URL into the startUrl field and the scraper will collect all jobs from that exact search, ignoring other filters. |
| How do I get the full job description? | Set includeDetails to true. The scraper will visit each job page and return the full description, screening questions, and contact details. This is slower but gives you complete data. |
| What locations can I search? | Any location SEEK supports, such as 'Sydney NSW', 'Melbourne VIC', or 'All Australia'. If you leave it blank, it defaults to All Australia. |
| Can I filter by salary? | Yes. Use the salaryRange field with a min-max annual range, e.g. '50000-80000'. |
| How many jobs can I scrape in one run? | Up to 1,000,000 jobs per run. Set maxItems to the number you need. |
| What output formats are supported? | The dataset can be exported to CSV, JSON, Excel, or XML from the Apify platform. |
| Is it legal to scrape SEEK? | You should review SEEK's terms of service and comply with all applicable laws. The scraper only accesses publicly available pages and includes rate controls to be polite. |
| Can I schedule this scraper to run automatically? | Yes. Use Apify's scheduler to run it hourly, daily, or weekly, and get fresh job data automatically. |
| What if I get rate-limited? | Increase the requestDelayMs or lower maxConcurrency. The scraper is designed to be gentle, but SEEK may still block aggressive scraping. |
Related actors
Browse the full ParseForge collection for more scrapers.
๐ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by SEEK Limited. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| keywords | string | Job title, skills or keywords to search for (e.g. 'software engineer', 'nurse', 'project manager'). If omitted, returns all jobs. | software engineer |
| maxItems | integer | Maximum number of job listings to collect per run. | 10 |
| startUrl | string | SEEK search URL to scrape (e.g. https://www.seek.com.au/software-engineer-jobs/in-All-Australia). If provided, Keywords and Filters below are ignored. | not set |
| where | string | Location to search in (e.g. 'Sydney NSW', 'Melbourne VIC', 'All Australia'). Defaults to All Australia. | not set |
| classification | string | Job category ID from SEEK (e.g. '6281' for Information & Communication Technology, '1200' for Accounting). | not set |
| subClassification | string | Sub-category ID (e.g. '6287' for Developers/Programmers). Use together with Classification. | not set |
| workType | string (5 options) | Filter by work type. | not set |
| dateRange | string (6 options) | Filter by how recently jobs were posted. | not set |
| salaryRange | string | Filter by salary range (e.g. '50000-80000'). Provide as min-max annual. | not set |
| sortMode | string (2 options) | How to sort the results. | KeywordRelevance |
| includeDetails | boolean | Fetch full job description, screening questions, and contact details for each listing. Slower but returns much more data. | false |
| maxConcurrency | integer | Maximum number of parallel requests (only applies when Include Full Job Details is enabled). Lower this if you get rate-limited. | 10 |
| requestDelayMs | integer | Milliseconds to wait between page requests. Increase if the site rate-limits you. | 0 |
Pricing
from $20.00 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| Actor Start | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). | $0.01 |
| Result Item | Single result in the default dataset. | $0.02 to $0.03 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~seek-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
No reviews yet. Be the first.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
