JobsDB Scraper avatar

JobsDB Scraper

Pricing

from $0.99 / 1,000 results

Go to Apify Store
JobsDB Scraper

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

Shahid Irfan

Maintained by Community

Actor stats

7

Bookmarked

142

Total users

30

Monthly active users

13 days ago

Last modified

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 country input.
  • 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.

FieldTypeDescription
idStringJobsDB listing identifier.
urlStringDirect URL to the job listing.
titleStringJob title or position name.
companyStringEmployer or advertiser display name.
locationStringPrimary location label shown for the listing.
locationsArrayFull location records, including hierarchy and country code when available.
workTypeStringPrimary employment type, such as full time.
workTypesArrayAll employment types supplied by JobsDB.
workArrangementsObjectWork arrangement information, such as on-site or hybrid, when available.
classificationStringMain job classification.
classificationsArrayClassification and subclassification records with source metadata.
salaryStringSalary label or range when published.
postedAt_relativeStringHuman-readable posting age, such as 3d ago.
postedAt_isoStringPosting date in ISO 8601 format when available.
listingDateStringRaw listing date supplied by JobsDB.
listingDateDisplayStringDisplay version of the listing age.
Description_textStringFull job description as plain text when available.
Description_htmlStringSource-formatted job description when available.
teaserStringShort listing summary.
bulletPointsArrayHighlight points shown with the listing.
tagsArrayListing tags, such as urgency or expiring-soon indicators.
companyProfileStructuredDataIdNumberJobsDB company profile identifier when supplied.
employerObjectEmployer metadata, including available IDs, names, and company references.
advertiserObjectAdvertiser metadata supplied by the listing.
brandingObjectCompany branding data, such as a logo URL.
roleIdStringJobsDB role identifier or slug.
displayTypeStringListing type, such as standard or promoted.
displayStyleObjectDisplay and presentation metadata.
isFeaturedBooleanWhether JobsDB marks the listing as featured.
solMetadataObjectResult placement and ranking metadata when available.
trackingStringListing tracking value supplied by JobsDB.
sourceStringSource identifier, returned as jobsdb.
list_urlStringSearch URL used for the result batch.
scrapedAtStringISO timestamp for the collection run.

How to scrape JobsDB data

  1. Open JobsDB Scraper in Apify Console.
  2. Enter a keyword and optional location, or paste a public JobsDB search results URL into startUrl.
  3. Select th for Thailand or hk for Hong Kong when using keyword and location search.
  4. Choose a posting-date window and set results_wanted.
  5. Start the Actor and review the dataset preview when the run finishes.
  6. 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

ParameterTypeRequiredDefaultDescription
startUrlStringNo-Public JobsDB search results URL. Its query parameters override matching keyword, location, and country settings.
startUrlsArray of stringsNo[]Optional list of search URLs. The first non-empty URL is used.
keywordStringNo-Job search term, such as software engineer or data analyst.
locationStringNo-Optional city, region, or location filter, such as Bangkok.
countryStringNothJobsDB market selector: th for Thailand or hk for Hong Kong.
posted_dateStringNoanytimePosting window: anytime, 24h, 7d, or 30d.
results_wantedIntegerNo20Maximum number of job records to save. Values below 1 use the default.
maxPagesPerListIntegerNo10Maximum number of result pages to process. Use a lower value for shorter scheduled runs.
proxyConfigurationObjectNo-Optional Apify Proxy settings for larger or repeated collections.
cookiesStringNo-Optional cookie header value for a JobsDB session when required by the source.

Usage Examples

Collect up to 20 software engineering jobs from the Thailand JobsDB market:

{
"keyword": "software engineer",
"country": "th",
"results_wanted": 20
}

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 country to th or hk, 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 maxPagesPerList to 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.

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.

  • 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.

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.