Seek Jobs Scraper | $0.8 / 1k | All-In-One avatar

Seek Jobs Scraper | $0.8 / 1k | All-In-One

Pricing

from $0.80 / 1,000 results

Go to Apify Store
Seek Jobs Scraper | $0.8 / 1k | All-In-One

Seek Jobs Scraper | $0.8 / 1k | All-In-One

Extract structured SEEK job listings with titles, salaries, company data, locations, work arrangements, and hiring signals across Australia and New Zealand. Built for enterprise-grade hiring intelligence, labor market analysis, and automated recruiting or analytics pipelines.

Pricing

from $0.80 / 1,000 results

Rating

0.0

(0)

Developer

Fatih Tahta

Fatih Tahta

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Seek Jobs Scraper

Slug: fatihtahta/seek-jobs-scraper

Overview

Seek Jobs Scraper collects structured job listing data from SEEK, including listing IDs, titles, summaries, descriptions, employers, locations, classifications, work arrangements, posting dates, compensation details, contact matches, and media assets when available. It is designed for teams that need consistent job market data in a format that is ready for review, export, and downstream processing. https://www.seek.com.au and https://nz.seek.com/ are two of the most important job marketplaces in Australia and New Zealand, making them valuable sources for labor market analysis, employer tracking, and hiring intelligence. The actor automates repeatable collection across multiple searches and filters without manual copying or spreadsheet cleanup. That means less time spent gathering listings by hand and more time spent analyzing results.

Why Use This Actor

  • Market research and analytics teams: Track hiring demand, salary signals, role mix, and employer activity across functions, locations, and time periods.
  • Product and content teams: Discover role trends, validate demand for topics or audiences, and build job-based content, reports, or editorial calendars.
  • Developers and data engineering teams: Feed structured SEEK job data into ETL pipelines, warehouses, dashboards, internal search tools, or APIs.
  • Lead generation and enrichment teams: Identify employers, advertiser details, public contact clues, and company profile data for targeted enrichment workflows.
  • Monitoring and competitive tracking teams: Watch specific keywords, categories, employers, or regions to detect new hiring activity and market movement.

Input Parameters

Provide any combination of queries and filters supported by this actor. Leave queries empty to run a broad search with the selected filters, or leave all optional fields empty to collect broader results.

ParameterTypeDescriptionDefault
countrystringSEEK market to search. Allowed values: australia, new-zealand.australia
queriesstring[]Optional search keywords or phrases, such as job titles, skills, or hiring terms. Each query runs as a separate search. Leave empty to search broadly within the selected market and filters.
maximize_coveragebooleanWhen enabled, the actor makes a best effort to preserve broader result coverage for large searches that may otherwise be truncated by site-side result limits. Recommended for broad, high-volume queries when completeness matters more than speed.false
categorystring[]Job categories or specialties to include. Allowed values: any category or subcategory available in the actor input picker, including broad categories such as accounting, engineering, sales, information_communication_technology, and specific values such as information_communication_technology_developers_programmers.
contract_typestring[]Employment types to include. Allowed values: Full time, Part time, Contract/Temporary, Casual/Vacation.
remote_settingsstring[]Work arrangements to include. Allowed values: On-Site, Hybrid, Remote.
publication_datestringLimit results to recently posted jobs. Allowed values: 24-hours, 3-days, 7-days, 14-days, 30-days.
sort_bystringResult ordering. Allowed values: most-relevant-first, newest-first.
locationstringLocation filter applied to every search in the run, such as Sydney NSW, Melbourne VIC, or Auckland.
min_salaryintegerMinimum annual salary to include. Use whole numbers such as 50000.
max_salaryintegerMaximum annual salary to include. Use whole numbers such as 150000.
limitintegerMaximum number of jobs to save for each search term. Leave empty to collect all available matches.
proxyConfigurationobjectOptional connection settings. Use Apify Proxy or your own proxy settings if you want more reliable access or traffic routed through a different IP.Apify Proxy with RESIDENTIAL group

Example Inputs

Scenario: Query-driven run for software roles in Sydney

