SEEK & JobStreet Jobs Scraper | Fast & Reliable | $0.80/1K avatar

SEEK & JobStreet Jobs Scraper | Fast & Reliable | $0.80/1K

Pricing

from $0.80 / 1,000 results

Go to Apify Store
SEEK & JobStreet Jobs Scraper | Fast & Reliable | $0.80/1K

SEEK & JobStreet Jobs Scraper | Fast & Reliable | $0.80/1K

Scrape job listings from SEEK, JobStreet and JobsDB in 8 countries (AU, NZ, MY, SG, ID, PH, HK, TH) with one Actor. Parsed salaries, full descriptions and incremental monitoring included, no proxy needed.

Pricing

from $0.80 / 1,000 results

Rating

0.0

(0)

Developer

Yusuf Barış

Yusuf Barış

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

What does SEEK & JobStreet Jobs Scraper do?

SEEK & JobStreet Jobs Scraper is a fast SEEK API alternative that extracts job listings from every site on the SEEK platform — SEEK (Australia, New Zealand), JobStreet (Malaysia, Singapore, Indonesia, Philippines) and JobsDB (Hong Kong, Thailand) — with one Actor, one input and one flat price.

No login and no proxy needed, so runs are quick and cheap. Salaries are parsed into numbers, full job descriptions are optional and free, and an incremental mode lets you monitor a search and receive only new jobs.

Supported sites

CodeSiteCountryCurrency
AUseek.com.auAustraliaAUD
NZseek.co.nzNew ZealandNZD
MYmy.jobstreet.comMalaysiaMYR
SGsg.jobstreet.comSingaporeSGD
IDid.jobstreet.comIndonesiaIDR
PHph.jobstreet.comPhilippinesPHP
HKhk.jobsdb.comHong KongHKD
THth.jobsdb.comThailandTHB

Why use this scraper?

  • 8 countries, 1 Actor – switch the site field, or mix sites in one run by pasting start URLs from different domains.
  • Salary and description included – salaryMin / salaryMax / currency / salaryPeriod are parsed for you and full descriptions cost nothing extra. No add-ons, no start fee.
  • Incremental monitoring – turn on onlyNew and schedule the Actor to get only the listings you have not seen before.
  • Real filters – keywords, location, listing date, work type, work arrangement (on-site / hybrid / remote), industry and salary range.
  • Large result sets – ask for hundreds or thousands of jobs per keyword; duplicates are removed automatically.
  • Reliable – built-in retries, so runs finish cleanly even when a site is busy.
  • Apify platform extras – schedules, API access, webhooks, integrations (Make, Zapier, Google Sheets, Slack…) and dataset export to JSON, CSV, Excel, XML or HTML.

Typical use cases: recruitment and talent-market research, salary benchmarking, competitor hiring signals, lead generation for staffing agencies, job aggregators and alerting, labour-market dashboards.

What data can you extract?

FieldTypeDescription
id, jobUrlstringJob id and link to the ad
title, teaser, bulletPointsstring / arrayTitle, short summary and the highlights shown in search
companyName, advertiserId, advertiserName, employerId, employerName, companyUrlstringAdvertiser / employer details
classification, subclassification, classificationsstring / arrayIndustry and sub-industry
location, locations, countryCodestring / arrayWhere the job is
listingDatestring (ISO)When the ad was listed
salaryLabelstringSalary text exactly as shown
salaryMin, salaryMax, currency, salaryPeriodnumber / stringParsed salary (hour, day, week, month or year)
workTypes, workArrangements, isRemotearray / booleanFull time / part time / contract / casual; on-site / hybrid / remote
isFeatured, displayType, logoUrl, roleIdmixedAd presentation details
description, descriptionHtml, expiresAtstringFull ad text, HTML and closing date (when includeDescription is on)
site, query, queryWhere, scrapedAtstringWhich site and search produced the row, and when

How to scrape SEEK, JobStreet and JobsDB

  1. Open the Actor and choose the Site / country.
  2. Add one or more Keywords (each keyword is a separate search) and optionally a Location. Alternatively paste Start URLs — search pages or single job pages from any supported site.
  3. Set Max results (default 100) and any filters you need.
  4. Tick Include full description if you want the complete ad text.
  5. Click Start, then download the dataset as JSON, CSV or Excel — or fetch it through the API.

How much does it cost to scrape SEEK, JobStreet and JobsDB?

$0.80 per 1,000 results ($0.0008 per job) — pay only for jobs that are saved to the dataset.

  • No start fee.
  • Descriptions and parsed salaries are included, not billed separately.
  • Runs are lightweight, so platform usage per run is minimal.

That is 2–3x cheaper than the most popular SEEK scrapers, most of which charge $2–$2.70 per 1,000 jobs once descriptions and salary data are added, plus start fees.

