你花了三小时改简历,逐句对齐招聘要求,点击提交时甚至有点仪式感。两周后收到系统自动回复:"您的申请已进入人才库。"然后就没有然后了。
这不是你运气差。75%的简历在被人看到之前,就已经被ATS(申请追踪系统,一种自动筛选简历的软件)扔进了垃圾桶。不是HR冷酷,是机器先动的手。更糟的是——你永远不会知道死因:格式不对?关键词缺失?还是某段话触发了隐藏规则?
一位做了三年SaaS产品的开发者受够了这套黑箱。他做了个免费工具,让求职者第一次看清自己是怎么"死"的。
ATS不是敌人,但它是盲人摸象的裁判
这套系统的逻辑其实粗暴:把职位描述拆成关键词,扫描简历里出现了多少次。匹配度高,进下一轮;匹配度低,直接归档。问题是,同一家公司的不同HR可能用不同关键词描述同一岗位,而求职者只能靠猜。
Smart Resume的解法是把裁判规则摊开来。上传简历和职位描述,30秒内拿到诊断报告:缺了哪些关键词、哪些词出现次数不对、被动语态在哪里拖后腿、有没有漏掉可量化的成绩。每一项都标了优先级——高影响的问题先改,低影响的以后再说。
工具还内置9个经过ATS兼容性测试的模板。不是"好看"的模板,是"能过机筛"的模板。这个区别,投过100份简历的人都懂。
技术选型:为什么选Cloudflare Workers
作者在技术博客里的解释很产品经理思维:"我不想维护服务器,也不想付数据库费用。"
整套架构跑在Cloudflare Workers(边缘计算服务,代码运行在离用户最近的服务器节点)上,前端用Vue 3。没有数据库,所有处理实时完成——简历解析、关键词提取、匹配度计算,全部在边缘节点跑完,数据不落地。
关键词提取的核心逻辑并不复杂:过滤停用词、统计词频、取前30个高频词。但魔鬼在细节。比如"匹配分数"的计算,不是简单看关键词有没有出现,而是看出现次数是否达到职位描述里的预期频率。出现太少,扣分;出现太多,可能触发"关键词堆砌"的反向惩罚。
代码片段里有个细节:用正则表达式全局匹配时,作者特意把职位描述和简历都转成小写。这个case-insensitive的处理,能避免"Python"和"python"被当成两个词。小写转换是免费的,但漏掉这一步,匹配率可能直接崩掉几个百分点。
免费工具的商业模式悖论
Smart Resume目前是纯免费。作者的说法是"先解决自己的问题,顺便帮别人"。但熟悉SaaS的人都知道,纯免费工具要么死,要么转型。
可能的变现路径很清晰:高级功能订阅(比如批量分析、历史对比)、企业端卖ATS优化服务、或者把数据脱敏后做成行业洞察报告。但作者似乎还没想那么远——技术博客里连Google Analytics都没装,"因为懒得写隐私政策"。
这种"先做出来再说"的风格,很符合个人开发者的典型路径。但求职者可能希望它能活得久一点。毕竟,市面上类似的工具要么收费(Resume Worded月费49美元),要么功能残缺(只能检查格式,看不懂职位描述)。
一个被忽略的产品细节
Smart Resume的"量化成就检查"功能,会扫描简历里的数字。但作者加了个有趣的规则:不是有数字就行,而是看数字前面有没有动词。
"销售额增长20%"是弱表述。"推动销售额增长20%"才是HR想看的。这个区分很细,但投过腾讯、字节简历的人都知道——大厂JD里"推动""主导""搭建"这些词的出现频率,和过筛率高度相关。
工具目前只支持英文简历。作者在技术博客评论区回复过中文支持的疑问:"分词比空格分词复杂十倍,等我有空。"这条回复发布于三个月前,至今没有更新。
如果你现在去试,会发现上传界面有个不起眼的提示:"建议职位描述超过150词,分析更准确。"这个阈值从哪来的?作者没解释。但测试过几份JD后发现,太短的职业描述确实会让关键词提取变得随机——系统会抓出一些通用词("团队""沟通"),而漏掉真正的硬技能要求。
你会为了过机筛,把简历改成机器喜欢的样子吗?还是说,这种对抗本身就已经扭曲了求职这件事?
热门跟贴