Jobs_Applier_AI_Agent
feder-cr/Jobs_Applier_AI_Agent加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

想象一个普通的工作日:你在招聘网站上刷到二十个"Python 后端工程师"的岗位。每一个都要下载 JD、比对简历、调整措辞、上传 PDF、逐题填写表格、点击提交。二十个岗位,两三个小时,重复劳动里最枯燥的那部分。
AIHawk 想做的,就是把这段时间压成一次"看得见的"批处理。
它跑在终端里。给它一份 PDF、DOCX 或纯文本简历,它解析出你的技能与联系方式,写出一份可编辑的搜索计划,然后在本地岗位索引里检索,把最匹配的岗位排成一张表:分数、公司、职位、地点、投递方式。你按空格选中岗位,回车就能看到它为什么给这个分、你的简历缺了什么。
有意思的是,2026-11-04 发布的 1.0.0 与这个仓库此前的内容几乎无关。仓库名沿用 Jobs_Applier_AI_Agent_AIHawk,但 CHANGELOG 里写得很直白:"This is a different program from the earlier AIHawk and from the Dots project"。旧版是常见的 Playwright + 爬虫脚本堆,AGPL-3.0;新版换成了 MIT 许可、src/ 布局、Textual 终端界面和一个叫"决策模型"的评分机制。
数据也说明这是个人项目:460 次提交,全部来自作者 feder-cr 一人。但工程质量并不个人化——CI 在三套操作系统、两个 Python 版本上跑 ruff 与 pytest,甚至用 xvfb 驱动真实 Firefox 跑端到端表单测试。

第一段,筛选。 AIHawk 从简历生成搜索计划,用标题匹配从岗位库里捞出候选。岗位库不是实时爬取,而是每天通过 GitHub Actions 构建、以 Release 形式发布——2026-11-04 的清单里有 10,223,753 条岗位。首次启动会下载约 672MB 到 ~/.aihawk/data/index,之后检索全在本机 DuckDB 里跑,只有被评判的那批岗位描述才联网读取。
第二段,决策。 这是最有意思的设计。它不直接把 JD 丢给大模型问"合适吗",而是构造六个封闭问题——方向是否一致、硬性要求是否全覆盖、是否有简历里没有的技能缺口、级别是否匹配、地点是否可达、以及反向的"是否远在别处"——由一个叫 Jev 的决策模型(typesafe/jev-1.14)通过 OrcaRouter 的 /systemone 端点回答,答案转成对数几率累加。取绝对值接近 0.5 的答案为零证据,因为"不确定"本就不该加分。
第三段,评分与投递。 最好的 25 个岗位再交给 judge 模型按 1 到 5 分打分并列出差距,模型同时为每个岗位重写一版定制简历。
填表走 invisible-playwright-mcp,一个 Playwright 兼容的 MCP 服务器,浏览器可见。项目的站点覆盖以 14 个 Markdown 插件形式外置——Greenhouse、Lever、Ashby、Workable、BambooHR 等 12 个 ATS,外加 Gmail 与 Outlook 两个只读邮箱插件。写一个插件不需要写代码,只需要用自然语言讲清这个站点的表单长什么样。
安全边界被写在 SECURITY.md 里,也写进代码:模型被明确告知不得发送;apply.py 会拦截任何可能触发发送的点击与回车键;只有用户的 a 加一次回车确认之后,AIHawk 才会去点模型命名的那一个发送按钮;验证码和登录墙不绕过,只报告给用户。
但作者同样诚实地承认了缺口:模型在最后一步可以执行页面脚本(browser_evaluate),而拒绝逻辑不覆盖脚本路径。这条被列为"已知且故意接受"的风险——因为脚本是浏览器工具都做不到时的最后一根救命稻草。这是一种罕见的态度:把绕过路径写进安全文档,比藏着更好。
门槛不算高,但也不为零:Python 3.11+、pipx 或 uv 安装、注册 OrcaRouter 拿到 API Key(存 ~/.aihawk/key),首次下载 672MB 索引。整个体验是终端 TUI,没有任何 Web 界面,也没有 Dockerfile,所以严格来说它是一个"本地运行、不可容器化对外服务"的工具——quick_deploy 只能给 unsupported。
真正需要付出的成本是钱和信任:每一轮评分、每一份定制简历、每一次表单填写都在调用外部模型,简历内容和联系方式会离开本机;邮箱插件读的是浏览器已登录的真实邮箱;浏览器 profile 里存着你的登录态。
32,386 星、4,739 fork。这个体量说明一件事:批量求职不是小众需求,而是一整代应届生和转岗者的共同痛点。AIHawk 的价值不在于"AI 帮你找工作",而在于它把 AI 放在流程里而不是流程之外——决策、评分、填表各自有明确边界,用户始终握着最后那个"确认"。
从技术演进看,这个 1.0.0 版本更值得行业注意的地方是"岗位数据库即 Release"这个设计:把非结构化、时效性极强的招聘数据,变成一个每天自动构建、可离线下载、可版本追溯的静态产物,让 Agent 的检索层不再受爬虫封禁影响。这是把 Agent 从"演示脚本"推向"可运营系统"的一个具体手法。
局限同样清楚:单人维护、依赖单一模型网关、决策模型是非主流的 jev-1.14、672MB 索引对首次使用者不友好、只覆盖 12 个 ATS。但对一个开源求职工具来说,能把边界写清楚、把危险路径写进文档,已经比大多数同类项目更负责任。
数据采集时间:2026-11-05 | 代码基于 v1.0.0 (2026-11-04) 提交