104.com.tw Jobs Scraper — Taiwan Job Listings avatar

104.com.tw Jobs Scraper — Taiwan Job Listings

Pricing

from $1.40 / 1,000 jobs

Go to Apify Store
104.com.tw Jobs Scraper — Taiwan Job Listings

104.com.tw Jobs Scraper — Taiwan Job Listings

Scrape public 104.com.tw (104 人力銀行) job listings by keyword and optional area code. Title, company, location, industry, appear date, job URL. Salary label only when 104 discloses it. HTTP JSON search API — no login, no CVs.

Pricing

from $1.40 / 1,000 jobs

Rating

0.0

(0)

Developer

Noah Adler

Noah Adler

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Share

104.com.tw Jobs Scraper

104.com.tw (104 人力銀行) Taiwan jobs scraper by keyword + optional area code: title, company, city, industry, appear date, and absolute job URL — one clean Dataset row per public vacancy. Salary label only when 104 discloses it.

Built for Taiwan hiring intel, salary benchmarking (when disclosed), LATAM/Asia jobs portfolio, and PPE-friendly exports. No browser automation — HTTP + Chrome TLS fingerprint against 104’s public JSON search API (/jobs/search/api/jobs). No login. No CVs. No candidate PII.

104 returns job cards as JSON (data[], ~20 per page). This Actor calls the same endpoint the website uses, GETs with curl_cffi (chrome124), maps fields to a stable schema, and paginates with page=N until maxItems. TW residential proxy is recommended (often works without proxy from clean IPs).

Why this Actor: Keyword search · Clean schema · No Playwright · No CV / VIP scrape · Salary when disclosed · Cheap PPE · CSV / API / webhooks ready


Table of contents

  1. What this Actor does
  2. What you get
  3. Features
  4. Input
  5. Output example
  6. Output fields
  7. Quick start (API)
  8. Use cases
  9. Limitations
  10. FAQ
  11. Keywords

What this Actor does

StepAction
1Accept keyword + optional area / maxItems
2GET /jobs/search/api/jobs?keyword=…&kwop=7&page=N&pagesize=20&order=16
3Parse JSON data[]
4Map each card → Dataset row (jobId, title, companyName, salaryLabel, jobUrl, …)
5Paginate until maxItems, empty page, or partial page

Input: keyword, area, max items, proxy.
Output: one Dataset row per public job.


What you get

Job

  • jobId, title, companyName, companyUrl, location, address, teaser
  • industry, jobType, experienceCode, remoteWorkType / remoteLabel, employeeCount

Compensation / timing

  • salaryLow, salaryHigh, salaryLabel (only when 104 discloses numbers; otherwise null)
  • appearDate

Links / meta

  • jobUrl (https://www.104.com.tw/job/{slug})
  • keyword, area, scrapedAt, error, errorMessage

Features

CapabilityDetail
Keyword searche.g. 工程師, Python, 護理師
Optional area104 area codes (Taipei, Kaohsiung, …)
No browsercurl_cffi impersonate chrome124 + browserforge headers
Public JSON APISame endpoint as 104’s job list UI
Proxy-awareTW RESIDENTIAL recommended
PPE-friendlyPublic vacancies only — no CV harvesting

Input

FieldRequiredDescription
keywordYesSearch term on 104.com.tw
areaNoOptional 104 area code
maxItemsNoDefault 40, max 500
proxyConfigurationNoDefault RESIDENTIAL + TW

Example

{
"keyword": "工程師",
"maxItems": 20,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "TW"
}
}

Output example

{
"jobId": "7923632",
"title": "設備工程師(嘉積廠)",
"companyName": "嘉晶電子股份有限公司",
"companyUrl": "https://www.104.com.tw/company/7erm71c",
"location": "新竹市",
"address": "創新一路17號",
"salaryLow": 0,
"salaryHigh": 0,
"salaryLabel": null,
"jobUrl": "https://www.104.com.tw/job/4ptww",
"appearDate": "20261002",
"industry": "半導體製造業",
"jobType": 1,
"experienceCode": 0,
"remoteWorkType": 0,
"remoteLabel": "on-site",
"employeeCount": 700,
"teaser": "半導體機台維護、異常處理及改善",
"keyword": "工程師",
"area": null,
"scrapedAt": "2026-10-02T12:00:00Z",
"error": false,
"errorMessage": null
}

Output fields

FieldNotes
salaryLabelNull when 104 shows 待遇面議 (salaryLow=salaryHigh=0)
jobType / experienceCodeRaw 104 codes from the card
remoteLabelon-site / remote / hybrid when mappable

Quick start (API)

$apify call noahadler/104-com-tw-jobs -i '{"keyword":"工程師","maxItems":20}'

Use cases

  • Track Taiwan hiring volume by keyword / city
  • Benchmark disclosed salaries on 104
  • Feed ATS / BI pipelines with public vacancy URLs

Limitations

  • Public vacancies only — does not scrape résumés, VIP dashboards, or post-login candidate data
  • Salary often undisclosed (~⅓ of cards) — then salaryLabel is null
  • Cloudflare may require TW residential proxy from some IPs
  • Area filter needs 104’s numeric area codes (not free-text city names)
  • Company contact phones/emails are not extracted as a product field

FAQ

Does this scrape CVs?
No. VIP clause (十) forbids automated collection of candidate personal data. This Actor only reads public job cards.

Why is salary often empty?
104 allows 待遇面議. When both salaryLow and salaryHigh are 0, we leave salaryLabel null instead of inventing a value.

Do I need a 104 account?
No. Public search JSON only.


Keywords

104.com.tw scraper, taiwan 104 jobs, 104 人力銀行, taiwan job scraper, 104 job listings, 104.com.tw API, Taiwan jobs API