Skip to main content
Magic Resume is built around four ideas that show up everywhere in the code:
  1. The resume is a typed value. A single Zod schema in @magic-resume/resume-schema describes what a resume is. The web app, the MCP server, and the AI agents all read and write that same shape.
  2. The browser is the database. In self-hosted mode there is no server-side persistence. IndexedDB (MagicResumeDB) is the source of truth. Cloud sync is an optional one-way push to the Core API.
  3. Auth is feature-flagged. NEXT_PUBLIC_APP_MODE chooses at build time whether Clerk middleware and the cloud sync layer are loaded. The same UI runs in both modes.
  4. Edits are patches. MCP tools mutate resumes via JSON Patch (fast-json-patch), validated against the schema before they touch storage. The web editor produces patches too — it’s the same code path.

Data flow at a glance

Where to look

Monorepo layout

Deployment modes

State management

HTTP clients

Resume schema

Template system