HackAVP:CV Generator本地部署方案
找工作这件事,最磨人的往往不是面试本身,而是投递前的准备。新喀里多尼亚的公共部门岗位通过avis de vacance de poste(AVP,职位空缺公告)发布,数量不少,但每一份公告都意味着一整套重复劳动:改简历、写动机信、准备面试。一个岗位一轮,投十个岗位就是十轮。
![]()
首届面向公共部门就业的hackathon #HackAVP把这道题摆上了台面:用OPT-NC开放的AVP数据,做出一套能让候选人投递“那个对味岗位”的方案。来自IAE de Nouvelle-Calédonie的MIAGE硕士项目的两名学生Quoc-Kim BUI(大家叫他Kim)和Anthony GASS,交出的作品叫CV Generator。
这套方案最反常识的地方在于它的运行位置。CV Generator是一套on-prem(本地部署)方案,不依赖远端云服务,跑在一台摆在新喀里多尼亚的台式机上,团队自用的这台PC配了一块RTX 5080。换句话说,求职者的个人资料不出岛。
硬件也不是死的。方案可以部署在用户自己选择的设备上,按预算和需求升级。对一套处理简历和求职信的工具来说,这个选择直接决定了数据流向:资料留在本地,而不是上传到某个看不见的机房。
为了说明使用流程,团队虚构了一位候选人Camille Molette。她是Entreprise Ethernet(虚构公司)的质量助理,参与企业内部流程改进,喜欢一切井井有条的东西,手里有一份JSON Resume格式的简历。她想拓宽职业方向,决定通过OPT-NC的一份AVP投递公共部门岗位,于是打开了CV Generator的网页界面。
接下来的动作被拆成了清晰的几步:
- 先导入JSON Resume格式的简历;
- 填入一个AVP编号;
- 选择要生成的文档类型——简历、动机信或面试指南,并实时跟踪生成状态;
- 在历史记录里找回已生成的文档;
- 下载DOCX、adoc、md格式的结果,或以PDF预览。
手握简历、动机信和面试指南三样东西,Camille才算真正站到了最后那道关卡前——面试。
AVP编号从哪来?来自OPT-NC的APIGEE公开门户。而与候选人画像匹配的AVP编号,则来自CV-Matching——另一位MIAGE同学开发的方案,通过打分机制找出合适的岗位,并在其中说明分数构成以及候选人的优势与差距。
生成环节用的是llama.cpp服务器,对外暴露兼容OpenAI的API,模型是Hugging Face上的开源模型Qwen3。每一类文档都配了专属prompt,目的是让生成结果尽量精准、贴合目标AVP。
工程质量这块,团队列了几道保险:pytest在每个改动后重放测试场景,ruff负责格式化和代码检查;GitHub Actions的CI只重跑与改动文件相关的测试套件,像玩家只重打刚改过的那一关;整套方案容器化,用Docker Compose在本地和生产环境部署,镜像发布在GHCR上,每次release都带版本号。
安全设计上,访问由API Key(X-API-Key)控制,防止不同客户端翻看彼此的文档。文档不存在、或属于其他客户端,两种情况都统一返回404。JSON Resume既不会通过状态查询API暴露,也不会进入日志。目前这套API Key机制同时简化了MIAGE硕士项目内部互操作的工作;后续考虑接入NC connect登录。
分工上,Kim和Anthony把任务拆开推进,最终交付的是一套技术与人力配合的完整工具。项目也致谢了OPT-NC、Station N以及OPEN NC数据与AI委员会,感谢他们提供利用可互操作数据的机会。
对开发者来说,仓库结构分得很清楚:backend是FastAPI加worker,放在generator-service/;模型与密钥管理在shared/;私有管理服务在generator-admin-service/;前端React在generatorweb-service/。后端把每次请求登记为PostgreSQL里的一个job,worker再调用llama.cpp,把源文档存成AsciiDoc,并按需生成DOCX供下载。
奖项将在11月4日的Tech&Co活动上揭晓。而在那之前,这套跑在岛内一台台式机上的方案,已经把“投一个岗位准备一整套材料”的重复劳动,压缩成了一次导入加几次点击。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.