DEV Community

Black Falcon Data
Black Falcon Data

Posted on Edited on

Jobstreet API schema: fields, filters, and what is missing

The Jobstreet API produces 73 fields per record. Below is the complete field list, what each group contains, and which values may come back empty. The sales pitch waits until the end.

Coverage includes Malaysia, Singapore, Indonesia and the Philippines.

These are the results our own Jobstreet Actor returns, along with its cost and limits.

Every field

Every row contains 73 fields, organized into these groups:

  • company — company, companyUrl, companyIndustry, companySize, companyWebsite, companyDescription, companyLogo, companyCoverImageUrl, companyPerks, companySearchUrl, companyReviewRating, companyReviewCount
  • location — location, locationCountry, locationState, locationSuburb, locationPostcode
  • salary — salaryText, salaryMin, salaryMax, salaryCurrency, salaryType
  • description — description, descriptionHtml, descriptionMarkdown, descriptionLength
  • job — jobId, jobScore, jobScoreReasons
  • is — isVerifiedAdvertiser, isSponsored, isRepost
  • contact — contactName, contactEmail, contactPhone
  • source — sourceUrl, sourceCountry, sourceDomain
  • extracted — extractedEmails, extractedPhones, extractedUrls
  • category — category, categoryId
  • sub — subCategory, subCategoryId
  • content — contentQuality, contentHash
  • apply — applyEmail, applyUrl
  • applicant — applicantCount, applicantVolumeLabel
  • search — searchQuery, searchUrl
  • repost — repostOfId, repostDetectedAt

Here is an actual record from a run, trimmed to its leading fields:

{
 "jobId": "0b30f9455ac6d9078bd29ea2a74fc7f7af82cb623420ee0cbb4b7feaf5d9f5be",
 "seekJobId": "94051545",
 "title": "Software Engineer",
 "canonicalUrl": "https://my.jobstreet.com/job/94051545",
 "company": "techstreet",
 "companyUrl": null,
 "advertiserId": "63825126",
 "location": "Petaling Jaya, Selangor",
 "locationCountry": "MY",
 "locationState": null,
 "locationSuburb": null,
 "locationPostcode": null,
 "salaryText": "RM 5,000 - RM 7,000 per month",
 "salaryMin": 5000
}
Enter fullscreen mode Exit fullscreen mode

Filters that narrow a run

The input supports 53 options, including query, country, location, startUrls, maxResults, maxPages, sortMode, dateRange, workType, workArrangement, classification, subClassification, salaryMin, salaryMax, includeKeywords, excludeKeywords, keywordMatchTitle, keywordMatchCompany, keywordMatchDescription, keywordMatchCategory, and more. Because the filters run server-side, you pay for the records you requested instead of collecting extra records and filtering them afterwards.

The available markets are Malaysia, Singapore, Indonesia and the Philippines. The country option accepts MY, SG, ID, PH and defaults to MY. Each run is limited to one market before any records are produced, so data outside that market is neither fetched nor billed.

What it costs

Pricing is per event, with no subscription:

  • $0.01 per actor start
  • $0.002 per result

Here are the figures from a measured run, not an estimate:

  • 25 records in 28.0 seconds
  • cost: $0.00155 — about $0.06 per 1,000 records

What people use it for

  • Benchmarking. Pricing and salary fields support comparisons across the entire result set instead of requiring someone to eyeball a page of listings.
  • Reputation monitoring. Ratings and review text reveal changes over time that one page view cannot show.
  • Lead lists. Company-level fields help narrow the data to the relevant segment before anyone opens a CRM.
  • Change detection. Timestamps make it possible to diff runs and act on new information instead of re-reading the full set.
  • Geographic analysis. Location fields allow market-by-market comparisons without another data source.

Limits

  • An empty value means the source displayed nothing. The Actor never infers fields or fills them with data from elsewhere.
  • The schema tracks Jobstreet's markup. A redesign can add, rename or remove fields.
  • Anything Jobstreet places behind a login is deliberately absent from every field below.

Operational details

Fields are not always populated, and missing values are never guessed. When the source leaves a field blank, the field comes back blank. An empty value therefore means Jobstreet did not display one, not that extraction failed.

For market selection, country accepts MY, SG, ID, PH and defaults to MY. A single run covers one market. Covering multiple markets requires multiple runs, each billed only for the records it returns.

The maxResults, maxPages, dateRange, workType filters run server-side. That affects cost as well as convenience: records excluded by those filters are never produced and therefore never billed.

Every run reads Jobstreet when it executes, with no cached copy in between. Two runs a week apart produce two snapshots, enabling change detection.

To fetch only changed records, use incrementalMode. Without it, another run returns the entire set, leaving deduplication to your side.

There is no public bulk export or API. The field list above comes from parsing pages, not from a documented schema.

Try it

If these fields match your requirements, the Jobstreet API Actor produces them. New accounts receive $5 of free platform credit each month, enough to run a job of this size several times.

Disclosure: we build and maintain this Actor, and the link above is an affiliate link.

Further reading


We also publish the full Jobstreet API reference on blackfalcondata.com — the request, the response, and what a run costs.

Top comments (0)