{
"country": "australia",
"queries": ["software engineer", "backend developer"],
"maximize_coverage": true,
"location": "Sydney NSW",
"publication_date": "7-days",
"sort_by": "newest-first",
"limit": 250
}

Scenario: Targeted run for remote product roles

{
"country": "australia",
"queries": ["product manager"],
"category": ["information_communication_technology_product_management_development"],
"remote_settings": ["Remote", "Hybrid"],
"min_salary": 120000,
"publication_date": "14-days",
"limit": 150
}
{
"country": "new-zealand",
"queries": ["operations manager"],
"category": ["manufacturing_transport_logistics_management"],
"contract_type": ["Full time"],
"location": "Auckland",
"sort_by": "most-relevant-first",
"limit": 100
}

Output

6.1 Output destination

The actor writes results to an Apify dataset as JSON records. And the dataset is designed for direct consumption by analytics tools, ETL pipelines, and downstream APIs without post-processing.

6.2 Record envelope (all items)

For downstream systems, treat each record as having this stable identifier envelope:

  • type (string, required): Record type. For this actor, the value is job_listing, exposed in source_context.record_type.
  • id (number, required): SEEK listing identifier. In dataset output, this identifier may be serialized as a numeric string.
  • url (string, required): Canonical listing URL, exposed in source_context.record_url.

Recommended idempotency key: type + ":" + id

Use this key for deduplication and upserts when the same listing appears in repeated runs, overlapping queries, or scheduled collections.

6.3 Examples

Example: job listing (type = "job_listing")

{
"id": "91521282",
"title": "Software & Applications Programmer - SAP Payroll",
"source_context": {
"record_type": "job_listing",
"source_country": "Australia",
"seed": {
"id": "b790dea146a9",
"type": "query",
"value": "software"
},
"source_url": "https://www.seek.com.au/software-jobs?classification=1210%2C6261&daterange=7&sortmode=ListedDate&subclassification=6262&where=All+Sydney+NSW&workarrangement=2&worktype=242",
"record_url": "https://www.seek.com.au/job/91521282",
"domain": "www.seek.com.au",
"page_index": 1,
"detail_fetch_status": "success"
},
"job": {
"summary": "Seeking a Technical Specialist with knowledge in SAP ECC HR/Payroll to support the AFP Payroll system.",
"description_text": "Seeking a Technical Specialist with knowledge in SAP ECC HR/Payroll to support the AFP Payroll system.",
"description_html": "<p>Seeking a Technical Specialist with knowledge in SAP ECC HR/Payroll to support the AFP Payroll system.</p>",
"bullet_points": [
"Flexible working from home arrangements",
"6 weeks annual leave",
"Incremental salary progression"
]
},
"posting": {
"listed_at": "2026-04-15T00:54:47.000Z",
"listed_age_label": "10h ago",
"expires_at": "2026-04-29T13:59:59.999Z",
"status": "Active",
"is_expired": false,
"is_featured": false,
"listing_type": "standard",
"is_link_out": true,
"share_url": "https://www.seek.com.au/job/91521282?tracking=SHR-WEB-SharedJob-anz-1"
},
"role": {
"role_key": "applications-developer",
"normalized_role_title": "Application Developer",
"classification": "Information & Communication Technology",
"subclassification": "Developers/Programmers",
"classification_labels": [
"Developers/Programmers (Information & Communication Technology)",
"Government - Federal (Government & Defence)"
]
},
"workplace": {
"employment_types": [
"Full time"
],
"work_arrangement": "Hybrid",
"work_arrangement_labels": [
"Hybrid"
],
"work_arrangement_types": [
"HYBRID"
]
},
"company": {
"name": "Australian Federal Police",
"advertiser_name": "AUSTRALIAN FEDERAL POLICE",
"advertiser_id": "4728926",
"is_verified": true,
"registration_date": "2007-06-25T09:12:28.000Z",
"profile_id": "1096",
"profile_url": "https://www.seek.com.au/companies/australian-federal-police-432992",
"search_url": "https://www.seek.com.au/Australian-Federal-Police-jobs/at-this-company",
"description": "The Australian Federal Police is Australia’s national policing agency.",
"industry": "Law Enforcement & Emergency Services",
"size": "5,001-10,000 employees",
"review_count": 27,
"review_rating": 4
},
"location": {
"display_name": "Sydney NSW",
"country_code": "AU",
"country": "Australia",
"suburb": "Sydney",
"state": "New South Wales",
"postcode": "2000",
"seo_where": "Sydney NSW 2000",
"seo_broader_location": "Sydney"
},
"compensation": {
"text": "$179,919.00 - $198,686.00 + 15.4% Superannuation",
"amount": 179919,
"currency": "$"
},
"contacts": {
"matches": [
{
"type": "Email",
"value": "craig.hall@afp.gov.au"
},
{
"type": "Phone",
"value": "02 5126 7285"
}
]
},
"media": {
"listing_logo_url": "https://bx-branding-gateway.cloud.seek.com.au/example-logo",
"company_logo_url": "https://image-service-cdn.seek.com.au/example-company-logo",
"brand_cover_url": "https://image-service-cdn.seek.com.au/example-brand-cover",
"brand_thumbnail_url": "https://image-service-cdn.seek.com.au/example-brand-thumbnail"
}
}

