Use job104 for ALL 104 人力銀行 operations — searching jobs, viewing details, managing applications, browsing resumes, and exporting results. Invoke whenever the user requests any job search or recruitment interaction on Taiwan's 104 Job Bank.
Install
npx skillscat add miblue119/job104-cli Install via the SkillsCat registry.
job104 — Taiwan 104 Job Bank CLI
Binary: job104
Credentials: browser cookies (auto-extracted from Chrome, Firefox, Edge, Brave, Arc, Safari, etc.)
Setup
# Install (requires Python 3.10+)
uv tool install job104-cli
# Or: pipx install job104-cli
# Or: pip install job104-cli
# Upgrade to latest
uv tool install --upgrade job104-cliAuthentication
IMPORTANT FOR AGENTS: Many commands work without login (search, detail, export, company). Only personal center commands (me, applied, saved, resume, etc.) require authentication.
Step 0: Check if already authenticated
job104 status --json 2>/dev/null | python3 -c "import sys,json; d=json.load(sys.stdin); print('AUTH_OK' if d.get('ok') else 'AUTH_NEEDED')"If AUTH_OK, skip to Command Reference.
If AUTH_NEEDED and personal center commands are needed, proceed to Step 1.
Step 1: Guide user to authenticate
Ensure user is logged into 104.com.tw in any supported browser. Then:
job104 login # auto-detect browser with valid cookies
job104 login --cookie-source chrome # specify browser explicitlyVerify with:
job104 status
job104 me --jsonStep 2: Handle common auth issues
| Symptom | Agent action |
|---|---|
未登入 or not authenticated |
Run job104 login |
| Cookie expired | Run job104 logout && job104 login |
| Wrong browser | Run job104 login --cookie-source <browser> |
Agent Defaults
All machine-readable output uses a consistent envelope:
{"ok": true, "data": {...}}--json/--yaml/--mdfor explicit format- Rich table output goes to stderr (safe for pipes:
job104 search X --json | jq .data) - Non-zero exit codes on failure
Command Reference
Search & Browse (No Login Required)
| Command | Description | Example |
|---|---|---|
job104 search <keyword> |
Search jobs with filters | job104 search "Python" --area 台北市 |
job104 show <index> |
View job #N from last search | job104 show 3 |
job104 detail <hash> |
View full job details by URL hash | job104 detail 8z5sl --json |
job104 export <keyword> |
Export search results to CSV/JSON | job104 export "Python" -n 50 -o jobs.csv |
job104 company <keyword> |
Search companies | job104 company "Google" --zone 外商 --area 台北市 |
job104 areas |
List supported areas | job104 areas |
job104 categories |
List job categories | job104 categories |
job104 industries |
List industry categories | job104 industries |
Personal Center (Login Required)
| Command | Description | Example |
|---|---|---|
job104 me |
View profile | job104 me --json |
job104 applied |
View applied jobs | job104 applied -p 1 --json |
job104 saved |
View saved/bookmarked jobs | job104 saved --not-applied --json |
job104 interviews |
View interview invitations | job104 interviews --json |
job104 resume |
List all resumes | job104 resume --json |
job104 resume-show |
View full resume content | job104 resume-show --json |
job104 resume-show <N> |
View Nth resume by index | job104 resume-show 2 --md |
job104 viewers |
View who viewed your resume | job104 viewers --json |
job104 follows |
View followed companies | job104 follows --json |
job104 history |
View browsing history | job104 history -p 2 --json |
job104 recommend |
View recommended jobs | job104 recommend --json |
Account
| Command | Description |
|---|---|
job104 login |
Extract cookies from browser (auto-detect) |
job104 login --cookie-source <browser> |
Extract from specific browser |
job104 status |
Check authentication status |
job104 logout |
Clear saved credentials |
Search Filter Options
| Filter | Flag | Values |
|---|---|---|
| Area | --area |
台北市, 新北市, 桃園市, 台中市, 高雄市, etc. (use job104 areas for full list) |
| Experience | --exp |
不限, 1年以下, 1-3年, 3-5年, 5-10年, 10年以上 |
| Education | --edu |
不限, 高中以下, 高中/高職, 專科, 大學, 碩士, 博士 |
| Salary Type | --salary-type |
月薪, 時薪, 日薪 |
| Min Salary | --salary-low |
Integer (e.g. 50000) |
| Max Salary | --salary-high |
Integer (e.g. 100000) |
| Freshness | --isnew |
3天內, 7天內, 14天內, 30天內 |
| Remote | --remote |
完全遠端, 部分遠端 |
| Company Type | --company-type |
外商, 上市上櫃 |
| Job Category | --jobcat |
軟體工程師, AI工程師, etc. (use job104 categories) |
| Industry | --indcat |
半導體業, 軟體及網路相關業, etc. (use job104 industries) |
| Sort Order | --order |
符合度, 日期, 刊登日, 經歷需求, 學歷需求, 應徵人數, 待遇 |
Agent Workflow Examples
Search → Detail pipeline (structured)
# Search and get job list
job104 search "Python" --area 台北市 --json | jq '.data.jobs[0]'
# View top result detail
job104 show 1 --jsonForeign company AI job search
job104 search "AI" --company-type 外商 --area 台北市 --salary-type 月薪 --salary-low 80000 --jsonExport pipeline
job104 export "golang" --area 台北市 -n 50 -o golang_jobs.csv
job104 export "Python" -n 100 --format json -o python_jobs.jsonDaily job check workflow
job104 recommend --json # Check recommendations
job104 search "Python" --area 台北市 --json # Search specific jobs
job104 applied --json # Check application status
job104 interviews --json # Check interview invitations
job104 saved --json # Check saved jobsResume export
job104 resume-show --md > my_resume.md # Export resume as Markdown
job104 resume-show --json | jq '.data' # Get structured resume dataProfile check
job104 me --json | jq '.data'Limitations
- No job application — cannot apply to jobs from CLI (requires browser interaction)
- No resume editing — read-only resume access (editing support planned)
- No message sending — cannot send messages to recruiters
- Single account — one set of cookies at a time
- Taiwan only — 104 Job Bank is a Taiwan-specific platform
Safety Notes
- Do not ask users to share raw cookie values in chat logs.
- Prefer local browser cookie extraction over manual secret copy/paste.
- If auth fails, ask the user to re-login via
job104 login. - Agent should treat cookie values as secrets (do not echo to stdout).