关于 Taiwan Jobs 台灣求職
Taiwan Jobs 台灣求職是用于搜索台湾职位的只读 MCP 服务,面向使用中文或英语的求职者。它整合本地招聘网站与部分公司招聘页面,并提供职位、公司和薪资信息。
主要功能
- 01搜索 104、Yourator、Greenhouse、Lever 和 Workday
- 02按地点、薪资、经验等筛选
- 03获取职位和公司详情
- 04查看 104 申请者及薪资统计
- 05检查来源的实时可用性
适用场景
- 01按目标城市和薪资范围查找远程职位
- 02比较本地招聘网站与公司招聘页面的职位
- 03查看 104 职位的申请者背景
- 04根据匹配的 104 职位估算薪资
MCP 相关
向 MCP 客户端提供六个只读工具:`search_jobs`、`get_job`、`get_company`、`salary_overview`、`sources` 和 `lookup_code`。无需账户或 API 密钥。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
6收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| area | array | 否 | |
| page | integer | 否 | |
| sort | enum | 否 | relevance | newest | salary |
| jobcat | array | 否 | |
| source | enum | 否 | 104 | yourator | boards | workday | all |
| keyword | string | 否 | |
| job_type | enum | 否 | 全職 | 兼職 | 高階 | 派遣 |
| my_years | integer | 否 | |
| new_only | boolean | 否 | |
| per_page | integer | 否 | |
| education | enum | 否 | 高中職 | 專科 | 大學 | 碩士 | 博士 |
| keyword_en | string | 否 | |
| salary_min | integer | 否 | |
| remote_only | boolean | 否 | |
| salary_unit | enum | 否 | 月薪 | 年薪 | 日薪 | 時薪 |
详细介绍
tw-jobs-mcp
英文 · 繁體中文
通过任意 AI 助手搜索台湾职位信息。tw-jobs-mcp 是一个只读的 MCP 服务,涵盖 104 人力银行、Yourator,以及外国公司自有招聘网站上的台湾职位(Greenhouse、Lever 和 38 家使用 Workday 的雇主)。用中文或英文直接提问;助手会将请求转换为精准筛选条件。
无需账号或 API 密钥。
claude mcp add tw-jobs -s user -- uvx tw-jobs-mcp
非官方。 本项目与 104 或其读取的任何其他网站均无关联,也未获其认可。它调用的网站公开接口与网站自身页面使用的接口相同。请保持较低的请求频率,并遵守各网站的条款。本项目不附带任何职位数据。
你可以询问
查找台北的 .NET 后端职位,月薪至少 50,000,并告诉我市场薪资水平。
我有两年工作经验。显示新北市的远程后端职位,阅读排名前三的职位,并比较这些公司。
这个职位值得申请吗?有多少人申请,他们的背景是什么?
哪些外国芯片公司正在新竹招聘硬件工程师?
这家公司有数据类职位吗?包括职位名称中没有相关字样的职位。
助手会在幕后串联这些工具。以下输出仅作示例;公司名称和 ID 均为虚构。
search_jobs(keyword="後端工程師", keyword_en="backend engineer", area=["台北市"], salary_min=50000)
共 812 筆,第 1/41 頁
id|company_id|職稱|公司|薪資|地點|學歷|技能|刊登
a1b2c|x9y8z7|後端工程師 Backend Engineer|甲科技股份有限公司|月55000~80000|台北市信義區|大學~碩士|C#/.NET/MS SQL|10-18
d3e4f|w6v5u4|資深後端工程師|乙數位股份有限公司|月70000~100000|台北市內湖區|大學|Go/PostgreSQL/Docker|10-17
…
get_job("a1b2c", applicants=true)
後端工程師 Backend Engineer|甲科技股份有限公司|電腦軟體服務業 50人
…
HR:2 天內處理過履歷
應徵分析(近兩週):至少 12 人(由比例推算)
學歷:大學 66.7%、碩士 33.3%
年資:1~3年 41.7%、3~5年 33.3%、無工作經驗 25%
技能:C# 58.3%、MS SQL 41.7%、Docker 25%
为什么选择这个服务
- 覆盖 104 找不到的职位。 外企经常只在自家招聘网站发布台湾职位。使用
source="all"搜索一次,即可覆盖 104、Yourator、Greenhouse 和 Lever 招聘页面(Appier、Stripe、MongoDB、Pinkoi 等),以及芯片、硬件、制药和金融雇主的 Workday 网站(NVIDIA、Micron、Applied Materials、KLA、Cisco、Intel、NXP、GSK 等)。所有来源的结果会合并并统一排序。 - 找到你依稀记得的职位。 根据职位名称和公司名称涵盖了多少个搜索词,对结果重新排序。在基于真实招聘信息构建的 40 次测试搜索中,目标职位有 35 次排名第一,而按 104 自身的排序只有 18 次。
- 了解竞争情况。 对于 104 上的职位,
get_job(applicants=true)会报告过去两周的申请人数,并按学历、经验、年龄、专业、语言、技能和证书细分。每个职位都会显示雇主最近处理简历的时间,这可以合理地提示是否有人在看申请。 - 真正有效的筛选条件。 关键词、地区、职位类别、最低薪资(月薪、年薪、日薪或时薪)、工作年限、学历、工作类型、远程办公,以及最近 7 天发布的职位。每项筛选都已针对实时网站进行验证;某个来源无法应用筛选条件时,会在结果下方说明。
- 为能力出众的模型打造。 所有允许的取值都包含在架构中。服务说明阐述原则,而非罗列冗长的案例。服务只处理模型无法自行判断的内容:扩展含义模糊的地名,将无法匹配的职位类别转换为关键词;如果没有匹配结果,则逐项放宽筛选条件。每一项此类处理假设都会在结果下方列出。
- 节省上下文。 回复采用精简表格,而非 JSON:20 个职位约占 2,000 个字符,不到相同数据以 JSON 呈现时的五分之一。全部六个工具定义合计不到 3,000 个字符。除非请求
full,否则会截短较长的文本。 - 只读且礼貌。 服务不会登录、申请职位或保存任何内容。它会控制对各网站的请求频率(对 104 每秒一次),将响应缓存五分钟,并过滤掉 104 在每一页置顶的两条付费职位。
安装
需要 uv。这些命令会从 PyPI 运行已发布的软件包。它也已作为 io.github.HsuanC0921/tw-jobs-mcp 列入 官方 MCP Registry。
Claude Code
claude mcp add tw-jobs -s user -- uvx tw-jobs-mcp
OpenAI Codex CLI
codex mcp add tw-jobs -- uvx tw-jobs-mcp
或者在 ~/.codex/config.toml 中:
[mcp_servers.tw-jobs]
command = "uvx"
args = ["tw-jobs-mcp"]
startup_timeout_sec = 60 # the first run downloads dependencies
Claude Desktop:从 Releases 下载 tw-jobs-mcp-<version>.mcpb 并打开,或使用下方的 JSON。
Gemini CLI、Cursor、Windsurf、Cline 和其他 mcpServers 客户端:添加到 ~/.gemini/settings.json、~/.cursor/mcp.json、Windsurf 的 mcp_config.json 或客户端的对应配置文件中:
{
"mcpServers": {
"tw-jobs": { "command": "uvx", "args": ["tw-jobs-mcp"] }
}
}
VS Code(GitHub Copilot):.vscode/mcp.json 使用 servers,并且需要一个 type:
{
"servers": {
"tw-jobs": { "type": "stdio", "command": "uvx", "args": ["tw-jobs-mcp"] }
}
}
远程(HTTP)和 Docker,适用于通过 URL 连接的客户端,或由团队共享的服务:
uvx tw-jobs-mcp --transport streamable-http --port 8000 # http://127.0.0.1:8000/mcp
docker build -t tw-jobs-mcp . && docker run --rm -p 8000:8000 tw-jobs-mcp
HTTP 服务没有身份验证。请将其限制在 localhost 或专用网络中,或者在前面配置一个带身份验证的反向代理。
尚未发布的代码:uvx --from git+https://github.com/HsuanC0921/tw-jobs-mcp tw-jobs-mcp。
Agent 技能
服务已内置如何使用它的说明。skills/tw-jobs 为会加载技能的 Agent 提供更多指导:将请求转换为参数、选择来源、阅读说明,以及如实汇报。它遵循开放的 Agent Skills 格式。
- Claude Code:先运行
/plugin marketplace add HsuanC0921/tw-jobs-mcp,再运行/plugin install tw-jobs@tw-jobs-mcp(会一并安装服务和技能)。或者将skills/tw-jobs复制到~/.claude/skills/。 - Codex 和其他支持技能的 Agent:将
skills/tw-jobs复制到~/.agents/skills/。
工具
| 工具 | 功能 |
|---|---|
search_jobs | 搜索职位信息。返回一张表格,包含:id、company_id、职位名称、公司、薪资、地点、学历、技能、发布日期。 |
get_job | 查看完整的职位信息:描述、要求、薪资、工时、休假、福利,以及人资最近处理履历的时间。仅适用于 104:applicants=true 会额外返回应征人数和背景分布,similar=true 会额外返回相似职位。 |
get_company | 查看公司简介。with_openings=true 会额外返回目前的职位;keyword 仅列出匹配的职位,在 104 上也会匹配职位描述。 |
salary_overview | 统计 104 搜索结果中 1 至 5 页职位的薪资(中位数、四分位数、最低值、最高值),并按薪资单位分组。 |
sources | 实时检查各信息来源是否可访问或已被屏蔽。 |
lookup_code | 按名称查找 104 的地区或类别代码,或浏览树状目录。 |
search_jobs 参数均为可选项:
| 参数 | 含义 |
|---|---|
keyword、keyword_en | 1 至 3 个简短词语。搜索 104 时,在 keyword 中填写中文;搜索国外网站时,在 keyword_en 中填写英文,两者互为翻译。助手会自动填写这两个参数,因此中文请求也能找到国外网站上的职位信息。 |
source | 104(默认)、yourator、boards、workday 或 all |
area、jobcat | 中文名称,例如 ["台北市", "新北市"]、["軟體工程師"] |
salary_min、salary_unit | 薪资下限及其单位:月薪(默认)、年薪、日薪、時薪 |
include_negotiable | 与 salary_min 配合使用时,也列出未注明薪资的职位(104 默认不列出) |
my_years | 用户的工作经验年数;列出要求不超过该年数的职位,也包括經驗不拘的职位 |
education | 高中職、專科、大學、碩士、博士 |
job_type | 全職、兼職、高階、派遣 |
remote_only、new_only | 仅远程职位;7 天内发布 |
sort | relevance(默认)、newest、salary |
page、per_page | 分页,每页最多 30 条 |
信息来源
source | 覆盖范围 | 应用的筛选条件 |
|---|---|---|
104 | 台湾最大的人力银行网站 | 全部 |
yourator | 初创公司和外商办事处 | keyword、area、sort=newest |
boards | 台湾公司在 Greenhouse 和 Lever 招聘网站上的职位 | keyword、area、remote_only |
workday | 38 家使用 Workday 的外商在台湾的职位 | keyword、area |
all | 合并并排序以上所有来源 | 按来源应用筛选;某个来源失效时会注明,但不会导致整体失败 |
ID 表示职位信息所在的网站:不带前缀的 ID 来自 104,y: 来自 Yourator,g: / l: 分别来自 Greenhouse / Lever,w: 来自 Workday。请按原样传入这些 ID。
使用 TW_JOBS_BOARDS(g:gitlab,l:kraken,-g:stripe)和 TW_JOBS_WORKDAY(acme.wd1/External,-micron)添加或移除招聘网站;前缀 - 表示移除。每次 Workday 搜索会读取每家公司最前面的 60 条记录,因此进行深度搜索时请用关键词缩小范围。
有意不包含:1111(与 104 类型相同但规模较小的求职网站)、Cake(每次请求都会遇到 Cloudflare 验证)和 LinkedIn(其条款禁止自动访问)。
配置
| 变量 | 默认值 | 含义 |
|---|---|---|
TW_JOBS_TRANSPORT | stdio | stdio 或 streamable-http(与 --transport 相同) |
TW_JOBS_HOST、TW_JOBS_PORT | 127.0.0.1、8000 | HTTP 绑定地址 |
TW_JOBS_CACHE_TTL | 300 | 响应缓存秒数;0 表示关闭缓存 |
TW_JOBS_BOARDS、TW_JOBS_WORKDAY | 内置列表 | 要添加或移除的招聘网站(参见“信息来源”) |
TW_JOBS_FORMAT | text | json 会将每个字段以紧凑 JSON 格式返回 |
工作原理及其局限
104 位于 Cloudflare 后方,Cloudflare 会向普通 HTTP 客户端返回 403。curl_cffi 会呈现真实的 Chrome TLS 指纹,从而通过验证。区域和类别名称会根据 104 的公开代码表在本地解析。
- 只读。 不登录、不申请职位或收藏职位。把招聘网站密码交给 AI,风险不值得承担。
- 不支持按公司名称搜索。 104 会阻止脚本访问该接口。可通过职位发布中的
company_id查找公司,或将公司名称填入keyword。 - 申请人数为推算值。 104 只公布百分比,因此该人数是符合百分比的最小值,是下限而非精确数字。
salary_overview会抽取相关性最高的职位,而非整个网站的职位;许多职位也不会公布薪资。
开发
uv sync
uv run pytest # offline unit and protocol tests
uv run pytest -m live # against the real sites
uv run python scripts/update_codes.py # refresh 104's area and category tables
许可证
MIT。按原样提供,不附带任何担保。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。