JobsDB.com Scraper — HK & TH Jobs avatar

JobsDB.com Scraper — HK & TH Jobs

Pricing

from $0.99 / 1,000 results

Go to Apify Store
JobsDB.com Scraper — HK & TH Jobs

JobsDB.com Scraper — HK & TH Jobs

Scrape job listings from JobsDB in Hong Kong and Thailand. Filter by keyword, location, work type, and date. Returns salary, descriptions (HTML/text/Markdown), classification, and work arrangement. No proxy required.

Pricing

from $0.99 / 1,000 results

Rating

0.0

(0)

Developer

Unfenced Group

Unfenced Group

Maintained by Community

Actor stats

1

Bookmarked

19

Total users

9

Monthly active users

6 days ago

Last modified

Share

JobsDB Scraper — Hong Kong & Thailand | Salary, Descriptions & Contact Data

jobsdb-scraper

Extract structured job listings from JobsDB Hong Kong (hk.jobsdb.com) and JobsDB Thailand (th.jobsdb.com) — the SEEK-platform job boards covering two of Asia's largest hiring markets. No proxy required. No API key needed. Runs entirely in the cloud.


What data can you get?

Each job record includes:

  • Title, company, location, work type, work arrangement (on-site / hybrid / remote)
  • Salary — raw label + parsed salaryMin / salaryMax / salaryCurrency / salaryPeriod
  • Full job description — HTML, plain text, and Markdown (when fetchDetails is enabled)
  • Classification & sub-classification — industry category IDs and labels
  • Company intelligence — company logo, banner image, company profile ID
  • Job score (0–5) — transparent signal based on salary completeness, description quality, posting recency, and contact presence
  • TagsEARLY_APPLICANT, EXPIRING_SOON, and other listing signals
  • Bullet points — key highlights shown on listing cards
  • Posted date, expiry date — ISO timestamps

Use cases

Recruitment intelligence

Track job demand by role, location, and industry. Compare hiring trends across HK and TH, monitor which classifications are growing, and benchmark posting volume over time.

Salary benchmarking

Collect salary labels across roles and locations for compensation research. The actor parses salary ranges into structured salaryMin / salaryMax fields for direct analysis — no manual parsing needed.

Market monitoring

Run daily or hourly with skipReposts: true and maxAgeMinutes to receive only fresh listings. Combine with keyword filters to track specific roles or companies.

AI agent and LLM pipelines

Use compactOutput: true to produce lean payloads. Sort by jobScore to surface high-quality, information-rich listings for downstream processing.


Input parameters

ParameterTypeDefaultDescription
countryselectHKMarket to scrape: HK (Hong Kong) or TH (Thailand).
searchQuerystringKeyword, role title, or skill. Leave empty to browse all jobs. Pass a JSON array for multi-query mode: ["python developer", "data analyst"] — each query runs separately and results are merged and deduplicated.
locationstringCity, district, or region. E.g. Kowloon, Bangkok. Leave empty for all locations.
workTypeselectAllFilter by: Full time, Part time, Contract/Temp, Casual.
classificationIdintegerIndustry category ID. E.g. 6281 for IT, 6251 for Accounting.
subClassificationIdintegerSub-category ID. Requires classificationId.
sortModeselectListedDateSort by date posted (newest first) or relevance.
daysOldintegerRestrict to jobs posted within N days (max 30).
includeKeywordsstringComma-separated keywords that must appear anywhere in a listing (title, company, description, etc.). All terms must match. Example: python, remote
excludeKeywordsstringComma-separated keywords that must not appear. Any match discards the listing. Example: intern, unpaid
fromDatestringKeep only jobs posted on or after this date. Format: YYYY-MM-DD.
toDatestringKeep only jobs posted on or before this date. Format: YYYY-MM-DD.
maxAgeMinutesintegerKeep only jobs posted within the last N minutes. Useful for near-real-time monitoring.
fetchDetailsbooleanfalseFetch full description, salary, and company data per job. Slower but richer output.
compactOutputbooleanfalseOmit description fields. Job score still runs. Ideal for LLM pipelines.
skipRepostsbooleanfalseSkip listings already seen in a previous run (90-day memory).
startUrlsarraySpecific JobsDB job URLs to scrape directly, bypassing search.
maxResultsinteger5Maximum number of listings to return. Post-filters apply after fetch — you may receive fewer results than this limit.

Output schema

Each result item contains:

