内容
# Job Search MCP Server
一个MCP(模型上下文协议)服务器,能够在多个招聘网站上搜索AI/ML实习和全职职位,并提供特定的过滤条件。
## 特性
- **多站点职位搜索**:搜索LinkedIn、Indeed、Glassdoor、ZipRecruiter和Monster
- **AI/ML聚焦**:专门针对人工智能和机器学习职位
- **智能过滤**:
- 过滤入门级职位(少于1年经验)
- 要求具备Python技能
- 支持实习和全职职位
- **实时结果**:获取所有网站的最新职位发布
- **结构化数据**:返回格式良好的职位信息,包含所有相关细节
## 安装
1. 克隆或下载此代码库
2. 安装依赖:
```bash
npm install
```
3. 构建项目:
```bash
npm run build
```
## 使用
### 运行服务器
```bash
npm start
```
或者用于开发:
```bash
npm run dev
```
### 可用工具
#### 1. `search_ai_ml_jobs`
在所有支持的招聘网站上搜索AI/ML职位。
**参数:**
- `location`(字符串,可选):职位地点(默认:"Remote")
- `maxResults`(数字,可选):返回的最大结果数(默认:50)
- `includeInternships`(布尔值,可选):是否包含实习(默认:true)
- `includeFullTime`(布尔值,可选):是否包含全职职位(默认:true)
- `keywords`(数组,可选):附加搜索关键词
**示例:**
```json
{
"location": "San Francisco, CA",
"maxResults": 25,
"includeInternships": true,
"includeFullTime": true,
"keywords": ["deep learning", "NLP", "computer vision"]
}
```
#### 2. `search_specific_job_site`
在特定招聘网站上搜索职位。
**参数:**
- `site`(字符串,必需):招聘网站("linkedin"、"indeed"、"glassdoor"、"ziprecruiter"、"monster")
- `location`(字符串,可选):职位地点(默认:"Remote")
- `maxResults`(数字,可选):返回的最大结果数(默认:25)
**示例:**
```json
{
"site": "linkedin",
"location": "Remote",
"maxResults": 20
}
```
## 职位过滤标准
服务器自动应用以下过滤条件:
### 对于全职职位:
- **经验水平**:入门级(少于1年经验)
- **所需技能**:必须包括Python技能
- **职位类型**:仅限AI/ML相关职位
### 对于实习:
- **职位类型**:仅限AI/ML相关职位
- **技能**:优先考虑具备Python技能
### 检测到的AI/ML关键词:
- 机器学习
- 人工智能
- 数据科学
- 深度学习
- NLP(自然语言处理)
- 计算机视觉
- 神经网络
- TensorFlow、PyTorch、Scikit-learn
## 响应格式
服务器返回结构化的职位数据,包括:
```json
{
"results": [
{
"site": "LinkedIn",
"jobs": [
{
"id": "unique_job_id",
"title": "Machine Learning Engineer",
"company": "Tech Company",
"location": "San Francisco, CA",
"type": "full-time",
"experienceLevel": "entry",
"description": "Job description...",
"requirements": ["Python", "Machine Learning"],
"skills": ["python", "tensorflow", "pytorch"],
"postedDate": "2024-01-15T10:30:00Z",
"applicationUrl": "https://...",
"source": "LinkedIn",
"isRemote": false,
"hasPythonRequirement": true,
"isAIMLRelated": true
}
],
"totalFound": 1,
"searchTime": 1500
}
],
"totalJobs": 1,
"searchTimestamp": "2024-01-15T10:30:00Z",
"filters": {
"location": "San Francisco, CA",
"maxResults": 50,
"includeInternships": true,
"includeFullTime": true,
"keywords": [],
"experienceLevel": "entry",
"requiredSkills": ["python"],
"jobTypes": ["ai", "ml", "machine learning", "artificial intelligence", "data science"]
}
}
```
## 配置
将 `env.example` 复制到 `.env` 并根据需要修改:
```bash
cp env.example .env
```
可用的配置选项:
- `RATE_LIMIT_PER_MINUTE`:请求的速率限制(默认:30)
- `REQUEST_TIMEOUT`:请求超时时间(以毫秒为单位,默认:30000)
- `USER_AGENT`:用于网页抓取的用户代理字符串
## 支持的招聘网站
1. **LinkedIn** - 职业社交和招聘平台
2. **Indeed** - 综合招聘搜索引擎
3. **Glassdoor** - 带有公司评价的招聘搜索
4. **ZipRecruiter** - 职位匹配平台
5. **Monster** - 传统招聘网站
## 技术细节
- **语言**:TypeScript
- **运行时**:Node.js
- **网页抓取**:使用Cheerio进行HTML解析,使用Axios进行HTTP请求
- **架构**:模块化抓取系统,包含基础类和特定网站的实现
## 错误处理
服务器包含全面的错误处理:
- 网络超时和连接错误
- HTML解析错误
- 速率限制保护
- 当个别网站失败时的优雅降级
## 法律和伦理考虑
此工具仅供教育和个人使用。请遵守:
- 网站服务条款
- 速率限制以避免过载服务器
- Robots.txt文件和抓取政策
- 在可用时考虑使用官方API
## 贡献
1. Fork该代码库
2. 创建功能分支
3. 为新功能添加测试
4. 提交拉取请求