职位申请助理
用于求职、简历定制和应用程序跟踪的多代理人工智能系统。使用LangGraph编排和MCP(模型上下文协议)服务器构建。

现场演示
🚀 现场试试 (部署后)
建筑
┌─────────────────────────────────────────────────────────────────┐
│ Next.js Dashboard │
│ Dashboard │ Job Search │ Kanban Board │ Resume Upload │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ FastAPI Backend │
│ /api/jobs │ /api/applications │ /api/resumes │ /api/agent│
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ LangGraph Orchestrator │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ Supervisor Agent │ │
│ └───────────────────────────────────────────────────────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │ Matcher │ │ Tailor │ │ Tracker │ │
│ │ Agent │ │ Agent │ │ Agent │ │
│ └───────────┘ └───────────┘ └───────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ MCP Server │
│ search_jobs │ parse_resume │ generate_cover_letter │ CRUD ops │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ Adzuna API │ RemoteOK │ SQLite │
└─────────────────────────────────────┘特性
- 求职:搜索Adzuna和RemoteOK API,自动保存结果
- AI匹配:LLM驱动的技能与解释相匹配
- 求职信生成:Claude生成量身定制的求职信
- 简历建议:人工智能分析工作要求与简历
- 看板跟踪:拖放应用程序管道
- MCP服务器:10多个遵循模型上下文协议的工具
技术栈
| 层 | 技术 |
|---|---|
| 代理框架 | LangGraph |
| MCP服务器 | FastMCP(Python) |
| 后端 | FastAPI |
| 前端 | Next.js 14,shadcn/ui,TanStack查询 |
| 数据库 | SQLite+SQLAlchemy |
| 法学硕士 | 克劳德(人类学) |
| 作业API | Adzuna、RemoteOK |
快速开始
先决条件
- Python 3.11+
- Node.js 18+
- Anthropic API键(可选,用于AI功能)
设置
# Clone
git clone https://github.com/EiriniOr/job-application-assistant
cd job-application-assistant
# Backend
python -m venv .venv
source .venv/bin/activate
pip install -e .
# Set environment variables
cp .env.example .env
# Edit .env with your API keys
# Frontend
cd frontend
npm install
cd ..
# Run
uvicorn backend.main:app --reload &
cd frontend && npm run dev打开http://localhost:3000
部署到云端
选项1:铁路(一键)
- 首选 railway应用程序
- “从GitHub仓库部署”→ 选择
job-application-assistant - 添加环境变量:
ANTHROPIC_API_KEY,PORT=8000 - 部署——铁路自动检测Dockerfile
选项2:Render.com
- 首选 render.com
- “新蓝图”→ 连接GitHub→ 选择回购
- 用途
render.yaml自动配置服务
选项3:后端+Vercel前端
- 将后端部署到Railway/Render
- 首选 vercel.com → 进口回购
- 根目录:
frontend - 添加
NEXT_PUBLIC_API_URL=后端URL
使用Docker
docker-compose up代理
主管
根据行动类型将请求发送给专业代理。
婚介代理
- 搜索Adzuna+RemoteOK API
- 使用Claude计算比赛分数
- 识别技能重叠和差距
裁缝代理
- 生成个性化的求职信
- 建议恢复子弹头改进
- 将经验与工作要求相匹配
跟踪代理
- 更新应用程序状态
- 生成管道摘要
- 跟踪应用程序时间线
MCP工具
| 工具 | 说明 |
|---|---|
search_jobs | 在招聘板上搜索 |
get_job_details | 获取完整的工作信息 |
parse_and_save_resume | 提取简历结构 |
create_job_application | 将作业保存到管道 |
update_application | 更改应用程序状态 |
save_cover_letter | 商店生成的信件 |
save_match_score | 记录匹配分析 |
API终点
GET /api/jobs - List saved jobs
GET /api/jobs/search - Search job boards
POST /api/applications - Create application
GET /api/applications - List applications
PATCH /api/applications/:id - Update status
POST /api/resumes/upload - Upload resume
POST /api/agent/run - Trigger agent workflow环境变量
ANTHROPIC_API_KEY= # Required for AI features
ADZUNA_APP_ID= # Optional: Adzuna job search
ADZUNA_APP_KEY= # Optional: Adzuna job search
DATABASE_URL= # Default: sqlite+aiosqlite:///./data/jobs.db许可证
麻省理工学院
