This JobsDB scraper exports public job listings from Hong Kong and Thailand for recruiting research, salary benchmarking, talent-market monitoring, and repeatable job-search exports. Use this JobsDB jobs scraper to turn a public search into structured listings, and use the JobsDB API-compatible Actor interface in schedules, workflows, or MCP clients.
What this Actor exports
Each result is a public JobsDB listing normalized into a consistent record. It keeps the source URL and search URL alongside the job, company, location, salary, work arrangement, posting date, classifications, public description teaser, requirements bullets, and apply link.
Who is it for?
- Recruiters building a current shortlist of public openings.
- Talent teams comparing job titles, locations, and salary labels.
- Analysts tracking demand by role, company, or market.
- Operations teams that need a bounded export for a recurring JobsDB search.
Input recipes
Start with a keyword search:
{
"keywords": "software engineer",
"country": "HK",
"maxItems": 10
}
Search Thailand with a location:
{
"keywords": "data analyst",
"location": "Bangkok",
"country": "TH",
"maxItems": 10
}
Reuse a public JobsDB search URL:
{
"searchUrls": ["https://hk.jobsdb.com/software-engineer-jobs"],
"maxItems": 10
}
Input settings
| Setting | Description |
|---|---|
keywords |
Job title, skill, or other JobsDB search terms. |
location |
Optional city or region filter. |
country |
JobsDB market: HK for Hong Kong or TH for Thailand. |
searchUrls |
Optional public JobsDB search URL. The first URL supplies its search context. |
maxItems |
Maximum listings to export, from 1 to 100. |
Output example
{
"jobId": "12345678",
"sourceUrl": "https://hk.jobsdb.com/job/12345678",
"title": "Software Engineer",
"company": "Example Company",
"location": "Hong Kong",
"employmentType": "Full time",
"salary": "HK$30K–45K",
"postedDate": "2026-09-03T00:00:00.000Z",
"category": "Information & Communication Technology",
"applyUrl": "https://hk.jobsdb.com/job/12345678",
"searchUrl": "https://hk.jobsdb.com/software-engineer-jobs"
}
Examples and practical use cases
Use the input recipes above to create a small validation export first. Common workflows include weekly role monitoring, company hiring research, location-specific salary reviews, and exporting a saved public JobsDB search to a spreadsheet or database.
Tips for better results
- Use a specific title or skill phrase for a focused export.
- Add
locationwhen a country-wide result set is too broad. - Set
countryexplicitly unless your public search URL already identifies the market. - Keep
maxItemsmodest for a first run, then scale a verified query. - Preserve
searchUrlwith downstream exports so the search context remains auditable.
Data availability and limits
The Actor processes anonymous public listings only; it does not require account credentials or collect private job data. JobsDB does not publish every optional field on every listing, so salary, company metadata, classifications, and requirement bullets can be absent. The description field represents the public listing teaser rather than a private or account-only page.
API usage
Node.js
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor("fetch_cat/jobsdb-jobs-scraper").call({
keywords: "data analyst",
country: "TH",
maxItems: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
Python
from apify_client import ApifyClient
client = ApifyClient("<APIFY_TOKEN>")
run = client.actor("fetch_cat/jobsdb-jobs-scraper").call(run_input={
"keywords": "software engineer", "country": "HK", "maxItems": 10
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)
cURL
curl "https://api.apify.com/v2/acts/fetch_cat~jobsdb-jobs-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords":"software engineer","country":"HK","maxItems":10}'
MCP and AI agents
Add this Actor to Claude Code with the scoped CLI command:
claude mcp add --transport http apify-jobsdb "https://mcp.apify.com?tools=fetch_cat/jobsdb-jobs-scraper"
Or add the scoped tools URL to another MCP client:
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=fetch_cat/jobsdb-jobs-scraper"
}
}
}
Example prompts:
- “Export 20 public Hong Kong software engineer openings from JobsDB.”
- “Find 10 Thailand data analyst listings on JobsDB and return their salary labels.”
- “Run this public JobsDB search URL and keep the source URL for each listing.”
Support
Open an Apify issue with the affected public URL, the non-sensitive input, and a short description of the unexpected result. Do not include credentials.