简历智能匹配与求职信生成工具

CareerCraft是一个基于上下文感知的求职自动化代理,利用LangChain和模型上下文协议(MCP)智能匹配简历与职位描述并生成个性化求职信。

  • by dongjaepark01
  • Jupyter Notebook
  • 本地部署
  • 更新于
在 GitHub 查看 dphkjp2001/job-mcp

使用说明

🧠 CareerCraft代理:技术工作流程和目标

CareerCraft是一个上下文感知的求职自动化代理,它利用LangChain和模型上下文协议(MCP)智能地将简历与招聘信息相匹配,并生成个性化的求职信。


🎯 代理商目标

CareerCraft代理旨在:

  • 自动化大学生和早期专业人士的端到端求职流程。
  • 使用语义相似性将简历与职位发布进行上下文匹配。
  • 使用大型语言模型生成量身定制的求职信。
  • 集成来自公共API的实时作业数据。
  • 使用MCP在多代理编排框架内操作。

⚙️ 技术工作流程

1.🔍 作业检索

  • 来源: RapidAPI,握手,的确
  • 格式: 具有以下字段的结构化JSON title, company, location, type, description
  • 目的: 用实时列表填充代理的工作池

2.📄 简历解析

  • 工具: SpaCy+正则表达式
  • 输出: 结构化简历字段(技能、经验、教育)
  • 目的: 提取语义特征进行匹配

3.🧠 上下文匹配引擎

  • 方法: 用于嵌入式发电的句子转换器
  • 匹配: 简历和职位描述嵌入之间的余弦相似性
  • 目的: 识别高相关性的工作机会

4.✍️ 求职信生成

  • 框架: LangChain
  • 型号: 基于GPT的LLM
  • 个性化: 将简历功能和工作背景注入提示模板
  • 目的: 制作连贯、定制的求职信

5.🕸️ 代理编排

  • 协议: 模型上下文协议(MCP)
  • 角色: 协调子代理进行检索、解析、匹配和生成
  • 接口: Streamlit前端用于用户交互

📏 评估指标

  • 相关性准确性: 人工标记的工作-简历匹配分数
  • 文本质量: 通过余弦相似性和用户反馈实现一致性和对齐
  • 演出 延迟和自动化完整性

🧪 未来的增强功能

🚀 运行应用程序

先决条件

  • Python 3.10+
  • MongoDB(本地或Atlas连接)
  • Ollama已安装并运行(用于生成求职信)
  • 用于API调用和模型下载的互联网连接

设置步骤

1.安装Olama并拉动所需型号

下载并安装Ollama 奥拉玛

然后拉取所需的模型:

ollama pull llama3.2:1b

要验证Ollama是否正在运行:

ollama list

你应该看看 llama3.2:1b 在可用型号列表中。


快速入门(推荐)

选项1:使用启动器脚本

启动MCP服务器和web前端的最简单方法:

python launch.py

这将:

  1. 在端口8002上启动MCP管道服务器(http://127.0.0.1:8002/mcp)
  2. 在端口8000上启动Web前端(http://127.0.0.1:8000)
  3. 自动打开应用程序的浏览器

两台服务器在单独的终端窗口中运行。关闭这些窗口以停止服务器。


手动设置(如果启动器不工作)

步骤1:创建并激活虚拟环境

python -m venv .venv
.venv\Scripts\activate

步骤2:安装依赖项

pip install -r requirements.txt

步骤3:配置环境变量(可选)

创建一个 .env 项目根目录中的文件:

MONGO_URL=mongodb://localhost:27017
# Or for MongoDB Atlas:
# MONGO_USER=your_username
# MONGO_PASS=your_password

步骤4:启动MCP服务器

打开终端并运行:

python server\mcp_pipeline_server.py

MCP服务器将启动 http://127.0.0.1:8002/mcp

步骤5:启动Web前端

打开一个 第二终端 并运行:

python web_frontend.py

web前端将从开始 http://127.0.0.1:8000

步骤6:打开浏览器

导航至 http://127.0.0.1:8000


可用的MCP工具

FastMCP服务器公开了6个工具:

  1. fetch_job_data -从API获取作业列表
  2. populate_mongodb -使用重复数据删除将作业存储在MongoDB中
  3. parse_resume -解析简历文件(PDF/DOCX/TXT)
  4. create_cover_letter -生成个性化的求职信
  5. match_jobs_to_resume -基于嵌入的语义作业匹配
  6. run_complete_pipeline -协调整个管道

直接测试MCP服务器

您可以使用curl或FastMCP客户端测试单个MCP工具:

curl -X POST http://127.0.0.1:8002/mcp ^
  -H "Content-Type: application/json" ^
  -d "{\"jsonrpc\":\"2.0\",\"method\":\"tools/call\",\"params\":{\"name\":\"fetch_job_data\",\"arguments\":{\"count\":10}},\"id\":1}"

运行测试

在virtualenv处于活动状态并安装了依赖项的情况下:

pytest -q

备注

  • Ollama一定在跑 为了使求职信生成工作正常进行。在启动应用程序之前启动Ollama。
  • MongoDB连接对于作业获取是可选的,但对于从数据库中存储和匹配作业是必需的
  • 匹配引擎将在第一次运行时下载句子转换模型(~90MB)
  • 可以通过指定不同的LLM模型 model_name 参数(默认值: llama3.2:1b)
  • 对于生产部署,使用适当的流程管理器和安全的MongoDB连接