网淘吧来吧,欢迎您!

Job Search

2026-03-29 新闻来源:网淘吧 围观:14
电脑广告
手机广告

求职搜索 MCP 技能

此技能使 AI 代理能够通过JobSpy MCP 服务器在多个求职平台上搜索职位。JobSpy 将来自 LinkedIn、Indeed、Glassdoor、ZipRecruiter、Google Jobs、Bayt、Naukri 和 BDJobs 的职位列表聚合到一个统一的界面中。

何时使用此技能

当用户要求您执行以下操作时,请使用此技能:

  • 查找符合特定条件(职位、地点、公司等)的职位列表
  • 搜索远程或现场职位
  • 比较不同平台上的工作机会
  • 获取职位发布的薪资信息
  • 查找最近发布的职位(在 X 小时内)
  • 搜索具有“快速申请”选项的职位

先决条件

  • Python 3.10+
  • Node.js 16+(适用于某些服务器实现)
  • 已安装并配置 JobSpy MCP 服务器

安装与设置

选项 1:Python MCP 服务器(推荐)

# Install with pip
pip install mcp>=1.1.0 python-jobspy>=1.1.82 pandas>=2.1.0 pydantic>=2.0.0

# Or install with uv (faster)
uv add mcp python-jobspy pandas pydantic

选项二:克隆预构建服务器

# Clone the jobspy-mcp-server repository
git clone https://github.com/chinpeerapat/jobspy-mcp-server.git
cd jobspy-mcp-server

# Install dependencies
uv sync
# or
pip install -e .

Claude桌面端配置

将以下内容添加至您的Claude桌面端配置文件(~/Library/Application Support/Claude/claude_desktop_config.json在macOS系统中):

{
  "mcpServers": {
    "jobspy": {
      "command": "uv",
      "args": ["run", "jobspy-mcp-server"],
      "env": {}
    }
  }
}

替代配置方案(Node.js服务器):

{
  "mcpServers": {
    "jobspy": {
      "command": "node",
      "args": ["/path/to/jobspy-mcp-server/src/index.js"],
      "env": {
        "ENABLE_SSE": "0"
      }
    }
  }
}

MCP工具架构

1.职位爬取工具(核心工具)

跨多个招聘平台搜索职位,支持全面筛选功能。

参数说明:

参数名称类型必填默认值描述
搜索关键词字符串✅ 是-职位关键词(例如:"软件工程师"、"数据科学家")
工作地点字符串-工作地点(例如:"旧金山,加州","远程")
网站名称数组["indeed", "linkedin", "zip_recruiter", "google"]要搜索的招聘网站
所需结果数整数15结果数量(1-1000)
工作类型字符串-雇佣类型:全职,兼职,实习,合同制
是否远程布尔值仅筛选远程职位
发布时间(小时)整数-按发布时间(小时)筛选
距离整数50搜索半径(英里)(1-100)
一键申请布尔值筛选带有一键申请选项的职位
Indeed/Glassdoor搜索的国家字符串"美国"Indeed/Glassdoor搜索的国家
领英获取描述boolean错误获取完整的LinkedIn描述(较慢)
偏移量整数0分页偏移量
详细程度整数1日志记录级别(0=错误,1=警告,2=全部)

支持的站点名称值:

  • linkedin- 专业社交平台(有速率限制)
  • indeed- 最大的职位搜索引擎(最可靠)
  • glassdoor- 包含公司评论和薪资的职位
  • zip_recruiter- 适用于美国/加拿大的职位匹配
  • google- 汇总的职位列表
  • bayt- 中东地区职位门户
  • naukri- 印度领先的职位门户
  • bdjobs- 孟加拉国职位门户

支持的参数值职位类型

  • 全职
  • 兼职
  • 实习
  • 合同制

2.获取支持的国家列表

返回支持职位搜索的完整国家列表。无需参数。

3.获取支持的网站信息

返回所有支持的招聘网站详细信息。无需参数。

4.获取职位搜索技巧

返回有效职位搜索的技巧和最佳实践。无需参数。


招聘信息响应模式

当返回招聘信息时,每条招聘信息包含以下字段:

interface JobPost {
  // Core fields (all platforms)
  title: string;                    // Job title
  company: string;                  // Company name
  company_url?: string;             // Company website URL
  job_url: string;                  // Direct link to job posting
  location: {
    country?: string;
    city?: string;
    state?: string;
  };
  is_remote: boolean;               // Whether job is remote
  description?: string;             // Job description (markdown format)
  job_type?: "fulltime" | "parttime" | "internship" | "contract";
  
  // Salary information
  salary?: {
    interval?: "yearly" | "monthly" | "weekly" | "daily" | "hourly";
    min_amount?: number;
    max_amount?: number;
    currency?: string;
    salary_source?: "direct_data" | "description";  // Parsed from posting
  };
  
  date_posted?: string;             // ISO date string
  emails?: string[];                // Contact emails if available
  
  // LinkedIn specific
  job_level?: string;               // Seniority level
  
  // LinkedIn & Indeed specific
  company_industry?: string;
  
