为什么非技术 HR 常常搞不清怎么招软件工程师
软件工程师的简历通常堆满技术名词:Java、React、Docker、AWS、Kubernetes。对非技术 HR 来说,每一项看起来都同样可信。但接触过某项技术的人,和能用它做出真正交付给用户的功能的人,差距很大。结果是简历漂亮的候选人进入技术面,简历朴素但能力强的人被漏掉,工程团队的时间也耗在不必要的面试上。
第二个难点是资历级别。职位头衔在各公司并不统一,一家公司的「senior」可能相当于另一家的「mid」。最稳妥的做法是先明确岗位的具体需求:使用的技术栈、团队规模、需要多大程度独立工作。然后拿这些需求去衡量简历和面试回答,而不是看谁的技术清单最长。
挑战
技术清单看不出掌握的深度
候选人可以在简历上写二十项技术,却从没在正经项目里用过。只按关键词筛选的 HR,最后放进来的是术语堆砌的简历,漏掉的是简短但有内容的简历。
作品集和代码仓库,HR 很难读懂
GitHub 链接里有几十个仓库,其中不少是跟着教程做的或直接 fork 来的。分不清哪些是本人写的,HR 就无法判断质量,只能去求助时间有限的工程师。
资历头衔在不同公司之间不一致
在小型创业公司的五年和在大公司的五年,积累的经验并不相同。如果只看职位头衔和工作年限来判断资历,薪资定级和岗位期望常常会偏离实际。
take-home 测试和现场编程都有风险
太长的居家测试会让优秀的候选人退出,而气氛紧张的现场编程(live coding)会淘汰那些日常工作其实很强的人。形式选错,筛掉的就是错的人。
从成堆的简历到候选人短名单
流程示意:简历进入,按标准筛选,只有最相关的候选人进入下一阶段。
传统做法
从邮箱和招聘网站逐份打开简历,手动标出匹配的技术。 请工程团队阅读一大叠简历,判断谁值得联系。 在还不知道谁真正相关之前,就逐个联系候选人约面试。
使用 TalentRank
为岗位制定 Custom Hiring Criteria:核心技术栈、资历级别,以及需要看到的项目证据。 把所有简历上传到 CV Screening AI,按这些标准得到候选人的排名和摘要。 通过 WhatsApp Prescreening 收集初步信息,例如可到岗时间、作品集或 GitHub 链接。 运行 AI Interview,提出基础技术问题,查看评分和摘要,再安排与团队的技术面试。
值得采用的开发者简历筛选标准
在发布职位之前,先和工程师或 tech lead 一起确定每项标准的权重。可以把下表作为起点,再根据岗位的技术栈和资历级别调整。高优先级标准决定候选人是否通过。
| 标准 | 优先级 | 简历中的好信号 | 需要追问 |
|---|---|---|---|
| 技术栈与实际工作的匹配度 | 高 | 岗位的核心技术出现在项目描述中,并且角色清晰,例如用 Node.js 为面向用户的应用开发 API,而不只是写在技能栏里。 | 技术只出现在技能列表里,没有任何一个项目提到它。面试时要问清楚这项技术是在哪里、怎样使用的。 |
| 真实项目与代码仓库的证据 | 高 | 有可以运行、可以试用的项目,或者提交记录持续、README 写明运行方法、代码结构整洁的仓库。 | 仓库只是教程成果或未做改动的 fork,只有一次很大的提交。请候选人说明哪些部分是自己写的。 |
| 解决问题的能力 | 高 | 经历描述里包含问题、备选方案和选择理由,例如处理慢查询、缩短页面加载时间,并且步骤能讲清楚。 | 经历只是任务清单,如开发功能、修复 bug,没有问题背景,也没有所做的技术决策。 |
| 资历级别是否相符 | 高 | 职责范围与级别相符:junior 完成有指导的任务,mid 负责完整的功能,senior 影响架构、带教同事,并参与确定技术优先级。 | 头衔是 senior 但职责相当于 junior,或者反过来。要评估工作范围和影响,而不只是年限和头衔。 |
| 团队协作与代码评审经验 | 中 | 提到与产品经理、设计师或 QA 合作,使用 pull request 和代码评审,并熟悉与团队一起做分支管理、测试和部署的流程。 | 所有项目都是一个人做,没有任何人评审。这对自由职业者很正常,但需要问清楚候选人如何保证代码质量。 |
| 书面表达与简历整洁度 | 中 | 简历简短清楚,每个项目有一句话说明产品目标,一句话说明个人贡献。文字清晰的人,技术沟通通常也清晰。 | 简历冗长、术语堆砌,不说明产品或工作成果。很难看出候选人在项目里实际做了什么。 |
技术栈与实际工作的匹配度
高简历中的好信号: 岗位的核心技术出现在项目描述中,并且角色清晰,例如用 Node.js 为面向用户的应用开发 API,而不只是写在技能栏里。
需要追问: 技术只出现在技能列表里,没有任何一个项目提到它。面试时要问清楚这项技术是在哪里、怎样使用的。
真实项目与代码仓库的证据
高简历中的好信号: 有可以运行、可以试用的项目,或者提交记录持续、README 写明运行方法、代码结构整洁的仓库。
需要追问: 仓库只是教程成果或未做改动的 fork,只有一次很大的提交。请候选人说明哪些部分是自己写的。
解决问题的能力
高简历中的好信号: 经历描述里包含问题、备选方案和选择理由,例如处理慢查询、缩短页面加载时间,并且步骤能讲清楚。
需要追问: 经历只是任务清单,如开发功能、修复 bug,没有问题背景,也没有所做的技术决策。
资历级别是否相符
高简历中的好信号: 职责范围与级别相符:junior 完成有指导的任务,mid 负责完整的功能,senior 影响架构、带教同事,并参与确定技术优先级。
需要追问: 头衔是 senior 但职责相当于 junior,或者反过来。要评估工作范围和影响,而不只是年限和头衔。
团队协作与代码评审经验
中简历中的好信号: 提到与产品经理、设计师或 QA 合作,使用 pull request 和代码评审,并熟悉与团队一起做分支管理、测试和部署的流程。
需要追问: 所有项目都是一个人做,没有任何人评审。这对自由职业者很正常,但需要问清楚候选人如何保证代码质量。
书面表达与简历整洁度
中简历中的好信号: 简历简短清楚,每个项目有一句话说明产品目标,一句话说明个人贡献。文字清晰的人,技术沟通通常也清晰。
需要追问: 简历冗长、术语堆砌,不说明产品或工作成果。很难看出候选人在项目里实际做了什么。
能拉开候选人差距的程序员面试问题
最好的程序员面试问题,是让候选人讲述真实的工作,再用追问深挖。初面可以用下面三组问题,更深入的技术题留给与工程师一起进行的面试环节。
技术经历与项目
1.请讲讲你最近从零做到上线的一个功能。哪些部分是你自己做的决定?
好的回答: 好的回答会提到具体的决策和责任边界。只说「我们」而看不出个人角色的回答,需要继续追问。
2.在那个项目里,你为什么选择这项技术,而不是其他方案?
好的回答: 真正理解的候选人会谈到团队规模、性能或业务需求等考量,而不只是说因为流行或者用惯了。
3.你在生产环境遇到过最难的 bug 是什么?你是怎么追查的?
好的回答: 强的回答体现系统化的思路:提出假设、检查日志、缩小原因范围,最后确认修复不会破坏其他部分。
解决问题与代码评审
4.如果用户增加后某个页面突然变慢,你会先检查什么?
好的回答: 好的回答从测量开始,而不是靠猜:先检查查询、网络或服务器负载,再决定要不要改代码。
5.你怎样评审比你资历浅的同事提交的 pull request?哪些会评论,哪些会放过?
好的回答: 资深候选人通常能区分逻辑和安全这类重要问题与代码风格偏好,并且给出有教育意义的评论。
6.你自己以前写的代码里,现在觉得哪部分不够好?你会怎么改?
好的回答: 能诚实评价自己的作品,说明成熟。觉得自己的代码全都没问题的候选人,值得多问几句。
协作与资历
7.你怎样向 HR 或业务团队这样的非技术人员解释技术上的限制?
好的回答: 好的回答会用类比并讲清对业务的影响,而不是堆技术术语。这项能力很重要,因为工程师几乎总要与其他团队合作。
8.当工期估算出现偏差时,你会怎么做,会告诉谁?
好的回答: 成熟的候选人会尽早通报并附上解决方案,而不是拖到临近截止日期。这体现责任心和诚实。
9.如果你不同意 tech lead 的架构决定,你会怎么做?
好的回答: 健康的回答包括礼貌地提出数据和替代方案,然后认真执行最终决定,不闷在心里,也不暗中对抗。
常见误区
- 01
按简历上写了多少技术来筛选技术清单最长的简历,不一定最有能力。应评估与岗位核心技术栈的匹配度,以及在项目中使用的证据,不必理会岗位用不到的附加技术。
- 02
布置要花好几天的 take-home 测试在职的候选人没有大段时间做免费测试。把任务控制在两小时左右,尽量接近真实工作,并与候选人一起讨论结果,而不是只打个分数。
- 03
所有岗位都用算法题竞赛式算法题很少反映大多数岗位的日常工作。应选择接近真实工作的任务,例如修复一个有问题的函数,或阅读一段代码并给出评论。
- 04
制定标准时没有让工程师参与HR 独自制定标准,常会用词不准确。开始时请一位工程师花二十分钟,一起确定核心技术栈、级别和不可妥协的要求。
- 05
把工作年限等同于资历十年重复做同一件事,和五年里职责不断提升,是两回事。要问候选人的工作范围每年有什么变化,而不只是做了多久。
场景
公司
一家中等规模的物流服务公司,想组建内部产品团队,开发配送追踪应用。
情境
公司开放一个后端工程师岗位,从招聘网站和 LinkedIn 收到大量申请。HR 手头没有资深工程师有时间读完所有简历。
预期结果
工程师的时间用在最相关的候选人面试上,最终决定仍由团队来做。
- 1HR 和一位工程师制定 Custom Hiring Criteria:核心技术栈、mid 级别,以及必须有已上线项目。
- 2所有简历上传到 CV Screening AI,它按这些标准给出每位候选人的排名和摘要。
- 3排名靠前的候选人通过 WhatsApp Prescreening 联系,收集可到岗时间、期望,以及代码仓库链接。
- 4通过的候选人进行 AI Interview,HR 查看评分和摘要,由工程师决定邀请谁参加技术面试。
您将获得
候选人按你设定的岗位标准得出的排名 每位候选人的简历摘要:技术栈、项目和经验范围 AI Interview 的回答、评分和摘要,供 HR 查看 来自 WhatsApp 的初步信息,如可到岗时间和作品集链接


