VOOZH about

URL: https://apify.com/unfenced-group/jobthai-scraper

โ‡ฑ JobThai Scraper โ€” Thailand Job Listings ยท Apify


Pricing

$0.99 / 1,000 result scrapeds

Go to Apify Store

JobThai.com Job Scraper

Scrape job listings from jobthai.com - Thailand's leading job board. GraphQL API, no proxy, no Playwright. PAY_PER_EVENT.

Pricing

$0.99 / 1,000 result scrapeds

Rating

0.0

(0)

Developer

๐Ÿ‘ Unfenced Group

Unfenced Group

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

1

Monthly active users

2 days ago

Last modified

Share

๐Ÿ‡น๐Ÿ‡ญ JobThai Scraper

๐Ÿ‘ JobThai.com Job Scraper

Extract job listings from jobthai.com โ€” Thailand's leading job board with 48,000+ active listings and 1.8 M monthly visitors.

โœจ Key features

  • GraphQL API โ€” hits api.jobthai.com/v1/graphql directly; no HTML parsing, no Cheerio, no Playwright
  • No proxy required โ€” endpoint is publicly accessible from any IP worldwide
  • Two query modes โ€” fast list scrape (20 fields) or rich detail scrape (30+ fields)
  • Full filter support โ€” keyword, province, job type, region, salary range, hybrid/WFH/online interview flags
  • PAY_PER_EVENT pricing โ€” pay per result, not per Compute Unit

๐Ÿ“ฆ Output fields

List mode (default)

FieldTypeDescription
jobIdstringNumeric job ID
companyIdstringEmployer company ID
titlestringJob title
companystringEmployer name
provincestringProvince name
provinceIdstringProvince code (e.g. "01" = Bangkok)
districtstringDistrict name
districtIdstringDistrict code
regionstringRegion name (e.g. "Bangkok Area")
regionIdstringRegion ID ("6" = Bangkok Area)
countrystringCountry name โ€” only populated for overseas jobs (province="99"). null for all domestic Thai listings
jobTypestringJob category name
jobTypeIdintegerJob category ID
industrystringIndustrial estate / area name
industryIdstringIndustry ID
salarystringSalary range or description
isUrgentbooleantrue if marked as urgent hiring
isTopCompanybooleantrue if featured company
workLocationstringFree-text work location detail
transitStationsobject[]Nearby BTS/MRT/BRT stations with distance (metres) and type
tagsstring[]Labels: "Hybrid Work", "Online Interview", "Hybrid Working"
datePostedstringISO date (YYYY-MM-DD)
updatedAtstringFull ISO timestamp
jobUrlstringCanonical link: https://www.jobthai.com/jobsearch/job/{id}
scrapedAtstringISO timestamp of extraction

Detail mode (scrapeDetail: true) โ€” adds these fields

FieldTypeDescription
descriptionstringFull job description / responsibilities
benefitstringWelfare and benefits (company-level)
companyBenefitstringBenefit text from company profile
applyMethodstringHow to apply
employmentTypestringFULL_TIME / PART_TIME / CONTRACT
numberOfPositionsstringNumber of open positions
englishApplybooleanWhether English CV is accepted
subJobTypestringSub-category of job type
businessTypestringCompany business category
companyWebsitestringEmployer website
addressstringFull work address
subdistrictstringSub-district (tambon)
industrialAreastringIndustrial estate name
latitudenumberGPS latitude โ€” null if employer did not set location
longitudenumberGPS longitude โ€” null if employer did not set location
contactNamestringHR contact name
contactTelstringHR phone number
contactFaxstringHR fax number
contactEmailsstring[]HR email addresses (trustmail masked)
contactLineIdstringHR Line ID
applyExternalLinkstringExternal application URL (if any)

โš™๏ธ Input

{
"keyword":"python developer",
"province":"01",
"jobtype":"10",
"salarymin":50000,
"maxItems":200,
"scrapeDetail":false
}

Input fields

