关于 ApplyGenie
ApplyGenie 是面向求职者的 MCP 服务,结合桌面与浏览器自动化、本地申请跟踪和模拟面试。它根据本地候选人资料填写检测到的表单,并在提交前要求确认。
主要功能
- 01桌面控制与屏幕截图
- 02资料与简历管理
- 03浏览器表单检测与填写
- 04本地申请跟踪与分析
- 05编程、行为及系统设计面试
适用场景
- 01用已保存资料填写求职表单
- 02跟踪申请状态与结果
- 03练习编程和行为面试
MCP 相关
ApplyGenie 向 MCP 客户端提供桌面、资料、浏览器、申请跟踪和面试工具。提交表单前须明确确认。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
ApplyGenie MCP 🧞♂️
满足你求职心愿的魔法 AI 助手。
一个生产级的 Model Context Protocol (MCP) 服务,支持桌面控制、自动填写求职申请表、本地申请追踪,以及个性化 AI 模拟面试准备。
🌟 什么是 ApplyGenie?
ApplyGenie 打通了职位发现、表单填写、申请追踪和面试准备各个环节。它以 MCP 服务的形式在本地运行,为 LLM Agent(Claude Desktop、Cursor、Antigravity、VS Code、Windsurf)提供 48 种专用工具:
- 🖥️ 桌面控制与视觉:快速截屏(
mss)、DPI 校准的鼠标导航、仿人类打字抖动(pynput),以及原生 Windows 窗口管理(pywinauto)。 - 📋 智能候选人档案:本地 JSON 架构,用于保存你的教育经历、工作经验、技能、工作许可和自定义招聘门户答案库。
- 🌐 AI 浏览器自动化与反检测表单填写:由 Playwright 驱动的隐身引擎,具备深度 CDP 伪装、原生
.toString()代码伪装、离散 WebGL GPU 配置文件(RTX 3080)、确定性 Canvas/音频指纹保护、符合菲茨定律的三次贝塞尔生物特征鼠标轨迹、支持 Unicode 货币回退的逼真击键动态,以及自动化挑战检测(Cloudflare Turnstile、reCAPTCHA、hCaptcha)。可解析嵌套 iframe 和 Shadow DOM 中的表单、映射候选人档案,并要求在提交前明确确认。 - 📊 申请追踪与分析:本地 SQLite 数据库记录每个已申请职位,追踪面试转化率并绘制申请进度图表。
- 🎤 模拟面试引擎:苏格拉底式编程提示阶梯(4 个级别)、行为面试 STAR 辅导(分析「我」与「我们」的责任归属比例),以及 4 阶段系统设计状态机。
🚀 快速开始与安装
选项 1:使用 uvx 直接运行(无需手动设置)
uvx applygenie-mcp
选项 2:通过 pip 安装
pip install applygenie-mcp
# With full browser automation support:
pip install "applygenie-mcp[browser]"
playwright install chromium
⚙️ MCP 客户端配置
1. Claude Desktop
添加到 %APPDATA%\Claude\claude_desktop_config.json(Windows)或 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS):
{
"mcpServers": {
"applygenie": {
"command": "uvx",
"args": ["applygenie-mcp"]
}
}
}
2. Google Antigravity
添加到项目的 .agents/mcp_config.json 或 ~/.gemini/config/mcp_config.json:
{
"mcpServers": {
"applygenie": {
"command": "python",
"args": ["-m", "applygenie.server"],
"cwd": "C:\\Personal Projects\\applygenie-mcp"
}
}
}
3. Cursor / Windsurf
导航到 设置 > 功能 > MCP > 添加新的 MCP 服务:
- 名称:
ApplyGenie - 类型:
command - 命令:
uvx applygenie-mcp
🛠️ 完整 MCP 工具参考
1. 桌面控制与视觉
| 工具 | 描述 |
|---|---|
screenshot(monitor=0) | 捕获以 base64 编码的 JPEG 屏幕截图。 |
get_screen_size() | 列出所有已连接显示器及其分辨率范围。 |
mouse_click(x, y, button, clicks) | 点击鼠标,并修正 DPI 缩放。 |
mouse_move(x, y) | 平滑地将鼠标光标移动到目标坐标。 |
mouse_scroll(direction, amount) | 向上或向下滚动鼠标滚轮。 |
mouse_drag(start_x, start_y, end_x, end_y) | 在坐标之间执行点击并拖动操作。 |
get_mouse_position() | 返回当前鼠标光标坐标。 |
type_text_input(text, interval) | 输入文本,并加入随机抖动(±30%)以模拟人类输入节奏。 |
press_keyboard_key(keys) | 执行快捷键(例如 ctrl+a、tab、enter)。 |
list_open_windows() | 返回所有可见的应用窗口。 |
focus_app_window(title) | 通过模糊标题匹配将目标窗口置于前台。 |
minimize_app_window(title) | 最小化目标窗口。 |
maximize_app_window(title) | 最大化目标窗口。 |
get_current_window() | 返回当前获得焦点的活动窗口信息。 |
search_windows(pattern) | 查找与正则表达式或子字符串匹配的窗口。 |
wait_seconds(seconds) | 安全地暂停执行(最长 30 秒)。 |
get_action_history(last_n) | 查看安全审计操作日志。 |
2. 个人资料与简历管理
| 工具 | 描述 |
|---|---|
get_user_profile() | 加载完整的候选人资料。 |
get_user_profile_summary() | 返回技能、资质和工作经历的简要摘要。 |
setup_user_profile(...) | 初始化候选人的个人信息、URL、所在地和默认设置。 |
update_profile_attribute(field, val) | 更新指定的顶级资料字段。 |
add_work_experience(...) | 添加一条工作经历或实习经历。 |
add_education_entry(...) | 添加一项学位或大学学历。 |
add_project_entry(...) | 添加一个重要的软件项目。 |
save_portal_custom_answer(pattern, ans) | 保存可复用的求职门户问题答案(例如“为什么要聘用你?”)。 |
parse_resume_file(filepath) | 从 PDF 或 DOCX 简历中提取文本。 |
3. 浏览器自动化与表单填写
| 工具 | 描述 |
|---|---|
browser_open(url, headless) | 启动隐身 Chromium 浏览器,采用深度 CDP 伪装和独立 GPU 配置文件。 |
browser_navigate(url) | 导航至目标页面,并自动等待 Challenge Radar。 |
browser_get_page_text() | 提取当前标签页中的可见文本内容。 |
browser_get_page_screenshot() | 捕获当前网页的高分辨率屏幕截图。 |
browser_get_accessibility_tree() | 提取完整的 ARIA 树快照,以检查自定义组合框、列表框和对话框。 |
browser_detect_form_fields() | 解析嵌套 iframe 和 Shadow DOM 中的输入框、文本区域、选择框及文件上传控件。 |
browser_fill_detected_form(kinetic) | 自动映射个人资料数据并填写所有检测到的输入框(可选启用动觉生物特征输入和鼠标移动)。 |
browser_upload_resume(filepath) | 将 PDF/DOCX 简历上传到检测到的文件输入框。 |
browser_submit_form(confirm=True) | 点击提交按钮(需要明确的人类确认)。 |
browser_close() | 妥善关闭浏览器。 |
4. 求职申请跟踪器
| 工具 | 描述 |
|---|---|
track_application(...) | 在本地 SQLite 数据库中记录一项新申请。 |
update_application_progress(id, status) | 更新状态(interview、screening、offer、rejected)。 |
get_tracked_applications(...) | 列出申请,支持按状态或公司筛选。 |
search_tracked_applications(query) | 在职位、公司和备注中进行全文搜索。 |
get_application_analytics() | 计算面试转化率、录用率和申请数量最多的公司。 |
5. 模拟面试引擎
| 工具 | 描述 |
|---|---|
start_mock_interview(type, company, diff) | 开始编码、行为或系统设计面试。 |
get_coding_hint() | 沿 4 级苏格拉底式提示阶梯逐步推进,但不会泄露答案。 |
analyze_behavioral_star_answer(text) | 评估 STAR 结构,并计算「我」与「我们」的主导比例。 |
advance_system_design_interview(input) | 逐步推进 4 个架构面试阶段。 |
generate_interview_scorecard(...) | 生成结构化的 1–5 分评分报告和录用建议。 |
🛡️ 安全与故障保护架构
ApplyGenie 实施严格的安全防护措施:
- 鼠标角落故障保护:将光标移至屏幕角落
(0, 0),即可立即停止所有自动化操作。 - 速率限制:限制最高操作频率(默认:每分钟 30 次操作),并设置最短延迟,以防止循环失控。
- 人在回路确认:提交表单和执行破坏性操作都需要明确确认
confirm=True。副驾驶会填写 95% 的表单,然后暂停以供人工审核。 - 本地数据存储:所有候选人资料数据、简历缓存和申请记录均保存在本地磁盘的
~/.applygenie/中。不收集遥测数据,也不同步到云端。 - 组合键防护:默认阻止危险的系统组合键(
alt+f4、ctrl+alt+del)。
🧪 运行测试
python -m pytest tests/ -v
📄 许可证
本项目采用 MIT License 授权 — 详情请参阅 LICENSE 文件。
由 Tanishq Mangal([email protected])倾心开发 ❤️。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。