JobStreet & JobsDB Scraper - Asia Jobs (MY, SG, PH, ID, HK, TH) avatar

JobStreet & JobsDB Scraper - Asia Jobs (MY, SG, PH, ID, HK, TH)

Pricing

from $1.00 / 1,000 job scrapeds

Go to Apify Store
JobStreet & JobsDB Scraper - Asia Jobs (MY, SG, PH, ID, HK, TH)

JobStreet & JobsDB Scraper - Asia Jobs (MY, SG, PH, ID, HK, TH)

Scrape jobs from JobStreet (Malaysia, Singapore, Philippines, Indonesia) and JobsDB (Hong Kong, Thailand) in one Actor: title, company, location, parsed salary, classification, work type, bullet points and optional full descriptions. Only-new-jobs mode for alerts.

Pricing

from $1.00 / 1,000 job scrapeds

Rating

0.0

(0)

Developer

rj

rj

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Features

Limited permissions

Share

Scrape job listings from all six SEEK Asia job boards in one run: JobStreet Malaysia, Singapore, Philippines and Indonesia, and JobsDB Hong Kong and Thailand. Pick one or more countries, type keywords and get clean JSON with title, company, location, classification, work type, work arrangement, bullet points and a parsed salary (min, max, currency, period). Other Store Actors cover JobStreet and JobsDB separately and often add a start fee. This one covers all six markets, charges no start fee, has an "only new jobs" mode for alerts, and outputs flat camelCase fields like our other job scrapers (the salary fields match our Reed Jobs Scraper). It calls the sites' own JSON search API, so it needs no browser, login or cookies.

What data can you get?

FieldExample
titleAudit Senior / Semi-Senior / Audit Assistant
companyName, advertiserId, companyUrlHSL & Co, 60215747, https://my.jobstreet.com/companies/hsl-n-co-168555965511559
location, country, countryCodeKuala Lumpur, Malaysia, MY
workType, employmentType, workArrangement, isRemoteFull time, FULL_TIME, On-site, false
classification, subClassification (+ IDs)Accounting, Audit - External
salaryLabelRM 3,200 – RM 4,500 per month
salaryMin, salaryMax, salaryCurrency, salaryPeriod3200, 4500, MYR, month
bulletPoints, teaser"Career advancement", "Fresh graduates are encouraged to apply..."
listedAt, listedAtText2026-11-05T11:54:39.000Z, 30m ago
isPremium, badges, logoUrl, roleIdfalse, ["Be an early applicant"]
url, id, jobId, sitehttps://my.jobstreet.com/job/95724675, jobstreet:my:95724675
With Include full job description: descriptionText, descriptionHtml, expiresAt, isExternalApply, area, companyIndustry, companySize, companyWebsite
detailsStatusnot-requested, ok or failed, so you can always tell why a description is missing
searchKeywords, scrapedAtsoftware engineer, 2026-11-05T12:00:00.000Z

No recruiter names, emails or phone numbers are collected.

Use cases

  • Job alerts: schedule a daily run with "Only new jobs" and send new listings to Slack, email or Google Sheets.
  • Salary benchmarking across Malaysia, Singapore, the Philippines, Indonesia, Hong Kong and Thailand with parsed salary numbers and ISO currencies.
  • Recruitment and lead generation: see which companies are hiring, for what and where.
  • Labour-market research: compare demand for a role across six Asian markets in one dataset.
  • Job boards and aggregators: feed Asian jobs alongside our SEEK (AU/NZ), Reed (UK) and Dice (US) scrapers, with the same flat, camelCase style.

How to use it

  1. Pick one or more Countries.
  2. Add Keywords (each keyword is a separate search in each country) and, optionally, a Location and filters.
  3. Set Max jobs per search and click Start. Turn on Include full job description if you need the description text.

Input examples

Software engineer jobs in Malaysia (the default):

{ "country": ["MY"], "keywords": ["software engineer"], "maxItems": 15 }

Accountant jobs in Kuala Lumpur:

{ "country": ["MY"], "keywords": ["accountant"], "location": "Kuala Lumpur", "maxItems": 20 }

Remote virtual assistant jobs in the Philippines:

{ "country": ["PH"], "keywords": ["virtual assistant"], "workArrangements": ["remote"], "maxItems": 20 }

The same search in all six markets, with descriptions, listed in the last 7 days:

{
"country": ["MY", "SG", "PH", "ID", "HK", "TH"],
"keywords": ["data analyst"],
"dateRange": "7",
"maxItems": 50,
"fetchDetails": true
}

Daily alert for new ICT jobs in Singapore (schedule it and keep the same stateKey):

{
"country": ["SG"],
"classifications": ["information-communication-technology"],
"onlyNew": true,
"stateKey": "sg-ict-alert",
"maxItems": 0
}

Output example

A real item (description shortened):

