功能特性 • 快速开始 • 系统架构 • 使用指南 • 技术栈
JobAgent-MultiAgent 是一个基于 LangGraph 和多智能体协同架构的智能求职助手系统。通过 Supervisor 模式协调多个专业 Agent,为求职者提供从简历分析、岗位搜索、求职信生成到公司调研的一站式求职辅助服务。
📚 本项目参考自 JobPilot-Multi-agent 项目
- 招聘平台碎片化:信息分散在多个平台,检索效率低
- 岗位文本非结构化:JD 描述不统一,难以快速匹配
- 求职材料同质化:简历和求职信缺乏针对性,竞争力不足
- 决策成本高:需要大量时间进行岗位筛选、公司调研和材料准备
- 🔍 智能职位搜索:多维度过滤,快速匹配合适岗位
- 📄 简历智能解析:自动提取技能、经历、成就要点
- ✉️ 求职信生成:基于岗位 JD 和简历内容,生成定制化求职信
- 🌐 公司/行业调研:快速聚合企业背景信息,辅助决策
- 💬 多轮对话策略:支持上下文理解,提供个性化求职建议
| 功能模块 | 说明 | 核心价值 |
|---|---|---|
| 智能职位搜索 | 支持行业、技能、地域、工作类型等多维度过滤 | 降低初筛时间,提高匹配精度 |
| 简历智能解析 | 自动提取技能、经历、成就要点,结构化展示 | 为后续功能提供结构化数据支持 |
| 求职信生成 | 基于岗位 JD 和简历内容,生成定制化求职信 | 提升求职材料的针对性和专业度 |
| 公司/行业调研 | 网页搜索+内容抓取,快速聚合企业背景信息 | 节省调研时间,辅助决策 |
| 多轮对话策略 | 支持追问和上下文理解,提供求职策略建议 | 减少重复输入,提供个性化指导 |
| 可扩展工具层 | 模块化设计,支持自定义工具和数据源接入 | 灵活扩展,适应不同场景需求 |
采用 Supervisor + Multi-Agent 模式,通过中央调度器协调多个专业智能体协同工作。
┌─────────────────────────────────────────────────────────┐
│ Streamlit UI 前端 │
│ (文件上传 + 对话界面 + 结果展示/下载) │
└────────────────────┬────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ Supervisor 调度器 │
│ (意图识别 + 任务分配 + 流程编排) │
└─────┬───────┬───────┬───────┬───────┬──────────────────┘
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐
│Resume│ │ Job │ │Cover │ │ Web │ │Chat │
│Analyz│ │Search│ │Letter│ │Resear│ │ Bot │
│ er │ │ er │ │Gener │ │ cher │ │ │
└──┬───┘ └──┬───┘ └──┬───┘ └──┬───┘ └──┬───┘
│ │ │ │ │
└────────┴────────┴────────┴────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 工具层 (Tools) │
│ • 简历解析 (PyPDF/PyMuPDF) │
│ • 职位搜索 (Serper API) │
│ • 网页抓取 (FireCrawl API) │
│ • 文档生成 (python-docx) │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 大模型层 (LLMs) │
│ • 通义千问 (Qwen) │
│ • OpenAI 兼容接口 (DeepSeek/GPT等) │
└─────────────────────────────────────────────────────────┘
| Agent | 职责 | 工具 |
|---|---|---|
| Supervisor | 意图识别、任务分配、流程编排 | - |
| ResumeAnalyzer | 解析和分析简历内容 | resume_extractor, google_search |
| JobSearcher | 根据条件搜索匹配岗位 | job_search, google_search |
| CoverLetterGenerator | 生成个性化求职信 | generate_letter, save_cover_letter |
| WebResearcher | 在线信息搜集和整理 | google_search, scrape_website |
| ChatBot | 处理一般性对话和咨询 | - |
- LangChain:LLM 应用开发框架
- LangGraph:多智能体工作流编排
- Streamlit:Web UI 框架
- 通义千问 (Qwen):阿里云 DashScope API
- OpenAI 兼容接口:OpenAI GPT、DeepSeek 等
- Serper API:Google 搜索服务
- FireCrawl API:网页内容抓取
- PyPDF / PyMuPDF:PDF 文件解析
- python-docx:Word 文档生成
- Pydantic:数据验证和模型定义
- Python 3.8+
- pip 或 conda
- 克隆项目
git clone https://github.com/yourusername/JobAgent-MultiAgent.git
cd JobAgent-MultiAgent- 安装依赖
pip install -r requirements.txt- 配置环境变量
创建 .env 文件或配置 .streamlit/secrets.toml:
# 大模型配置(必需)
OPENAI_API_KEY=sk-xxxxx
OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
# 外部服务(可选)
SERPER_API_KEY=xxxxx
FIRECRAWL_API_KEY=xxxxx
# LangSmith 追踪(可选)
# 方式一:启用 LangSmith 监控(需填写 API Key)
# 访问 https://smith.langchain.com/ 获取 Key
LANGCHAIN_API_KEY=langsmith_api_key_here
LANGCHAIN_TRACING_V2=true
LANGCHAIN_PROJECT=JOB_SEARCH_AGENT
# 方式二:禁用 LangSmith 追踪
# LANGCHAIN_TRACING_V2=false- 启动应用
streamlit run app.py在左侧边栏找到 "🤖 大模型配置":
使用通义千问(推荐)
模型名称: qwen-plus
API Key: sk-0e3a18e93ca345b2a886fc0592d55f80
Base URL: https://dashscope.aliyuncs.com/compatible-mode/v1
Temperature: 0.3
使用 DeepSeek
模型名称: deepseek-chat
API Key: 你的 DeepSeek API Key
Base URL: https://api.deepseek.com/v1
Temperature: 0.3
使用 OpenAI
模型名称: gpt-4
API Key: 你的 OpenAI API Key
Base URL: https://api.openai.com/v1
Temperature: 0.3
Serper API Key: 你的 Serper Key(用于网络搜索)
FireCrawl API Key: 你的 FireCrawl Key(用于网页抓取)
在 "📄 简历管理" 区域上传 PDF 格式的简历。
1. 上传简历
2. 点击 "总结我的简历"
3. 查看分析结果(技能、经验、优势等)
输入:搜索北京的机器学习工程师岗位
查看:岗位列表(职位名称、公司、地点、申请链接)
输入:为我生成一份申请字节跳动 AI 工程师的求职信
查看:生成的求职信
下载:DOCX 文件
输入:分析我的简历并推荐合适岗位
系统会自动:
1. 先分析简历
2. 再根据分析结果推荐岗位
项目支持灵活切换不同的大模型提供商,无需修改业务逻辑代码。
settings = {
"model": "qwen-plus",
"model_provider": "tongyi",
"DASHSCOPE_API_KEY": "sk-xxxxx"
}settings = {
"model": "qwen-plus",
"model_provider": "openai",
"OPENAI_API_KEY": "sk-xxxxx",
"OPENAI_BASE_URL": "https://dashscope.aliyuncs.com/compatible-mode/v1"
}settings = {
"model": "gpt-4",
"model_provider": "openai",
"OPENAI_API_KEY": "sk-xxxxx",
"OPENAI_BASE_URL": "https://api.openai.com/v1"
}settings = {
"model": "deepseek-chat",
"model_provider": "openai",
"OPENAI_API_KEY": "sk-xxxxx",
"OPENAI_BASE_URL": "https://api.deepseek.com/v1"
}JobAgent-MultiAgent/
├── app.py # Streamlit 应用入口
├── agents.py # Agent 定义和工作流编排
├── llms.py # 大模型初始化和管理
├── chains.py # LangChain 链定义
├── tools.py # 工具函数集合
├── prompts.py # 提示词模板
├── members.py # Agent 成员配置
├── schemas.py # 数据模型定义
├── utils.py # 工具类 (Serper/FireCrawl)
├── data_loader.py # 数据加载和处理
├── custom_callback_handler.py # 自定义回调处理
├── requirements.txt # 依赖包列表
├── .env # 环境变量配置
├── temp/ # 临时文件存储
└── README.md # 项目说明文档
- 采用 Supervisor 模式,实现任务的智能分配和编排
- 支持单一任务和复合任务的自动识别和执行
- Agent 之间可以共享上下文,实现协作
- 统一的 LLM 抽象层,支持多种大模型提供商
- 通过配置文件或 UI 界面即可切换模型
- 支持 OpenAI 兼容接口,扩展性强
- 工具层、Agent 层、UI 层解耦
- 易于扩展新的 Agent 和工具
- 清晰的代码结构,便于维护
- Streamlit 提供直观的 Web 界面
- 支持文件上传、对话交互、结果下载
- 预设常用问题,降低使用门槛
- 从简历分析到岗位搜索,再到求职信生成
- 提供公司调研和策略咨询
- 一站式解决求职痛点
| 功能 | 需要简历 | 需要 Serper | 需要 FireCrawl | 说明 |
|---|---|---|---|---|
| 简历分析 | ✅ | ❌ | ❌ | 分析简历内容 |
| 岗位搜索 | ❌ | ✅ | ❌ | 搜索职位信息 |
| 求职信生成 | ✅ | ❌ | ❌ | 生成个性化求职信 |
| 公司调研 | ❌ | ✅ | ✅ | 搜索并抓取公司信息 |
| 简历+岗位推荐 | ✅ | ✅ | ❌ | 基于简历推荐岗位 |
| 一般对话 | ❌ | ❌ | ❌ | 求职策略咨询 |
A: 在左侧边栏的 "🤖 大模型配置" 中填写完整的配置信息。
A: 在左侧边栏的 "📄 简历管理" 中上传 PDF 简历。
A: 需要配置 Serper API Key。访问 https://serper.dev/ 注册获取。
A: 需要配置 FireCrawl API Key。访问 https://firecrawl.dev/ 注册获取。
A: 在 "🤖 大模型配置" 中修改模型名称、API Key 和 Base URL 即可,无需重启应用。
感谢以下开源项目:
祝你求职顺利!🚀
Made with ❤️ by JobAgent-MultiAgent Team

