JobsDB.com Scraper — HK & TH Jobs
Pricing
from $0.79 / 1,000 results
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.79 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
22
Total users
10
Monthly active users
6 days ago
Last modified
Categories
Share
JobsDB.com Scraper

Extract job listings from jobsdb.com at scale, in a clean, consistent structure ready for analysis, job boards, recruiting tools and market research. No API key required.
Why this scraper?
🎯 Built for Southeast Asia
A dedicated regional scraper, not a global tool with a country dropdown. Search, locations and currency (HKD) are tuned for jobsdb.com.
📄 Complete job data
Full job title and description, direct listing URL and publish date for every record.
💶 Salary data
Salary information parsed from the listing where the employer publishes it, in HKD. Missing salaries are returned as null, never guessed.
🏢 Company details
Hiring company name plus the profile details the source publishes, such as logo and company page.
📍 Location fields
Structured location data for every listing, ready for filtering and analysis.
🔁 Repost & change detection
Every record carries isRepost and changeStatus, so daily feeds return genuinely new jobs instead of reposted duplicates.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
country | string | "HK" | Job market to scrape. |
searchQuery | string | "developer" | Job title, skill, or keyword. Leave empty to browse all jobs. Pass a JSON array for multi-query mode: ["python developer", "data analyst"] |
location | string | (empty) | City, district, or region (e.g. 'Kowloon', 'Bangkok'). Leave empty for all locations. |
workType | string | "Full time" | Filter by employment type. |
classificationId | integer | (empty) | Industry category ID (e.g. 6281 for IT, 6251 for Accounting). Leave empty for all categories. |
subClassificationId | integer | (empty) | Sub-category ID within a classification. Requires classificationId to be set. |
sortMode | string | "ListedDate" | Sort order for search results. |
daysOld | integer | (empty) | Only return jobs posted within this many days. Leave empty for all. |
includeKeywords | string | (empty) | Comma-separated keywords that MUST appear in a job's title, company, teaser, or description. All listed terms must match (AND logic). Example: python, remote |
excludeKeywords | string | (empty) | Comma-separated keywords that must NOT appear. Any match discards the listing. Example: intern, unpaid |
fromDate | string | (empty) | Keep only jobs posted on or after this date. Format: YYYY-MM-DD |
toDate | string | (empty) | Keep only jobs posted on or before this date. Format: YYYY-MM-DD |
maxAgeMinutes | integer | (empty) | Keep only jobs posted within this many minutes. Useful for near-real-time monitoring. Leave empty to disable. |
fetchDetails | boolean | false | ON: fetches full job description, salary, contact info, email/phone, and company data. OFF: returns basic listing info only (faster, lower cost). |
compactOutput | boolean | false | Omit descriptionHtml, descriptionText, and descriptionMarkdown fields. Job score and contact extraction still run. Produces smaller, faster output ideal for ML/LLM pipelines. |
skipReposts | boolean | false | Skip job listings already seen in a previous run (requires deduplication store). |
startUrls | array | (empty) | List of specific JobsDB job listing URLs to scrape directly (bypasses search). |
maxResults | integer | 5 | Maximum number of job listings to return. Note: post-filters are applied after fetch, so fewer results may be returned than this limit. |
Output schema
Every field below is present on every record. Fields the source does not publish for a given job are returned as null rather than omitted.
| Field | Type | Description |
|---|---|---|
id | string | Unique listing ID from the source. |
url | string | Direct link to the listing. |
title | string | Job title as published. |
companyName | string | Hiring company name. |
advertiserId | string | Advertiser id. |
companyId | string | Company id. |
companyLogo | string | URL of the company logo. |
companyBannerUrl | string | Company banner url. |
companyIsVerified | string | Company is verified. |
location | string | — |
countryCode | string | Country code. |
workType | string | All |
workArrangement | string | Work arrangement. |
displayType | string | Display type. |
jobAdType | string | Job ad type. |
isFeatured | boolean | Is featured. |
listingDate | string | Listing date. |
listingDateDisplay | string | Listing date display. |
expiryDate | string | Date the listing expires (null if not stated). |
salaryLabel | string | Salary label. |
salaryMin | number | Minimum salary (null if not published by the employer). |
salaryMax | number | Maximum salary (null if not published by the employer). |
salaryCurrency | string | Currency code of the salary. |
salaryPeriod | string | Pay period the salary refers to (e.g. year, month, hour). |
classification | string | Classification. |
classificationId | string | — |
subClassification | string | Sub classification. |
subClassificationId | string | — |
roleId | string | Role id. |
tags | array | Tags or keywords attached to the listing. |
bulletPoints | array | Bullet points. |
teaser | string | Teaser. |
status | string | Status. |
isRepost | boolean | true when the listing is a repost of an earlier job (detected by content hash). |
scrapedAt | string | Timestamp when this record was scraped. |
descriptionHtml | string | Full job description in HTML. |
descriptionText | string | Full job description in plain text. |
descriptionMarkdown | string | Description markdown. |
jobScore | number | Job score. |
jobScoreReasons | array | Job score reasons. |
Example record
{"id": "92640176","url": "https://th.jobsdb.com/job/92640176","title": "Team Head of Auto Finance Recruitment & Training","companyName": "Kiatnakin Phatra Financial Group","advertiserId": "61193442","companyId": "446100","companyLogo": "https://bx-branding-gateway.cloud.seek.com.au/c3f2d4af-6eae-43c0-b3ab-1d82313aa250.1/jdpLogo","companyBannerUrl": null,"companyIsVerified": null,"location": "Vadhana, Bangkok","countryCode": "TH","workType": "Full time","workArrangement": "On-site","displayType": "standard","jobAdType": "ORGANIC","isFeatured": false,"listingDate": "2026-06-10T14:53:46Z","listingDateDisplay": "1m ago","expiryDate": null,"salaryLabel": "","salaryMin": 0,"salaryMax": 0,"salaryCurrency": "THB","salaryPeriod": null,"classification": "Human Resources & Recruitment","classificationId": "6317","subClassification": "Recruitment - Internal","subClassificationId": "6325","roleId": "recruitment","tags": ["Be an early applicant"],"bulletPoints": [],"teaser": "รับผิดชอบการสรรหา การพัฒนา การฝึกอบรม การสร้างมาตรฐานการทำงาน ตลอดจนการประสานงานกับหน่วยงานต่าง ๆ เพื่อสนับสนุนการดำเนินธุรกิจให้บรรลุเป้าหมาย","status": "Active","isRepost": false,"scrapedAt": "2026-06-10T14:55:40.930Z","descriptionHtml": "<p>ตำแหน่งนี้มีบทบาทสำคัญในการกำหนดและขับเคลื่อนกลยุทธ์ด้านบุคลากรของสายธุรกิจสินเชื่อยานยนต์ ครอบคลุมการวางแผนอัตรากำลัง การพัฒนาศักยภาพพนักงาน และการสร้างมาตรฐานการทำงาน เพื่อสนับสนุนการเติบโตของธุร …","descriptionText": "ตำแหน่งนี้มีบทบาทสำคัญในการกำหนดและขับเคลื่อนกลยุทธ์ด้านบุคลากรของสายธุรกิจสินเชื่อยานยนต์ ครอบคลุมการวางแผนอัตรากำลัง การพัฒนาศักยภาพพนักงาน และการสร้างมาตรฐานการทำงาน เพื่อสนับสนุนการเติบโตของธุรกิจ …","descriptionMarkdown": "ตำแหน่งนี้มีบทบาทสำคัญในการกำหนดและขับเคลื่อนกลยุทธ์ด้านบุคลากรของสายธุรกิจสินเชื่อยานยนต์ ครอบคลุมการวางแผนอัตรากำลัง การพัฒนาศักยภาพพนักงาน และการสร้างมาตรฐานการทำงาน เพื่อสนับสนุนการเติบโตของธุรกิจ …","jobScore": 3,"jobScoreReasons": ["full_description","posted_today"]}
Examples
Search for marketing manager roles in Hong Kong:
{"searchQuery": "marketing manager","location": "Hong Kong","maxResults": 100}
Filter by contract type:
{"searchQuery": "marketing manager","location": "Hong Kong","maxResults": 100,"workType": ""}
Scrape a specific search URL:
{"startUrls": [{"url": "https://www.jobsdb.com/"}],"maxResults": 200}
Daily feed (run on a schedule):
{"searchQuery": "marketing manager","daysOld": 1,"skipReposts": true,"maxResults": 500}
Schedule this input to run once a day in the Apify Scheduler — each run returns only jobs posted in the last 24 hours.
💰 Pricing
$0.99 per 1,000 results — you only pay for successfully retrieved listings. Failed retries are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.10 |
| 1,000 | ~$0.99 |
| 10,000 | ~$9.9 |
| 100,000 | ~$99 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Subscription tiers lower the rate further, down to $0.59 per 1,000 at the highest tier. Use the Max results cap in the input to control your spend exactly.
Performance
| Run size | Typical time |
|---|---|
| 100 results | under 1 minute |
| 1,000 results | 2–4 minutes |
| 10,000 results | 20–35 minutes |
Known limitations
- Salary is only returned when the employer publishes it — many listings carry
nullsalary fields. - Company details vary per listing; the scraper returns what the source publishes and never invents data.
- Very large result sets are bounded by the source's own paging limits.
- Listings can be removed by the source at any time, so a small share of URLs may expire shortly after scraping.
Technical details
- Source: jobsdb.com — Southeast Asia job listings
- Coverage: everything the public search exposes, filterable via the input parameters above
- Retry: automatic retry on network errors with exponential backoff
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