SEEK Jobs Scraper [$1💰] | JobsDB | JobStreet | APAC avatar

SEEK Jobs Scraper [$1💰] | JobsDB | JobStreet | APAC

Pricing

from $0.89 / 1,000 results

Go to Apify Store
SEEK Jobs Scraper [$1💰] | JobsDB | JobStreet | APAC

SEEK Jobs Scraper [$1💰] | JobsDB | JobStreet | APAC

Scrape SEEK jobs across 6 APAC markets — JobsDB Hong Kong & Thailand, Jora Singapore, JobStreet Indonesia, Malaysia & Philippines. Get titles, companies, salary labels, locations, full descriptions and apply URLs for salary benchmarking, hiring intelligence and job market research.

Pricing

from $0.89 / 1,000 results

Rating

0.0

(0)

Developer

Ahmed Jasarevic

Ahmed Jasarevic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

SEEK Jobs Scraper — JobsDB, JobStreet & Jora | 6 APAC Markets

Extract job listings from every SEEK-owned job board in Southeast Asia — JobsDB Hong Kong & Thailand, Jora Singapore, and JobStreet Indonesia, Malaysia & Philippines — via SEEK's own public JSON search API, with full job descriptions fetched through the SEEK GraphQL API. No browser, no login, no API key: clean, structured job, salary and hiring data at $0.001 per record.

Built for recruiters, staffing agencies, salary-benchmark researchers, job aggregators and labor-market analysts who need repeatable APAC job market data.

