用华为云码道 CodeArts 代码智能体,三天从零做出一个全栈 AI 求职平台(附源码)
一键开通华为云码道 CodeArts 代码智能体项目仓库https://atomgit.com/gcw_93rlw6ed/careerpilot 公开MIT 协议演示账号打开登录页自动进入演示账号 candidatedemo.com 自动登录一、项目背景为什么做 CareerPilot每年校招季求职者最常见的三个痛点简历投了没回音、不知道自己简历的问题在哪、面试前没有低成本的演练机会。而招聘方反过来也有痛点一份热门岗位动辄几百份投递人工初筛效率极低。于是我决定用华为云码道 CodeArts 代码智能体开发一个「职引 CareerPilot」——一个 AI 驱动的求职协作平台打通这条链路简历上传 → AI 解析与诊断 → 岗位智能匹配 → AI 模拟面试 → 投递跟踪 → 招聘方初筛整个项目从需求拆解、架构设计、代码生成到测试补齐全程由 CodeArts 代码智能体辅助完成本文完整记录这个过程。▲ 图 1使用 CodeArts 代码智能体进行开发左上角可见 AtomGit 账号 gcw_93rlw6ed二、功能与效果演示求职者端注册登录演示模式自动登录零配置体验简历上传PDF/DOCX/TXT→ 自动解析 PII 脱敏AI 简历诊断给出评分与改进建议岗位广场浏览岗位并一键投递投递时 AI 自动计算匹配度AI 模拟面试针对目标岗位生成面试题逐题作答并获得点评招聘方端企业信息维护、岗位发布/管理/下线查看投递列表AI 初筛排序候选人信息默认脱敏展示▲ 图 2求职者工作台——简历数、投递数一目了然支持明暗主题切换▲ 图 3简历中心——上传解析与 AI 诊断评分▲ 图 4AI 模拟面试——按岗位生成面试题并逐题点评三、技术架构整体采用pnpm monorepo 前后端分离careerpilot/ ├─ apps/web/ # React 18 TypeScript Vite Ant Design TanStack Query Zustand ├─ apps/api/ # NestJS Prisma PostgreSQL Redis ├─ packages/shared/ # 前后端共享类型与 DTO ├─ e2e/ # Playwright 端到端测试 └─ docker-compose.yml # 一键起全栈web/api/db/redis▲ 图 5系统分层架构——前端 / NestJS 模块化后端 / AI Provider 抽象层 / 数据层架构上有五个关键决策完整 ADR 见仓库 docs/architecture.mdAI 能力抽象为 Provider 接口放弃直连单一厂商 SDKAI_PROVIDER一键切换 pangu/openai/mockmock 确定性回退保证评审零配置跑通PII 在 Service 层 AES-256-GCM 加密即使拿到库快照也读不出明文出库后按角色决定脱敏展示权限判定下沉 ServiceController 只做协议转换资源级所有权校验在 Service 内完成并由单测锁定Redis 仅作缓存、允许整体降级连接失败静默降级系统正确性不依赖缓存monorepo 共享类型包前后端 DTO 单一来源字段漂移在编译期暴露。后端采用 NestJS 模块化分层架构Controller → Service → Prisma共 9 个业务模块auth / user / resume / job / match / interview / ai / upload / audit。一个值得一提的设计是AI Provider 抽象层// apps/api/src/modules/ai/llm.provider.tsexportinterfaceLlmProvider{diagnose(resume:string):PromiseDiagnoseResult;matchScore(resume:string,job:string):PromiseMatchResult;interview(session:InterviewContext):PromiseInterviewTurn;}通过环境变量AI_PROVIDERpangu|openai|mock即可切换底层模型pangu对接华为云盘古大模型贴合华为云生态openaiOpenAI 兼容协议换 base_url 可接任意厂商mock无 API Key 时自动回退的确定性实现保证任何人 clone 下来都能零配置跑通全流程。这个抽象是 CodeArts 智能体在架构讨论阶段帮我做的关键决策之一——它让AI 能力从硬编码调用变成了可替换的基础设施。四、开发过程实录CodeArts 智能体是怎么帮我干活的整个开发我没有从零手写脚手架而是用需求描述 → 智能体生成 → 人工校核 → 迭代修正的循环推进大致分四个阶段阶段 1需求拆解与架构设计约 0.5 天我先把一句话需求做一个 AI 求职平台支持简历解析、岗位匹配、模拟面试丢给 CodeArts 智能体让它产出模块划分和数据模型草案。它给出的 Prisma schema 第一版就把用户角色求职者/招聘方、简历、岗位、投递、面试会话五张核心表的关系理清楚了我主要做了两件事砍掉过度设计的字段比如它给简历表加了 6 个我第一期用不到的扩展字段、补上我坚持要的审计日志表。阶段 2骨架与核心链路约 1 天让智能体按模块逐个生成先 auth注册/登录/JWT 双 Token再 resume上传解析再 job 和 match。每生成一个模块我就跑一次它的单元测试。这里有个很实用的技巧让智能体在写业务代码的同时把该模块的测试一起写了而不是最后补——最后补测试的返工成本远高于随写随测。阶段 3前端页面与联调约 1 天前端 9 个页面全部用智能体生成初版登录页、工作台、简历中心、岗位广场、投递记录、模拟面试、404 等。我提的 prompt 模式是页面用途 数据源接口 交互要求 已有组件约束Ant Design生成质量相当稳定。联调阶段主要靠 Swagger 文档/docs端点对齐前后端字段发现一个有趣的提效点让智能体先给所有 DTO 加上 nestjs/swagger 装饰器前端照着实例 JSON 对接字段对不上的低级错误基本消失了。阶段 4质量加固约 0.5 天最后一轮让智能体做自我体检跑覆盖率、找薄弱模块、针对性补测试。它先给出覆盖率报告定位到 7 个控制器的函数覆盖率偏低然后自动补上了对应的控制器单元测试。最终后端达到26 个测试套件、138 个测试语句覆盖 92.6%、函数覆盖 87.58%前端补齐 5 个测试文件 13 个用例E2E 用 Playwright 覆盖登录、路由守卫、注册、404、表单校验共 13 项全部通过。五、安全合规设计求职平台天然处理大量个人敏感信息PII所以安全不是加分项而是及格线。本项目在这方面做了完整的一套维度实现认证授权Argon2 密码哈希 JWT 双 Token 轮换 RBAC 角色控制 资源级所有权校验PII 保护手机/邮箱 AES 加密存储、日志脱敏、列表掩码展示、敏感访问审计留痕注入防护Prisma 参数化查询防 SQL 注入、Prompt 注入隔离、XSS sanitize、helmet CSP限流审计nestjs/throttler 覆盖登录/注册/上传/AI 等敏感接口AuditLog 记录敏感操作文件上传类型/大小/MIME 白名单、文件名随机化、非公开存储六、工程质量一览测试后端 Jest 26 套件 138 测试语句 92.6% / 分支 77.82% / 函数 87.58%前端 Vitest 5 文件 13 用例E2E Playwright 13 项全过依赖安全pnpm audit实测出生产链 21 项漏洞7 高危通过 pnpm overrides 将 multer/lodash/qs/body-parser/uuid/file-type 六个传递依赖强制拉到修复版最终收敛到 1 项 moderate剩余项需 nestjs/core v11 大版本升级已在仓库如实标注前端 react-router-dom 同步升级 v6→v7.18 并保持 13 项测试全过CI/CDpnpm verify一键验证链lint → test → build本地提交前强制自检husky commitlint 在每次提交时真实拦截不规范 commit仓库内置 GitHub Actions 工作流托管到 GitHub 后即自动生效性能前端路由懒加载9 页面独立 chunk Vite manualChunks 分包react/antd/query 独立 vendor首屏体积可控API 文档Swagger OpenAPI 集成/docs交互式调试七、CodeArts 代码智能体使用体验做得好的中文需求理解准确——业务术语“投递”“初筛”“脱敏”不用额外解释生成的代码注释也是规范中文工程习惯好——生成的代码默认带 DTO 校验、统一异常处理、Swagger 装饰器不是能跑就行的玩具代码与 AtomGit 联动顺滑——仓库托管、提交记录全程在一条链路上对外展示作品很体面。希望改进的生成 monorepo 构建配置时nest start --watch的入口路径在嵌套 dist 结构下会指错dist/mainvsdist/apps/api/src/main需要人工修一次测试在 jsdom 环境缺matchMediapolyfill 时会挂希望脚手架能默认带上。八、总结三天时间一个包含 9 个后端模块、9 个前端页面、151 个自动化测试后端 138 前端 13、完整 CI 流水线的全栈 AI 应用从零跑通——这在没有 AI 编程助手的时代是不可想象的。CodeArts 代码智能体的价值不只是写得快更在于它把工程最佳实践分层架构、测试、文档、CI变成了默认动作。项目已完整开源欢迎体验与指正源码https://atomgit.com/gcw_93rlw6ed/careerpilot MIT 协议Docker Compose 一键启动体验clone 后docker compose up --build -d打开 http://localhost:5173 自动进入演示账号

