SEEK New Zealand Scraper — Jobs from seek.co.nz
Pricing
from $0.69 / 1,000 results
SEEK New Zealand Scraper — Jobs from seek.co.nz
Scrape jobs from SEEK New Zealand (seek.co.nz). Filter by keyword, location, work type, and date. Salary extraction, deduplication, full descriptions.
Pricing
from $0.69 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
SEEK New Zealand Scraper

Extract job listings from SEEK New Zealand — New Zealand's largest job board. Filter by keyword, location, work type, category, and date. Optionally fetch full job descriptions with expiry dates and contact details. Supports incremental runs with built-in deduplication.
Pricing: $0.69 per 1,000 results.
⚡ Fast by design
This actor uses GraphQL batching — all jobs on a search page are fetched in a single API request instead of one request per job. Result: 1,000 listings with full descriptions in under 1 minute.
| This actor | Typical per-job scraper | |
|---|---|---|
| Requests per 1,000 jobs | ~20 | ~1,010 |
Time per 1,000 jobs (fetchDetails: true) | ~1 min | ~25 min |
Features
- Keyword and location search — find jobs by title, skill, or role across any NZ region
- Work type filtering — Full time, Part time, Contract/Temp, Casual/Vacation
- Job category filtering — filter by industry category (ICT, Healthcare, Engineering, Sales, etc.)
- Date filtering — only return jobs posted within N days
- Full description — optional fetch of the complete job description per listing
- Expiry date — when each listing expires (
expiresAtUtc) - Contact details — email and phone numbers extracted from the listing body when published
- Salary extraction — min/max salary and period (hourly/annual) parsed from salary label
- Work arrangement — Remote, Hybrid, or On-site when provided
- Advertiser info — id, verification status, and registration date on SEEK
- Cross-run deduplication — tracks seen jobs across runs; marks reposts with
isRepost: true - Start URLs — scrape a specific list of SEEK NZ job URLs directly
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | string | — | Keywords to search for (job title, skill, etc.) |
location | string | — | Location filter, e.g. Auckland, Wellington, Christchurch |
workType | string | Any | Full time, Part time, Contract/Temp, Casual/Vacation |
classificationId | integer | — | SEEK category ID (see list below) |
daysOld | integer | — | Maximum listing age in days |
sortMode | string | KeywordRelevance | KeywordRelevance or ListedDate |
maxResults | integer | 100 | Maximum results to return (max 500 per search) |
fetchDetails | boolean | false | Fetch full HTML job description, expiry date, and contacts per listing |
startUrls | array | — | Specific SEEK NZ job URLs to scrape |
requestDelayMs | integer | 500 | Delay between requests in ms |
respectRobotsTxt | boolean | true | Respect SEEK's crawl-delay guidelines |
Common category IDs
| ID | Category |
|---|---|
| 6281 | Information & Communication Technology |
| 1211 | Healthcare & Medical |
| 1209 | Engineering |
| 1200 | Accounting |
| 6362 | Sales |
| 6251 | Administration & Office Support |
| 1204 | Call Centre & Customer Service |
| 1206 | Construction |
| 1212 | Hospitality & Tourism |
| 6123 | Education & Training |
Output schema
Always present
| Field | Type | Description |
|---|---|---|
id | string | SEEK job ID |
title | string | Job title |
company | string | Employer name |
location | string | Location label, e.g. Auckland CBD, Auckland |
locationCountry | string | Always NZ |
workType | string | Full time, Part time, Contract/Temp, Casual/Vacation |
workArrangement | string|null | Remote, Hybrid, On-site when provided |
category | string | Industry category |
subCategory | string|null | Sub-category when available |
classificationId | integer | SEEK category ID |
salaryLabel | string|null | Raw salary string as displayed on SEEK |
salaryMin | number|null | Minimum salary (parsed) |
salaryMax | number|null | Maximum salary (parsed) |
salaryCurrency | string | Always NZD |
salaryPeriod | string|null | YEAR, HOUR, or WEEK |
teaser | string|null | Short job summary (1–2 sentences) |
bulletPoints | array | Highlights from sponsored listings |
publishDate | string | Publication date in Auckland timezone (YYYY-MM-DD) |
publishDateISO | string | Publication date/time in UTC ISO 8601 |
isFeatured | boolean | Whether listing is sponsored/featured |
roleId | string|null | Standardised SEEK role slug, e.g. software-developer, registered-nurse |
logoUrl | string|null | Company logo image URL (from SEEK branding CDN) |
companyProfileUrl | string|null | SEEK company profile page URL (present for verified employers) |
url | string | Full URL to the SEEK NZ job listing |
isRepost | boolean | true if this job was seen in a previous run |
originalPublishDate | string|null | First-seen publish date for reposts |
With fetchDetails: true
| Field | Type | Description |
|---|---|---|
description | string|null | Full HTML job description |
status | string|null | Listing status from SEEK, e.g. Active |
isExpired | boolean|null | Whether the listing has expired |
expiresAtUtc | string|null | ISO 8601 UTC timestamp when the listing expires |
contactMatches | array | Email and phone contacts when published by the employer |
advertiser | object | id, name, isVerified, registrationDate of the SEEK advertiser |
Output example
{"id": "91866432","title": "Community Registered Nurse","company": "Mary Potter Hospice","location": "Porirua, Wellington","locationCountry": "NZ","workType": "Full time","workArrangement": null,"category": "Healthcare & Medical","subCategory": "Nursing","classificationId": 1211,"salaryLabel": "$38 – $45 per hour","salaryMin": 38,"salaryMax": 45,"salaryCurrency": "NZD","salaryPeriod": "HOUR","teaser": "Specialist palliative care nursing role based in Porirua.","bulletPoints": [],"publishDate": "2026-05-02","publishDateISO": "2026-05-01T22:34:05.120Z","isFeatured": false,"roleId": "community-registered-nurse","logoUrl": "https://bx-branding-gateway.cloud.seek.com.au/abc123.1/jdpLogo","companyProfileUrl": null,"url": "https://www.seek.co.nz/job/91866432","description": "<p>Mary Potter Hospice is seeking...</p>","status": "Active","isExpired": false,"expiresAtUtc": "2026-06-01T14:00:00.000Z","contactMatches": [{ "type": "Email", "value": "recruitment@marypotter.org.nz" }],"advertiser": {"id": "44123456","name": "Mary Potter Hospice","isVerified": true,"registrationDate": "2015-03-10T01:22:00.000Z"},"isRepost": false,"originalPublishDate": null,"originalUrl": null}
Usage examples
1. Search developer jobs in Auckland
{"searchQuery": "developer","location": "Auckland","maxResults": 100}
2. All healthcare jobs, last 7 days, with full descriptions
{"classificationId": 1211,"daysOld": 7,"fetchDetails": true,"maxResults": 200}
3. Daily feed of new jobs (incremental mode)
{"daysOld": 1,"sortMode": "ListedDate","maxResults": 500}
New jobs are compared against previous runs. Reposts are flagged with isRepost: true.
4. Scrape specific job URLs
{"startUrls": [{ "url": "https://www.seek.co.nz/job/91693135" },{ "url": "https://www.seek.co.nz/job/91866432" }],"fetchDetails": true}
Performance
| Run size | fetchDetails | Estimated time |
|---|---|---|
| 100 results | false | ~5 seconds |
| 100 results | true | ~10 seconds |
| 500 results | false | ~15 seconds |
| 500 results | true | ~30 seconds |
GraphQL batching resolves a full page of 100 jobs in a single API request (~600ms). This is 20–30× faster than scrapers that make one detail request per job.
- Memory: 256 MB
- Proxy: None required
Pricing
$0.69 per 1,000 results.
A run returning 500 jobs costs approximately $0.35 plus a small start fee.
Notes
- 500 results per search: SEEK limits pagination to 5 pages of 100 results. Use
classificationIdbatching ordaysOldfiltering to retrieve more data across multiple runs. - Salary: Not all listings include salary information. When absent, salary fields are
null. - Work arrangement: Only available from search results. When using
startUrls, this field is alwaysnull. contactMatches: RequiresfetchDetails: true. Not all employers publish contact details.