explaingit

hacksalot/hackmyresume

9,343JavaScriptAudience · developerComplexity · 2/5LicenseSetup · easy

TLDR

A command-line tool that generates resumes in many formats, PDF, Word, HTML, Markdown, and more, from a single JSON or YAML source file. Write your resume once and export every format instantly, all locally with no data sent anywhere.

Mindmap

mindmap
  root((HackMyResume))
    What it does
      Multi-format export
      Single source file
      Local and private
    Output Formats
      PDF
      HTML
      Word
      Markdown
    Features
      Validation
      Keyword analysis
      Theme support
    Tech Stack
      JavaScript
      Node.js
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Maintain one JSON file with your career history and export a PDF, HTML, and Word resume all at once.

USE CASE 2

Track changes to your resume over time using version control, the same way developers manage code.

USE CASE 3

Validate your resume file to catch missing or incorrectly formatted fields before applying for jobs.

USE CASE 4

Analyze your resume for keyword density to see how it might appear to automated hiring screening systems.

Tech stack

JavaScriptNode.js

Getting it running

Difficulty · easy Time to first run · 5min

PDF output requires wkhtmltopdf or Phantom.js installed separately on your system.

Use freely for any purpose, including commercially, as long as you keep the copyright notice.

In plain English

HackMyResume is a command-line tool that generates polished resumes and CVs in many different formats from a single source file. Instead of maintaining separate Word documents, PDFs, and web versions of your resume, you write your information once in a structured JSON or YAML file and the tool produces all the formats you need in one step. Supported outputs include HTML, Markdown, LaTeX, Microsoft Word, PDF, plain text, and more. The tool runs locally on your machine and never sends your data anywhere. It works on Mac, Linux, and Windows via Node.js and is free under the MIT license. Because your resume data lives in a plain text file, it is easy to track changes over time with version control, the same way developers manage code. HackMyResume supports two standard resume data formats: FRESH and JSON Resume. These are open specifications for structuring career information. If you already have a resume in one format, the tool can convert it to the other. It also includes a validation command that checks whether your resume file follows the rules of the chosen format, which helps catch missing or incorrectly formatted fields before you send anything out. An analysis feature inspects your resume for keyword density and gaps in employment dates, giving you a quick readout of how the document might look to automated screening systems. Themes control how the generated files look, and you can choose from the built-in options or install additional themes from the JSON Resume theme ecosystem. PDF output requires a separate tool like wkhtmltopdf or Phantom.js to be installed on your system.

Copy-paste prompts

Prompt 1
Help me write a FRESH format resume JSON file for a software developer, then use HackMyResume to export it as both a PDF and an HTML file.
Prompt 2
Show me how to install HackMyResume with npm and convert my existing JSON Resume file into a Word document and a Markdown version.
Prompt 3
Using HackMyResume, how do I validate my resume file to find missing required fields and formatting errors?
Prompt 4
Walk me through installing a custom theme for HackMyResume from the JSON Resume theme ecosystem and applying it to my export.
Prompt 5
How do I use HackMyResume's analysis command to check my resume for keyword density and gaps in my employment dates?
Open on GitHub → Explain another repo

← hacksalot on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.