{
"id": "jobstreet:my:95724675",
"jobId": "95724675",
"url": "https://my.jobstreet.com/job/95724675",
"title": "Audit Senior / Semi-Senior / Audit Assistant",
"companyName": "HSL & Co",
"advertiserId": "60215747",
"advertiserName": "HSL & CO",
"companyUrl": "https://my.jobstreet.com/companies/hsl-n-co-168555965511559",
"location": "Kuala Lumpur",
"area": null,
"countryCode": "MY",
"country": "Malaysia",
"workType": "Full time",
"workTypes": ["Full time"],
"employmentType": "FULL_TIME",
"workArrangement": "On-site",
"isRemote": false,
"classification": "Accounting",
"classificationId": "1200",
"subClassification": "Audit - External",
"subClassificationId": "6144",
"salaryLabel": "RM 3,200 – RM 4,500 per month",
"salaryMin": 3200,
"salaryMax": 4500,
"salaryCurrency": "MYR",
"salaryPeriod": "month",
"bulletPoints": ["Education support (enrolment, study leave and education bond)", "Career advancement", "Opportunity to access IPO work"],
"teaser": "Fresh graduates are encourage to apply for audit assistant. At least 1-2 years of related working experiences for audit semi-seniors.",
"listedAt": "2026-11-05T11:54:39.000Z",
"listedAtText": "30m ago",
"isPremium": false,
"badges": ["Be an early applicant"],
"roleId": "Audit-Semi-Senior",
"logoUrl": "https://bx-branding-gateway.cloud.seek.com.au/aadf8671-a12e-4881-97ae-046b7c309834.1/jdpLogo",
"detailsStatus": "ok",
"descriptionText": "Requirements:\n• Possess relevant accounting qualification or currently pursuing professional accounting examinations.\n• ...",
"descriptionHtml": "<p><strong>Requirements:</strong></p><ul><li><p>Possess relevant accounting qualification ...</p></li></ul>",
"expiresAt": "2026-12-05T12:59:59.999Z",
"isExternalApply": false,
"companyIndustry": "Accounting & Auditing",
"companySize": "11-50 employees",
"companyWebsite": "https://hslgroup.com.my",
"searchKeywords": "accountant",
"site": "my.jobstreet.com",
"scrapedAt": "2026-11-05T12:25:37.801Z"
}

The dataset has three views: Overview, Salaries and Descriptions. A RUN_SUMMARY record in the key-value store lists each search's status, counts and the number of requests.

Pricing

Pay per event, no start fee:

EventPriceWhen
job$0.001Each job saved to the dataset
job-details$0.0005Each job whose full description was fetched (only with "Include full job description")

Examples:

  • 1,000 jobs, listing data only: $1.00
  • 1,000 jobs with full descriptions: $1.50
  • A daily alert that finds 20 new jobs: $0.02 per day

You never pay for jobs already seen in incremental mode, duplicates across searches in one run, or failed searches. Set Maximum cost per run and the Actor stops cleanly when it is reached.

Tips and limits

  • Location is free text matched by the site (e.g. "Kuala Lumpur", "Makati City", "Bangkok"). The log shows which location was matched. It applies to every chosen country, so use it with one country at a time.
  • Salary is parsed from the advertiser's label. Many ads hide the salary; then salaryLabel is null or has no numbers ("World Class Benefits") and the numeric fields are null. The period is only set when the label says it ("per month", "p.a."); it is never guessed from the amount. On JobStreet Philippines a bare "$" is US dollars, as the site itself reports.
  • Descriptions cost one extra request per job, so runs with descriptions are slower (about 2 jobs per second).
  • Labels are in English on all six sites (Indonesian and Thai job titles stay as the advertiser wrote them).
  • The sites can change their private API at any time. If the search API ever answers for the wrong market, the search fails with a clear message instead of returning wrong jobs.
  • Incremental state lives in a named key-value store in your account. Deleting it resets the monitor.

FAQ

Do I need an account, cookies or a proxy? No account and no cookies. A proxy is off by default because the JSON API works without one. If a run is blocked (the status says "HTTP 403/429"), turn on Apify Proxy.

Can I use residential proxies? No. Under pay-per-event the Actor's owner pays proxy traffic, so the Actor only uses Apify datacenter proxy or your own proxy URLs. If you pick the RESIDENTIAL group, it logs a warning and uses datacenter proxy instead.

How many jobs can I get per search? All of them. Unlike seek.com.au, the Asian sites don't cap search results at 550. Use maxItems: 0 for no limit.

Why does a job have detailsStatus: "failed"? The description request failed after 3 retries. The job is still output with its listing data, and the run summary counts these.

Is it legal? The Actor collects job ads that employers publish to attract applicants. It reads public data only, at a polite request rate, and doesn't collect recruiter contact details. The sites' terms of use restrict automated access to parts of the sites. You are responsible for making sure your use complies with those terms and with the data-protection laws that apply to you (e.g. Malaysia's PDPA, Singapore's PDPA, the Philippine Data Privacy Act), especially if you store or republish the data.

Integrations

  • API: start runs and fetch results with the Apify API or the JavaScript and Python clients:

    curl -X POST "https://api.apify.com/v2/acts/rjmacarthy~jobstreet-jobsdb-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{"country":["SG"],"keywords":["data engineer"],"maxItems":50}'
  • Make, Zapier and n8n: send new jobs to Google Sheets, Airtable, Slack, email or your CRM without code.

  • Webhooks: trigger your pipeline when a run finishes.

  • MCP / AI agents: use the Actor as a tool through the Apify MCP server.

Changelog

  • 0.1 (Nov 2026): first release. Six markets (MY, SG, PH, ID, HK, TH), keyword/location/classification/work type/work arrangement/date filters, parsed salaries, optional full descriptions, only-new-jobs mode.

Ready-to-run examples

More scrapers by the same developer

Browse all my Actors on my Apify Store profile.

Support

Found a bug or need a field? Open an issue on the Actor's Issues tab and include the run ID.