Skip to main content
Magic Resume 是一个开源、AI 原生的简历平台,围绕三个理念:
  • 默认本地优先 —— 所有简历数据存在 IndexedDB。跑起来不需要账户或后端,云同步是可选项。
  • Schema 优先的模板 —— 每份简历都是一个带类型的 Zod 值。模板从共享 schema 渲染,AI 工具通过 JSON Patch 对着 schema 改(不靠猜)。
  • AI 工具是一等公民 —— 原生 MCP 服务器(@magic-resume/mcp)让 Claude Code、Cursor、Windsurf 通过和网页版同一套数据层读改你的简历。
本站是贡献者与集成者手册。想用托管版,去 magic-resume.cn;想跑它、改它、把 AI 工具接进去,你来对地方了。

系统架构

本仓包含前端、MCP 与共享 schema,后端是独立部署的一套服务。前端只跟一个网关源通信,网关按路径前缀把 /api/* 转发到后端各服务。 Magic Resume 系统拓扑

1. Magic-Resume(本仓)

github.com/LinMoQC/Magic-Resume —— pnpm + Turborepo 单仓: 职责: 所有面向用户的 UI、本地编辑、IndexedDB 持久化、MCP 工具。前端自己也带一批 app/api/* 的 Next.js 路由处理器(如 chat-agentpdf/parse),它们校验用户身份、把 AI 请求代理到后端。

2. 后端(独立部署)

一个 NestJS pnpm 工作区单仓,按运行画像拆分,前面挡着一个网关:
  • gateway —— 唯一公网入口。边缘鉴权 + 可信身份注入、按 IP/用户限流、把 /api/* 按前缀流式反代路由。无数据库。
  • platform-api —— CRUD:简历、用户、分享/协作、通知、JSON Patch 应用、Zod 校验。持有 PostgreSQL
  • agent-service —— AI 后端:DeepAgents 驱动的对话 / 工作流 / 面试(LangGraph),走 SSE 流式;PDF 解析;翻译。
为什么分开: 浏览器端的 React 树和服务端的数据库是两码事。把后端拆出来,MCP 服务器(以及未来的第三方客户端——移动端、CLI)就能共享一个后端,不用拖着前端走。

契约

Schema 一致性靠 @magic-resume/resume-schema —— 发到 npm、被后端作为依赖消费。定义一次,处处校验。

部署模式

  • 自托管: 只需跑 apps/web。数据留在 IndexedDB —— 只能编辑和导出简历。没有账户、没有后端、没有 AI(AI 需要后端 / 云端模式)。见 自托管
  • 云端(magic-resume.cn): 前端与后端分开部署 —— Web 在 Vercel,后端在容器平台。前端把 NEXT_PUBLIC_API_URL 指向网关。见 云端模式

技术栈

接下来读什么

快速开始

架构总览

MCP 服务器

本地开发

本文档跟随 master 分支。如果你在功能分支上、这里有出入,仓库根的 CLAUDE.md 是权威的简版参考。