This ActorTypical alternatives
Price per 1,000 jobs$0.80$2.00 – $2.70
Descriptionincludedsometimes billed extra
Salary parsingincludedsometimes billed extra
Start feenone$0.01 – $0.08
Countries8 in one Actorusually one Actor per site

Use Max results to cap your spend: 100 jobs cost $0.08.

Input

See the Input tab for every option. The ones worth knowing:

FieldNotes
siteAU, NZ, MY, SG, ID, PH, HK or TH – default AU.
keywordsList of search terms, one search each. Empty = no keyword.
whereLocation as typed on the site, e.g. All Sydney NSW, Kuala Lumpur.
startUrlsSearch URLs (…/software-engineer-jobs/in-All-Sydney-NSW?daterange=7) or job URLs (…/job/12345678). The site is taken from the URL's domain. Filters in the URL win over the form.
maxItems / maxItemsPerQueryTotal cap, and an optional cap per keyword / URL so one search cannot use the whole budget.
sortBy, dateRangeNewest first; last 1 / 3 / 7 / 14 / 31 days.
workType, workArrangement, classificationFull time, part time, contract, casual; on-site, hybrid, remote; 30 industries.
salaryMin, salaryMax, salaryTypeRange per year, month or hour (default: annual for AU/NZ, monthly elsewhere).
includeDescriptionAdds description, descriptionHtml, expiresAt. No extra charge.
onlyNew, seenStoreNameIncremental mode, see below.

Example input

{
"site": "AU",
"keywords": ["data engineer", "analytics engineer"],
"where": "All Sydney NSW",
"maxItems": 100,
"sortBy": "date",
"dateRange": "7",
"workArrangement": ["hybrid", "remote"],
"salaryMin": 120000,
"includeDescription": true
}

Output

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. Example (shortened):

{
"id": "95122888",
"jobUrl": "https://my.jobstreet.com/job/95122888",
"title": "General manager",
"companyName": "Example Sdn Bhd",
"classification": "CEO & General Management",
"location": "Kuala Lumpur City Centre, Kuala Lumpur",
"countryCode": "MY",
"listingDate": "2026-10-11T02:14:09Z",
"salaryLabel": "RM 15,000 per month",
"salaryMin": 15000,
"salaryMax": 15000,
"currency": "MYR",
"salaryPeriod": "month",
"workTypes": ["Full time"],
"workArrangements": ["On-site"],
"isRemote": false,
"description": "Responsibilities:\n\n• Lead the regional business …",
"expiresAt": "2026-11-10T15:59:59.999Z",
"site": "MY",
"query": "manager",
"queryWhere": "Kuala Lumpur",
"scrapedAt": "2026-10-11T14:53:52.048Z"
}

Monitor new jobs on a schedule

Switch on Only new jobs and create a schedule (for example every 6 hours). The first run returns up to maxItems jobs and remembers their ids; every following run returns only listings it has not delivered before.

{
"site": "SG",
"keywords": ["product manager"],
"sortBy": "date",
"dateRange": "3",
"maxItems": 100,
"onlyNew": true,
"seenStoreName": "sg-product-manager-monitor"
}
  • Give each monitor its own seenStoreName so they do not share history.
  • Jobs are remembered per site and forgotten after 90 days without appearing in results.
  • Connect the dataset to a webhook or integration to get a Slack message, email or Google Sheets row for each new batch.

Tips

  • Date-sort monitors. For alerting, combine onlyNew with sortBy: date and a short dateRange – runs stay tiny and cheap.
  • Salary filtering. Many ads show no salary. A salary range removes ads whose stated salary clearly lies outside it, but keeps ads without a stated salary, since they may match.
  • Large pulls. For very large result sets, prefer several focused keywords or locations over one huge search.
  • Speed. Leave includeDescription off if you only need the listing data – runs finish faster.

FAQ

Do I need a proxy?

No. The Actor works out of the box. You can optionally choose an Apify Proxy in the input.

Can I scrape several countries in one run?

Yes: paste start URLs from different domains (for example one SEEK AU and one JobsDB HK search). Each URL is routed to its own site.

Why is salaryMin empty for some jobs?

Most advertisers do not publish a salary. When the label has no parseable amount (for example "Competitive package"), the numeric fields are null; salaryLabel is still returned when present. If the label gives an amount but no unit and the number is ambiguous (for example $850 + super), salaryPeriod is null.

What is isRemote?

true when the ad's work arrangement is Remote. Hybrid ads are false; see workArrangements.

Our Actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our Actors, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. Review the target sites' terms of use for your use case. This Actor is not affiliated with SEEK, JobStreet or JobsDB.

Something is wrong or missing

Open an issue in the Issues tab and include the run link. Programmatic access is described in the API tab.