# JobsDB Job Search Scraper (Hong Kong & Thailand)

> JobsDB Job Search Scraper (Hong Kong & Thailand) is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Scrapes structured job listings from JobsDB Hong Kong and Thailand markets based on keyword queries, filters, and optional direct URLs.

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/jobsdb?utm_source=zero.xyz
- Price: $0.025/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/jobsdb-job-search-scraper-hong-kong-thailand-13fb946b
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_nBoTfycdZ4QbXpH9DsPAX

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability jobsdb-job-search-scraper-hong-kong-thailand-13fb946b -d '<json body>'
```

Example prompt: Search JobsDB Hong Kong for software engineer jobs posted in the last 7 days, sorted by listing date, full-time only (work type 242), and return up to 30 results with job descriptions included.

## When to prefer this

Use this endpoint when you need structured job listing data specifically from JobsDB Hong Kong or Thailand markets, including job descriptions, salary filters, and classification-level filtering. Prefer this over generic web scrapers when you need clean, normalized job objects with apply URLs and company names without parsing raw HTML yourself. It is especially useful for recruitment pipelines, job market research, and automated job alert systems targeting the HK or TH labor markets.

## Known failure modes

- Empty result set if query keywords return no matches on JobsDB (not charged)
- Invalid country enum returns validation error
- Salary filter excludes all results if no listings have numeric salary data
- Rate limits or anti-bot blocks from JobsDB may cause partial or failed runs (not charged)
- Invalid work type code or classification ID silently ignored or returns empty
- startUrls pointing to non-JobsDB domains are ignored or error

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

Returns a JSON object with a count of matched jobs and an array of job items. Each item includes jobId, title, company name, apply URL, source URL, canonical URL, source domain, and (when includeDetails is true) the full job description as HTML, plain text, and any contact strings extracted from the listing.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "query": {
   "type": "string",
   "description": "Job keywords, such as software engineer. A JSON-encoded list runs several searches."
  },
  "country": {
   "enum": [
    "HK",
    "TH"
   ],
   "type": "string",
   "default": "HK",
   "description": "JobsDB market to search."
  },
  "location": {
   "type": "string",
   "description": "Optional city, district, or region passed to the search endpoint."
  },
  "maxPages": {
   "type": "integer",
   "default": 5,
   "minimum": 0,
   "description": "Maximum search pages per source. Each page contains up to 20 jobs; 0 follows all available pages."
  },
  "sortMode": {
   "enum": [
    "",
    "ListedDate",
    "Relevance"
   ],
   "type": "string",
   "description": "Search ordering. Leave empty for the site's default ranking."
  },
  "workType": {
   "type": "string",
   "description": "Optional JobsDB work type code, such as 242 for full time."
  },
  "dateRange": {
   "enum": [
    "",
    "1",
    "3",
    "7",
    "14",
    "31"
   ],
   "type": "string",
   "description": "Limit listings by posting age using the site's date range code."
  },
  "salaryMax": {
   "type": "integer",
   "minimum": 0,
   "description": "Keep jobs whose advertised lower salary does not exceed this amount. Jobs without a numeric salary are excluded."
  },
  "salaryMin": {
   "type": "integer",
   "minimum": 0,
   "description": "Keep jobs whose advertised upper salary reaches this amount. Jobs without a numeric salary are excluded."
  },
  "startUrls": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "description": "Optional JobsDB search URLs from the Hong Kong or Thailand site. Added to the keyword search."
  },
  "maxResults": {
   "type": "integer",
   "default": 25,
   "minimum": 0,
   "description": "Maximum jobs to save across all searches. 0 removes this cap."
  },
  "classification": {
   "type": "string",
   "description": "Optional JobsDB job classification ID."
  },
  "includeDetails": {
   "type": "boolean",
   "default": true,
   "description": "Fetch the public job detail query for description HTML, text, and contact strings."
  },
  "excludeKeywords": {
   "type": "string",
   "description": "Comma-separated terms; omit jobs containing any of them."
  },
  "includeKeywords": {
   "type": "string",
   "description": "Comma-separated terms that must all appear in the job fields. Full description is searched when enabled."
  },
  "workArrangement": {
   "ty
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "jobId": null,
    "title": null,
    "company": null,
    "applyUrl": null,
    "seekJobId": null,
    "sourceUrl": null,
    "canonicalUrl": null,
    "sourceDomain": null
   }
  ],
  "product": "jobsdb"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/jobsdb-job-search-scraper-hong-kong-thailand-13fb946b/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