Main Use Cases

  • Salary benchmarking — aggregate advertised salary ranges by role, market and location for salary guides and compensation reviews (SEEK's own APAC salary reports are compiled from this same data).
  • Hiring & recruitment intelligence — monitor job-post volumes, hiring demand and work-type trends across HK, TH, SG, ID, MY and PH.
  • Lead generation for recruiters — build candidate-source lists by keyword, location, work type and posting date.
  • Job market research — track job openings, classifications and salary disclosure rates across Southeast Asian markets.
  • Job aggregators & job boards — feed a normalized, structured job feed for six APAC countries from one actor.
  • Talent & workforce analytics — enrich dashboards and labor-market studies with current, structured job postings on a schedule.

How the SEEK Jobs Scraper Works — Public JSON API, No Browser

The actor queries the same internal SEEK endpoints that the JobsDB, JobStreet and Jora websites themselves call:

  1. Search — GET https://{domain}/api/jobsearch/v5/search returns clean JSON per page of 20 jobs: title, company, location, salary label, listing date, work types, classifications, teaser and bullet points.
  2. Detail (optional) — POST https://{domain}/graphql with the jobDetails(id:) query returns the full description (HTML + plain text), salary label, advertiser and category for each job.

Both endpoints answer plain HTTPS with a realistic User-Agent and are not Cloudflare-walled (the HTML pages are), which keeps runs fast and cheap — no headless browser is used.

Job Search Input Fields — Configure JobsDB, Jora & JobStreet Runs

FieldTypeRequiredDefaultNotes
countrystring (select)NohkSEEK market: hk (hk.jobsdb.com), th (th.jobsdb.com), sg (sg.jora.com — JobsDB Singapore is now served by Jora), id (id.jobstreet.com), my (my.jobstreet.com), ph (ph.jobstreet.com)
keywordsstringYes—Job title or keyword, e.g. software engineer, accountant, data analyst. The only required field.
locationstringNoemptyCity / region filter, e.g. Central, Bangkok, Kowloon. Empty = whole country.
maxItemsintegerNo50Maximum jobs to scrape. Hard cap 1000.
includeDescriptionbooleanNotrueFetch each job's full description via the SEEK GraphQL API (one extra request per job). Set false for faster, cheaper listing-only runs.
sortModestring (select)Norelevancerelevance (KeywordRelevance) or date (ListedDate, newest first).
dateRangeintegerNo0Only jobs posted in the last N days. 0 = any time. Max 365.
salaryMinintegerNo—Minimum salary filter, local currency per month. Not all employers publish a salary.
salaryMaxintegerNo—Maximum salary filter, local currency per month.
workTypestring (select)Noempty242 Full time, 243 Part time, 244 Contract / Temp, 245 Casual / Vacation. Empty = any.
proxyobjectNo{ "useApifyProxy": false }Standard Apify proxy editor. Disabled by default; enable (e.g. a residential group) only if your IP gets blocked — the endpoints are usually reachable directly.

Job Listing Output Fields — Salary, Company & Description Data

Every search-API record (and the enriched detail record) contains:

FieldTypeDescription
jobIdstringSEEK job ID
titlestringJob title
companystringCompany / advertiser name
locationstringLocation label(s), joined with |
locationsarrayAll location labels
salarystringAdvertised salary label, e.g. HK$30,000 - HK$40,000 per month (empty when not disclosed)
postedDatestringISO listing date
postedDateDisplaystringHuman-readable date, e.g. 4d ago
workTypesarrayWork type labels
workTypestringWork types joined as text
classificationstringTop-level category
categorystringAlias of classification
classificationsarrayClassification + sub-classification objects
teaserstringShort listing summary
bulletPointsarrayJob highlights from the listing card
isFeaturedbooleanFeatured-listing flag
advertiserId / advertiserNamestring / nullAdvertiser identity
employerIdstring / nullEmployer ID
companyProfileStructuredDataIdstring / nullCompany profile ID
applyUrlstringDirect apply URL (https://{domain}/job/{jobId})
companyJobsUrlstring / nullAll jobs by this company
countrystringMarket label, e.g. Hong Kong
countryCodestringMarket code, e.g. hk
descriptionstring / nullFull description (HTML) — only when includeDescription is true
descriptionTextstring / nullFull description as plain text — only when includeDescription is true

Example Input — Minimal JSON to Start Scraping

{
"country": "hk",
"keywords": "software engineer",
"location": "Central",
"maxItems": 100,
"includeDescription": true,
"sortMode": "relevance",
"dateRange": 30,
"workType": "242"
}

Example Output — One Scraped Job Record

{
"jobId": "92506170",
"title": "Senior Software Engineer",
"company": "Example Limited",
"location": "Central, Hong Kong",
"locations": ["Central, Hong Kong"],
"salary": "HK$45,000 - HK$60,000 per month",
"postedDate": "2026-09-17T04:33:51.000Z",
"postedDateDisplay": "2d ago",
"workTypes": ["Full time"],
"workType": "Full time",
"classification": "Information & Communication Technology",
"category": "Information & Communication Technology",
"teaser": "Build scalable backend services with Node.js.",
"bulletPoints": ["5+ years experience", "Hybrid work"],
"isFeatured": false,
"applyUrl": "https://hk.jobsdb.com/job/92506170",
"companyJobsUrl": "https://hk.jobsdb.com/jobs?companyprofilestructureddataid=408641",
"country": "Hong Kong",
"countryCode": "hk",
"description": "<p>Who we are...</p>",
"descriptionText": "Who we are..."
}

Integrations & Automation — Schedule Job Market Monitoring

  • Apify API — call the actor from any app with the Apify REST API or the apify-client SDK (JavaScript, Python).
  • Schedules — recommended: run daily with sortMode: "date" and dateRange 1–7 for fresh-listing monitoring; run weekly with broad keywords and a high maxItems for salary benchmarks and market samples.
  • Webhooks — push each finished run's data to your own endpoint automatically.
  • Zapier / Make — trigger downstream workflows when a run finishes or new records land, via Apify's integration apps.
  • Data export — download results as JSON, CSV, Excel, XML or RSS from the Apify dataset, or read them via API.

FAQ — JobsDB, JobStreet & SEEK Data Extraction

Is there an official JobsDB API?

No. JobsDB (part of the SEEK Group) does not offer a public, self-serve API for job-search data. SEEK provides paid affiliate and partnership routes, but any tool that returns JobsDB search results does so by calling the same public JSON endpoints (/api/jobsearch/v5/search and /graphql) that the JobsDB website itself uses. This actor uses exactly those endpoints — no reverse engineering, no login.

How do I scrape JobsDB job listings?

Enter keywords and pick country (hk or th); optionally add location, dateRange, workType or salary filters, then start the run. Results land in the Apify dataset as clean JSON rows: title, company, salary label, location, posted date, category, apply URL and optional full description.

How do I scrape jobs in Singapore? JobsDB Singapore is gone — what now?

SEEK closed the Singapore JobsDB site — sg.jobsdb.com now redirects to Jora. The actor's country: "sg" therefore searches sg.jora.com, the successor brand, through the same SEEK v5 API — Singapore job data stays available without changing your pipeline.

How do I scrape Hong Kong and Thailand jobs?

Set country: "hk" for hk.jobsdb.com or country: "th" for th.jobsdb.com. Add location values like Central, Kowloon or Bangkok, and use dateRange to focus on fresh postings.

Can I use this for salary benchmarking?

Yes. Run broad keyword samples per market (e.g. software engineer, accountant) with includeDescription: false and a large maxItems, then aggregate the salary field. Advertised salary ranges on JobsDB/JobStreet are the same source SEEK uses to compile its own APAC salary reports, and salary-guide providers (e.g. Robert Half, Hays) benchmark from published job-ad data. Note that many employers don't publish a figure, so salary is empty on some records.

SEEK vs Indeed — which job board should I scrape?

Coverage overlaps, so it depends on the market. SEEK is the regional leader in Hong Kong, Thailand, Singapore, Malaysia, Indonesia and the Philippines (JobsDB, Jora, JobStreet) plus Australia and New Zealand; Indeed is stronger in many other countries (e.g. India, Vietnam, the Americas). For six-market Southeast Asia coverage in one actor, SEEK via this actor is the better fit — combine with an Indeed actor (see Related Actors) if you need cross-check coverage.

What are the alternatives to this actor?

Other Apify actors in the SEEK family mostly cover only Hong Kong and Thailand (e.g. crawlerbros/jobsdb-scraper, khadinakbar/jobsdb-jobs-scraper, unfenced-group/jobsdb-scraper) or only JobStreet markets (e.g. blackfalcondata/jobstreet-scraper). This is the only one that scrapes all six APAC markets — JobsDB HK, JobsDB TH, Jora SG, JobStreet ID/MY/PH — in a single run with one input schema.

Can I run this actor on a schedule?

Yes — every Apify actor can be scheduled from the Console or via the API. Schedules are the recommended way to keep job-market, salary-benchmark and fresh-listing datasets current.

SEO Keywords

jobsdb scraper, jobsdb api, jobsdb hong kong jobs, jobsdb thailand jobs, scrape jobsdb, jobstreet scraper, jobstreet malaysia, jobstreet indonesia, jobstreet philippines, jobstreet singapore, jora singapore jobs, singapore jobs data, hong kong jobs data, salary benchmarking asia, salary data apac, job market data, job postings dataset, hiring intelligence, recruitment data extraction, labor market research, job board scraper, job aggregator data, seek api alternative, apac job listings, software engineer salary hong kong

For AI Agents & LLM Apps

Purpose: returns structured SEEK-family job listings (JobsDB HK/TH, Jora SG, JobStreet ID/MY/PH) — one dataset item per job with title, company, salary label, location, posted date, work type, category, apply URL and optional full description.

Minimal working input:

{ "country": "hk", "keywords": "software engineer", "maxItems": 50 }

Variant — listing-only, no detail requests (faster, half the per-job requests):

{ "country": "my", "keywords": "accountant", "maxItems": 100, "includeDescription": false }

Output field names: jobId, title, company, location, locations, salary, postedDate, postedDateDisplay, workTypes, workType, classification, category, classifications, teaser, bulletPoints, isFeatured, advertiserId, advertiserName, employerId, companyProfileStructuredDataId, applyUrl, companyJobsUrl, country, countryCode, description, descriptionText.

Behaviors an agent should know:

  • keywords is the only required field; an empty or missing value fails the run.
  • includeDescription (default true) adds one GraphQL request per job — extra time and load. Set false for faster runs when descriptions aren't needed. A failed detail call never drops the listing record.
  • maxItems has a hard cap of 1000 (soft default 50); values are clamped into [1, 1000].
  • country is an enum: hk | th | sg | id | my | ph. sg hits Jora, id/my/ph hit JobStreet, hk/th hit JobsDB — different domains behind the same API.
  • workType is an enum: "" (any) | 242 full time | 243 part time | 244 contract/temp | 245 casual/vacation.
  • Free (non-paying) runs are limited to 10 items regardless of maxItems.
  • Salary is frequently missing because employers don't publish a figure — null salary is normal, not an error.

Billing: pay-per-event — $0.00005 per actor start (one event per GB of memory) plus $0.001 per dataset item (lower on higher Apify plan tiers). A 100-job run with descriptions costs roughly $0.10 plus the start event.

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by SEEK Limited, JobsDB, JobStreet, Jora or any of their group companies. It accesses only publicly available JSON endpoints that the public job-search pages themselves use; it does not bypass logins, solve CAPTCHAs or access non-public data. Users are responsible for complying with the terms of service of the source sites and with applicable law, including data-protection rules such as the GDPR and the CCPA where relevant. Job postings are public advertisements, but descriptions may contain names or contact details of named individuals — do not use scraped data for unsolicited commercial outreach in violation of applicable law (e.g. CAN-SPAM, GDPR, TCPA). This section is informational, not legal advice.