用华为云码道 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 自动进入演示账号