Jobstreet Jobs Search Scraper avatar

Jobstreet Jobs Search Scraper

Pricing

from $2.99 / 1,000 jobstreet job records

Go to Apify Store
Jobstreet Jobs Search Scraper

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

Jobs API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

9 days ago

Last modified

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

  1. Open the Actor input tab and choose a mode.
  2. Select the JobStreet country and enter a query and optional location.
  3. Keep maxItems and maxPages small for the first run.
  4. Enable proxyConfiguration only if direct requests are blocked.
  5. Run the Actor and inspect the dataset plus RUN_SUMMARY and RUN_DIAGNOSTICS.
  6. Download the data or use the API and integrations for automation.

Modes

  • search — one query and up to maxItems verified 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?

FieldTypeDescription
jobIdstringVerified JobStreet posting identifier
jobTitlestringPublic job title
employerstringHiring organization
locationstringPublic advertised or structured location
descriptionstringComplete normalized detail text
employmentTypestringPublished employment type
salarystringPublished compensation text when available
publicUrlstringCanonical official posting URL
applicationUrlstringExplicit 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 install
npm test
npm run lint
npx --yes apify-cli validate-schema .actor/input_schema.json
npx --yes apify-cli run --purge --input-file INPUT.json
npm 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.