Field reference

Job listing fields (source_context.record_type = "job_listing")

  • id (string, required): SEEK listing identifier.
  • title (string, required): Job title as shown on the listing.
  • source_context.record_type (string, required): Record type, always job_listing.
  • source_context.source_country (string, optional): Source market, such as Australia or New Zealand.
  • source_context.seed.id (string, required): Identifier for the originating search seed.
  • source_context.seed.type (string, required): Seed type used for the run. Current value: query.
  • source_context.seed.value (string, required): Original query value that led to the record.
  • source_context.source_url (string, required): Search results URL used to discover the listing.
  • source_context.record_url (string, required): Canonical listing URL.
  • source_context.detail_page_url (string, optional): Listing detail page URL when stored separately.
  • source_context.domain (string, required): Source domain for the record.
  • source_context.page_index (integer, required): Search results page number where the listing was found.
  • source_context.detail_fetch_status (string, optional): Detail retrieval status when available.
  • job.summary (string, optional): Short job summary or teaser.
  • job.description_text (string, optional): Plain-text job description.
  • job.description_html (string, optional): HTML-formatted job description.
  • job.bullet_points (array[string], optional): Highlight points shown on the listing.
  • posting.listed_at (string, optional): Listing timestamp in ISO format.
  • posting.listed_age_label (string, optional): Human-readable age label, such as 2d ago.
  • posting.expires_at (string, optional): Expiry timestamp when available.
  • posting.status (string, optional): Listing status, such as active or expired.
  • posting.is_expired (boolean, optional): Whether the listing is expired.
  • posting.is_featured (boolean, optional): Whether the listing is marked as featured.
  • posting.listing_type (string, optional): Listing format or promotion type.
  • posting.is_link_out (boolean, optional): Whether the listing links out to an external application flow.
  • posting.share_url (string, optional): Shareable listing URL.
  • role.role_key (string, optional): SEEK role key when available.
  • role.normalized_role_title (string, optional): Normalized role title.
  • role.classification (string, optional): Broad job category.
  • role.subclassification (string, optional): More specific job specialty.
  • role.classification_labels (array[string], optional): Display labels for classification matches.
  • workplace.employment_types (array[string], optional): Employment type labels, such as full time or contract.
  • workplace.work_arrangement (string, optional): Primary work arrangement.
  • workplace.work_arrangement_labels (array[string], optional): Work arrangement labels shown on the listing.
  • workplace.work_arrangement_types (array[string], optional): Normalized work arrangement codes.
  • company.name (string, optional): Employer or company name.
  • company.advertiser_name (string, optional): Advertiser name as displayed on SEEK.
  • company.advertiser_id (string, optional): Advertiser identifier.
  • company.is_verified (boolean, optional): Whether the advertiser is shown as verified.
  • company.registration_date (string, optional): Advertiser registration date.
  • company.profile_id (string, optional): Company profile identifier.
  • company.profile_url (string, optional): Company profile URL.
  • company.search_url (string, optional): SEEK company jobs URL.
  • company.website_url (string, optional): External company website URL.
  • company.description (string, optional): Company description text.
  • company.industry (string, optional): Company industry label.
  • company.size (string, optional): Company size band.
  • company.review_count (integer, optional): Number of company reviews.
  • company.review_rating (number, optional): Company review rating.
  • location.display_name (string, optional): Display location shown on the listing.
  • location.country_code (string, optional): Country code.
  • location.country (string, optional): Country name.
  • location.suburb (string, optional): Suburb or local area.
  • location.region (string, optional): Region value when available.
  • location.state (string, optional): State or province.
  • location.postcode (string, optional): Postal code.
  • location.seo_where (string, optional): SEO-oriented location string.
  • location.seo_broader_location (string, optional): Broader location label.
  • compensation.text (string, optional): Salary text exactly as shown.
  • compensation.amount (number, optional): Parsed numeric salary amount when available.
  • compensation.currency (string, optional): Currency symbol or currency value.
  • contacts.phone_number (string, optional): Extracted phone number when available.
  • contacts.matches (array[object], optional): Contact items detected in the listing, such as email addresses or phone numbers.
  • media.listing_logo_url (string, optional): Listing logo image URL.
  • media.company_logo_url (string, optional): Company logo image URL.
  • media.brand_cover_url (string, optional): Brand cover image URL.
  • media.brand_thumbnail_url (string, optional): Brand thumbnail image URL.

