人力资源

Odoo 招聘邮箱为什么不是‘收一封邮件建一个候选人’:Job Alias、平台正则和 Applicant 创建链路全拆开讲

很多团队以为招聘邮箱只是把简历邮件导进系统。Odoo 的 hr_recruitment 源码做得更细:岗位可以有自己的 alias,平台来信可以用 regex 抽取姓名,回复地址会跟着岗位走,候选人和联系人还会延迟绑定。它真正处理的是‘邮件来源如何被整理成可持续运营的招聘对象’。

人力资源
进阶 开发者 1 分钟阅读
0 评论 0 点赞 0 收藏 7 阅读

先说结论

Odoo 招聘模块里的“岗位邮箱收简历”并不是一个简单的邮件网关。

/home/ubuntu/odoo-temp/addons/hr_recruitment/models/hr_applicant.py,你会发现官方真正做的是一条邮件到候选人对象的整理链路

  • 岗位可以有自己的 alias / reply-to
  • 不同招聘平台来信可以按规则解析
  • 联系人不一定立刻建完整 partner
  • Applicant 和后续 Employee 的连接也被刻意延后

所以它要解决的不是:

  • 收到一封邮件,生成一条记录

而是:

如何把来源复杂、格式混乱的招聘邮件,整理成后续还能持续运营的 applicant。


第一层:岗位邮箱不是共享收件箱,而是岗位级入口

get_empty_list_help() 会直接展示 hr_job.alias_email,这已经说明官方默认心智不是“公司 HR 一个总邮箱”。

它更像:

  • 每个岗位有自己的投递入口
  • 候选人邮件可以直接落到这个岗位
  • 后续回复地址也优先跟着岗位走

再看 _notify_get_reply_to(),Applicant 的 reply-to 会优先取 job_id 对应的 alias。

这意味着岗位邮箱不是 UI 装饰,而是整个招聘沟通链路的锚点。


第二层:message_new() 不是盲收,它会先判断来源是不是招聘平台

真正有意思的是 message_new()

正常来信时,Odoo 会:

  • from 里解析 partner_name
  • email_from 存下来
  • 尝试挂到 partner_id

但如果发件人命中了 hr.job.platform,逻辑就变了:

  • 不再简单信任发件人展示名
  • 会用平台配置的 regex 去抓 subjectbody
  • 从中提取真正想要的候选人名字

这一步非常实用,因为招聘平台邮件经常长这样:

  • 发件人是平台机器人
  • 标题里才有候选人名
  • 正文里夹杂模板噪音

如果没有这层平台解析,系统里很容易堆满“LinkedIn Notification”之类的假名字。


第三层:Applicant 与 Partner 是渐进式绑定,不是强制同步

很多系统会在导入候选人的第一刻就强制建联系人。

Odoo 这里明显更克制。

从字段定义和 _inverse_partner_email() / _message_post_after_hook() 可以看出:

  • 没必要时,Applicant 可以先只有 partner_name / email_from
  • 真正需要时,再去找或创建 partner_id
  • 后续发消息、推荐收件人时,还能回填 partner

这代表官方把 Applicant 当成一个先运营、后归档到主数据的对象,而不是一开始就硬塞进联系人体系。

对招聘场景来说,这很合理,因为简历线索的脏数据比例本来就高。


第四层:为什么系统要同时保留 applicant、partner、employee 三层

create_employee_from_applicant() 进一步说明,Applicant 并不是 Employee 的简化版。

官方刻意保留三层:

  • hr.applicant:招聘阶段对象
  • res.partner:联系方式和沟通承载
  • hr.employee:正式人事对象

只有到了真正录用时,才用 _get_employee_create_vals() 把:

  • 姓名
  • 联系方式
  • 地址
  • 申请关联

带进员工对象。

这背后非常重要的一点是:

招聘线索和正式员工不是同一生命周期。

如果一有简历就建员工,后面数据会非常脏。


第五层:平台邮件解析的价值,不只是建档成功率更高

很多人以为 regex 解析只是为了“候选人姓名更好看”。

其实它更大的价值在于后续运营质量:

  • 去重时不容易被平台机器人名干扰
  • 人才池复用时更容易识别真实候选人
  • 沟通邮件和附件能更稳定落到正确 applicant

也就是说,平台来信解析不是 cosmetic 优化,而是在降低整个招聘主数据链条的噪声。


第六层:邮件入口其实决定了招聘流程是否可持续

如果岗位 alias、平台 regex、联系人渐进绑定这些环节都没配好,常见结果会是:

  • 候选人名混乱
  • 一个候选人建出多条脏记录
  • 回复从错误邮箱发出
  • 后续转员工时资料不完整

所以招聘邮箱并不是“导入功能”,而是招聘流程最前面的主数据整理器。


实施时最容易踩的 4 个坑

1. 所有岗位共用一个邮箱入口

这样岗位归属和回复链路都容易混乱。

2. 忽略招聘平台来信格式差异

不做 regex 解析,姓名和来源很快会脏掉。

3. 一上来就强制创建完整联系人/员工

招聘线索的数据质量通常撑不起这么重的建模。

4. 把 alias 当收件配置,不当业务入口

其实 reply-to、岗位归属和后续沟通都围绕它转。


最后一句话

Odoo 的招聘邮件链路,本质上不是“收简历入库”,而是把混乱邮件来源整理成可持续运营的 applicant 对象。

DISCUSSION

评论区

想参与讨论?先 登录 再发表评论。
还没有评论,你可以成为第一个留言的人。