The mono repo that builds the homepage, utils, ui components, registry and anything else
See the code
A community-driven open-source initiative to create a JSON-based standard for resumes
JSON Resume is an open-source ecosystem of tools for creating, sharing, and publishing resumes in a standardized JSON format. This is the monorepo (Turborepo
With JSON Resume, you can:
Useful links:
/apps)| App | URL | Description |
|---|---|---|
apps/registry | registry.jsonresume.org | Next.js app that hosts resumes, renders themes, and serves AI features |
apps/homepage2 | jsonresume.org | Next.js marketing site for the project |
apps/docs | jsonresume.org/docs | Fumadocs documentation site, deployed to GitHub Pages |
/packages)| Package | npm / crate | Description |
|---|---|---|
packages/schema | @jsonresume/schema | The JSON Resume schema and validator |
packages/cli | resume-cli | The resume command line interface |
packages/core-rust | json-resume-serde (crate) | Rust serde bindings for the schema |
packages/resume-core | @jsonresume/core | Framework-agnostic design tokens, primitives, and validators |
packages/ats-validator | @jsonresume/ats-validator | ATS (Applicant Tracking System) validation for resume HTML |
packages/job-search | @jsonresume/jobs | Hacker News "Who is Hiring" job search matched to a resume |
packages/ui | @repo/ui | Shared UI components (Button, Input, Textarea, ...) |
packages/themes | — | ~52 official jsonresume-theme-* packages plus stackoverflow |
Other workspace packages include converters, theme-config, test-fixtures,
and the shared eslint-config-custom / tsconfig presets.
This project uses pnpm (see the packageManager
field in package.json for the pinned version):
curl -fsSL https://get.pnpm.io/install.sh | sh -
# Clone and install
git clone https://github.com/jsonresume/jsonresume.org.git
cd jsonresume.org
pnpm install
# Run the registry app (http://localhost:3000)
cd apps/registry && pnpm dev
Once the registry is running, open
http://localhost:3000/thomasdavis to render a
sample resume, or append ?theme=<slug> to try a theme.
# Run a task for every workspace
pnpm turbo dev
pnpm turbo build
pnpm turbo lint typecheck
# Scope a task to one app or package
pnpm turbo dev --filter=registry
pnpm turbo test --filter=registry
# All workspaces
pnpm turbo test
# Registry unit tests (Vitest)
pnpm --filter registry test
# Registry end-to-end tests (Playwright)
pnpm --filter registry test:e2e
npm packages (@jsonresume/schema, resume-cli, etc.) are released with
Changesets. Add a changeset with
pnpm changeset; the release-packages.yml workflow opens a "Version Packages"
PR and publishes to npm on merge to master. The json-resume-serde Rust crate
is versioned in packages/core-rust/Cargo.toml.
Themes live in packages/themes. React themes rendered by the registry should:
resume propfs) so they work on Vercel's runtime@repo/ui shared components and render all JSON Resume sections// packages/themes/jsonresume-theme-your-theme/index.js
export default function YourTheme({ resume }) {
return (
<div>
<h1>{resume.basics.name}</h1>
{/* Your theme JSX */}
</div>
);
}
pnpm turbo dev --filter=registry
# Visit http://localhost:3000/thomasdavis?theme=your-theme-name
See docs/AGENT_THEME_DEVELOPMENT.md for the
full theme workflow.
The registry includes AI-powered tools (job recommendations, cover letters,
resume suggestions, interview simulation). These require provider keys; see
apps/registry/.env.example for the full list.
AI code uses the Vercel AI SDK v5 (ai + @ai-sdk/openai).
JSON Resume started as a set of standalone repositories. In 2026 the project
consolidated into this monorepo: the schema (formerly jsonresume/resume-schema)
now lives in packages/schema, and the CLI (formerly jsonresume/resume-cli)
now lives in packages/cli. Those original repositories are archived and
redirect here, while the published npm package names (@jsonresume/schema,
resume-cli) are unchanged.
We welcome contributions from the community! Here's how you can help:
Please make sure to follow our code style and include appropriate tests for your changes.
Before opening a PR, please read our Contributing Guide for the full setup, checks, and conventions. All participants are expected to follow our Code of Conduct, and security issues should be reported per our Security Policy.
Join our Discord community for discussions, support, and collaboration.
This project is licensed under the MIT License.
(top 30 of 41)
JavaScript
85.9%
TypeScript
11.4%
CSS
1.0%
The mono repo that builds the homepage, utils, ui components, registry and anything else
See the code
A community-driven open-source initiative to create a JSON-based standard for resumes
JSON Resume is an open-source ecosystem of tools for creating, sharing, and publishing resumes in a standardized JSON format. This is the monorepo (Turborepo
With JSON Resume, you can:
Useful links:
/apps)| App | URL | Description |
|---|---|---|
apps/registry | registry.jsonresume.org | Next.js app that hosts resumes, renders themes, and serves AI features |
apps/homepage2 | jsonresume.org | Next.js marketing site for the project |
apps/docs | jsonresume.org/docs | Fumadocs documentation site, deployed to GitHub Pages |
/packages)| Package | npm / crate | Description |
|---|---|---|
packages/schema | @jsonresume/schema | The JSON Resume schema and validator |
packages/cli | resume-cli | The resume command line interface |
packages/core-rust | json-resume-serde (crate) | Rust serde bindings for the schema |
packages/resume-core | @jsonresume/core | Framework-agnostic design tokens, primitives, and validators |
packages/ats-validator | @jsonresume/ats-validator | ATS (Applicant Tracking System) validation for resume HTML |
packages/job-search | @jsonresume/jobs | Hacker News "Who is Hiring" job search matched to a resume |
packages/ui | @repo/ui | Shared UI components (Button, Input, Textarea, ...) |
packages/themes | — | ~52 official jsonresume-theme-* packages plus stackoverflow |
Other workspace packages include converters, theme-config, test-fixtures,
and the shared eslint-config-custom / tsconfig presets.
This project uses pnpm (see the packageManager
field in package.json for the pinned version):
curl -fsSL https://get.pnpm.io/install.sh | sh -
# Clone and install
git clone https://github.com/jsonresume/jsonresume.org.git
cd jsonresume.org
pnpm install
# Run the registry app (http://localhost:3000)
cd apps/registry && pnpm dev
Once the registry is running, open
http://localhost:3000/thomasdavis to render a
sample resume, or append ?theme=<slug> to try a theme.
# Run a task for every workspace
pnpm turbo dev
pnpm turbo build
pnpm turbo lint typecheck
# Scope a task to one app or package
pnpm turbo dev --filter=registry
pnpm turbo test --filter=registry
# All workspaces
pnpm turbo test
# Registry unit tests (Vitest)
pnpm --filter registry test
# Registry end-to-end tests (Playwright)
pnpm --filter registry test:e2e
npm packages (@jsonresume/schema, resume-cli, etc.) are released with
Changesets. Add a changeset with
pnpm changeset; the release-packages.yml workflow opens a "Version Packages"
PR and publishes to npm on merge to master. The json-resume-serde Rust crate
is versioned in packages/core-rust/Cargo.toml.
Themes live in packages/themes. React themes rendered by the registry should:
resume propfs) so they work on Vercel's runtime@repo/ui shared components and render all JSON Resume sections// packages/themes/jsonresume-theme-your-theme/index.js
export default function YourTheme({ resume }) {
return (
<div>
<h1>{resume.basics.name}</h1>
{/* Your theme JSX */}
</div>
);
}
pnpm turbo dev --filter=registry
# Visit http://localhost:3000/thomasdavis?theme=your-theme-name
See docs/AGENT_THEME_DEVELOPMENT.md for the
full theme workflow.
The registry includes AI-powered tools (job recommendations, cover letters,
resume suggestions, interview simulation). These require provider keys; see
apps/registry/.env.example for the full list.
AI code uses the Vercel AI SDK v5 (ai + @ai-sdk/openai).
JSON Resume started as a set of standalone repositories. In 2026 the project
consolidated into this monorepo: the schema (formerly jsonresume/resume-schema)
now lives in packages/schema, and the CLI (formerly jsonresume/resume-cli)
now lives in packages/cli. Those original repositories are archived and
redirect here, while the published npm package names (@jsonresume/schema,
resume-cli) are unchanged.
We welcome contributions from the community! Here's how you can help:
Please make sure to follow our code style and include appropriate tests for your changes.
Before opening a PR, please read our Contributing Guide for the full setup, checks, and conventions. All participants are expected to follow our Code of Conduct, and security issues should be reported per our Security Policy.
Join our Discord community for discussions, support, and collaboration.
This project is licensed under the MIT License.
(top 30 of 41)
JavaScript
85.9%
TypeScript
11.4%
CSS
1.0%