Jobstreet Jobs Search Scraper
Pricing
from $2.99 / 1,000 jobstreet job records
Jobstreet Jobs Search Scraper
Scrape job listings from Jobstreet.com.my, Malaysia and Southeast Asia's leading job platform. Extract job titles, companies, locations, salaries, and job types for regional recruitment and market analysis.
Pricing
from $2.99 / 1,000 jobstreet job records
Rating
0.0
(0)
Developer
Jobs API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
9 days ago
Last modified
Categories
Share
What does JobStreet Public Jobs Scraper do?
This Apify Actor extracts publicly available JobStreet (*.jobstreet.com) job postings across Asia-Pacific. It parses official search pages, verifies each posting on its official detail page, and writes only complete source-backed job records to the default dataset.
The implementation uses bounded native HTTPS requests and Cheerio, with optional Apify Proxy routing for public pages that reject direct datacenter traffic. It does not use browser fingerprint generation or challenge bypass. Target blocks are retained as structured KVS diagnostics and never turned into guessed rows.
Why use JobStreet Public Jobs Scraper?
- Collect complete detail-page descriptions instead of abbreviated search cards.
- Verify posting IDs, canonical URLs, titles, employers, and query relevance before output.
- Search eight JobStreet country sites with bounded pagination and concurrency.
- Schedule runs, call the Actor through the Apify API, export datasets, and connect Apify integrations.
- Enable Apify Proxy only when direct public requests are blocked, keeping cost and provenance explicit.
How to scrape JobStreet jobs
- Open the Actor input tab and choose a mode.
- Select the JobStreet country and enter a query and optional location.
- Keep
maxItemsandmaxPagessmall for the first run. - Enable
proxyConfigurationonly if direct requests are blocked. - Run the Actor and inspect the dataset plus
RUN_SUMMARYandRUN_DIAGNOSTICS. - Download the data or use the API and integrations for automation.
Modes
search— one query and up tomaxItemsverified postings.searchMultiple— up to five queries, with a bounded quota and stable deduplication per query.single— one official/job/<id>or/job-details/<id>URL.multiple— a bounded list of official detail URLs.startUrls— official search and/or detail URLs.
Generated searches use the selected country subdomain (au, hk, id, my, nz, ph, sg, or th). Pagination is limited to maxPages 1–3, detail concurrency to 1–5, maxItems to 10, and each request to 5–45 seconds.
Input
See .actor/input_schema.json for the complete definition. A normal local search is:
{"mode": "search","country": "my","query": "developer","location": "Kuala Lumpur","maxItems": 3,"maxPages": 2,"concurrency": 4,"requestTimeoutSecs": 25}
URL-list modes use objects, for example:
{"mode": "multiple","urls": [{ "url": "https://my.jobstreet.com/job/93421879" },{ "url": "https://my.jobstreet.com/job/93421880" }],"maxItems": 2}
Only HTTPS URLs on the official JobStreet country hosts are accepted. Posting IDs, canonical URLs, titles, employers, and search-query matches are verified before output.
What data can JobStreet Public Jobs Scraper extract?
| Field | Type | Description |
|---|---|---|
jobId | string | Verified JobStreet posting identifier |
jobTitle | string | Public job title |
employer | string | Hiring organization |
location | string | Public advertised or structured location |
description | string | Complete normalized detail text |
employmentType | string | Published employment type |
salary | string | Published compensation text when available |
publicUrl | string | Canonical official posting URL |
applicationUrl | string | Explicit source application URL when published |
How much will it cost to scrape JobStreet?
This Actor uses lightweight HTTP requests, so compute usage is normally modest. Cost depends on your Apify plan, selected memory, run duration, result limits, and optional proxy traffic. Start with one page and a few records to measure account-specific cost. Proxy use is disabled by default and reported in run metadata.
Output and run state
The strict output definition is .actor/dataset_schema.json. A record can contain the title, employer, company URL/logo, canonical URL, advertised and structured location, remote flag, salary, employment type, category, skills, dates, teaser/highlights, JSON-LD/public-detail description, sectioned responsibilities/qualifications/benefits, source-backed application URL, and verification/source receipts.
Optional values are omitted rather than emitted as null, blank, placeholder, or empty values. An application URL is copied only when an explicit source link is published; the canonical detail URL is never mislabeled as an application URL.
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. A simplified record is:
{"jobId": "93421879","jobTitle": "Business Automation & AI Developer","employer": "Example Employer","location": "Kuala Lumpur, MY","publicUrl": "https://my.jobstreet.com/job/93421879","detailVerified": true}
Run state is stored outside the job dataset:
RUN_SUMMARY— mode, counts, timing, request limits, and local-only provenance;RUN_DIAGNOSTICS— target, transport, redirect, or parsing errors;RUN_SKIPS— candidates rejected after verification;RUN_HEALTH— quality receipts.
Local development
npm installnpm testnpm run lintnpx --yes apify-cli validate-schema .actor/input_schema.jsonnpx --yes apify-cli run --purge --input-file INPUT.jsonnpm run validate
The local run writes to storage/. The validator checks required fields, official URL/ID consistency, duplicate IDs/URLs, recursive null/blank/placeholder/empty values, application provenance, and KVS consistency. If JobStreet is unavailable or challenge-gated, the run is BLOCKED, writes zero dataset rows, and leaves the structured reason in KVS.
FAQ, disclaimer, and support
Why is a run marked BLOCKED?
JobStreet may return a public access-verification page or HTTP block. Review RUN_DIAGNOSTICS, then consider a small run with Apify Proxy enabled. The Actor fails closed instead of emitting guessed records.
Does this Actor collect applicant data?
No. It collects public job advertisements only and does not access candidate accounts or authenticated recruiting systems.
Our Actors are ethical and do not extract private user data. They only extract publicly available job information. Results can still contain personal data published in an advertisement. Personal data is protected by the GDPR in the European Union and by other regulations worldwide. Do not process personal data without a legitimate reason; consult your lawyers if you are unsure.
Use the Actor API tab for programmatic access and the Issues tab for support. Include a redacted input and run ID when reporting a reproducible problem.
Responsible use
Collect only public job information, respect JobStreet’s terms and robots directives, and use modest bounded limits. Do not use this Actor for authenticated pages, paywall or challenge bypassing, or collection of candidate or recruiter personal data.