JobStreet Scraper avatar

JobStreet Scraper

Pricing

Pay per usage

Go to Apify Store
JobStreet Scraper

JobStreet Scraper

A simple and lightweight scraper for Jobstreet, designed to quickly extract essential job posting data. It provides a clean, minimal set of columns for easy integration. Important: For a smooth and reliable run, this actor requires the use of residential proxies.

Pricing

Pay per usage

Rating

5.0

(2)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

1

Bookmarked

31

Total users

6

Monthly active users

3 days ago

Last modified

Share

JobStreet Jobs Scraper

Extract JobStreet job listings from Malaysia, Singapore, Philippines, and Indonesia in a structured format. Collect job titles, companies, salary details, classifications, posting timestamps, and detailed descriptions for market research, recruitment intelligence, and job trend monitoring.


Features

  • Multi-country coverage — Scrapes MY, SG, PH, and ID JobStreet sites.
  • Flexible search modes — Use startUrl directly or build searches from keyword and location.
  • Rich job records — Includes core fields, posting metadata, and API-level attributes.
  • Pagination support — Continues across result pages until your limit is reached.
  • Configurable collection size — Control run size with results_wanted.
  • Proxy-ready runs — Supports standard Apify proxy configuration for reliability.

Use Cases

Hiring Intelligence

Track active roles by company, location, and work type to benchmark recruitment activity in your target market.

Job Market Research

Analyze salary visibility, job volume, and posting freshness across countries and industries.

Lead Generation

Build targeted employer and vacancy datasets for staffing outreach and sales prospecting.

Trend Monitoring

Schedule recurring runs to monitor changes in role demand, classifications, and posting cadence.


Input Parameters

ParameterTypeRequiredDefaultDescription
startUrlStringNoFull JobStreet search URL to scrape directly.
keywordStringNo"developer"Search keyword used when startUrl is not provided.
locationStringNoLocation filter used with keyword search.
countryStringNo"my"Country site: my, sg, ph, id.
posted_dateStringNo"anytime"Date filter: anytime, 24h, 7d, 30d.
results_wantedIntegerNo20Maximum jobs to collect (primary limit).
proxyConfigurationObjectNo{"useApifyProxy":false}Optional proxy settings (enable if you need extra reliability).

Output Data

Each dataset item can include:

FieldTypeDescription
idStringJob ID extracted from listing URL.
urlStringJob detail URL.
titleStringJob title.
companyStringHiring company name.
locationStringJob location.
salaryStringSalary text when available.
workTypeStringEmployment/work type label.
classificationStringJob classification/category label.
postedAt_isoStringISO timestamp of posting time.
subClassificationStringJob sub-classification label when available.
teaserStringShort summary text for the role.
bulletPointsArrayHighlight bullets when available.
workArrangementsArrayWork arrangement tags when available.
isFeaturedBooleanWhether listing is featured.
isPremiumBooleanWhether listing is premium.
tagsArrayAdditional listing tags when available.
description_htmlStringJob description HTML extracted from job detail page embedded data (with JSON-LD fallback).
description_textStringPlain-text description derived from description_html.
sourceStringSource marker for dataset lineage.
list_urlStringListing URL where the job was found.
scrapedAtStringISO timestamp when item was scraped.

Usage Examples

{
"keyword": "data analyst",
"location": "Malaysia",
"results_wanted": 20
}
{
"keyword": "software engineer",
"location": "Singapore",
"country": "sg",
"posted_date": "7d",
"results_wanted": 40
}

Direct URL Mode

{
"startUrl": "https://my.jobstreet.com/developer-jobs/in-Malaysia",
"results_wanted": 30
}

Sample Output

{
"id": "90123456",
"url": "https://my.jobstreet.com/job/90123456",
"title": "Senior Software Engineer",
"company": "Example Tech Sdn Bhd",
"location": "Kuala Lumpur, Malaysia",
"salary": "RM 8,000 - RM 12,000 per month",
"workType": "Full time",
"classification": "Information & Communication Technology",
"subClassification": "Developers / Programmers",
"postedAt_iso": "2026-02-26T03:12:11.000Z",
"teaser": "Build and scale backend services for regional products.",
"bulletPoints": [
"Node.js and TypeScript",
"AWS and CI/CD"
],
"workArrangements": [
"Hybrid"
],
"isFeatured": true,
"isPremium": false,
"tags": [
"backend",
"cloud"
],
"description_html": "<p>Build and maintain scalable backend services...</p>",
"description_text": "Build and maintain scalable backend services...",
"source": "jobstreet_api",
"list_url": "https://my.jobstreet.com/software-engineer-jobs/in-Kuala-Lumpur",
"scrapedAt": "2026-02-28T12:22:07.331Z"
}

Tips for Best Results

Start Small

  • Begin with results_wanted: 20 for quick validation.
  • Increase limits only after confirming output quality.

Prefer Specific Queries

  • Use precise keywords and locations to improve relevance.
  • Apply posted_date to focus on recent roles.

Use Reliable Proxies

  • Enable residential proxies if you hit blocking on larger runs.
  • Keep concurrency moderate for consistent completion.

Integrations

Connect output data with:

  • Google Sheets — Analyze hiring trends and role volume.
  • Airtable — Build searchable job intelligence databases.
  • Make — Automate downstream enrichment workflows.
  • Zapier — Trigger alerts and notifications.
  • Webhooks — Send run results to your internal systems.

Export Formats

  • JSON — API-ready structured output.
  • CSV — Spreadsheet analysis.
  • Excel — Business reporting.
  • XML — System interoperability.

Frequently Asked Questions

How many jobs can I collect per run?

You can collect as many as available, controlled by results_wanted.

Does it support multiple countries?

Yes. Set country to my, sg, ph, or id for keyword/location searches.

Can I use my own JobStreet search URL?

Yes. Provide startUrl and the actor will scrape from that URL directly.

Why are some fields sometimes empty?

Some listings do not expose all attributes (for example salary or classification), so those fields may be null.

How do I improve run reliability?

Keep request limits practical, and enable residential proxies in proxyConfiguration only when needed.


Support

For issues or feature requests, use the Apify Console issue/support channels.

Resources


This actor is intended for legitimate data collection use cases. You are responsible for complying with website terms and applicable laws in your jurisdiction.