求职聊天机器人

一个基于Streamlit的交互式求职助手,通过协调Model Context Protocol (MCP)服务器帮助求职者发现职位空缺、定制申请材料并跟踪职业目标。

  • by MavJames
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 MavJames/Job-Search-Chatbot

使用说明

求职聊天机器人

交互式Streamlit助手,协调模型上下文协议(MCP)服务器,帮助求职者发现职位空缺、定制应用程序辅助材料和跟踪职业目标。

主要特点

  • 使用Streamlit构建的会话UI,用于发现角色、公司和薪酬趋势
  • 用于简历/求职信生成的MCP服务器(docx-creator)以及工作聚合(jobspy-server)
  • 使用LangMem进行短期对话回忆和长期语境的记忆存储
  • 通过单个配置开关支持Azure OpenAI或OpenAI完成
  • 自动格式化可下载 .docx 准备提交的文件

建筑

  • 客户(Clients/mcp_streamlit.py):Streamlit前端,承载聊天界面,初始化REACT代理,并管理会话状态。
  • 服务器(Servers/):
    • docx_server.py:通过以下方式生成简历、求职信和格式化文档 python-docx.
    • jobspy_server.py:使用从Indeed和LinkedIn上删除招聘信息 jobspy 并总结了结果。
    • server_capabilities.json & servers_config.json:MCP客户端使用的描述和连接元数据。
  • 代理运行时: langgraph 带有MCP工具、LangMem内存存储和从Azure或OpenAI API派生的嵌入的REACT代理。

先决条件

  • Python 3.10+
  • Node.js 18+(通过以下方式调用的文件系统MCP服务器所需 npx)
  • 一个OpenAI API密钥 或 Azure OpenAI部署凭据

环境变量

创建一个 .env 在存储库根目录中创建文件,并填充与您的设置匹配的密钥。当Azure和OpenAI值都存在时,Azure是首选。

# OpenAI (fallback)
OPENAI_API_KEY=sk-...

# Azure OpenAI (preferred)
AZURE_OPENAI_API_KEY=...
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
AZURE_OPENAI_API_VERSION=2024-02-01
AZURE_OPENAI_DEPLOYMENT=gpt-4o
AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT=text-embedding-3-small

可选:设置 FILESYSTEM_ROOT 将文件系统MCP服务器指向特定目录(默认为存储库根目录)。

地方发展

  1. 创建并激活虚拟环境。
    python3 -m venv .venv
    source .venv/bin/activate
    
  2. 安装依赖项。
    pip install -r requirements.txt
    
  3. 确保Node.js可用(用于通过调用的文件系统MCP服务器 npx).
  4. 启动Streamlit客户端。MCP服务器由客户端按需启动。
    streamlit run Clients/mcp_streamlit.py
    

应用程序将在以下时间打开 http://localhost:8501上传简历(PDF或DOCX)以启动存储系统并开始对话。

Docker使用

  1. 塑造形象。
    docker build -t job-search-chatbot .
    
  2. 运行容器,安装 .env 秘密档案。
    docker run --env-file .env -p 8501:8501 job-search-chatbot
    

容器安装Node.js并启动Streamlit服务器。代理初始化时,MCP子流程会自动启动。

项目结构

Clients/
  mcp_streamlit.py      # Streamlit UI and agent runtime
Servers/
  docx_server.py        # FastMCP DOCX generation server
  jobspy_server.py      # FastMCP job scraping server
  server_capabilities.json
  servers_config.json
requirements.txt
README.md

故障排除

  • 缺少工具错误:确认中定义的MCP服务器 Servers/servers_config.json 可以在您的环境中执行(Python入口点+Node.js文件系统服务器)。
  • 身份验证失败:确保 .env 加载值(更新后重新启动Streamlit)。
  • 文档生成问题:验证 python-docx 已安装,您有权写入提供给MCP工具的目标路径。