内容
# 工作机会搜索MCP
[](LICENSE)
[](https://www.npmjs.com/package/job-search-mcp)
[](https://registry.modelcontextprotocol.io/v0.1/servers/io.github.PJW2004%2Fjob-search/versions/0.0.6)
这是一个基于招聘平台(例如:[잡코리아](https://www.jobkorea.co.kr)、[사람인](https://www.saramin.co.kr))的MCP服务器,用于通过公司名称搜索招聘信息。
> [!NOTE]
> 为什么没有[원티드(Wanted)](https://www.wanted.co.kr)?
> 원티드(Wanted) 在CDN层面阻止了自动化访问,其`robots.txt`也返回403。
## 功能
输入公司名称后,该平台将从各个招聘平台收集招聘信息,并返回以下信息:
| 项目 | 잡코리아 | 사람인 |
|------|----------|--------|
| 招聘标题 | ✅ | ✅ |
| 公司名称 | ✅ | ✅ |
| 工作经验 | ✅ | ✅ |
| 学历 | ✅ | ✅ |
| 地点 | △ (代码) | ✅ |
| 截止日期 | ✅ | ✅ |
| 招聘链接 | ✅ | ✅ |
## MCP工具
### `search_jobs`
通过公司名称在招聘平台上搜索招聘信息。
#### 参数
| 参数 | 类型 | 必需 | 默认值 | 描述 |
|----------|------|------|--------|------|
| `company_name` | string | ✅ | - | 搜索的公司名称 |
| `platform` | string | - | `"all"` | 搜索的平台(`jobkorea`、`saramin`、`all`) |
| `page` | number | - | `1` | 页码 |
### `search_jobs_bulk`
同时搜索多个公司的招聘信息。相比重复调用`search_jobs`,这种方法要快得多。
内部采用并发限制(10个批次),即使传递数十到数百家公司,服务器也会自动分批处理。LLM无需多次调用即可获得所有结果,只需一次调用即可获取所有结果。
结果将保存为临时目录中的文本文件,仅返回摘要和文件路径。LLM读取文件以确认详细内容,从而在大量结果中节省上下文窗口。
#### 参数
| 参数 | 类型 | 必需 | 默认值 | 描述 |
|----------|------|------|--------|------|
| `company_names` | string[] | ✅ | - | 搜索的公司名称列表 |
| `platform` | string | - | `"all"` | 搜索的平台(`jobkorea`、`saramin`、`all`) |
## 安装
```bash
# 如果没有pnpm,请运行 "npm install -g pnpm"
pnpm install
pnpm build
```
## 用法
### 使用npx运行(推荐)
#### Claude Code
```bash
claude mcp add job-search -- npx -y job-search-mcp
```
#### Claude Desktop
在`claude_desktop_config.json`中添加:
```json
{
"mcpServers": {
"job-search": {
"command": "npx",
"args": ["-y", "job-search-mcp"]
}
}
}
```
### 使用本地构建运行
#### Claude Code
```bash
claude mcp add job-search -- node /path/to/job-search-mcp/dist/index.js
```
#### Claude Desktop
```json
{
"mcpServers": {
"job-search": {
"command": "node",
"args": ["/path/to/job-search-mcp/dist/index.js"]
}
}
}
```
### 查询示例
```
搜索 당근마켓 的招聘信息
```
```
在사람인上搜索 네이버 的招聘信息
```
### 批量搜索示例
当需要一次性搜索多个公司的招聘信息时非常有用。相比重复调用`search_jobs`,这种方法要快得多。
```
搜索 네이버、카카오、라인플러스、당근마켓、토스 的招聘信息。
```
### 大量搜索性能测试(100家公司)
您可以将以下提示直接粘贴到此处以测试`search_jobs_bulk`的大量处理性能。
```
搜索以下100家公司的招聘信息:
삼성전자、SK하이닉스、LG전자、현대자동차、기아、네이버、카카오、쿠팡、배달의민족、토스、
당근마켓、라인플러스、삼성SDS、LG CNS、SK텔레콤、KT、현대모비스、포스코、한화솔루션、CJ대한통운、
셀트리온、크래프톤、넥슨코리아、엔씨소프트、넷마블、스마일게이트、카카오게임즈、펄어비스、컴투스、데브시스터즈、
야놀자、직방、리디、무신사、마켓컬리、오늘의집、토스증권、카카오뱅크、케이뱅크、비바리퍼블리카、
한글과컴퓨터、더존비즈온、안랩、이스트소프트、카카오엔터프라이즈、네이버클라우드、NHN、우아한형제들、두나무、하이브、
롯데정보통신、신한은행、하나은행、KB국민은행、우리은행、현대카드、삼성생명、교보생명、한화생명、미래에셋증권、
SK플래닛、11번가、위메프、티몬、SSG닷컴、GS리테일、BGF리테일、올리브영、아모레퍼시픽、LG생활건강、
현대건설、대우건설、GS건설、삼성물산、SK에코플랜트、한화건설、롯데건설、포스코건설、DL이앤씨、HDC현대산업개발、
CJ ENM、스튜디오드래곤、카카오엔터테인먼트、SM엔터테인먼트、JYP엔터테인먼트、YG엔터테인먼트、넷플릭스코리아、쿠팡플레이、왓챠、티빙、
LG이노텍、삼성전기、SK실트론、DB하이텍、한미반도체、리노공업、원익IPS、주성엔지니어링、코미코、솔브레인
```
## 架构
<img src="img/job_search_mcp_architecture.svg" />
- **并发控制**:`search_jobs_bulk`以10个批次并行请求
- **结果存储**:批量搜索结果存储为临时文件(`%TEMP%/job-search-mcp/`),以节省上下文
- **超时**:每个HTTP请求应用15秒`AbortSignal.timeout`
## 限制
- 由于基于Web抓取,如果잡코리아/사람인的HTML结构发生变化,解析可能会失败。
- 如果在短时间内发送太多请求,平台可能会暂时阻止访问(速率限制)。
- 每个请求都有15秒的超时时间,如果超时,该请求将失败并处理,返回剩余结果。
## 性能改进记录
测试环境:
- 模型:`Claude Opus 4.6 (1M)`
- 设备:`Raspberry pi 4 Model B 8GB RAM`
- 网络:`CAT 5E UTP`
| 版本 | 公司(个) | 招聘(个) | 时间(MCP) | 总时间 | 备注 |
|--|--|--|--|--|--|
| `v0.0.5` | 100 | 5,002 | `maximum allowed tokens` | 3m 18s | 简单的代币输出方式 |
| `v0.0.6` | 100 | 5,002 | 125.7s | 2m 49s | 并发限制(10批次)<br>文件存储方式 |
## 故障排除
### 在Raspberry Pi等低配置环境下运行MCP极其缓慢
**现象**
使用`search_jobs_bulk`进行批量搜索时,本地PC几十秒即可完成,而Raspberry Pi等低配置设备则需要数十分钟甚至无法响应。
**原因**
`npx -y job-search-mcp`每次执行都会从npm registry检查最新版本。在网络较慢的环境中,例如Raspberry Pi,registry通信可能成为瓶颈,导致实际搜索开始前需要数分钟的延迟。
```bash
# 使用ss -tnp查看,显示为与npm registry(104.16.x.x)建立连接并停滞
ESTAB 0 0 192.168.x.x:41824 104.16.3.34:443 users:(("npm exec job-se",...))
```
**解决方案**
切换到全局安装后,每次执行将直接运行,而无需检查registry。
```bash
# 全局安装
npm install -g job-search-mcp
# 修改Claude Code MCP设置
claude mcp remove job-search
claude mcp add job-search -- job-search-mcp
```
## License
MIT License. 詳情請參閱 [LICENSE](LICENSE).