AI智能体驱动的求职自动化系统:从简历优化到智能投递全流程解析
1. 项目概述一个AI驱动的求职自动化中枢如果你正在找工作或者考虑换工作大概率经历过这样的场景每天在LinkedIn、Indeed、Glassdoor等十几个招聘网站上反复刷新看到感兴趣的职位先要花半小时研究岗位描述再花一小时根据JD职位描述修改简历然后填写冗长的申请表格最后还得手动记下申请了哪家公司、什么职位、申请日期生怕错过后续的跟进。整个过程繁琐、重复且极其消耗精力。更头疼的是当你投了上百份简历后收到回复的寥寥无几你甚至不知道问题出在哪里——是简历不够匹配还是投递的时机不对或是岗位本身就不靠谱JobForge 正是为了解决这些痛点而生的。它不是一个简单的简历生成器也不是一个广撒网的“海投”机器人。相反它是一个构建在OpenCode平台之上的、由AI智能体Agents驱动的完整求职自动化管道。你可以把它理解为你私人的、24小时在线的求职策略师兼执行助理。它的核心目标不是帮你投递更多简历而是帮你更聪明地投递将有限的精力聚焦在那些真正匹配、成功率高、值得投入的机会上。这个项目的核心逻辑是“质量优于数量”。它通过一套统一的、包含10个维度的加权评分系统对每一个职位机会进行深度评估量化其与你的匹配度。然后基于评估结果自动生成针对该职位优化的、能通过ATS求职者追踪系统筛选的简历PDF。整个过程从你粘贴一个招聘链接开始到生成评估报告、定制简历、并自动将申请记录到追踪器中只需要几秒钟。它还能帮你扫描预设的招聘门户网站自动去重批量处理多个职位管理后续跟进甚至在收到拒信后进行分析帮你找出模式、改进策略。简单来说JobForge 将求职从一个依赖运气和体力的手动过程转变为一个数据驱动、AI辅助的系统性工程。接下来我将为你深入拆解这个系统的设计思路、核心功能以及如何上手使用分享我在配置和实际使用中踩过的坑和总结的经验。2. 核心设计思路与架构解析2.1 为什么是“管道Pipeline”而非“工具Tool”很多求职工具是单点解决方案比如简历模板网站、职位搜索聚合器。JobForge 的核心理念是构建一个端到端的自动化管道。这个设计源于一个深刻的洞察求职不是一个孤立的事件而是一个包含多个阶段发现、评估、申请、面试、谈判的连续流程。各个阶段的信息需要流动和复用。例如在“评估”阶段生成的岗位匹配度分析应该直接流入“申请”阶段用于生成定制化简历在“申请”阶段记录的公司和职位信息应该自动进入“追踪”阶段用于后续的状态管理和跟进提醒而“拒绝”阶段收集到的反馈又应该回流到“评估”模型帮助系统和你学习在未来更好地识别不匹配的机会。JobForge 通过一个中心化的数据层主要是data/目录下的各种.tsv文件和一套状态管理机制states.yml来实现这种信息流动。这使得整个系统成为一个有机整体而不是一堆零散脚本的集合。这种管道化设计带来的最大好处是一致性和可追溯性。你任何时候都可以清楚地知道某个职位为什么得了某个分数基于哪版简历进行的申请后续进行了哪些沟通。2.2 智能体Agents与模型路由成本与效能的平衡术JobForge 重度依赖 AI 模型来完成评估、写作、分析等任务。但直接使用最强大的模型如 GPT-4处理所有任务成本极高。为此项目设计了一套精巧的三层子智能体Sub-agent路由系统general-free: 处理大量简单、模式化的任务如信息提取、基础格式化。默认使用免费的模型路由例如通过 OpenRouter 访问的免费模型确保基础功能零成本运行。general-paid: 处理需要一定推理和创造力的任务如撰写评估报告的核心部分、生成个性化的简历摘要。使用性价比高的付费模型。glm-minimal: 处理极其简单或对响应格式有严格要求的任务可能使用更轻量、更便宜的模型。这个架构的精妙之处在于“成本感知”。系统会根据任务的复杂度和重要性自动分派给不同层级的智能体。例如扫描招聘门户、去重这类任务交给general-free足矣而为心仪公司生成一份关键的定制化简历则会调用general-paid。你还可以通过job-forge tokens命令查看详细的令牌消耗报告真正做到开销透明。此外系统还集成了razroo/opencode-model-fallback包。当某个模型因速率限制或服务器错误5xx失败时它会自动在预设的备用模型链中轮换并重试请求。这极大地提高了系统的鲁棒性避免了因单点故障导致整个流程中断。实操心得模型路由配置默认配置已经足够优化。但如果你有特定的模型偏好例如只想用某一家供应商的模型可以深入研究AGENTS.md文件和.opencode/agents/目录下的配置。修改时要注意general-free的稳定性不如付费模型对于求职这种关键任务建议在general-paid上配置一个你信任的、稳定的付费 API 密钥。2.3 与开发环境深度集成OpenCode、Cursor、Claude Code 和 CodexJobForge 不是一个独立的桌面应用或网页服务而是一个深度集成到现代 AI 辅助开发环境中的项目。它原生支持OpenCode、Cursor、Claude Code和WindsurfCodex。这种设计带来了两个巨大优势第一上下文共享。你在编辑器中打开的cv.md你的简历、config/profile.yml你的个人信息等文件对 JobForge 的 AI 智能体是直接可见的。这意味着智能体在评估职位时能基于你最实时、最完整的个人资料进行无需繁琐的导入导出。第二可编程性和可定制性。整个系统被设计为“可以由 OpenCode 自身来定制”。这听起来有点递归但非常强大。如果你觉得默认的“角色原型Archetype”分类不适合你比如默认偏重软件工程你可以直接对 AI 说“帮我把角色原型改成更适合数据科学领域的分类加入‘机器学习工程师’、‘数据科学家’、‘数据分析师’。” AI 就会帮你修改相应的配置文件如modes/_shared.md。这种与 AI 协作共同进化工具的能力是传统软件无法比拟的。项目的安装过程也体现了这种集成思想。通过npx create-job-forge创建的项目会在node_modules中安装job-forge包并通过postinstall钩子脚本在项目根目录创建一系列符号链接symlinks指向包内的配置文件。这样你的个人项目cv.md,profile.yml和共享的 harness套件逻辑就完美地分离开了。你只需关心个人配置无需触碰底层复杂的智能体指令和 MCP 配置。3. 从零开始详细配置与实操指南3.1 环境初始化与项目创建首先确保你的系统已安装Node.js建议 LTS 版本和npm。然后打开你的终端或你喜欢的 IDE 终端执行以下命令来创建你的个人求职项目npx --packagejob-forge create-job-forge my-job-search cd my-job-search npm install这三行命令完成了以下工作create-job-forge: 从 npm 拉取最新的job-forge脚手架在当前目录创建名为my-job-search的文件夹并初始化一个基本的项目结构。cd my-job-search: 进入项目目录。npm install: 安装job-forge依赖包。这一步至关重要它会触发包内的postinstall脚本sync.mjs该脚本会在你的项目根目录创建所有必要的符号链接将 harness 的配置指令、MCP 设置、技能定义链接到你的项目中。完成后你的my-job-search目录看起来会像“项目结构”中描述的“你的个人项目”那样。核心的配置文件已经通过符号链接就位。3.2 核心个人文件配置接下来你需要编辑几个核心的个人文件这是 JobForge 为你工作的基础。1. 简历文件 (cv.md):这是你的核心资料库。它不是一个简单的 PDF而是一个 Markdown 文件。这种格式的优势在于易于编辑且能被 AI 完美解析。你需要将你的完整简历内容粘贴到这里包括联系信息专业摘要工作经历公司、职位、时间、详细成就尽量用量化指标如“将系统性能提升 30%”教育背景技能列表项目经历任何其他你认为重要的信息注意事项简历的“反AI检测”优化JobForge 在生成 PDF 时会应用一套“反AI检测”的写作规则。但这建立在你的原始内容cv.md是“人类化”的基础上。避免使用过于模板化、堆砌关键词的句子。多使用主动语态和具体的成果描述。AI 在帮你优化时是在此基础上进行结构调整和关键词强化而不是无中生有。2. 个人资料 (config/profile.yml):这个 YAML 文件定义了你的求职目标和身份。你需要仔细填写# config/profile.yml 示例 identity: name: “你的姓名” email: “你的邮箱” phone: “你的电话” location: “期望工作地点城市国家” linkedin: “你的LinkedIn主页URL” portfolio: “你的个人网站或作品集链接” target: # 你寻求的职位头衔可以是一个列表 roles: - “Senior Software Engineer” - “Backend Tech Lead” # 你感兴趣的行业或领域 industries: - “SaaS” - “FinTech” # 可接受的薪资范围用于评估和谈判 compensation: base: “150000-200000” # 年薪货币单位根据你所在地区定 equity: “true” # 是否接受股权 # 工作偏好 preferences: remote: “hybrid” # 可选onsite, remote, hybrid relocation: “false” # 你的技能关键词用于匹配计算 skills: primary: - “Node.js” - “TypeScript” - “分布式系统” - “AWS” secondary: - “Python” - “Docker” - “Kubernetes”3. 招聘门户列表 (portals.yml):这个文件告诉 JobForge 应该去哪些公司的招聘页面扫描新职位。项目预置了 40 多家科技公司的配置。你需要根据你的目标进行删减或添加。# portals.yml 示例片段 companies: - name: “Netflix” # 公司招聘页的URL模式 url: “https://jobs.netflix.com/search” # 用于在页面上定位职位列表的CSS选择器通常需要一些前端知识来获取 selector: “div.job-postings-list a.job-title” # 扫描频率可选 scan_frequency: “daily” - name: “Your Dream Startup” url: “https://www.dreamstartup.com/careers” # 如果预置选择器不工作你可能需要手动检查页面元素并更新它 selector: “section.open-positions li a”配置好这些文件后基础的设置就完成了。你可以通过运行opencode命令来启动你的 OpenCode 环境如果你使用其他编辑器如 Cursor则运行对应的命令如cursor系统会自动加载所有 MCP 服务器如 Geometra 用于浏览器自动化和 PDF 生成Gmail 用于读取邮件。3.3 首次运行评估一个职位现在让我们进行第一次实战。找到你感兴趣的一个职位的招聘链接例如来自 LinkedIn 或公司官网。在你的 OpenCode 会话中最简单的方式就是直接粘贴这个招聘链接。JobForge 的技能路由器skill router会自动检测到这是一个职位 URL并触发完整的自动化管道。你也可以输入命令/job-forge https://jobs.example.com/position/123几秒到一分钟内取决于网络和模型响应速度你会看到系统开始工作Archetype Detection角色原型检测AI 会分析职位描述将其归类到预定义的原型之一如 LLMOps, Agentic, Product Manager, Software Engineer等。这决定了后续评估的侧重点。A-F Evaluation深度评估系统会调用你的cv.md和profile.yml从以下6个维度生成一份详细的评估报告A. 角色总结提炼核心职责和要求。B. 简历匹配度分析逐条对比你的技能和经验与职位要求的匹配与差距。C. 职级策略判断该职位与你目标职级的匹配度。D. 薪酬调研基于职位地点和级别提供市场薪酬范围参考。E. 个性化要点指出你可以重点突出的个人经历或项目。F. 面试准备基于 STARR情境、任务、行动、结果、反思方法论建议可以讲述的故事。生成物评估完成后会在reports/目录下生成一个 Markdown 格式的评估报告在项目根目录生成一个针对该职位优化的、名为CV_[职位名称]_[公司].pdf的简历 PDF并在data/tracker.tsv文件中新增一条申请记录包含公司、职位、申请状态默认为“已评估”、评分、日期等所有关键信息。整个过程完全自动化。你现在拥有了一份量化的评估报告知道这个职位值不值得投、一份定制化的简历知道怎么投、以及一条清晰的追踪记录知道投了什么。4. 核心功能模块深度使用与技巧4.1 批量处理与门户扫描提升求职效率手动一个个粘贴链接效率太低。JobForge 提供了两个强大的批量功能。批量评估 (/job-forge batch):如果你收集了一堆职位链接可以保存在一个文本文件里每行一个URL可以使用批量处理命令。系统会并行启动多个评估任务通过opencode run工作器显著提升速度。批量处理的结果会汇总并同样更新到追踪器中。门户扫描 (/job-forge scan):这是真正的“火力全开”模式。运行此命令JobForge 会按照portals.yml中的配置自动访问每家公司的招聘页面使用 CSS 选择器抓取最新的职位列表。关键在于它的“模糊去重Fuzzy Dedup”功能。招聘网站经常将同一个职位用不同的URL重新发布。系统会通过比较职位标题、地点等关键信息识别出重复项确保你的追踪器里不会出现重复记录。实操心得扫描配置调试预置的portals.yml选择器可能因为网站改版而失效。如果扫描某家公司返回空结果你需要手动检查该公司的招聘页面。使用浏览器的开发者工具F12检查职位列表的HTML结构找到包裹职位链接和标题的元素并更新对应的selector字段。这是一个一次性的调试工作完成后就能长期受益。4.2 申请追踪与智能跟进系统data/tracker.tsv文件是你的求职仪表盘。它是一个制表符分隔的表格可以用任何文本编辑器或电子表格软件打开。每一条记录都包含丰富的信息company,role: 公司和职位名称。url: 原始职位链接。status: 申请状态评估中、已申请、已面试、已拒绝、已录用等。score: 该职位的综合评分0-100。applied_date,last_contact: 关键日期。notes: AI 生成的评估摘要或你手动添加的备注。状态管理由states.yml模板定义你可以自定义状态流转的规则。智能跟进 (/job-forge followup):这是防止申请石沉大海的关键。系统会根据预设的时间规则自动提示你申请后7天以上无回复提示你考虑发送一封温和的询问邮件。面试后1天提示你发送感谢信。通过Gmail MCP系统可以配置为自动扫描你的收件箱识别来自公司的邮件面试邀请、拒信、录用通知并建议你更新追踪器状态。你需要手动执行跟进动作比如发送邮件但系统会告诉你“现在该做什么对谁做”让你永远不会错过最佳跟进窗口。4.3 拒绝分析与谈判支持将失败转化为经验拒绝分析 (/job-forge rejection):收到拒信令人沮丧但却是宝贵的学习机会。当你在追踪器中将某个申请的状态更新为“已拒绝”时系统会提示你记录拒绝的阶段简历筛、电面、终面和原因如“技能不匹配”、“经验不足”、“岗位取消”。长期积累后你可以运行拒绝分析功能。AI 会分析所有被拒的记录找出模式你是否总是在某一类原型Archetype的职位上被拒你的自我评分是否系统性高于招聘方的评价这些洞察能帮助你调整求职策略比如补充特定技能或更客观地评估自己的匹配度。薪酬谈判 (/job-forge negotiation):当你幸运地进入 offer 阶段谈判是关键。此功能会帮你结构化薪酬分析将 offer 拆解为基础薪资、奖金、股权、福利等部分。市场对标结合之前的薪酬调研判断该 offer 在市场上的水平。杠杆评估分析你当前的其他机会通过追踪器中的状态评估你的谈判筹码。生成谈判脚本基于以上分析AI 会帮你起草礼貌、专业、有说服力的谈判邮件要点或对话提纲。记住谈判的目的是达成双赢。这个工具提供的是数据支持和话术建议最终的决定和沟通还需要你亲自把握。5. 高级定制与故障排查5.1 深度定制让系统更懂你JobForge 的默认配置面向广泛的软件工程角色。但它的强大之处在于可定制性。1. 修改评估维度与权重评估的10个维度及其权重定义在共享模式文件通过符号链接访问如modes/_shared.md中。你可以让 AI 帮你调整。例如如果你更看重公司文化而非薪酬可以对 AI 说“将‘公司文化匹配度’的权重从 10% 提高到 20%相应降低‘薪酬竞争力’的权重。” AI 会指导你完成修改。2. 创建自定义角色原型Archetype如果默认的“后端工程师”、“全栈工程师”等分类不适合你可以定义自己的原型。每个原型都有一套对应的评估侧重点和面试问题库。在modes/目录下你可以复制一个现有的模式文件如software-engineer.md进行修改或者让 AI 从头帮你创建一个新的原型如>