职位申请自动驾驶仪🚀
人工智能驱动的求职代理。解析简历、检查ATS兼容性、定制内容、生成求职信、搜索多个平台和跟踪应用程序——所有这些都可以通过您的AI助手或CLI完成。
⚡ 快速开始
# Clone and install
git clone https://github.com/ViswaSrimaan/Job_Application_Autopilot_MCP.git
cd Job_Application_Autopilot_MCP
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -e ".[all]"
# Configure environment
copy .env.example .env
# Edit .env with your API keys🔧 用法
作为MCP服务器(克劳德代码/谷歌反重力)
// Add to your MCP server config
{
"mcpServers": {
"job-autopilot": {
"command": "python",
"args": ["server.py"],
"cwd": "path/to/Job_Application_Autopilot_MCP"
}
}
}然后问你的AI助手:
- *“在resume.pdf上解析我的简历”*
- *“根据此作业URL检查我的ATS分数”*
- *“为这份工作岗位量身定制我的简历”*
- *“生成求职信”*
- *“搜索班加罗尔的Python开发人员职位”*
作为CLI
# Parse a resume
job-autopilot parse resume.pdf
# Profile extraction
job-autopilot profile resume.pdf -o profile.json
# ATS check against a job URL
job-autopilot ats resume.pdf --job-url https://linkedin.com/jobs/view/...
# Tailor resume (shows diff, requires confirmation)
job-autopilot tailor resume.pdf --job-url https://... --export
# Generate cover letter
job-autopilot cover-letter resume.pdf --job-url https://... -o cover.txt
# Search jobs across platforms
job-autopilot search "Senior Python Developer" --location "Bangalore" --level senior
# Application tracker dashboard
job-autopilot dashboard🏗️ 建筑
src/
├── agents/ # High-level orchestration agents
│ ├── resume_parser.py # PDF/DOCX → structured JSON (Docling)
│ ├── resume_profiler.py # Skills/experience extraction (LLM)
│ ├── job_fetcher.py # URL → structured job data
│ ├── cover_letter_agent.py # Personalised cover letters (LLM)
│ ├── ats_checker.py # 3-layer ATS orchestrator
│ ├── tailor_agent.py # Resume tailoring (LLM)
│ ├── diff_viewer.py # Before/after diff viewer
│ ├── reference_agent.py # Reference resume matching
│ ├── tracker_agent.py # Application tracking
│ ├── apply_agent.py # Application with confirmation gate
│ └── platform_agent.py # Multi-platform search orchestrator
├── ats/ # ATS scoring engine
│ ├── formatter_check.py # Layer 1: formatting & structure (20 pts)
│ ├── keyword_scorer.py # Layer 2: keyword matching (60 pts)
│ ├── integrity_check.py # Layer 3: data integrity (20 pts)
│ ├── jd_extractor.py # JD → structured requirements (LLM)
│ ├── resume_extractor.py # Resume → structured skills (LLM)
│ └── report.py # Report formatter
├── platforms/ # Job platform integrations (Playwright)
│ ├── base.py # Abstract platform base
│ ├── linkedin.py # LinkedIn
│ ├── naukri.py # Naukri
│ └── others.py # Indeed, Cutshort, Foundit, Wellfound
├── services/ # Shared services
│ ├── docling_parser.py # IBM Docling wrapper
│ ├── llm.py # LLM provider abstraction
│ ├── scraper.py # Web scraper (httpx + BS4)
│ ├── session_manager.py # Playwright session manager
│ └── doc_exporter.py # DOCX export (python-docx)
├── storage/ # Persistence
│ ├── schema.sql # SQLite schema
│ └── database.py # Database CRUD
└── tools/ # MCP tool definitions
├── parse_resume.py
├── profile_resume.py
├── fetch_job.py
├── ats_check.py
├── tailor_resume.py
├── generate_cover_letter.py
├── export_resume.py
├── search_jobs.py
├── track_applications.py
└── apply_job.py🛡️ ATS评分引擎
ATS检查员进行三层分析(共100分):
| 图层 | 检查内容 | 点数 | 方法 |
|---|---|---|---|
| 层1 | 格式和结构 | 20 | 记录JSON分析 |
| 层2 | 关键词相关性 | 60 | LLM提取+Python评分 |
| 层3 | 数据完整性 | 20 | Regex+Python验证 |
🔒 确认门
关键操作需要用户明确确认:
- 简历定制 --在应用更改之前显示差异
- 求职申请 --在标记为已提交之前显示摘要
📋 可用的MCP工具
| 工具 | 说明 |
|---|---|
tool_parse_resume | 通过Docling解析PDF/DOCX简历 |
tool_profile_resume | 提取专业档案 |
tool_fetch_job | 获取并解析职位描述 |
tool_ats_check | 运行三层ATS兼容性检查 |
tool_tailor_resume | 为工作量身定制简历⚠️ |
tool_generate_cover_letter | 生成个性化的求职信 |
tool_export_resume | 导出到格式化的DOCX |
tool_search_jobs | 多平台求职 |
tool_track_applications | 应用程序跟踪仪表板 |
tool_apply_job | 提交申请⚠️ |
⚠️ = 需要用户确认
🛡️ 护栏和安全
| 护栏 | 状态 | 缺失时的影响 |
|---|---|---|
| 两步申请登机口(准备→ 确认) | ✅ 强制 | 意外提交 |
| ATS最低分数门 | ✅ 强制 | 申请时ATS分数为0/100 |
| 防止重复应用程序 | ✅ 唯一索引 | 重复提交同一作业 |
| SQL注入保护 | ✅ 列白名单 | 数据库操作 |
| LLM快速注射缓解 | ✅ 内容分隔符 | 恶意简历劫持LLM |
| 定制确认令牌 | ✅ 令牌+TTL | MCP可以跳过差异审查 |
| 文件类型验证 | ✅ 扩展名检查 | 意外的文件处理 |
| 文件大小限制 | ✅ 可配置(10 MB) | 通过大文件进行DoS |
| 文件路径遍历保护 | ✅ 路径解析 | 任意文件访问 |
| Cookie过期检测 | ✅ 时间戳检查 | 静默身份验证失败 |
会话cookie .gitignore | ✅ 从VCS中排除 | 凭证盗窃 |
| 求职信审核标志 | ✅ requires_review | 已提交未审阅的信件 |
| 状态值验证 | ✅ 白名单 | 状态转换无效 |
| SQLite连接超时 | ✅ 30秒超时 | database is locked 撞车事故 |
🔑 LLM提供商
在中配置 .env:
- Anthropic (克劳德)--
LLM_PROVIDER=anthropic - 谷歌 (双子座)--
LLM_PROVIDER=google - 奥拉玛 (本地,免费)--
LLM_PROVIDER=ollama - MCP模式 (没有API密钥)-
LLM_PROVIDER=none→ 传递给主机AI的提示
📜 许可证
麻省理工学院