  // Indeed specific
  company_country?: string;
  company_addresses?: string[];
  company_employees_label?: string;
  company_revenue_label?: string;
  company_description?: string;
  company_logo?: string;
  
  // Naukri specific
  skills?: string[];
  experience_range?: string;
  company_rating?: number;
  company_reviews_count?: number;
  vacancy_count?: number;
  work_from_home_type?: string;
}

示例提示 → MCP调用 → 输出

示例1:基础职位搜索

用户提示:

"为我找10个旧金山的软件工程师职位"

MCP工具调用:

{
  "tool": "scrape_jobs_tool",
  "params": {
    "search_term": "software engineer",
    "location": "San Francisco, CA",
    "results_wanted": 10,
    "site_name": ["indeed", "linkedin"]
  }
}

预期输出:

{
  "jobs": [
    {
      "title": "Software Engineer",
      "company": "TechCorp Inc.",
      "location": { "city": "San Francisco", "state": "CA" },
      "job_url": "https://indeed.com/viewjob?jk=abc123",
      "salary": { "min_amount": 120000, "max_amount": 180000, "interval": "yearly" },
      "job_type": "fulltime",
      "is_remote": false
    }
    // ... more jobs
  ],
  "total_found": 10
}

示例2:远程工作搜索

用户提示:

"从Indeed和ZipRecruiter搜索远程Python开发人员职位"

MCP工具调用:

{
  "tool": "scrape_jobs_tool",
  "params": {
    "search_term": "Python developer",
    "location": "Remote",
    "is_remote": true,
    "site_name": ["indeed", "zip_recruiter"],
    "results_wanted": 20
  }
}

示例3:带筛选条件的近期职位

用户提示:

"查找波士顿过去24小时内发布的数据科学家职位"

MCP工具调用:

{
  "tool": "scrape_jobs_tool",
  "params": {
    "search_term": "data scientist",
    "location": "Boston, MA",
    "hours_old": 24,
    "site_name": ["linkedin", "glassdoor", "indeed"],
    "linkedin_fetch_description": true
  }
}

示例4:带便捷申请选项的入门级职位

用户提示:

"寻找纽约带便捷申请选项的入门级市场营销职位"

MCP工具调用:

{
  "tool": "scrape_jobs_tool",
  "params": {
    "search_term": "junior marketing",
    "location": "New York, NY",
    "job_type": "fulltime",
    "easy_apply": true,
    "site_name": ["indeed", "zip_recruiter"],
    "results_wanted": 30
  }
}

示例5:国际职位搜索

"在Indeed上查找德国的软件工作"

示例6:获取帮助信息

用户提示:

{
  "tool": "scrape_jobs_tool",
  "params": {
    "search_term": "software developer",
    "location": "Berlin",
    "country_indeed": "germany",
    "site_name": ["indeed"],
    "results_wanted": 15
  }
}

"支持哪些求职网站?"

预期输出:

错误处理示例

错误1:速率限制

{
  "tool": "get_supported_sites",
  "params": {}
}

场景:

{
  "sites": [
    { "name": "indeed", "description": "Largest job search engine, most reliable" },
    { "name": "linkedin", "description": "Professional networking platform, rate limited" },
    { "name": "glassdoor", "description": "Jobs with company reviews and salaries" },
    { "name": "zip_recruiter", "description": "Job matching for US/Canada" },
    { "name": "google", "description": "Aggregated job listings" },
    { "name": "bayt", "description": "Middle East job portal" },
    { "name": "naukri", "description": "India's leading job portal" },
    { "name": "bdjobs", "description": "Bangladesh job portal" }
  ]
}

LinkedIn返回速率限制错误。

错误响应:

如何处理:

results_wanted

{
  "error": "RateLimitError",
  "message": "LinkedIn rate limit exceeded. Try again later or use different sites.",
  "suggestion": "Switch to Indeed or ZipRecruiter which have more lenient rate limits."
}

减少到较小的数字(10-15)

  • 暂时从site_name中移除
  • linkedin在搜索之间添加延迟如果可用,使用代理配置site_nametemporarily
  • Add delays between searches
  • Use proxy configuration if available

错误2:未找到结果

场景:搜索返回空结果。

错误响应:

{
  "jobs": [],
  "total_found": 0,
  "message": "No jobs found matching your criteria"
}

处理方法:

  • 扩大搜索词范围(例如,使用“工程师”而非“高级首席软件工程师”)
  • 增加距离半径
  • 移除限制性筛选条件,例如发布时间工作类型
  • 尝试不同的网站名称选项
  • 检查地点拼写是否正确

错误3:无效的国家代码

场景:用户指定了Indeed不支持的某个国家。

错误响应:

{
  "error": "ValidationError",
  "message": "Invalid country_indeed value. Use get_supported_countries to see valid options."
}

处理方法:

  • 调用get_supported_countries获取有效的国家代码
  • 使用确切的国家名称(例如,用“usa”而非“US”,用“united kingdom”而非“UK”)

错误4:平台特定限制冲突

场景:用户尝试使用相互冲突的筛选器。

