HuaRenCa
返回论坛
日常交流

我构建了一个AI代理,可以自动帮我申请工作——为每份工作定制简历、填写表格,并在提交前等待我的批准

rjhuantan
rjhuantan

2个月前

求职每天要花好几个小时,大部分时间都在把同样的信息复制粘贴到略有不同的表格里。所以我构建了一个代理,它可以:

  • 在多个招聘网站上寻找开放职位

  • 为每份工作重写我的简历并生成新的PDF

  • 填写实际的申请表格(Ashby、Greenhouse——下拉框、组合框、以及“你为什么想在这里工作”的文本框)

  • 在提交前停下来,让我审核每一份申请——它是一个助手,而不是垃圾邮件发射器

使用Python + Playwright + 一个LLM进行表单字段映射构建。最困难的部分是处理不同ATS系统渲染表单方式的巨大差异。

关于构建过程欢迎提问——好奇这里的人是否会信任它来自主提交(我目前还不信任)。

4
16

评论 (4)

Your avatar
点击登录后即可评论
Emma Tcherkezian
Emma Tcherkezian2个月前

我也不会让它自动提交,至少在没有对副作用设置无聊的护栏之前不会。

有用的边界是:代理可以准备申请包,但提交是一个单独的特权操作。

在信任它处理更多量之前,我会添加几件事:

保留每个申请的收据:职位URL、公司、角色ID、生成的简历哈希、使用的答案、时间戳以及是否已提交

将生成的简历/答案与基本资料进行差异比较,以便在审核前发现奇怪的幻觉经历

尽可能使每个外部写入操作幂等:除非明确允许,否则不要重新提交相同的职位/公司对

硬性阻止不应编造的字段:公民身份、工作授权、薪资、残疾/退伍军人身份、地点、可用性

在提交前存储最终审核页面的截图或DOM快照,因为ATS表单很混乱,有时会隐藏必填字段/状态

积极限制和去重,以免变成意外垃圾邮件

我最怀疑的部分不是填写文本框,而是字段解释:像“授权工作”、“需要赞助”、“愿意搬迁”这样的下拉菜单,或者错误映射会产生实际后果的淘汰问题。

所以我认为你“提交前停止”的选择是正确的产品形态。下一步有趣的可能是提供一个审核UI,显示每个填写字段的来源:来自我的资料、从简历推断、从职位发布生成,或需要人工输入。

meisan
meisan2个月前

ATS表单处理确实是最难的部分,大多数构建这些系统的人都低估了它有多糟糕。仅Greenhouse就有大约4种不同的表单渲染模式,具体取决于公司的配置。你显然是通过艰难的方式才弄明白的。

在提交前引入人工审核是正确的做法,不仅在道德上,在实际操作中也是如此。自动提交的申请读起来感觉不同,语气不对,“你为什么想在这里工作”的回答总是过于完美。招聘人员已经开始察觉了。

不过,有一点我想提醒你:根据职位定制简历听起来不错,但你真的在发送前验证输出吗?因为LLM会自信地重写要点,虽然技术上准确,但可能微妙地歪曲你的经历。如果你批准了表单填写,但没有每次重新阅读简历,那就是一个漏洞。

接下来要考虑的是,当公司使用不太知名的ATS或自定义门户时会发生什么。根据行业不同,这可能占职位的30%,而你的代理会静默失败或跳过它们。随着你将此扩展到更多职位,这种覆盖缺口会变得越来越重要。

我很好奇你是如何处理PDF生成方面的。很多简历到PDF的管道看起来不错,直到招聘人员在特定版本的Acrobat中打开它,格式就乱了。

rjhuantan
rjhuantan2个月前

基本上,我使用Chromium根据输入的HTML生成定制的简历。

sanqi
sanqi2个月前

提交前的暂停环节是重要的设计选择。求职申请正是那种代理可以节省时间,但最终的人工审核可以防止其变成垃圾信息或虚假陈述的工作流程。