YAMLResume

JSON Schema

Overview

YAMLResume provides an official JSON Schema for validating resume data.

The official JSON Schema is hosted at: https://yamlresume.com/schema.json. However, if you want a cut-down version for your IDE/editor, you can also use the canary version schema.json from our GitHub repo.

What is JSON Schema?

JSON Schema is a JSON-based format for defining the structure of JSON data. It is a powerful tool for validating and documenting JSON data.

JSON Schema allows you to specify the expected structure, types, and constraints of your JSON data. With JSON Schema, you can define which properties are required, what types of values are allowed (such as strings, numbers, arrays, or objects), and even set rules for value formats (like email addresses or URLs).

By using JSON Schema, developers and tools can automatically validate JSON data to ensure it matches the expected format before processing. This helps catch errors early, improves data quality, and enables features like auto-completion and inline documentation in modern code editors.

JSON Schema is widely supported and can be used for configuration files, API payloads, and, in the case of YAMLResume, for validating resume data to ensure consistency and correctness.

Benefits

Integrating YAMLResume's JSON Schema into your IDE/editor when crafting resumes brings several benefits:

  • Auto Completion: When you start typing, your IDE/editor will suggest properties and their expected types, helping you draft your resume faster and with fewer errors.

  • Format Validation: Your IDE/editor will highlight any formatting errors (like invalid dates or URLs) as you type, preventing you from submitting incorrect information.

  • Property Docs: Get inline documentation for each property, explaining its purpose, allowed values, and any special formatting requirements.

Auto Completion

All enum types will be auto completed when typing. You can just type the first few letters of the option and the IDE/editor will suggest a list of valid options, then you can just use up/down arrow keys to select the correct one.

Format Validation

Each key value pair will be validated in real time against the predefined schema. You IDE/editor will warn you with precise error message to help avoid low-level mistakes like wrong email format, invalid degree options, typos in language fluency levels, etc.

And if a required key is missing, the warning message will be escalated to its parent object by default, so you can easily find the missing key.

Property Docs

Last but not least, you can get inline documentation for each property, explaining its purpose, allowed values, and any special formatting requirements. You can hover over the either the property key or the value to see the docs.

How to use JSON Schema?

You need to install yaml-language-server to use YAMLResume's JSON schema for your resumes. Depending on your IDE/editor, you may need to install different extensions.

Once installed, you need to add the following line at the top of your resume file:

# yaml-language-server: $schema=https://yamlresume.dev/schema.json

Then you can enjoy the auto-completion, format validation, and property docs features all at your fingertips.

Engineering

Under the hood, YAMLResume's JSON schema is generated with the help of Zod v4, which is a awesome TypeScript-first schema validation library.

We define the schema in schema/resume.ts, and then generate the JSON schema in a test case.

Isn't this cool?