Data guarantees & handling

  • Best-effort extraction: fields may vary by region, session, availability, and site-side presentation changes.
  • Optional fields: null-check in downstream code.
  • Deduplication: recommend type + ":" + id.

How to Run on Apify

  1. Open the actor in Apify Console.
  2. Configure your search parameters, such as optional queries, categories, country, location, and salary or work arrangement filters.
  3. Turn on maximize_coverage if you want the actor to prioritize fuller coverage on broad searches.
  4. Set the maximum number of outputs to collect with the limit field if you want to cap results per search.
  5. Click Start and wait for the run to finish.
  6. Download results in JSON, CSV, Excel, or another supported Apify export format.

Scheduling & Automation

Scheduling

Automated Data Collection

You can schedule recurring runs to keep your SEEK dataset fresh without starting each run manually. This is useful for routine reporting, employer monitoring, and ongoing market tracking.

  • Navigate to Schedules in Apify Console
  • Create a new schedule (daily, weekly, or custom cron)
  • Configure input parameters
  • Enable notifications for run completion
  • Optional: add webhooks for automated processing

Integration Options

  • Webhooks: Trigger downstream actions when a run completes
  • Zapier: Connect to 5,000+ apps without coding
  • Make (Integromat): Build multi-step automation workflows
  • Google Sheets: Export results to a spreadsheet
  • Slack/Discord: Receive notifications and summaries
  • Email: Send automated reports via email

Performance

  • Estimated small runs (< 1,000 outputs): ~2-3 minutes
  • Estimated medium runs (1,000-5,000 outputs): ~5-15 minutes
  • Estimated large runs (5,000+ outputs): ~15-30 minutes

Execution time varies based on filters, result volume, and how much information is returned per record.

Compliance & Ethics

Responsible Data Collection

This actor collects publicly available job listing and employer information from https://www.seek.com.au and https://nz.seek.com/ for legitimate business purposes. Common uses include job market research and market analysis, recruiting analytics and workforce planning, and competitive monitoring or content aggregation. This section is informational and not legal advice.

  • Employment market research and market analysis
  • Recruiting analytics and workforce planning
  • Competitive monitoring and reporting

Best Practices

  • Use collected data in accordance with applicable laws, regulations, and the target site’s terms
  • Respect individual privacy and personal information
  • Use data responsibly and avoid disruptive or excessive collection
  • Do not use this actor for spamming, harassment, or other harmful purposes
  • Follow relevant data protection requirements where applicable, such as GDPR or CCPA

Support

For help, use the actor page Issues section or the public support channel on the actor page in Apify. When reporting a problem, include the input you used with any sensitive values removed, the run ID, a short description of expected versus actual behavior, and, if helpful, a small sample of the output.