已知限制:

  • Indeed平台:这些筛选器中只能使用一个:hours_old(发布时间)job_type & is_remote(职位类型与远程工作)easy_apply(一键申请)
  • LinkedIn平台:这些筛选器中只能使用一个:hours_old(发布时间)easy_apply(一键申请)

处理方法:

  • 告知用户此限制
  • 优先使用最重要的筛选器
  • 如需多个筛选器,请运行单独的搜索

反模式(应避免的做法)

❌ 请勿:请求过多结果

// BAD - Will likely timeout or get rate limited
{
  "search_term": "engineer",
  "results_wanted": 1000,
  "site_name": ["linkedin", "indeed", "glassdoor", "zip_recruiter", "google"]
}

原因:同时从过多网站请求过多结果会触发速率限制并导致超时。

✅ 正确做法:

{
  "search_term": "software engineer",
  "results_wanted": 20,
  "site_name": ["indeed", "linkedin"]
}

❌ 请勿:大量使用LinkedIn

// BAD - LinkedIn is heavily rate limited
{
  "search_term": "developer",
  "site_name": ["linkedin"],
  "results_wanted": 100,
  "linkedin_fetch_description": true
}

原因:LinkedIn拥有最严格的速率限制。使用linkedin_fetch_description: true会使请求倍增。

✅ 正确做法:

  • 将Indeed作为主要来源
  • 将LinkedIn结果限制在10-15条
  • 仅在确实需要时启用linkedin_fetch_description功能

❌ 请勿:使用冲突的筛选条件

// BAD - Indeed limitation: only one filter group allowed
{
  "search_term": "developer",
  "site_name": ["indeed"],
  "hours_old": 24,
  "job_type": "fulltime",
  "is_remote": true
}

原因:Indeed仅支持以下条件之一:hours_oldjob_type 与 is_remote,或easy_apply.

✅ 应该这样做:

// Either filter by recency
{
  "search_term": "developer",
  "site_name": ["indeed"],
  "hours_old": 24
}

// OR filter by job type
{
  "search_term": "developer",
  "site_name": ["indeed"],
  "job_type": "fulltime",
  "is_remote": true
}

❌ 不要:进行没有上下文的模糊搜索

// BAD - Too generic, will return irrelevant results
{
  "search_term": "job"
}

原因:模糊搜索会返回低质量的结果,并浪费API调用次数。

✅ 应该这样做:

  • 始终包含具体的职位名称或技能
  • 在知道位置时包含地理位置信息
  • 使用筛选器来缩小结果范围

❌ 不要:忽略错误响应

原因:速率限制、网络问题和无效参数都需要妥善处理。

✅ 应该这样做:

  • 在处理结果前检查错误响应
  • 针对速率限制实现带退避的重试逻辑
  • 当搜索失败时向用户提供有用的提示信息

❌ 不要:使用错误的国家代码

// BAD - Wrong country code format
{
  "search_term": "developer",
  "country_indeed": "UK"  // Wrong! Use "united kingdom"
}

✅ 应该这样做:

  • 使用`get_supported_countries`来验证有效的国家代码
  • 常用代码:"usa"(美国)、"united kingdom"(英国)、"canada"(加拿大)、"germany"(德国)、"india"(印度)

速率限制与最佳实践

平台可靠性排名

  1. Indeed(求职网站)- 最可靠,适合大规模搜索
  2. ZipRecruiter(招聘平台)- 在美国/加拿大地区可靠
  3. Google Jobs(谷歌求职)- 聚合效果好,稳定性强
  4. Glassdoor(公司点评网站)- 可靠,且提供公司内部洞察
  5. LinkedIn(领英)- 限制最多,请谨慎使用

推荐方法

  1. 从小规模开始:先用10-15个结果测试筛选条件
  2. 优先使用Indeed:获取职位数据最可靠
  3. 具体化搜索:使用针对性强的搜索关键词
  4. 明智筛选:在Indeed/LinkedIn上每次仅使用一组筛选条件
  5. 分页:使用偏移量来获取更多结果,而非设置过高的所需结果数量

支持的国家

调用get_supported_countries获取完整列表。常见国家包括:

国家代码对应country_indeed
美国usa
英国united kingdom
加拿大canada
德国germany
法国france
印度india
澳大利亚australia
新加坡新加坡
日本日本
荷兰荷兰

故障排除

"浏览器/Chromium 未安装"

运行:playwright install chromium(部分爬虫使用 Playwright)

"未找到名为 'jobspy' 的模块"

运行:pip install python-jobspy>=1.1.82

"超出速率限制"

  • 减少 results_wanted 参数值
  • 从 site_name 中移除 LinkedIn
  • 重试前等待 60 秒
  • 考虑使用代理

快速参考

用户意图关键参数
查找特定城市的工作搜索词,地点
仅限远程工作is_remote: true
近期发布的职位hours_old: 24(或 48、72)
仅限全职job_type: "fulltime"
快速申请职位easy_apply: true
搜索特定平台site_name: ["indeed"]
国际搜索country_indeed: "germany"
更多结果results_wanted: 25
分页结果offset: 25(前25个之后)
免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部
上一篇:Credential Manager 下一篇:Gno

相关文章

您是本站第310394名访客 今日有355篇新文章/评论