JobStreet Scraper
Pricing
from $0.99 / 1,000 results
JobStreet Scraper
Scrape live job openings from Southeast Asia's #1 job portal. Extract job titles, companies, salaries, benefits, locations & apply URLs. Ideal for recruitment intelligence, competitive salary analysis, talent market research & training datasets. Clean, production-ready output.
Pricing
from $0.99 / 1,000 results
Rating
4.3
(8)
Developer
Shahid Irfan
Maintained by CommunityActor stats
5
Bookmarked
160
Total users
22
Monthly active users
19 hours ago
Last modified
Categories
Share
What does JobStreet Jobs Scraper do?
JobStreet Jobs Scraper is a JobStreet scraper for collecting public job listings from Malaysia, Singapore, the Philippines, and Indonesia. Search with a keyword and optional location, or provide a JobStreet search results URL, then receive structured records with job titles, companies, salaries, locations, classifications, posting dates, descriptions, and direct job URLs.
The Actor is useful for recruitment research, hiring intelligence, salary benchmarking, job board data collection, skills analysis, and recurring monitoring of Southeast Asian employment markets. Results are saved to an Apify Dataset and can be downloaded or connected to other workflows.
Why use JobStreet Jobs Scraper?
- Southeast Asia coverage - Choose the Malaysia, Singapore, Philippines, or Indonesia JobStreet site for keyword and location searches.
- Flexible search inputs - Search by role, city, or region, or reuse a pre-filtered JobStreet results URL.
- Job detail enrichment - Collect listing summaries plus full descriptions in both plain text and HTML when published by the source.
- Recruitment-ready fields - Compare companies, salary labels, employment types, classifications, work arrangements, and posting dates.
- Repeatable data collection - Run on demand or schedule recurring runs in Apify for hiring trend reports and job alerts.
- Workflow-friendly exports - Use JSON, CSV, Excel, XML, the Apify API, webhooks, and connected tools for downstream analysis.
What data can you extract from JobStreet?
Each dataset item represents one JobStreet job listing. Fields may be omitted when the source listing does not publish the corresponding value.
| Field | Type | Description |
|---|---|---|
id | String | Unique JobStreet listing identifier |
url | String | Direct URL to the job listing |
title | String | Job title or position name |
company | String | Hiring company or advertiser name |
location | String | Published job location |
salary | String | Salary range or salary label when available |
workType | String | Employment type, such as full time or contract |
classification | String | Main job industry classification |
subClassification | String | More specific job category |
postedAt_iso | String | Job posting date in ISO 8601 format |
postedAt_display | String | Human-readable posting date when available |
teaser | String | Short listing summary |
bulletPoints | Array | Key highlights or job attributes when available |
workArrangements | Array | Remote, hybrid, on-site, or other work arrangement labels |
description_text | String | Full job description as plain text |
description_html | String | Full job description with source HTML formatting |
isFeatured | Boolean | Whether the listing is marked as featured |
isPremium | Boolean | Whether the listing is marked as premium |
roleId | String | Role identifier when supplied by JobStreet |
advertiserId | String | Advertiser identifier when available |
employerId | String | Employer identifier when available |
brandingLogoUrl | String | Company branding or logo URL when available |
list_url | String | JobStreet search page used to find the listing |
scrapedAt | String | ISO timestamp for the collection run |
detail_status | String | Status reported for the job detail record when available |
isExpired | Boolean | Whether JobStreet marks the listing as expired |
How to scrape JobStreet data
- Open JobStreet Jobs Scraper in Apify Console.
- Enter a keyword and optional location, or paste a public JobStreet search results URL into
startUrl. - Select the country site and posting-date filter when using keyword or location search.
- Set
results_wantedto the maximum number of records to save. - Start the Actor and review the dataset preview when the run finishes.
- Download the results or connect the dataset to your recruitment, analytics, or alerting workflow.
When startUrl is provided, it takes precedence over keyword and location. Use a JobStreet search results URL, not an individual job detail URL. A country domain in the URL determines the country site for that run.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | - | Public JobStreet search results URL. Overrides keyword and location when provided. |
keyword | String | No | developer | Job search term, such as data analyst, software engineer, or marketing manager. |
location | String | No | "" | Optional typed location, such as Singapore, Kuala Lumpur, or Manila. |
country | String | No | my | JobStreet country site for keyword and location searches: my, sg, ph, or id. |
posted_date | String | No | 24h | Posting-date filter for keyword and location searches: anytime, 24h, 7d, or 30d. |
results_wanted | Integer | No | 20 | Maximum number of job records to save. The value must be at least 1. |
Country values
| Value | JobStreet site |
|---|---|
my | Malaysia, my.jobstreet.com |
sg | Singapore, sg.jobstreet.com |
ph | Philippines, ph.jobstreet.com |
id | Indonesia, id.jobstreet.com |
The posted_date filter applies to keyword and location searches. If you provide a startUrl, keep any date filtering in that JobStreet URL instead.
Output Data
The Actor writes one JSON object per job to the default Apify Dataset. Description and metadata fields depend on what JobStreet publishes for each listing.
| Field | Type | Description |
|---|---|---|
id | String | JobStreet job ID |
title | String | Position title |
company | String | Employer or advertiser |
location | String | Job location |
salary | String | Salary information when visible |
workType | String | Employment type |
classification | String | Job classification |
subClassification | String | Job sub-classification |
postedAt_iso | String | ISO posting date |
postedAt_display | String | Display posting date |
teaser | String | Short job summary |
bulletPoints | Array | Listing highlights |
workArrangements | Array | Work arrangement labels |
description_text | String | Plain-text description |
description_html | String | HTML description |
isFeatured | Boolean | Featured listing flag |
isPremium | Boolean | Premium listing flag |
brandingLogoUrl | String | Company branding or logo URL when available |
url | String | Direct job URL |
list_url | String | Search page URL |
scrapedAt | String | ISO collection timestamp |
detail_status | String | Job detail status when available |
isExpired | Boolean | Whether the listing is marked as expired |
Usage Examples
Basic keyword search
Collect up to 20 developer jobs from the default Malaysia JobStreet site:
{"keyword": "developer","results_wanted": 20}
Location and country search
Find recent data analyst roles in Singapore:
{"keyword": "data analyst","location": "Singapore","country": "sg","posted_date": "7d","results_wanted": 50}
Pre-filtered JobStreet search URL
Reuse a JobStreet results page with its existing keyword, location, classification, work arrangement, or other search settings:
{"startUrl": "https://my.jobstreet.com/data-analyst-jobs/in-Kuala-Lumpur","results_wanted": 100}
Sample Output
The following is an example of one dataset item. Some listings may not include salary, work arrangement, company branding, or other optional fields.
{"id": "91234567","url": "https://sg.jobstreet.com/job/91234567","title": "Senior Data Analyst","company": "Harbor Digital Pte. Ltd.","location": "Singapore","salary": "$6,000 - $8,000 per month","workType": "Full time","classification": "Information & Communication Technology","subClassification": "Business/Systems Analysts","postedAt_iso": "2026-07-31T02:15:00.000Z","postedAt_display": "2 days ago","teaser": "Use data to improve product and commercial decisions across Southeast Asia.","bulletPoints": ["Competitive salary","Hybrid work arrangement"],"workArrangements": ["Hybrid"],"description_text": "The Senior Data Analyst will build reports, analyze business performance, and partner with product teams to support better decisions.","description_html": "\u003Cp\u003EThe Senior Data Analyst will build reports, analyze business performance, and partner with product teams to support better decisions.\u003C/p\u003E","isFeatured": false,"isPremium": false,"brandingLogoUrl": "https://example.com/company-logo.png","list_url": "https://sg.jobstreet.com/data-analyst-jobs","scrapedAt": "2026-08-02T09:30:00.000Z","detail_status": "ACTIVE","isExpired": false}
Tips for Best Results
- Test with a small limit - Start with 10 to 20 records before scheduling a larger collection.
- Use specific keywords - Add a seniority level, skill, or role name to reduce unrelated results.
- Narrow the location - Use a city or region when you need a focused local dataset.
- Choose the correct country - Set
countryto match the JobStreet site you want to search. - Use a full search URL for complex filters - JobStreet URLs can preserve filters that are not represented by the simple keyword and location inputs.
- Expect source-dependent fields - Salary, descriptions, classifications, and work arrangements can be missing when the employer does not publish them.
- Review the dataset before automation - Check a test run before sending records to alerts, dashboards, or a job board.
- Report layout changes - Public job pages can change over time. Use the Actor's Issues tab to report missing or unexpected data.
Integrations and Export Formats
- Apify Dataset - Preview records in Apify Console and retrieve them through the Apify API.
- Google Sheets - Export job rows for recruiter review, filtering, and reporting.
- Airtable - Build a searchable hiring database with company, location, salary, and posting-date fields.
- Webhooks - Trigger downstream actions after a run completes.
- Make or Zapier - Send new job records to notifications, CRM systems, or internal tools.
- JSON, CSV, Excel, and XML - Download the dataset in formats suited to applications, spreadsheets, and data pipelines.
Frequently Asked Questions
Which JobStreet countries are supported?
Malaysia, Singapore, the Philippines, and Indonesia are supported through the my, sg, ph, and id country values.
Can I search JobStreet by keyword and location?
Yes. Set keyword and optionally set location, country, and posted_date to collect a focused search result set.
Can I use an existing JobStreet search URL?
Yes. Provide a public JobStreet search results page in startUrl. It overrides the keyword and location inputs, and the country domain is used for the run.
Can I extract full JobStreet descriptions?
Yes. The dataset includes description_text and description_html when a listing publishes description content. Empty source fields are not guaranteed to be available for every job.
Can I export JobStreet data to CSV or Excel?
Yes. Apify Dataset results can be downloaded as CSV, Excel, JSON, XML, and other supported formats.
Can I schedule recurring JobStreet searches?
Yes. Create an Apify schedule to run the Actor hourly, daily, weekly, or at another interval supported by your workflow.
How many listings can I collect?
The results_wanted input controls the maximum number of records saved for a run. Start with a smaller value to validate a search before increasing it.
Why is a field missing from a job record?
A field can be missing when the employer or JobStreet does not publish that information, or when the listing has changed or expired. Compare several records before treating a missing field as a run failure.
Is it legal to scrape JobStreet?
The Actor is intended for responsible collection of publicly available job information. You are responsible for complying with JobStreet's terms, applicable laws, privacy requirements, and any restrictions on storing or redistributing job data.
Related Actors
- Jora Jobs Scraper - Collect comparable job listings across regions that include Malaysia, Singapore, and Indonesia.
- Foundit Jobs Scraper - Collect structured job listings, salaries, skills, and descriptions for recruitment research.
Support
For issues, missing fields, or feature requests, use the Issues tab on the Actor page in Apify Console. Include the input JSON and a short description of the unexpected result when reporting a problem.
Legal Notice
This Actor is intended for legitimate collection and analysis of publicly available JobStreet job information. Users are responsible for respecting JobStreet's terms of service, applicable privacy and data protection rules, intellectual property rights, and any limits on using or redistributing collected data.