相关新闻

Vue项目实现Office文档在线预览:DOCX、XLSX、PPT一次搞定

Vue项目实现Office文档在线预览:DOCX、XLSX、PPT一次搞定

做前端这几年,被文档预览折磨的次数真不算少。之前接一个合同管理需求,用户提了个特别朴素的要求:附件里的Word合同不要下载到本地再打开,在网页里直接能看就行。我一开始也心想,这有什么难的?不就是嵌一个…

2026/10/15 5:37:22 阅读更多 →
C00系统PLC梯形图维修指南:钻攻中心信号排查与修改实战

C00系统PLC梯形图维修指南:钻攻中心信号排查与修改实战

简介:面向日本兄弟钻攻中心C00系统的操作与维护人员,这是一份系统讲解PLC(可编程逻辑控制器)应用的官方技术手册,内容由浅入深,特别适合现场工程师和培训学员快速掌握设备控制逻辑。手册从PLC基础概念与系统…

2026/10/15 5:37:22 阅读更多 →
PyTorch核心机制与实战:动态图、自动微分、显存优化及多卡训练

PyTorch核心机制与实战:动态图、自动微分、显存优化及多卡训练

1. 从一次模型训练卡死说起:为什么值得重新认识PyTorch很多人第一次接触深度学习框架,都是从一行import torch开始的。但真正让PyTorch在众多框架中站稳脚跟的,不是它简洁的API,而是它背后那套"动态图自动微分"的组合拳…

