JobsDB Jobs Scraper: Hong Kong and Thailand Job Listings
Pricing
from $0.50 / 1,000 job posting returneds
JobsDB Jobs Scraper: Hong Kong and Thailand Job Listings
Scrape JobsDB job listings in Hong Kong and Thailand by keyword and location, no login. Salary range, company, work type, posted date and job link for each posting. Filter by title, company or district. Export to Google Sheets.
Pricing
from $0.50 / 1,000 job posting returneds
Rating
0.0
(0)
Developer
Adriana Voss
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Get JobsDB job postings for Hong Kong or Thailand by keyword and location, one row per posting, with salary range, company, work type and posted date. Type a job title (or "title @ district"), pick the country, and each matching posting comes back as its own row with a direct job link. No login, no cookies, no key. You are charged per posting returned, and a search with no matches costs nothing.
Who uses it
- Recruiters and sourcers watching which companies in Hong Kong or Bangkok are hiring for a role right now.
- Salary and market researchers comparing the pay range posted for the same job title across districts.
- Sales teams building lists of companies that are hiring, from the company name and company profile link.
- Job aggregators and Sheets or n8n workflows that need fresh JobsDB postings on a schedule.
Salary is only shown on part of the postings (about 1 in 10 in a 50-posting Hong Kong "engineer" run), and is returned as null when the employer did not post one. Full job descriptions are not included: each row carries the posting's one-line teaser and highlight bullets.
How to use
- In the Apify Console. Open the actor page and click Start — the
keywordsfield is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found. - Via the API. Call it directly with a POST request — no Console needed once you have an API token:
curl "https://api.apify.com/v2/acts/accountable_eel~jobsdb-jobs-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"keywords":["engineer"]}'
- On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.
Input
{"keywords": ["engineer"]}
One search per line. Write "keywords @ location", or just the keywords and pick a location below. Pick Hong Kong or Thailand under Search settings. Accepted formats: engineer, accountant @ Kowloon, software developer @ Bangkok.
Output
One row per job posting. Missing values are null, never 0 or an empty string. Every row carries jobUrl (the posting's link), scrapedAt, and the search that produced it.
Example row (real posting, Hong Kong, 2026-10-11):
{"jobId": "95163548","title": "Assistant Engineer / Engineer","companyName": "Spectrum Engineering International Limited","country": "HK","location": "Lai Chi Kok, Sham Shui Po District","classification": "Engineering","workTypes": ["Full time"],"workArrangement": "On-site","salaryLabel": "$22,000 – $28,000 per month","postedAt": "2026-10-09T03:50:00Z","jobUrl": "https://hk.jobsdb.com/job/95163548","scrapedAt": "2026-10-11T18:38:16.291Z"}
Column reference:
| query | found | status | searchKeywords | searchLocation | jobCount | totalAvailable | truncated | jobs | jobId | title | companyName | advertiser | companyUrl | location | country | remote | classification | subClassification | workTypes | workArrangement | salaryLabel | teaser | bulletPoints | isFeatured | postedAt | postedAgo | jobUrl | companyLogoUrl | scrapedAt |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| engineer | true | OK | <all postings found (full list)> | <advertiser (may be a recruiter)> | <remote?> | <pay range (as jobsdb displays it)> | <teaser (the posting's one-line summary)> | <posted (as jobsdb words it)> | 1970-01-01T00:00:00.000Z |
A search with no matching postings comes back as one row with "found": false and is never charged.
Pricing
Pay-per-event. A flat per-run fee covers session/proxy warmup; you're billed
per item only when data is actually found and returned — see
.actor/pay_per_event.json for exact prices. A miss is never charged.
One billable event, job-returned, charged once per posting returned. A search with no matches, or whose matches are all filtered out, is never charged. A run of 50 postings used about half a cent of platform compute, and the "Most postings to return per search" and "Stop after this many results" fields cap your spend.
Example runs
Paste any of these into the Input tab and press Start. All three need no key, no token and no account of your own beyond an Apify login. The first was run on 2026-10-11 and returned 50 postings out of 7,048 matching.
Engineer jobs in Hong Kong. The default shape.
{"country": "hk","keywords": ["engineer"],"maxResults": 20}
Accountants in Kowloon, posted in the last week, with a pay range shown.
{"country": "hk","keywords": ["accountant @ Kowloon"],"postedWithin": "week","maxJobsPerQuery": 100}
Software developers in Bangkok, remote roles only, skipping recruiters.
{"country": "th","keywords": ["software developer @ Bangkok"],"remoteOnly": true,"excludeCompanies": ["recruit", "staffing"]}
Use it from Clay, n8n, Make, or an AI agent
This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.
curl "https://api.apify.com/v2/acts/accountable_eel~jobsdb-jobs-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"keywords":["engineer"]}'
n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~jobsdb-jobs-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"keywords":["engineer"]} (swap in an expression from an earlier node for a real value).
Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~jobsdb-jobs-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"keywords":["{{search}}"]}, mapping the row's search into the keywords array.
MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "jobsdb scraper" — the agent will find and run this actor.