JobsDB Jobs Scraper — HK & Thailand Hiring Data avatar

JobsDB Jobs Scraper — HK & Thailand Hiring Data

Pricing

from $3.75 / 1,000 jobsdb job record scrapeds

Go to Apify Store
JobsDB Jobs Scraper — HK & Thailand Hiring Data

JobsDB Jobs Scraper — HK & Thailand Hiring Data

Scrape public JobsDB listings in Hong Kong and Thailand for recruiting and hiring research. Returns validated jobs with employer, location, salary, classification, description, dates, and apply URL. Not for private candidate or applicant data. /bin/zsh.00375 per persisted job plus platform usage.

Pricing

from $3.75 / 1,000 jobsdb job record scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

JobsDB Jobs Scraper

Extract structured public job listings from JobsDB in Hong Kong and Thailand. This Actor is designed for recruiters, talent intelligence teams, workforce researchers, and AI agents that need a clean, repeatable view of current hiring demand.

Use it when you need JobsDB search results by role, location, recency, or a known public JobsDB URL. It returns one validated dataset record per job, including the title, employer, location, available salary information, employment type, classification, description, posting date, and direct public job URL. It does not apply to jobs, access employer accounts, retrieve applicant data, or access private candidate profiles.

When to use it

Use this Actor for:

  • Building a recruiter sourcing list for a role in Hong Kong or Thailand.
  • Monitoring hiring volume for competitors or a market segment.
  • Collecting salary ranges where JobsDB makes them public.
  • Creating a job-market dataset for research, dashboards, or an agent workflow.
  • Refreshing a known public JobsDB search URL on a schedule.

Do not use it for JobStreet markets outside Hong Kong and Thailand, LinkedIn jobs, private employer dashboards, or candidate contact data. Those are different data surfaces with different access and reliability characteristics.

Inputs

The default search is software engineer in Hong Kong, sorted by newest listing, for up to 20 records. Set country to HK or TH, use location to narrow by a city or region, and use postedWithinDays to focus on fresh listings. maxResults is both a result cap and the upper bound for the per-job event charge.

Set includeJobDetails to true when you need the public detail-page description. This produces richer records and can take longer because the Actor visits the selected public vacancies. Turn it off for a faster listing-only collection. Use startUrls only for public hk.jobsdb.com or th.jobsdb.com search or job pages; foreign hosts are rejected as actionable invalid input rather than silently ignored.

Example input:

{
"keywords": "data engineer",
"country": "HK",
"location": "Central",
"postedWithinDays": "7",
"sortBy": "date",
"maxResults": 50,
"includeJobDetails": true
}

Output

Every dataset item uses the same flat, agent-friendly structure. Fields not exposed by the public page are explicitly null, rather than guessed.

FieldMeaning
jobIdStable public JobsDB vacancy identifier.
titlePublic job title.
companyName, companyUrlEmployer identity and public profile URL when exposed.
location, countryPublic location text and selected market code.
salaryText, salaryCurrency, salaryMin, salaryMax, salaryPeriodPublic salary data, parsed only when supportable.
workType, workArrangementEmployment and workplace arrangement when shown.
classification, subClassificationPublic JobsDB role taxonomy when shown.
descriptionPublic teaser or enriched detail description.
jobUrlCanonical public vacancy URL.
postedAt, postedTextStructured and original posting dates where exposed.
sourceUrl, scrapedAtSearch source and collection timestamp.

Example result:

{
"jobId": "92506170",
"title": "Senior Data Engineer",
"companyName": "Example Limited",
"companyUrl": null,
"location": "Central",
"country": "HK",
"salaryText": "HK$30,000 - HK$45,000 per month",
"salaryCurrency": "HKD",
"salaryMin": 30000,
"salaryMax": 45000,
"salaryPeriod": "month",
"workType": "Full time",
"workArrangement": null,
"classification": "Information Technology",
"subClassification": "Developers/Programmers",
"description": "Build data pipelines and cloud services.",
"jobUrl": "https://hk.jobsdb.com/job/92506170",
"postedAt": "2026-07-19T00:00:00.000Z",
"postedText": "1d ago",
"sourceUrl": "https://hk.jobsdb.com/data-engineer-jobs",
"scrapedAt": "2026-07-19T12:00:00.000Z"
}

Pricing

This Actor uses Pay per event + usage. It charges $0.00005 for the actor-start event and $0.00375 only for each validated job record successfully persisted to the default dataset. Platform compute and residential proxy usage are billed separately by Apify under the usage pass-through setting.

For example, a run capped at 20 job records has a maximum job-event charge of $0.075, plus the actor-start event and platform usage. The Actor logs this maximum event charge at run start and reports the actual charged-event count in OUTPUT and RUN_SUMMARY. It never charges a job record before it has been validated and persisted.

Reliability and outcomes

JobsDB uses anti-bot protections, so the Actor uses a country-matched Apify Residential proxy with a consistent Chromium session. It captures structured public responses when the site exposes them and falls back to embedded JSON-LD, embedded JSON, and visible listing cards. Detail-page failure never discards a valid listing record; the Actor preserves it with a warning.

Every run writes two key-value records:

  • OUTPUT is a compact machine-readable terminal contract.
  • RUN_SUMMARY contains page, record, validation, billing, warning, and error diagnostics.

COMPLETE, PARTIAL, VALID_EMPTY, and INVALID_INPUT finish successfully. UPSTREAM_FAILED is used only if every required public route failed and no useful records were recovered. This makes empty searches, user-correctable input mistakes, and target outages distinguishable in automations.

Practical guidance

Start with 20–50 records while validating a query. Use a specific role and location for more predictable results. If a run returns VALID_EMPTY, broaden the keyword, remove the location, or choose any for the posting window. If a run returns UPSTREAM_FAILED, retry later; the run summary will state whether the browser session was blocked or the public target did not respond.

JobsDB public pages may change their presentation over time. The Actor does not fabricate fields when the public data changes. It preserves useful data where possible, flags recoverable degradation as PARTIAL, and honestly reports an upstream failure if no supported public route remains.

Data responsibility

Use this Actor only for legitimate recruiting, market-research, analytics, and workflow purposes. Respect applicable privacy, employment, and data-protection obligations. The Actor intentionally limits its scope to public job-posting data and does not collect private account, candidate, applicant, or application-submission information.