校招收件箱 Agent
给自己用的校招邮件助手。126 转发到 Outlook 之后,它会把邮件整理成申请进度、日历提醒和每日简报;模型只负责理解内容,不直接动数据库、日历或发信。
角色
- 独立开发
- 产品设计
技术栈
- Python
- FastAPI
- LangGraph
- LangChain
- Azure OpenAI
- Microsoft Graph
- PostgreSQL
- Azure Functions
- Alembic
问题
校招邮件经常从 126 原样转发进来,结构很乱。要是让模型直接改数据库、改日历或回信,出了错很难收。
约束
- 模型只做抽取。改库、改日历、发信都走写死的流程。
- 不申请 Mail.ReadWrite,也不改原邮件。
- 不下载附件,原文和带密钥的链接也不进模型。
- 不根据公司名、发件域名或地点偷偷猜时区;看不准的时间先给人确认。
- 现在只接 Outlook。Gmail、IMAP 或浏览器自动化都还没做。
我做了什么
- 在做进模型前的清洗:去掉 HTML 和追踪像素,测评/面试链接先加密再存。
- 公司和目录对得上才自动认;对不上或有歧义就进人工确认,不瞎猜。
- 用 LangGraph 串流程:申请状态、招聘事件、确认队列,该写日历的面试和测评截止再写入 Outlook,并拼每天的简报。
- 自己有一套控制台:确认事项、接邮箱、开关。业务数据以 PostgreSQL 为准。
怎么做的
- 用 Microsoft Graph 同步 Outlook,还原 126 或嵌套转发里的原发件人,先做招聘邮件预过滤。
- 链接换成不透明编号,含密钥的地址加密保存;模型只能看到脱敏正文和这些编号。
- 抽取结果先校验。能确定的就落库,时区、公司、改期或日历对不上就停下来等人看。
- LangGraph 只负责编排,PostgreSQL 才是准的。写入按幂等做,重试不会多出一条。
怎么验
- 测试覆盖清洗、126/嵌套转发、公司匹配、抽取约定、确认恢复、日历、简报和登录边界。
- 本地用 ruff、mypy、pytest;有 Docker 再跑 PostgreSQL 集成测试。
- 没有对外公布的准确率、延迟或他人使用数据。
现在到哪一步
- 私有仓库里,文档中的 Phase 0–9A 已经落地,包括控制台、确认页和每日简报。
- 这是个人在用的校招助手,还在改。不是多租户产品,也没有第三方在用。
依据和链接
README 写的是个人求职邮箱 Agent:校招邮件转发到 Outlook,模型只做抽取。
私有仓库 README架构上,清洗和校验跟编排分开;对不准的事先给人看,业务数据以 PostgreSQL 为准。
私有仓库 README 和设计文档