个人项目 · 独立设计与开发
CareerAct
你的个人职业 Agent:长期理解你的职业背景与目标,直达企业官网的一手岗位与申请入口,从机会判断、材料准备到投递跟进真正执行。
持续迭代 更新:2026-09-30
- Personal Agent
- Computer Use
- Durable Execution
- Long-Term Memory
技术栈:Python · FastAPI · Agno AgentOS · Temporal · LiteLLM · Next.js · PostgreSQL · Playwright · browser-use · Docker
问题背景
职业发展不是一次投递,而是一条持续多年的链路:认识自己、确定目标、积累能力、发现机会、准备材料、申请沟通、面试决策,再把新的经历带进下一次选择。聚合平台与猎头提供的岗位常经过转述、筛选或延迟,求职者仍要回到企业官网核对职位、通道和申请要求;现有工具又通常只解决简历生成、岗位推荐或投递记录中的一个环节,职业背景、材料版本与行动结果彼此割裂。
CareerAct 是你的个人职业 Agent:长期理解你的职业事实、目标、约束与历史决策,直接从企业官方招聘源发现一手机会,进入真实申请入口完成岗位判断、材料准备、网申投递与流程跟进。它不止回答“应该怎么做”,还会在授权边界内把事情真正做完,并将结果沉淀为持续复用的职业资产。
核心体验
- 长期理解你:职业事实、目标、约束、能力证据和历史决策持续积累,跨对话、跨求职周期复用,不必从一份空白简历重新开始。
- 从规划到行动:方向选择、岗位判断、材料表达、面试与 Offer 决策共享同一份背景;一次讨论可以直接转成材料修改、调研、训练或投递任务。
- 直达一手机会:优先从企业官方招聘源获取职位、通道和申请要求,进入真实岗位申请入口;同时接入 BOSS 直聘、猎聘等授权渠道补充机会与沟通,不依赖中介平台定义用户能看见什么。
- 在成果上协作:Agent 的材料修改以带理由和事实来源的 Diff 呈现;用户可以审阅、编辑、接受或回滚,实际投出的版本永久关联后续面试与流程。
- 主动推进流程:关联申请、HR 沟通、招聘通知、面试准备和状态变化;关闭页面后任务继续执行,开启托管后按授权巡检机会与消息。
- 关键决定仍属于你:事实不足、技术追问、时间承诺、验证码及不可逆操作及时升级;Agent 给出证据与建议,不替用户决定职业方向或接受 Offer。
技术架构
- Agent Runtime:Agno AgentOS 托管于 FastAPI 领域后端,负责推理、工具调用、会话与人工介入;职业档案、岗位、材料版本、申请和授权由领域后端独立管理,不把聊天记录当作业务真相。
- 交互:Next.js + assistant-ui 经 AG-UI 流式呈现对话、工具结果与审批;Tiptap 承载材料的原位编辑与 Diff 审阅;Better Auth → 同源 BFF → 短期 JWT / JWKS 贯穿身份与数据隔离。
- 模型网关:LiteLLM 统一多供应商与 BYOK,虚拟 Key、预算与限流,推理凭据与管理凭据分离。
- 持久执行:Temporal + PostgreSQL 编排后台续跑、定时巡检、重试与长时间等待;Agent、浏览器和通知渠道都只是工作流中可恢复、可验收的执行步骤。
- Computer Use:Steel 提供隔离浏览器、持久登录态与实时接管;Playwright 负责确定性填表与保存后核验;browser-use 处理未知页面;三者经 Session Lease 互斥写入。
- 材料处理:Docling 解析 PDF / DOCX,
@react-pdf/renderer导出简历与报告;来源原件、已确认事实、表达版本与申请锁定版本分层存储。
核心难点
- 长期上下文不是 Prompt:职业事实、目标和历史申请需要可确认、可追溯、可删除的领域数据,不能只塞进对话历史或模型记忆。
- 外部动作必须验真:Agent Run 成功不等于申请成功。保存后重新读取页面与平台状态,区分成功、失败、部分完成和结果不确定;未知结果先人工对账,禁止盲目重试。
- 事实与表达分离:同一事实可以服务不同岗位方向,但不能包装成不存在的经历;修改必须绑定来源与基准版本,历史申请锁定的材料不能被后续改稿覆盖。
- 自动执行仍有边界:浏览器自动化、智能执行器与人工接管通过 Session Lease 互斥;托管授权限定平台、动作、材料、频率与有效期,验证码、风控和越界事项立即暂停并升级。
- 长任务可恢复:巡检、材料处理、投递与消息值班可能跨越进程重启和长时间用户等待,需要持久状态、可取消执行与可验证的恢复,而不是让一次 Agent 会话持续运行数天。