YAMLResume

json2yamlresume

json2yamlresume is a command-line tool to convert JSON Resume to YAMLResume format.

Features

  • Format Conversion: seamlessly convert JSON Resume to YAMLResume format
  • Structure Transformation
  • CLI Interface: simple command-line interface for easy conversion
  • Validation: built on top of YAMLResume's robust schema validation

Installation

npm install -g json2yamlresume
pnpm add -g json2yamlresume
yarn global add json2yamlresume
bun add -g json2yamlresume

Usage

Convert a JSON Resume to YAMLResume

$ json2yamlresume input.json output.yaml

# or call the command without the optional output path, in which case the
# output will be written to the same directory as the input file with the same
# name but with a .yml extension
$ json2yamlresume input.json

Show help

$ json2yamlresume --help
Usage: json2yamlresume [options] <input-file> [output-file]

Convert JSON Resume to YAMLResume format

Arguments:
  input-file     Input JSON Resume file path
  output-file    Output YAMLResume file path

Options:
  -V, --version  output the version number
  -h, --help     display help for command

Show version

$ json2yamlresume --version
0.7.4

Example

Here is an example resume in JSON Resume format:

json-resume.json
{
  "basics": {
    "name": "John Doe",
    "label": "Software Engineer",
    "email": "john@example.com",
    "location": {
      "city": "San Francisco",
      "countryCode": "US"
    },
    "profiles": [
      {
        "network": "GitHub",
        "username": "johndoe",
        "url": "https://github.com/johndoe"
      }
    ]
  },
  "work": [
    {
      "name": "Tech Corp",
      "position": "Senior Developer",
      "startDate": "2020-01",
      "summary": "Led development of web applications.",
      "highlights": [
        "Increased performance by 40%",
        "Mentored 5 junior developers"
      ]
    }
  ],
  "education": [
    {
      "institution": "University of California",
      "area": "Computer Science",
      "studyType": "Bachelor of Science",
      "startDate": "2018"
    }
  ]
}

You can call the following command to convert the JSON Resume to YAMLResume:

$ json2yamlresume json-resume.json yamlresume.yml

Here is the output in YAMLResume format:

yamlresume.yml
---
content:
  basics:
    name: John Doe
    headline: Software Engineer
    email: john@example.com
  education:
    - institution: University of California
      area: Computer Science
      degree: Bachelor of Science
      startDate: "2018"
  location:
    city: San Francisco
    country: US
  profiles:
    - network: GitHub
      username: johndoe
      url: https://github.com/johndoe
  work:
    - name: Tech Corp
      position: Senior Developer
      startDate: 2020-01
      summary: |-
        - Increased performance by 40%
        - Mentored 5 junior developers

Conversion Rules

1. Location and Profiles Movement

  • basics.location → top-level location
  • basics.profiles → top-level profiles
  • basics.labelbasics.headline

2. Education Field Mapping

  • education[].studyTypeeducation[].degree

3. Highlights Integration

The converter merges highlights arrays into summary fields as markdown unordered lists for these sections:

  • work[]
  • volunteer[]
  • projects[]

Example:

{
  "summary": "Led development team.",
  "highlights": ["Increased performance", "Mentored developers"]
}

Becomes:

summary: |-
  Led development team.

  - Increased performance
  - Mentored developers

Remember that YAMLResume's summary field supports rich text!

4. References

  • references[].referencereferences[].summary

Supported JSON Resume Sections

The converter supports all standard JSON Resume sections:

  • basics
  • work
  • volunteer
  • education
  • awards
  • certificates
  • publications
  • skills
  • languages
  • interests
  • references
  • projects
Edit on GitHub

Last updated on