Modular Resume System with JSON Resume Integration

This system transforms your Jekyll resume into a modular, JSON Resume-compatible format that can be exported to various professional themes.

Overview

The resume system consists of:

  • Structured Data: _data/resume.json (JSON Resume standard)
  • Modular Templates: _includes/resume/ (Jekyll partials)
  • Custom Styling: assets/css/resume.css
  • Export Tools: JSON endpoint and theme manager script
  • Layout: _layouts/resume.html

File Structure

├── _data/
│   └── resume.json                 # JSON Resume data (primary source)
├── _includes/resume/
│   ├── header.html                 # Name, contact, summary
│   ├── skills.html                 # Core competencies
│   ├── work.html                   # Professional experience
│   ├── projects.html               # Representative clients/projects
│   ├── education.html              # Education & certifications
│   └── awards.html                 # Awards & recognition
├── _layouts/
│   └── resume.html                 # Main resume layout
├── assets/css/
│   └── resume.css                  # Resume-specific styles
├── scripts/
│   └── resume-manager.sh           # JSON Resume theme manager
├── pages/
│   └── resume.md                   # Resume page (uses resume layout)
└── resume.json                     # JSON export endpoint

JSON Resume Standard

The _data/resume.json file follows the JSON Resume Schema v1.0.0, making it compatible with 100+ professional themes.

Key Sections:

  • basics: Personal info, contact, summary
  • work: Professional experience with highlights
  • education: Degrees and certifications
  • skills: Categorized technical and soft skills
  • projects: Client work and representative projects
  • awards: Recognition and achievements

Using the System

1. Updating Your Resume

Edit _data/resume.json to update any resume content. The Jekyll includes automatically pull from this data.

2. Building the Site

bundle exec jekyll build
# or
bundle exec jekyll serve

Your resume will be available at /resume with the custom styling.

3. Exporting to JSON Resume Themes

First, install the resume CLI:

npm install -g resume-cli

Use the resume manager script:

# Validate your resume data
./scripts/resume-manager.sh validate

# List available themes
./scripts/resume-manager.sh themes

# Export with a specific theme
./scripts/resume-manager.sh export jsonresume-theme-elegant

# Serve locally with a theme for preview
./scripts/resume-manager.sh serve jsonresume-theme-paper

4. JSON Export

Your resume data is available as JSON at:

  • /resume.json - Direct download endpoint
  • _data/resume.json - Source file
  • jsonresume-theme-elegant - Clean, professional
  • jsonresume-theme-paper - Print-optimized
  • jsonresume-theme-even - Modern, balanced
  • jsonresume-theme-class - Classic styling
  • jsonresume-theme-spartan - Minimal design
  • jsonresume-theme-kendall - Creative layout
  • jsonresume-theme-flat - Flat design aesthetic
  • jsonresume-theme-modern - Contemporary styling

Browse all themes at: https://registry.jsonresume.org/themes

Customization

Adding New Sections

  1. Create a new include file in _includes/resume/
  2. Add the data structure to _data/resume.json
  3. Include the new section in _layouts/resume.html
  4. Add corresponding CSS styles in assets/css/resume.css

Styling Modifications

Edit assets/css/resume.css to customize:

  • Colors and typography
  • Layout and spacing
  • Responsive behavior
  • Print styles

Terminal Integration

The resume page maintains terminal theming compatibility with your existing site structure through the frontmatter settings.

Benefits

  1. Single Source of Truth: All resume data in one JSON file
  2. Multiple Outputs: Jekyll site + 100+ JSON Resume themes
  3. Easy Maintenance: Update once, reflects everywhere
  4. Professional Export: PDF/HTML with professional themes
  5. Structured Data: Machine-readable format for applications
  6. Version Control: Track resume changes in Git
  7. Modular Design: Easy to modify individual sections

Workflow

  1. Edit: Update _data/resume.json
  2. Validate: ./scripts/resume-manager.sh validate
  3. Preview: bundle exec jekyll serve for Jekyll version
  4. Export: ./scripts/resume-manager.sh export <theme> for other formats
  5. Deploy: Commit and push (Jekyll site auto-deploys)

Integration with Existing Site

The resume system integrates seamlessly with your existing Jekyll site:

  • Maintains terminal theme consistency
  • Uses existing navigation structure
  • Follows same content organization patterns
  • Compatible with your current build process

This modular approach gives you the flexibility of custom Jekyll styling while maintaining compatibility with the broader JSON Resume ecosystem.