2026/10/15 5:37:22 阅读更多 →

最新新闻

对抗样本攻击方法全解析:从FGSM到物理世界攻击

对抗样本攻击方法全解析:从FGSM到物理世界攻击

1. 对抗样本攻击的底层逻辑与整体分类框架搞机器学习安全这块的人,迟早会碰到对抗样本这个绕不开的坎。我第一次接触这个概念是在做一个图像分类的小项目时,模型在测试集上准确率跑到98%以上,结果把一张熊猫照片加上一层肉眼几乎看不出来的噪…

2026/10/15 6:13:42 阅读更多 →
屏幕蓝光与色温调节:Iris护眼软件配置指南

屏幕蓝光与色温调节:Iris护眼软件配置指南

长时间盯着屏幕,眼睛干涩、酸胀、晚上睡不着,这种状态持续了几年之后,我开始认真研究手里的显示设备到底哪里出了问题。折腾过显示器自带的护眼模式,试过系统里的夜间模式,也换过防蓝光眼镜——最后在日常主力设备上长…

2026/10/15 6:13:42 阅读更多 →
曲线轨道轮轨关系与钢轨磨耗养护全解析

曲线轨道轮轨关系与钢轨磨耗养护全解析

1. 曲线轨道:铁路线上最含蓄的“舞池”入行头几年,我一直觉得铁路最迷人的地方不是直线,而是曲线。直线太直白——两条钢轨平铺到底,列车轰隆而过,唯独曲线,列车在这里减速、倾斜、轮缘死死贴住轨侧&#x…

2026/10/15 6:13:42 阅读更多 →
YOLOv8移动端部署实战:NCNN、TNN、MNN三引擎横评与选型指南

YOLOv8移动端部署实战:NCNN、TNN、MNN三引擎横评与选型指南

忙了一下午,把训练好的YOLOv8s导出成ONNX,再转成三种不同的移动端格式,在真机上跑了三轮。反复替换、反复校准,最后得到的结论和很多人想的并不一样——跑分最高的引擎,不一定最少排坑;排坑最少的&#xff…

2026/10/15 6:13:42 阅读更多 →
对抗样本攻击方法全解析:从FGSM到PGD的实战指南

对抗样本攻击方法全解析:从FGSM到PGD的实战指南

1. 对抗样本攻击方法总结:从原理到实操的完整拆解搞对抗样本这几年,我最大的感受就是:攻击方法和防御方法就像在打一场永不停歇的军备竞赛。你今天找到一个能骗过模型的扰动,明天人家加个防御层就把你挡住了。但不管防御怎么进化&…

2026/10/15 6:13:42 阅读更多 →
桌面端AI工具实战:本地会话管理与API密钥安全存储指南

桌面端AI工具实战:本地会话管理与API密钥安全存储指南

1. 桌面端AI工具的核心价值与设计思路1.1 为什么桌面端是更务实的选择聊到AI工具的使用形态,很多人第一反应是打开浏览器、登录网页、输入问题、等待回答。这套流程在偶尔用用的时候没什么问题,但一旦你把它当成日常生产力工具,每天要调用几十…

2026/10/15 6:12:42 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →