Metadata-Version: 2.4
Name: job104-cli
Version: 0.1.1
Summary: A CLI for Taiwan 104 Job Bank (104人力銀行) — search jobs from the terminal
Project-URL: Homepage, https://github.com/weirenlan/job104-cli
Project-URL: Repository, https://github.com/weirenlan/job104-cli
Author: weirenlan
License-Expression: Apache-2.0
Keywords: 104,cli,job,recruitment,taiwan,terminal
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Office/Business
Requires-Python: >=3.12
Requires-Dist: browser-cookie3>=0.19
Requires-Dist: click>=8.0
Requires-Dist: httpx>=0.27
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.0
Description-Content-Type: text/markdown

# job104 CLI

[![PyPI version](https://img.shields.io/pypi/v/job104-cli)](https://pypi.org/project/job104-cli/)
[![Python 3.10+](https://img.shields.io/pypi/pyversions/job104-cli)](https://pypi.org/project/job104-cli/)
[![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-blue)](LICENSE)

> **Taiwan 104 Job Bank CLI** — Search jobs, view details, and manage your career from the terminal. Built for developers and AI agents.

台灣 104 人力銀行終端機工具。讓開發者和 AI agent 可以在終端機中搜尋 104 職缺。

## Install

```sh
# Recommended (isolated environment)
uv tool install job104-cli

# Alternatives
pipx install job104-cli
pip install job104-cli
```

## Quick Start

```sh
# Search jobs
job104 search "Python" --area 台北市

# Filter by company type and job category
job104 search "AI" --company-type 外商 --jobcat AI工程師 --area 台北市

# View job detail by index
job104 show 3

# View job detail by URL hash
job104 detail 8z5sl

# Export results
job104 export "Python" -n 50 -o jobs.csv

# Search companies
job104 company "Google" --zone 外商 --area 台北市

# Filter by industry
job104 search "護理師" --indcat 醫療服務業

# Use raw category code for specific job titles
job104 search "Python" --jobcat 2007001020

# List supported areas, job categories, and industries
job104 areas
job104 categories
job104 industries

# Login via browser cookies
job104 login

# View personal center (requires login)
job104 me
job104 applied
job104 saved
job104 interviews
job104 resume
job104 resume-show        # first resume
job104 resume-show 2      # second resume by index
job104 viewers
job104 follows
job104 history
job104 recommend

# Edit resume (requires login) [Beta]
job104 resume-edit bio --update --data '{"chi": "我的自傳..."}'
job104 resume-edit experience --add --data '{"companyName": "Google", "jobName": "SWE"}'
job104 resume-fields --json          # list all field definitions
job104 resume-fill --from resume.json --dry-run
```

## Personal Center (需登入)

透過瀏覽器 Cookie 登入後，可查看個人中心資料：

```sh
# Login
job104 login
job104 login --cookie-source chrome

# View profile
job104 me

# View applied jobs (with pagination and status filter)
job104 applied
job104 applied -p 2
job104 applied --status closed

# View saved/bookmarked jobs
job104 saved
job104 saved --not-applied

# View interview invitations
job104 interviews

# View resume list
job104 resume

# View full resume content (by index # or VNO)
job104 resume-show          # default: first resume
job104 resume-show 2        # second resume by index
job104 resume-show <VNO>    # by VNO

# View who viewed your resume
job104 viewers

# View followed companies
job104 follows

# View browsing history
job104 history
job104 history -p 2

# View recommended jobs
job104 recommend
job104 recommend --group highchance

# Structured output
job104 applied --json
job104 resume --yaml
job104 resume-show --json
job104 resume-show --md            # full Markdown (no truncation)
job104 resume-show --md > resume.md  # save to file

# Check login status / logout
job104 status
job104 logout
```

## Resume Editing (需登入) `Beta 開發中`

編輯 104 履歷，支援互動模式與 agent 自動填入：

```sh
# Edit a single section (agent mode with --data JSON)
job104 resume-edit bio --update --data '{"chi": "我的自傳內容..."}'
job104 resume-edit experience --add --data '{"companyName": "Google", "jobName": "SWE"}'
job104 resume-edit education --delete --index 2
job104 resume-edit experience --update --index 1 --data '{"description": "新的描述"}'

# Interactive mode (prompts for each field)
job104 resume-edit bio --update

# Preview without submitting
job104 resume-edit bio --update --data '{"chi": "test"}' --dry-run

# Auto-fill from external sources
job104 resume-fill --from resume.json --dry-run
job104 resume-fill --from resume.pdf --sections experience,education
echo '{"bio": {"chi": "..."}}' | job104 resume-fill --stdin --yes

# Merge strategy (default: replace)
job104 resume-fill --from data.json --strategy merge --yes

# View field definitions (for agents)
job104 resume-fields --json
job104 resume-fields --section experience --json

# Autocomplete lookup
job104 resume-autocomplete school 台灣大學
job104 resume-autocomplete company Google --json
job104 resume-autocomplete skill Python --json

# Specify which resume to edit (default: first)
job104 resume-edit bio --update --vno <VNO> --data '{"chi": "..."}'
```

## Filters

```sh
job104 search "Python" \
  --area 台北市 \
  --company-type 外商 \
  --jobcat 軟體工程師 \
  --indcat 軟體及網路相關業 \
  --exp 3-5年 \
  --edu 大學 \
  --salary-type 月薪 --salary-low 50000 \
  --remote 完全遠端 \
  --isnew 7天內
```

## Structured Output

All commands support `--json` and `--yaml` flags for agent-friendly output. `resume-show` also supports `--md` for full Markdown output. Resume edit commands support `--dry-run` to preview changes before submitting.

```sh
job104 search "Python" --json
job104 company "AI" --zone 外商 --json
job104 applied --json
job104 resume --yaml
job104 resume-show --md
job104 resume-fields --json
job104 resume-edit bio --update --dry-run --data '{"chi": "test"}'
```

## License

Apache-2.0
