JobsDB Scraper
Pricing
from $0.99 / 1,000 results
JobsDB Scraper
Scrape live job listings from JobsDB across multiple regions. Extract job titles, companies, salaries, requirements & apply links. Built for recruitment platforms, salary intelligence, competitive job market analysis & AI training datasets. JSON-structured, webhook-ready.
Pricing
from $0.99 / 1,000 results
Rating
5.0
(7)
Developer
Shahid Irfan
Maintained by CommunityActor stats
7
Bookmarked
142
Total users
30
Monthly active users
13 days ago
Last modified
Categories
Share
What does JobsDB Scraper do?
JobsDB Scraper collects public job listings from JobsDB in Thailand and Hong Kong. Search by keyword and optional location, or provide a JobsDB search URL, then receive structured records with titles, companies, locations, classifications, work types, salaries, posting dates, descriptions, and direct job URLs.
Use the dataset for recruitment research, hiring intelligence, salary and role benchmarking, competitor monitoring, talent-market analysis, and job-alert workflows. Each result is saved to an Apify Dataset for preview, download, scheduled collection, or connection to another system.
Why use JobsDB Scraper?
- Thailand and Hong Kong coverage - Choose the Thailand or Hong Kong JobsDB market with the
countryinput. - Focused job searches - Search for roles such as software engineer, data analyst, accountant, or marketing manager, with an optional location filter.
- Recent-posting filters - Limit keyword searches to jobs posted in the last 24 hours, 7 days, or 30 days.
- Recruitment-ready records - Compare employers, job classifications, work types, salary labels, locations, and posting dates.
- Description collection - Capture listing summaries and full descriptions when the source publishes them.
- Controlled result volume - Set a maximum result count and page limit for predictable runs.
- Repeatable workflows - Run the Actor on demand or schedule recurring collections for hiring reports and monitoring.
- Export-friendly data - Download JSON, CSV, Excel, or XML, or connect the dataset to webhooks and other Apify integrations.
What data can you extract from JobsDB?
Each dataset item represents one JobsDB listing. Some values can be empty when the employer or source listing does not publish them. Field names are case-sensitive.
| Field | Type | Description |
|---|---|---|
id | String | JobsDB listing identifier. |
url | String | Direct URL to the job listing. |
title | String | Job title or position name. |
company | String | Employer or advertiser display name. |
location | String | Primary location label shown for the listing. |
locations | Array | Full location records, including hierarchy and country code when available. |
workType | String | Primary employment type, such as full time. |
workTypes | Array | All employment types supplied by JobsDB. |
workArrangements | Object | Work arrangement information, such as on-site or hybrid, when available. |
classification | String | Main job classification. |
classifications | Array | Classification and subclassification records with source metadata. |
salary | String | Salary label or range when published. |
postedAt_relative | String | Human-readable posting age, such as 3d ago. |
postedAt_iso | String | Posting date in ISO 8601 format when available. |
listingDate | String | Raw listing date supplied by JobsDB. |
listingDateDisplay | String | Display version of the listing age. |
Description_text | String | Full job description as plain text when available. |
Description_html | String | Source-formatted job description when available. |
teaser | String | Short listing summary. |
bulletPoints | Array | Highlight points shown with the listing. |
tags | Array | Listing tags, such as urgency or expiring-soon indicators. |
companyProfileStructuredDataId | Number | JobsDB company profile identifier when supplied. |
employer | Object | Employer metadata, including available IDs, names, and company references. |
advertiser | Object | Advertiser metadata supplied by the listing. |
branding | Object | Company branding data, such as a logo URL. |
roleId | String | JobsDB role identifier or slug. |
displayType | String | Listing type, such as standard or promoted. |
displayStyle | Object | Display and presentation metadata. |
isFeatured | Boolean | Whether JobsDB marks the listing as featured. |
solMetadata | Object | Result placement and ranking metadata when available. |
tracking | String | Listing tracking value supplied by JobsDB. |
source | String | Source identifier, returned as jobsdb. |
list_url | String | Search URL used for the result batch. |
scrapedAt | String | ISO timestamp for the collection run. |
How to scrape JobsDB data
- Open JobsDB Scraper in Apify Console.
- Enter a keyword and optional location, or paste a public JobsDB search results URL into
startUrl. - Select
thfor Thailand orhkfor Hong Kong when using keyword and location search. - Choose a posting-date window and set
results_wanted. - Start the Actor and review the dataset preview when the run finishes.
- Download the results or connect the dataset to your recruitment, reporting, or monitoring workflow.
When startUrl is provided, its search parameters and domain take precedence over the separate keyword, location, and country settings. Use a JobsDB search results URL rather than an individual job detail URL.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | - | Public JobsDB search results URL. Its query parameters override matching keyword, location, and country settings. |
startUrls | Array of strings | No | [] | Optional list of search URLs. The first non-empty URL is used. |
keyword | String | No | - | Job search term, such as software engineer or data analyst. |
location | String | No | - | Optional city, region, or location filter, such as Bangkok. |
country | String | No | th | JobsDB market selector: th for Thailand or hk for Hong Kong. |
posted_date | String | No | anytime | Posting window: anytime, 24h, 7d, or 30d. |
results_wanted | Integer | No | 20 | Maximum number of job records to save. Values below 1 use the default. |
maxPagesPerList | Integer | No | 10 | Maximum number of result pages to process. Use a lower value for shorter scheduled runs. |
proxyConfiguration | Object | No | - | Optional Apify Proxy settings for larger or repeated collections. |
cookies | String | No | - | Optional cookie header value for a JobsDB session when required by the source. |
Usage Examples
Basic keyword search
Collect up to 20 software engineering jobs from the Thailand JobsDB market:
{"keyword": "software engineer","country": "th","results_wanted": 20}
Location and recent-posting search
Find data analyst roles in Bangkok that were posted within the last 7 days:
{"keyword": "data analyst","location": "Bangkok","country": "th","posted_date": "7d","results_wanted": 40,"maxPagesPerList": 5}
Pre-filtered JobsDB search URL
Reuse an existing Hong Kong JobsDB search page with its keyword and pagination settings:
{"startUrl": "https://hk.jobsdb.com/jobs?siteKey=HK-Main&keywords=project%20manager&page=1&pageSize=20","results_wanted": 30}
Thailand and Hong Kong URLs in one input
Provide multiple search URLs when you want to keep a reusable input format. The first non-empty URL in startUrls is used for the run:
{"startUrls": ["https://hk.jobsdb.com/jobs?siteKey=HK-Main&keywords=marketing","https://th.jobsdb.com/jobs?siteKey=TH-Main&keywords=marketing"],"results_wanted": 20}
Proxy-assisted collection
Enable the Apify Proxy for repeated or higher-volume collection:
{"keyword": "accountant","country": "hk","results_wanted": 50,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Sample Output
The following example shows one dataset item. Optional nested objects and source-dependent fields can be empty or omitted for other listings.
{"id": "90538991","url": "https://hk.jobsdb.com/job/90538991","title": "Software Engineer","company": "OpenRice","location": "Quarry Bay, Eastern District","locations": [{"label": "Quarry Bay, Eastern District","countryCode": "HK"}],"workType": "Full time","workTypes": ["Full time"],"classification": "Information & Communication Technology","classifications": [{"classification": {"description": "Information & Communication Technology"}}],"salary": null,"postedAt_relative": "3d ago","postedAt_iso": "2026-02-24T11:03:36.000Z","listingDate": "2026-02-24T11:03:36Z","listingDateDisplay": "3d ago","Description_text": "OpenRice is seeking an energetic and passionate talent to be part of the dynamic team.","Description_html": null,"teaser": "OpenRice is seeking an energetic and passionate talent to be part of the dynamic team.","bulletPoints": [],"tags": [],"companyProfileStructuredDataId": 408363,"employer": {"name": "OpenRice"},"advertiser": null,"branding": null,"roleId": "software-engineer","displayType": "standard","displayStyle": null,"isFeatured": false,"solMetadata": null,"tracking": null,"source": "jobsdb","list_url": "https://hk.jobsdb.com/api/jobsearch/v5/search?siteKey=HK-Main&keywords=software+engineer&page=1&pageSize=20","scrapedAt": "2026-02-28T10:20:00.000Z"}
Tips for Best Results
- Test with a small limit - Start with 10 to 20 records before increasing the result count.
- Use specific keywords - Add a seniority level, skill, or role name to reduce unrelated results.
- Narrow the location - Use a city or region when you need a focused dataset.
- Choose the correct market - Set
countrytothorhk, or use a URL from the intended JobsDB domain. - Use a full search URL for complex filters - A JobsDB URL can preserve search settings not represented by the simple inputs.
- Set a page cap - Use
maxPagesPerListto keep scheduled runs within a predictable scope. - Expect source-dependent fields - Salary, descriptions, classifications, and work arrangements can be missing when employers do not publish them.
- Review before automation - Check a test dataset before sending records to alerts, dashboards, or a recruiting database.
- Report changes - Public job listings can change. Use the Actor's Issues tab to report missing or unexpected data.
Integrations and Export Formats
- Apify Dataset and API - Preview records in Apify Console or retrieve them programmatically.
- Google Sheets - Review, filter, and report on job records in a spreadsheet.
- Airtable - Build a searchable hiring database with company, location, salary, and posting-date fields.
- Webhooks - Trigger downstream actions after a run completes.
- Make or Zapier - Send new job records to notifications, CRM systems, or internal tools.
- JSON, CSV, Excel, and XML - Download data for applications, spreadsheets, reporting, and data pipelines.
Frequently Asked Questions
Which JobsDB markets are supported?
Thailand and Hong Kong are supported. Use country: "th" for Thailand or country: "hk" for Hong Kong.
Can I search JobsDB by keyword and location?
Yes. Set keyword and optionally add location, country, and posted_date to collect a focused result set.
Can I use an existing JobsDB search URL?
Yes. Provide a public search results page in startUrl or startUrls. Its domain and query parameters are used for the run.
Can I collect full job descriptions?
Yes. Description_text and Description_html are included when JobsDB publishes description content for the listing. The exact field names use a capital D.
Can I export JobsDB data to CSV or Excel?
Yes. Apify Dataset results can be downloaded as CSV, Excel, JSON, XML, and other supported formats.
Can I schedule recurring JobsDB searches?
Yes. Create an Apify schedule to run the Actor hourly, daily, weekly, or at another interval supported by your workflow.
Why is a field missing from a job record?
A field can be missing when the employer or JobsDB does not publish that information, or when a listing has changed or expired. Compare several records before treating a missing field as a run failure.
Is it legal to scrape JobsDB?
The Actor is intended for responsible collection of publicly available job information. You are responsible for complying with JobsDB's terms, applicable laws, privacy requirements, and restrictions on storing or redistributing job data.
Related Actors
- JobStreet Scraper - Collect job listings from major Southeast Asian markets, including Malaysia, Singapore, the Philippines, and Indonesia.
- Foundit Jobs Scraper - Gather structured job listings, salaries, skills, and descriptions for recruitment research.
- Talent Job Scraper - Collect public job postings with titles, companies, locations, salaries, descriptions, and application links.
Support
For missing fields, unexpected results, or feature requests, use the Issues tab on the Actor page in Apify Console. Include the input JSON and a short description of the result you received.
Legal Notice
This Actor is intended for legitimate collection and analysis of publicly available JobsDB job information. Users are responsible for respecting JobsDB's terms of service, applicable privacy and data-protection rules, intellectual property rights, and restrictions on using or redistributing collected data.