FieldDefaultDescription
keyword""Job title, skill, or free-text keyword
province""Province code (see table). Blank = all
jobtype""Job category ID (see table). Blank = all
region""Region: 1=N 2=NE 3=Central 4=E 5=W 6=S/Bangkok
salarymin0Minimum monthly salary (THB). 0 = no filter
salarymax0Maximum monthly salary (THB). 0 = no filter
hybridworkfalseOnly hybrid-work jobs
wfhfalseOnly fully remote / WFH jobs
onlineInterviewfalseOnly jobs offering online interviews
startPage1Page to start from (20 jobs/page)
maxPages0Max pages (0 = unlimited)
maxItems0Max results (0 = unlimited)
scrapeDetailfalseFetch full detail per job (+15 fields, slower)
language"en""en" or "th"

Province codes

CodeProvinceCodeProvince
01Bangkok28Pathum Thani
02Samut Prakan29Nonthaburi
03Samut Sakhon09Chon Buri
04Nakhon Pathom10Chiang Mai
05Samut Songkhram13Phuket
06Ratchaburi73Udon Thani
07Kanchanaburi74Khon Kaen
08Suphan Buri99Overseas

Job type IDs

IDCategoryIDCategory
1Marketing / PR14Information Technology
2Sales15Accounting
3Customer Service16Human Resources
4Finance17Manufacturing / QC
5Administrative18Purchasing / Supply Chain
7Engineering19Driver / Delivery
10IT / Programming26Secretary
11Architecture28Engineering (Mfg)
12R&D31Overseas

๐Ÿš€ Usage examples

Bangkok IT jobs, list only:

{"province":"01","jobtype":"10","maxItems":500}

Python developer search with full detail:

{"keyword":"python developer","scrapeDetail":true,"maxItems":100}

High-salary engineering roles:

{"jobtype":"7","salarymin":80000,"maxItems":200}

Hybrid work jobs only:

{"hybridwork":true,"province":"01","maxItems":300}

Full scrape (all jobs, all provinces):

{"maxPages":0,"maxItems":0}

๐Ÿ’ฐ Pricing

PAY_PER_EVENT: $0.99 / 1,000 results

ModeEst. CU cost / 1,000 resultsBilled at
List only~$0.02$0.99
List + detail~$0.05$1.49

No proxy cost. No Playwright. GraphQL = pure JSON, ~3 KB/request.

๐Ÿ›  Architecture

Input
โ””โ”€โ–บ searchJobs(filter, page)POSThttps://api.jobthai.com/v1/graphql
โ””โ”€โ–บ [optional]getJobRawData(id) same endpoint
โ””โ”€โ–บ dataset.pushData()
โ””โ”€โ–บ Actor.charge()PAY_PER_EVENT

GraphQL queries used

searchJobs โ€” paginated list, 20 jobs per page:

query($f:JobsSearchFilter,$o:JobOrderBy,$s:StaticDataVersion){
searchJobs(filter:$f,orderBy:$o,staticDataVersion:$s){
data{totaldata{idjobTitlecompanyNamesalaryprovince{idname}...}}
}
}

getJobRawData โ€” full detail per job:

query($id:Int!,$l:Language,$s:StaticDataVersion){
getJobRawData(id:$id,l:$l,staticDataVersion:$s){
data{_idtitledescriptionbenefitemploymentTypecontact{...}workLocation{latitudelongitude...}}
}
}

How the endpoint was found

The public www.jobthai.com frontend is a Next.js app. Its __NEXT_DATA__ JSON contains an Apollo state with cached searchJobs results. The commons.js Next.js chunk exposes the runtime config:

externalApiGateway:"https://api.jobthai.com/v1/graphql"

This endpoint accepts requests from any origin โ€” no authentication required.

๐Ÿ”ง Local development

npminstall
node src/test.js # 25/25 live GraphQL battery
node src/main.js # full run (needs .actor/input.json or APIFY_INPUT env)

All 25 tests hit the real GraphQL API. T21/T25 allow โ‰ค2 pagination overlaps โ€” normal with UPDATED_AT_DESC ordering on a high-frequency live feed.


Built by unfenced-group ยท jobthai.com operated by THiNKNET Co., Ltd.


Output fields