FieldDescription
idJobsDB listing ID
urlDirect link to the job posting
titleJob title
companyNameEmployer name
advertiserIdSEEK advertiser ID
companyIdSEEK company profile ID (when available)
companyLogoCompany logo URL (when available)
companyBannerUrlCompany banner image URL (when available)
companyIsVerifiedWhether the listing is branded / verified
locationLocation label
countryCodeHK or TH
workTypeEmployment type (Full time, Part time, etc.)
workArrangementOn-site, Hybrid, or Remote
displayTypeListing tier (standard, branded, etc.)
jobAdTypeORGANIC or SPONSORED
isFeaturedFeatured listing flag
listingDateISO 8601 posting date
listingDateDisplayHuman-readable age ("3d ago")
expiryDateISO 8601 expiry date
salaryLabelRaw salary text from listing
salaryMinParsed minimum salary amount
salaryMaxParsed maximum salary amount
salaryCurrencyHKD or THB
salaryPeriodmonth, year, hour, etc.
classificationIndustry category label
classificationIdIndustry category ID
subClassificationSub-category label
subClassificationIdSub-category ID
roleIdRole slug (e.g. software-engineer)
tagsListing tags (e.g. Be an early applicant)
bulletPointsKey highlight bullet points from card
teaserShort listing summary
descriptionHtmlFull description HTML (when fetchDetails: true and compactOutput: false)
descriptionTextFull description as plain text
descriptionMarkdownFull description as Markdown
jobScore0–4 quality signal
jobScoreReasonsArray of signals contributing to the score
isRepostWhether this listing appeared in a previous run
statusListing status from SEEK platform
scrapedAtISO 8601 extraction timestamp

Job score signals

jobScore is a 0–5 integer built from transparent, verifiable signals:

SignalScoreCondition
salary_parseable+1Salary range is present and parseable
full_description+1Description is >200 characters
posted_today+2Posted within the last 24 hours
posted_this_week+1Posted within the last 7 days

Max score: 4.


Input examples

Basic keyword search — Hong Kong IT jobs

{
"country": "HK",
"searchQuery": "software engineer",
"location": "Hong Kong",
"maxResults": 50,
"fetchDetails": true
}

Multi-query batch — run two searches, merged and deduplicated

{
"country": "HK",
"searchQuery": "[\"python developer\", \"data engineer\"]",
"maxResults": 100,
"fetchDetails": true
}

Post-filter — Python roles, no junior / intern titles

{
"country": "HK",
"searchQuery": "developer",
"includeKeywords": "python",
"excludeKeywords": "junior, intern, graduate",
"maxResults": 100,
"fetchDetails": true
}

Today's fresh listings only — Thailand

{
"country": "TH",
"searchQuery": "marketing manager",
"location": "Bangkok",
"maxAgeMinutes": 1440,
"sortMode": "ListedDate",
"maxResults": 50
}

Date-range research — jobs posted in a specific window

{
"country": "HK",
"searchQuery": "finance",
"fromDate": "2026-06-01",
"toDate": "2026-06-07",
"maxResults": 200,
"fetchDetails": true
}

Daily incremental feed — skip already-seen listings

{
"country": "HK",
"searchQuery": "product manager",
"daysOld": 1,
"skipReposts": true,
"maxResults": 500
}

AI agent / LLM pipeline — compact high-quality output

{
"country": "HK",
"searchQuery": "software engineer",
"fetchDetails": true,
"compactOutput": true,
"maxResults": 25
}

Sort results by jobScore descending to surface the most data-rich listings first.


Pricing

$0.99 per 1,000 results — you only pay for listings actually returned to your dataset. No monthly fees. No setup costs. Post-filtered results that don't reach the dataset are not charged.

ResultsCost
10~$0.01
100~$0.10
1,000~$0.99
10,000~$9.90
50,000~$49.50

FAQ

Does it require a proxy? No. The SEEK API backing JobsDB responds cleanly to datacenter IPs. No proxy cost is passed on.

What markets are supported? Hong Kong (hk.jobsdb.com) and Thailand (th.jobsdb.com). HK has ~33,000 active listings; TH has ~1,200.

Can I scrape multiple keywords in one run? Yes — pass searchQuery as a JSON array: ["python", "data analyst"]. Each query runs separately and results are merged with deduplication. You pay one Actor-Start charge regardless of how many queries you run.

What is fetchDetails and when should I enable it? With fetchDetails: false (default), results come from the search index — fast, no extra requests, basic fields only. With fetchDetails: true, the actor fetches each job's detail page via the SEEK GraphQL API to add full description, salary (more accurate), email/phone extraction, and company data. Plan for roughly 4–5× more compute time.

How do post-filters work? includeKeywords, excludeKeywords, fromDate, toDate, and maxAgeMinutes are applied to the collected dataset before records are emitted. This means the actor may fetch more pages than your maxResults cap if many results are filtered out. Use daysOld as a server-side pre-filter when date range is your primary concern.

How is jobScore calculated? It's a 0–5 integer based on transparent signals: whether salary is parseable, whether a full description is present, how recently the job was posted, and whether contact details were found. See the output schema section above.

Can I use this for scheduled monitoring? Yes. Enable skipReposts: true to skip listings seen in any previous run (90-day memory). Combine with maxAgeMinutes or daysOld and a daily schedule for a continuous fresh-jobs feed.

Can I use it with the Apify API or MCP? Yes. All runs are accessible via the standard Apify API. For MCP/AI agent use, enable compactOutput: true to keep payload sizes manageable.


Need a custom scraper?

Unfenced Group builds Apify actors for any website — for free.

If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.

Get in touch: www.unfencedgroup.nl