就业搜索助手

一个基于MCP协议的Python服务器,通过France Travail API将Gemini CLI转换为专业的就业搜索助手,提供高级职位搜索、简历匹配和地理管理功能。

  • by musashi777
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 musashi777/france-travail-job-search

使用说明

法国MCP服务器 - 就业搜索助手

一个Python实现的MCP(模型上下文协议)服务器,通过France Travail API将Gemini CLI转变为就业搜索专家助手。

🚀 主要功能

🔍 高级职位搜索

  • 按关键词搜索 带高级过滤器
  • 智能定位 (城市、区、邮政编码)
  • 按合同类型筛选 (固定期限劳动合同、无固定期限劳动合同、临时工等)
  • 经验水平 以及行业领域

📊 分析与匹配

  • 自动提取简历信息 (PDF, DOCX, TXT)
  • 匹配评分 在简历与工作机会之间
  • 寻找相似报价 基于ROME代码
  • 管道完成 搜索与排名

🗺️ 地理管理

  • 自动规范化 地名
  • 支持各区 (巴黎第11区,马赛第8区,等)
  • 按区域搜索 附有GPS坐标
  • 法国国家统计与经济研究所(INSEE)/邮政编码映射 智能的

🛠 技术架构

france-travail-job-search/
├── server.py              # Serveur MCP principal
├── ft_client.py           # Client API France Travail
├── auth.py               # Gestion d'authentification OAuth2
├── geo_service.py        # Service de géolocalisation
├── cv_parser.py          # Parser de CV
├── matching.py           # Algorithmes de matching
├── models.py             # Modèles de données Pydantic
├── config.py             # Configuration
├── logger.py             # Logging structuré
└── tests/                # Tests unitaires

📋 先决条件

  • Python 3.10及以上版本 和 uv (推荐)
  • Node.js 20多个版本(或:Node.js 20+版本) 用于Gemini CLI
  • 法国工作账户 提供API访问
  • Gemini 命令行界面(CLI) 安装并配置

⚡ 快速安装

1. 克隆仓库

git clone https://github.com/votre-username/france-travail-job-search.git
cd france-travail-job-search

2. 环境配置

# Créer l'environnement virtuel
uv venv
source .venv/bin/activate

# Installer les dépendances
uv pip install -e .

3. 配置标识符

创建一个文件 .env :

FT_CLIENT_ID="votre_client_id"
FT_CLIENT_SECRET="votre_client_secret"

4. 配置Gemini CLI(Gemini命令行界面)

加入到 ~/.gemini/settings.json :

{
  "mcp_servers": [
    {
      "command": "/chemin/vers/projet/.venv/bin/python",
      "args": ["/chemin/vers/projet/server.py"],
      "cwd": "/chemin/vers/projet",
      "name": "France Travail Job Search"
    }
  ]
}

🎯 使用

使用Gemini CLI

gemini

交互示例:

  • “在巴黎寻找Python开发者的全职工作机会”
  • “在马赛13区寻找销售职位”
  • “分析我的简历,找出最匹配的职位”
  • “给我ID-12345报价的详细信息”

可用工具

工具 描述
search_offres 带筛选条件的报价搜索
get_offre_details 特定报价的详细信息
find_similar_jobs 与参考相似的报价
extract_cv_profile 从简历中提取个人资料
score_cv_against_offers 匹配简历/职位
find_and_rank_offres 完整的研究流程

🔧 开发

测试结构

# Lancer tous les tests
pytest

# Tests spécifiques
pytest tests/test_server.py -v
pytest tests/test_ft_client.py -v

添加新工具

@mcp.tool()
async def votre_outil(param1: str, param2: int) -> str:
    """Description de l'outil"""
    # Implémentation
    return resultat

📊 法国工作API

这个项目使用了API 招聘启事v2 法国 合作伙伴:

  • OAuth2 认证 (客户端凭据)
  • 自动分页 结果
  • 错误处理 强壮的;结实的
  • 智能缓存 为了表现/为了成绩

🤝 贡献

欢迎投稿!投稿方式如下:

  1. 克隆该项目
  2. 创建一个功能分支(git checkout -b feature/AmazingFeature)
  3. 提交更改(git commit -m 'Add AmazingFeature')
  4. 推送至分支(git push origin feature/AmazingFeature)
  5. 提交拉取请求(Pull Request)

代码标准

  • 遵循PEP 8规范
  • 为新功能添加测试
  • 记录新的API
  • 更新更改日志(CHANGELOG)

📝 许可证

根据MIT许可分发。见 LICENSE 以获取更多信息。

🙏 感谢

  • “France Travail”可翻译为“法国就业”或“法国工作”。这个短语通常用于指代与法国就业市场、就业政策或就业相关的话题和讨论 用于访问招聘职位API
  • 谷歌 用于Gemini CLI和MCP协议
  • FastMCP 用于MCP服务器框架
  • 开源社区 对于所使用的库

用心开发,助力法国求职者