求职申请自动化工具

AI驱动的求职申请代理,可解析简历、检查ATS兼容性、定制内容、生成求职信、搜索多个平台并跟踪申请,支持AI助手或CLI操作。

  • by ViswaSrimaan
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 ViswaSrimaan/Job_Application_Autopilot_MCP

使用说明

职位申请自动驾驶仪🚀

人工智能驱动的求职代理。解析简历、检查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的提示

📜 许可证

麻省理工学院