JobStreet Job Listings Scraper
Pricing
from $0.60 / 1,000 item processeds
JobStreet Job Listings Scraper
Export public JobStreet job listings by keyword, country, and optional location into structured records for recruitment research and market analysis.
Pricing
from $0.60 / 1,000 item processeds
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Export public JobStreet job listings from supported Southeast Asian JobStreet marketplaces. Search by keyword, choose a marketplace, and download structured records for recruitment research, salary analysis, and hiring-market monitoring.
Input recipes
{"query": "software engineer","country": "ID","maxItems": 25}
| Input | Description |
|---|---|
query | Job title or keywords to search. |
country | Marketplace: MY, SG, ID, or PH. |
location | Optional location refinement. |
maxItems | Number of listings to export (1–100). |
What you get
Each result represents one public JobStreet listing. Search results currently provide title, employer, location, salary label, classification, work type, teaser text, dates, and source context. Fields unavailable in the public search response are returned as null or an empty list rather than guessed.
{"jobId": "94228905","title": "Software Engineer Project Manager","company": "HiThink Technology Indonesia","location": "South Jakarta, Jakarta","salaryText": "Rp 13.500.000 – Rp 20.000.000 per month","salaryCurrency": "IDR","canonicalUrl": "https://id.jobstreet.com/job/94228905"}
Output fields
| Group | Fields |
|---|---|
| Identity and employer | jobId, seekJobId, title, canonicalUrl, company, companyUrl, advertiserId |
| Location and salary | location, locationCountry, locationState, locationSuburb, locationPostcode, salaryText, salaryMin, salaryMax, salaryCurrency, salaryType |
| Job classification | employmentType, workArrangement, category, subCategory, roleId, teaser, bulletPoints |
| Description and company details | description, descriptionHtml, descriptionMarkdown, descriptionLength, contentQuality, companyIndustry, companySize, companyWebsite, phoneNumber, screeningQuestions, applyUrl |
| Dates and source | postedDate, validThrough, contentHash, isSponsored, sourceUrl, sourceCountry, sourceDomain, searchQuery, searchUrl, scrapedAt, fetchedAt, detailFetched, extractedEmails |
| Tracking compatibility | changeType, trackedHash, firstSeenAt, lastSeenAt, previousSeenAt, expiredAt, stateKey, isRepost, repostOfId, repostDetectedAt |
Pricing and limits
The Actor charges a small start fee and per exported listing. See the live Pricing tab for current tiered rates. Each run returns 1–100 listings; source availability and disclosed fields vary by listing.
Who is it for?
- Recruiters and talent teams building role- and location-specific prospecting lists.
- Market researchers comparing public hiring demand, employers, and disclosed compensation.
- Analysts and developers feeding structured JobStreet records into dashboards, databases, or agents.
- Job-market monitors tracking public listings repeatedly through stable job IDs and source URLs.
Use cases
- Build a list of relevant openings for recruitment research.
- Compare advertised salary ranges across locations and job categories.
- Monitor public hiring demand for a keyword or role.
Limits
Results reflect the fields publicly returned by JobStreet at request time. Salary and employer details vary by listing. The actor does not access login-only data and never fabricates unavailable detail fields.
Tips for useful searches
- Use role-focused terms such as
software engineer,accountant, orcustomer service. - Start with 10–25 listings to review a new query, then raise
maxItemswhen it returns relevant roles. - Select the country where the hiring market is relevant; results are not inferred from your location.
- Keep
salaryTextalongside normalized salary values because listings may use different pay periods or disclose no pay. - Save
jobId,canonicalUrl, andscrapedAtwhen comparing repeated exports over time.
Working with the data
| Goal | Suggested fields |
|---|---|
| Find new openings | title, company, location, postedDate, canonicalUrl |
| Compare compensation | salaryText, salaryMin, salaryMax, salaryCurrency, salaryType |
| Segment hiring demand | category, subCategory, employmentType, workArrangement |
| Keep a research trail | jobId, sourceUrl, searchQuery, scrapedAt, contentHash |
FAQ
Which marketplaces are supported? Malaysia, Singapore, Indonesia, and the Philippines.
Why are some fields empty? JobStreet does not disclose every salary, employer, or listing-detail field in every public search response.
Can I use this in an agent workflow? Yes. Submit the same JSON input through the Apify API or the Actor's MCP integration.
Does it access private job data? No. It exports only public listing data available at request time.
Related Actors
- Google Jobs Scraper
- Indeed Jobs Scraper
- LinkedIn Jobs Scraper
- Career Page Job Postings Scraper
- Remote.com Jobs Scraper
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/jobstreet-job-listings-scraper').call({query: 'software engineer', country: 'ID', maxItems: 25,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("fetch_cat/jobstreet-job-listings-scraper").call(run_input={"query": "software engineer", "country": "ID", "maxItems": 25})print(list(client.dataset(run["defaultDatasetId"]).iterate_items()))
cURL
curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~jobstreet-job-listings-scraper/runs?token=YOUR_APIFY_TOKEN' \-H 'content-type: application/json' \-d '{"query":"software engineer","country":"ID","maxItems":25}'
MCP and agent workflows
Use the same structured input with the Apify MCP server. Add it to Claude Code with:
$claude mcp add --transport http apify https://mcp.apify.com?tools=fetch_cat/jobstreet-job-listings-scraper
Or add this server configuration to an MCP-compatible client:
{"mcpServers": {"apify": {"type": "http","url": "https://mcp.apify.com?tools=fetch_cat/jobstreet-job-listings-scraper"}}}
Example prompts:
- "Find 20 public software engineer openings on JobStreet Malaysia and summarize the employers and locations."
- "Export public accounting jobs in Singapore and group listings by disclosed salary range."
- "Compare titles, work arrangements, and employers in this JobStreet result dataset."
An agent can run a country-specific search, then filter the returned default-dataset rows by title, location, employer, or disclosed salary.
Examples
The Actor currently provides Input recipes above. After publication, Publisher will add verified, ready-to-run examples for Indonesia software-engineering and Malaysia accounting searches; this README will then link only to real public example pages.
Support
If a supported marketplace returns no listings for a known public query, include the input and run URL when contacting support so the route can be checked.