Macchiato it's a JSON Resume theme based on Theme Boilerplate and Caffeine Theme.
I wanted to build my own resume theme, so I decided to start from a theme I like a lot and tring to make it a bit more personal.
I also wanted I simple environment, so I used the boilerplate provided by JSON Resume instead of using the awesome work done by kelyvin for it's Caffeine Theme. If you are looking for a more complete environment take a look at the caffine theme.
Currently it doesn't have any major style difference from it's parent Caffeine.
- Simpler and less sofisticated development environment, the same as JSON Resume boilerplate. (Caffeine has live re-building and automatic page reloading)
- Add tags to projects and skills
- Switch from
UPPERCASEtoCapitalizeon most text
- Download JSON Resume CLI
npm install -g resume-cli
- Download the theme from npm
npm install -g jsonresume-theme-macchiato
- Use resume cli to build your resume
resume export resume.html --theme macchiato
This theme includes a convenient build.js script that generates both HTML and PDF versions of your resume:
# Build using default resume.json file
node build.js
# Build using a custom resume file
node build.js path/to/your/resume.jsonThe script will:
- Read your resume JSON file (defaults to
resume.json) - Generate an HTML file (
resume.html) - Generate a PDF file (
resume.pdf)
The build script also supports creating customized CVs for specific job applications:
node build.js
# When prompted, choose 'y' for custom CV
# Enter company name, job title, job URL
# For job description: Enter multiple lines and type "END" when finishedπ Multi-line Job Description Support: When entering the job description, you can provide detailed, multi-line content:
- Paste the full job posting
- Include requirements, responsibilities, and company details
- Type "END" on a new line when you're finished
- The AI will analyze the entire description for better customization
When you choose the custom CV option, the script will:
- Ask for job application details (company name, job title, URL, description)
- Call AI API to generate a customized resume based on the job description
- Fallback to local resume.json if API is unavailable
- Create a company folder (if it doesn't exist)
- Add job application metadata to the resume
- Generate customized HTML and PDF files with normalized filenames
- Store all files in the company folder
Example structure after creating custom CVs:
./
βββ resume.json (your base resume)
βββ generated/
β βββ Google/
β β βββ senior-software-engineer.json
β β βββ senior-software-engineer.html
β β βββ senior-software-engineer.pdf
β βββ Microsoft/
β βββ frontend-developer.json
β βββ frontend-developer.html
β βββ frontend-developer.pdf
π€ AI-Powered Customization: The script uses an AI API to automatically customize your resume content based on the job description you provide. This includes:
- Tailoring your summary to match the role requirements
- Highlighting relevant skills and experience
- Optimizing keywords for the specific position
- If the API is unavailable, it gracefully falls back to your local resume.json
Example multi-line job description input:
Enter job description (optional):
(Enter your job description. Type "END" on a new line when finished)
We are seeking a Senior Software Engineer to join our team.
Requirements:
- 5+ years of React.js experience
- Strong Node.js background
- AWS cloud platform expertise
- Leadership and mentoring skills
Responsibilities:
- Design scalable web applications
- Lead cross-functional teams
- Code reviews and best practices
END
This helps you:
- Keep track of applications for different companies
- Maintain version history of customized resumes
- Organize your job search materials efficiently
- Generate an HTML file (
resume.html) - Generate a PDF file (
resume.pdf)
Probably you want a PDF version of your resume...
JSONResume CLI should be able to make a PDF out of your JSON but I always struggled to get it to work, so I switched to a more direct and effective approach.
I use Puppeteer-CLI to make a PDF from my HTML resume.
npm install -g puppeteer-cli
puppeteer --wait-until networkidle0 --margin-top 0 --margin-right 0 --margin-bottom 0 --margin-left 0 --format A4 print resume.html resume.pdf
Obviously you could write a very simple Node script to use the real Puppeteer and the render function to make a PDF without first exporting the HTML version.
Also checkout HackMyResume, a powerful tool to build and analyze your JSON Resume.
Available under the MIT license.