- Local-first by default — all resume data lives in IndexedDB. No account or backend is required to run the app. Cloud sync is opt-in.
- Schema-first templates — every resume is a typed Zod value. Templates render from a shared schema, and AI tools edit resumes via JSON Patch against that schema (no guessing).
- AI tools as first-class citizens — a native MCP server (
@magic-resume/mcp) lets Claude Code, Cursor and Windsurf read and safely edit your resumes through the same data layer the web app uses.
System architecture
This repo holds the frontend, the MCP server, and the shared schema. The backend runs as a separate deployment. The frontend talks to one gateway origin, which routes/api/* by path prefix to the backend services.

1. Magic-Resume (this repo)
github.com/LinMoQC/Magic-Resume — pnpm + Turborepo monorepo:
Responsibility: all user-facing UI, local editing, IndexedDB persistence, MCP tooling. The web app also carries its own Next.js route handlers under
app/api/* (e.g. chat-agent, pdf/parse) that authenticate the user and proxy AI requests to the backend.
2. The backend (separate deployment)
A NestJS pnpm-workspace monorepo, split by runtime profile and fronted by one gateway:gateway— the single public entry point. Edge auth + trusted identity injection, per-IP/user rate limiting, and streaming reverse-proxy routing of/api/*by prefix. Zero DB.platform-api— CRUD: resumes, users, sharing/collaboration, notifications, JSON Patch application, Zod validation. Owns PostgreSQL.agent-service— the AI backend: DeepAgents-driven chat / workflows / interview (LangGraph), streamed over SSE; PDF parse; translation.
Contracts
Schema consistency is enforced through
@magic-resume/resume-schema — published to npm and consumed by the backend as a dependency. Defined once, validated everywhere.
Deployment modes
- Self-hosted: only
apps/webneeds to run. Data stays in IndexedDB — resume editing and export only. No account, no backend, no AI (AI needs the backend / cloud mode). See Self-hosted. - Cloud (magic-resume.cn): frontend and backend deploy separately — Web on Vercel, the backend on a container platform. The frontend points
NEXT_PUBLIC_API_URLat the gateway. See Cloud mode.
Tech stack
Where to go next
Getting Started
Architecture overview
MCP server
Local development
This documentation tracks the
master branch. If you are working on a feature branch and something here is out of date, the CLAUDE.md at the repo root is the canonical short-form reference.