FieldTypeNotes
titleโ€”Job title
companyโ€”Hiring company
locationโ€”Location
jobTypeโ€”Job type
salaryMinโ€”Minimum salary
salaryMaxโ€”Maximum salary
publishDateโ€”Date posted
urlโ€”Direct link

Related scrapers

Other scrapers in our Jobs โ€” East & Southeast Asia collection:


Run it on a schedule

This actor is built for repeat use. Set it to run daily, weekly, or hourly, and the data keeps flowing without you touching it.

  • Schedule runs โ€” open the actor, go to Schedules, and pick a cadence. Each run only charges you for the results it returns.
  • Connect it to your stack โ€” push results straight to Google Sheets, Slack, a webhook, or your database using Apify Integrations. No glue code needed.
  • Pull results via API โ€” every run writes a clean dataset you can fetch with one API call, ready for whatever you build on top of it.

Set it once and it runs on its own.


Need a custom scraper?

Unfenced Group builds Apify actors for any website โ€” for free.

If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results โ€” we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.

Get in touch: www.unfencedgroup.nl

You might also like

JobThai Thailand Jobs Scraper

mai_amm/jobthai-scraper

Thai job scraper for JobThai.com. Extract Thailand job listings in Thai or English with salary, company, province, job type, WFH, hybrid tags, descriptions, qualifications, benefits, and optional public contacts.

JobThai.com Scraper

shahidirfan/JobThai-com-Scraper

Extract live job listings from Thailand's top job board. Get job titles, companies, salaries, descriptions & apply links. Perfect for recruitment analytics, salary benchmarking, market research & AI training datasets. Fully structured, ETL-ready output.

LinkedIn Jobs Scraper - Professional Job Listings

santamaria-automations/linkedin-scraper

Scrapes public job listings from LinkedIn's job board. Filter by location, job type, experience level, and remote options. Extract company info, job descriptions, and application links. No login required.

337

5.0

JobTopGun Scraper

unfenced-group/jobtopgun-scraper

Scrape job listings from JobTopGun.com โ€” Thailand's #1 job board. Extracts full job details. Supports location filter (32 Thai provinces), keyword, job field, and bulk sitemap scraping. No proxy needed.

๐Ÿ‘ User avatar

Unfenced Group

2

๐Ÿ’ผ Remote Job Board Scraper

pixel_drafter/remote-job-board-scraper

Remote Job Board Scraper extracts remote job listings from public job boards using a headless browser. It collects job titles, company names, locations, and job URLs in structured JSON format. Ideal for job aggregators, alerts, analytics, and market research workflows.

11

Finn.no Jobs Scraper

codingfrontend/finn-no-jobs-scraper

Scrape job listings from Finn.no, Norway's largest job board. Extract job titles, companies, locations, deadlines, and job URLs.

๐Ÿ‘ User avatar

Coding Frontned

2

RemoteOK Job Scraper โ€“ Cheap ๐ŸŒ๐Ÿ’ผ

scrapestorm/remoteok-job-scraper---cheap

๐Ÿ” Easily collect remote and global job listings from RemoteOK.com Extract structured job data from one of the leading remote job boards, including job titles, company names, locations, salaries, tags, posting dates, job URLs, apply URLs, job descriptions, and verification status ๐ŸŒ๐Ÿ’ผ

2

Talent Job Search Scraper โ€“ Cheap ๐ŸŽฏ๐Ÿ”๐Ÿ’ผ

scrapestorm/talent-job-search-scraper---cheap

๐Ÿ” Easily collect job listings from Talent job platforms Extract structured job data from Talent job search results, including job titles, company names, locations, job types, posting dates, job descriptions & more Ideal for job market research, recruitment intelligence & hiring trend analysis ๐ŸŒ

2

The Hub Jobs Scraper

needy_hammock/the-hub-jobs-scraper

Scrape job listings from thehub.io the leading Nordic startup job board. Extract comprehensive job data, including company details, salary information, location, and complete job descriptions.

22

Naukri Job Scraper

automation-lab/naukri-scraper

Scrape job listings from Naukri.com, India's largest job board. Extract title, company, salary, location, experience, skills & description. Export JSON/CSV/Excel. No API key needed.

๐Ÿ‘ User avatar

Stas Persiianenko

2.1K