HackMyResume

repository·master·Indexed 27 days ago

https://github.com/hacksalot/hackmyresume

A command-line tool for creating, analyzing, converting, and validating résumés and CVs from a single source of truth in JSON or YAML. It supports multiple output formats including HTML, Markdown, LaTeX, MS Word, PDF, plain text, JSON, XML, and YAML. The tool includes features for merging multiple resume files, applying FRESH or JSON Resume themes, and analyzing content for keyword density and employment gaps. Version 1.9.0-beta.

Tokens
6.9K
Snippets
31
Records
63
Agent score
93%

What's inside hackmyresume

  1. Quickstart Guide for HackMyResume

    master

    To get started with HackMyResume, follow these steps:

    1. Install via NPM: [sudo] npm install hackmyresume -g.
    2. Create a new resume: Use the NEW command to generate a template: hackmyresume NEW <resume-name>.json.
    3. Build your resume: Run hackmyresume BUILD <resume-name>.json and check the out/ folder for generated files.
    4. Apply themes: Use the -t or --theme parameter to experiment with different styles. You can use preinstalled FRESH themes or JSON Resume themes (which must be installed via NPM first).
  2. Set up a local build environment for HackMyResume

    master

    To develop on HackMyResume, you need to set up a local environment that links your local source code to the hackmyresume command.

    Prerequisites

    • OS: Linux, OS X, or Windows
    • Node.js: Must be installed.
    • Grunt: Must be installed.

    Setup Steps

    1. Fork the hacksalot/HackMyResume repository to your GitHub account.
    2. Clone your fork locally.
    3. Navigate to the top-level HackMyResume folder and install dependencies:
      npm install
    4. Create a new branch based on the dev branch for your work.
    5. Link your local installation to the global hackmyresume command. If you have a previous version installed globally, uninstall it first:
      npm uninstall -g hackmyresume
      npm link
    npm install
    npm link
  3. Merge multiple resumes

    master

    You can merge multiple JSON resumes into one by specifying them in order from most generic to most specific. The later resumes in the command will override information in the earlier ones (following extend()-style behavior).

    # Merge specific.json onto base.json and generate all formats
    hackmyresume build base.json specific.json TO resume.all
    
    # Merge multiple files
    hackmyresume build in1.json in2.json in3.json in4.json TO out.html out.doc
  4. Configure PDF generation engines

    master

    HackMyResume uses external CLI tools for PDF generation. You must have one of the following installed and accessible on your PATH:

    • wkhtmltopdf
    • phantomjs
    • weasyprint

    Use the --pdf or -p flag to select the engine. Use --pdf none to disable PDF generation entirely.

    hackmyresume build resume.json TO out.all --pdf phantom
    hackmyresume build resume.json TO out.all --pdf wkhtmltopdf
    hackmyresume build resume.json TO out.all --pdf weasyprint
    hackmyresume build resume.json TO out.all --pdf none
  5. Merge multiple resume files

    master

    HackMyResume supports merging multiple JSON resume files into a single "master" resume before generating output. Files are merged in the order they are provided, from most generic to most specific. This allows you to override or amend sections from previous files.

    Example: Merging a generic resume with specific overrides:

    hackmyresume BUILD generic.json game-developer.json blizzard.json TO out/resume.all

    In this example, blizzard.json overrides game-developer.json, which in turn overrides generic.json.

  6. Handle private resume fields

    master

    To hide specific entries (like a job or education stint) from standard builds, add "private": true to that object in your JSON resume.

    By default, these fields are omitted. To include them in a generated resume, use the --private flag.

    "employment": {
      "history": [
        {
          "employer": "Acme Real Estate"
        },
        {
          "employer": "Area 51 Alien Research Laboratory",
          "private": true
        }
      ]
    }
    # Build including private fields
    hackmyresume build resume.json private-resume.all --private
  7. Customize FRESH section titles

    master

    If you are using a FRESH theme, you can change default section titles (like "Employment" or "Skills") by providing an options file.

    1. Create a JSON options file mapping the internal section keys to your preferred titles:
    {
      "sectionTitles": {
        "employment": "empleo",
        "skills": "habilidades",
        "education": "educación"
      }
    }
    1. Pass this file to the build command using the -o or --opts parameter.
    hackmyresume BUILD resume.json -o myoptions.json
  8. Run tests and submit changes

    master

    When making changes to the HackMyResume source code (located in the /src folder), follow these steps to ensure stability before submitting:

    1. Run the test suite using Grunt:
      grunt test
    2. Fix any errors that occur during testing.
    3. Commit and push your changes to your fork.
    4. Submit a pull request targeting the dev branch of the HackMyResume repository.
    grunt test
  9. Apply a theme to your resume

    master

    You can specify a theme using the -t or --theme parameter during the build command. The theme can be a predefined FRESH theme name, a path to a FRESH theme folder, or a path to a JSON Resume theme folder.

    Predefined FRESH themes (as of v1.6.0):

    • positive
    • modern
    • compact
    • minimist
    • hello-world

    Using JSON Resume themes: Install a theme via npm (e.g., npm install jsonresume-theme-classy) and then point the theme parameter to its location in node_modules.

  10. Install JSON Resume themes

    master

    While FRESH themes are preinstalled, JSON Resume themes must be installed manually. You can install them via NPM or by cloning a GitHub repository into a local folder. When building, reference the path to the theme folder using the -t flag.

    # Install with NPM
    npm install jsonresume-theme-[theme-name]
    
    # Install with GitHub
    git clone https://github.com/[user-or-org]/[repo-name]
    
    # Use the installed theme
    hackmyresume build resume.json TO out/resume.all -t node_modules/jsonresume-theme-classy