README.md

June 12, 2026 ยท View on GitHub

JSON Resume logo

JSON Resume

A community-driven open-source initiative to create a JSON-based standard for resumes

CI Status Discord License Stars

Overview

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

  • pnpm) that powers the platform: the marketing site, the hosted registry, the documentation site, the schema, the CLI, and the official themes.

With JSON Resume, you can:

  • Create a portable, machine-readable resume
  • Publish your resume online with a unique URL via the registry
  • Render your resume with dozens of community-built themes
  • Validate your resume against the JSON Resume schema
  • Leverage AI-powered tools to help with your job search

Useful links:

Monorepo layout

Apps (/apps)

AppURLDescription
apps/registryregistry.jsonresume.orgNext.js app that hosts resumes, renders themes, and serves AI features
apps/homepage2jsonresume.orgNext.js marketing site for the project
apps/docsdocs.jsonresume.orgFumadocs documentation site, deployed to GitHub Pages

Key packages (/packages)

Packagenpm / crateDescription
packages/schema@jsonresume/schemaThe JSON Resume schema and validator
packages/cliresume-cliThe resume command line interface
packages/core-rustjson-resume-serde (crate)Rust serde bindings for the schema
packages/resume-core@jsonresume/coreFramework-agnostic design tokens, primitives, and validators
packages/ats-validator@resume/ats-validatorATS (Applicant Tracking System) validation for resume HTML
packages/job-search@jsonresume/jobsHacker News "Who is Hiring" job search matched to a resume
packages/ui@repo/uiShared UI components (Button, Input, Textarea, ...)
packages/themesโ€”~46 official jsonresume-theme-* packages plus stackoverflow

Other workspace packages include converters, theme-config, test-fixtures, and the shared eslint-config-custom / tsconfig presets.

Prerequisites

This project uses pnpm (see the packageManager field in package.json for the pinned version):

curl -fsSL https://get.pnpm.io/install.sh | sh -

Quickstart

# 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.

Working across the monorepo

# 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

Testing

# All workspaces
pnpm turbo test

# Registry unit tests (Vitest)
pnpm --filter registry test

# Registry end-to-end tests (Playwright)
pnpm --filter registry test:e2e

Releases

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.

Building themes

Themes live in packages/themes. React themes rendered by the registry should:

  • Export a default component that accepts a resume prop
  • Avoid Node-only modules (e.g. fs) so they work on Vercel's runtime
  • Use the @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.

AI features

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).

Documentation

History

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.

Contributing

We welcome contributions from the community! Here's how you can help:

  1. Fork the repository
  2. Clone your fork to your local machine
  3. Create a branch for your feature or bugfix
  4. Make your changes and commit them
  5. Push your changes to your fork
  6. Submit a Pull Request

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.

Contributors

Contributors

Join our Discord community for discussions, support, and collaboration.

License

This project is licensed under the MIT License.