YAMLResume

Types

This document outlines the TypeScript types that define the structure of a resume with YAMLResume. As a TypeScript project, YAMLResume employs static typing to ensure data consistency. This file provides an overview of the core data structures used to represent resume information, including personal details, education, experience, skills and more.

You can check types.ts for the source of truth details.

Understanding these types is essential for contributors and developers who want to customize or extend YAMLResume's functionality.

This document serves as a definitive reference for users seeking to create a valid YAMLResume, clarifying the distinction between optional and mandatory fields. To guarantee successful compilation within YAMLResume, a minimal resume must incorporate the following essential fields:

  • content.basics.name
  • education[number].area
  • education[number].degree
  • education[number].institution
  • education[number].startDate

So theoretically a minimum viable resumes looks like the following:

content:
  basics:
    name: Xiao Hanyu
  education:
    - area: Computer Science and Technology
      degree: Bachelor
      institution: Zhejiang University
      startDate: Sep, 2007

Resume

Defines the overall resume structure, including content and layout.

PropTypeRequiredDescription
contentResumeContentDefines the structure for the entire resume content.
layout?ResumeLayoutDefines the overall layout configuration.

Here is a high-level diagram of the resume structure:

ResumeContent

Defines the structure for the entire resume content.

PropTypeRequiredDescription
basicsBasicsItemRepresents the core personal and contact information.
educationEducationItem[]Contains a collection of educational experiences.
awards?AwardItem[]Contains a collection of awards and recognitions.
certificates?CertificateItem[]Contains a collection of certifications and credentials.
interests?InterestItem[]Contains a collection of interests, hobbies, or personal activities.
languages?LanguageItem[]Contains a collection of language proficiencies.
location?LocationItemContains location information.
projects?ProjectItem[]Contains a collection of projects.
profiles?ProfileItem[]Contains a collection of online profiles.
publications?PublicationItem[]Contains a collection of publications.
references?ReferenceItem[]Contains a collection of references.
skills?SkillItem[]Contains a collection of skills.
volunteer?VolunteerItem[]Contains a collection of volunteer experiences.
work?WorkItem[]Contains a collection of work experiences and employment history.

AwardItem

Represents a single award, honor, or recognition received.

PropTypeRequiredDescription
awarderstringThe organization or entity that gave the award.
titlestringThe name or title of the award.
date?stringThe date the award was received (e.g., "2020", "Oct 2020").
summary?stringA short description or details about the award.

BasicsItem

Represents the core personal and contact information.

PropTypeRequiredDescription
namestringFull name.
email?stringEmail address.
headline?stringA brief professional headline or title (e.g., "Software Engineer").
phone?stringPhone number.
summary?stringA professional summary or objective statement.
url?stringPersonal website or portfolio URL.

CertificateItem

Represents a single certification, credential, or professional qualification.

PropTypeRequiredDescription
issuerstringThe organization that issued the certificate.
namestringThe name of the certificate.
date?stringThe date the certificate was obtained (e.g., "2021", "Nov 2021").
url?stringURL related to the certificate (e.g., verification link).

EducationItem

Represents a single educational experience or degree program.

PropTypeRequiredDescription
areastringArea of study (e.g., "Computer Science").
degreeDegreeThe type of degree obtained.
institutionstringName of the institution.
startDatestringStart date of study (e.g., "2016", "Sep 2016").
courses?string[]List of courses taken.
endDate?stringEnd date of study (e.g., "2020", "May 2020"), empty implies "Present".
summary?stringDescription of accomplishments or details.
score?stringGPA or academic score.
url?stringURL related to the institution or degree.

InterestItem

Represents a single interest, hobby, or personal activity.

PropTypeRequiredDescription
namestringName of the interest category (e.g., "Reading", "Photography").
keywords?string[]Keywords related to the interest.

LanguageItem

Represents a single language proficiency item.

PropTypeRequiredDescription
fluencyFluencyThe level of proficiency of the language.
languageLanguageThe language.
keywords?string[]Specific keywords related to language skills (e.g., "Translation").

LocationItem

Represents location and address information.

PropTypeRequiredDescription
citystringCity name.
address?stringStreet address.
country?CountryCountry code or name.
postalCode?stringPostal or ZIP code.
region?stringState, province, or region.

ProfileItem

Represents a single online profile or social media presence.

PropTypeRequiredDescription
networkNetworkThe name of the network or platform.
usernamestringThe username on the platform.
url?stringThe URL of the profile.

ProjectItem

Represents a single project, portfolio piece, or technical work.

PropTypeRequiredDescription
namestringName of the project.
startDatestringStart date of the project (e.g., "2021", "Jan 2021").
summarystringDetailed accomplishments for the project.
description?stringDescription of the project.
endDate?stringEnd date of the project (e.g., "2022", "Jul 2022").
keywords?string[]Keywords or technologies used in the project.
url?stringURL related to the project (e.g., repository, live demo).

PublicationItem

Represents a single publication, research work, or academic paper.

PropTypeRequiredDescription
namestringName or title of the publication.
publisherstringPublisher of the work.
releaseDate?stringDate of publication (e.g., "2023", "Mar 2023").
summary?stringSummary or abstract of the publication.
url?stringURL related to the publication (e.g., DOI, link).

ReferenceItem

Represents a single professional reference or recommendation.

PropTypeRequiredDescription
namestringName of the reference.
summarystringA brief note about the reference.
email?stringEmail address of the reference.
phone?stringPhone number of the reference.
relationship?stringRelationship to the reference (e.g., "Former Manager").

SkillItem

Represents a single skill, competency, or technical ability.

PropTypeRequiredDescription
levelLevelProficiency level in the skill.
namestringName of the skill.
keywords?string[]Specific keywords or technologies related to the skill.

VolunteerItem

Represents a single volunteer experience or community service.

PropTypeRequiredDescription
organizationstringName of the organization.
positionstringRole or position held.
startDatestringStart date of the volunteer work (e.g., "2019", "Jun 2019").
summarystringSummary of responsibilities or achievements.
endDate?stringEnd date of the volunteer work (e.g., "2020", "Dec 2020").
url?stringURL related to the organization or work.

WorkItem

Represents a single work experience or employment position.

PropTypeRequiredDescription
namestringName of the company or employer.
positionstringJob title or position held.
startDatestringStart date of employment (e.g., "2021", "Apr 2021").
summarystringSummary of responsibilities and accomplishments.
endDate?stringEnd date of employment (e.g., "2023", "Aug 2023").
keywords?string[]Keywords related to the role or technologies used.
url?stringURL related to the company or work.

ResumeLayout

Defines the overall layout configuration.

PropTypeRequiredDescription
locale?ResumeLayoutLocaleDefines locale settings for internationalization and localization.
margins?ResumeLayoutMarginsDefines page margin settings for document layout.
page?ResumeLayoutPageDefines page-level settings for document presentation.
template?TemplateDefines the selected template.
typography?ResumeLayoutTypographyDefines typography settings for document formatting.
latex?ResumeLayoutLaTeXDefines LaTeX-specific configuration options.

ResumeLayoutLocale

Defines locale settings for internationalization and localization.

PropTypeRequiredDescription
language?LocaleLanguageThe selected language for the resume content and template terms.

ResumeLayoutMargins

Defines page margin settings for document layout.

PropTypeRequiredDescription
top?stringTop margin value (e.g., "2.5cm").
bottom?stringBottom margin value (e.g., "2.5cm").
left?stringLeft margin value (e.g., "1.5cm").
right?stringRight margin value (e.g., "1.5cm").

ResumeLayoutPage

Defines page-level settings for document presentation.

PropTypeRequiredDescription
showPageNumbers?booleanWhether to display page numbers.

ResumeLayoutTypography

Defines typography settings for document formatting.

PropTypeRequiredDescription
fontSize?stringBase font size for the document (e.g., "10pt", "11pt").

ResumeLayoutLaTeX

Defines LaTeX-specific configuration options.

PropTypeRequiredDescription
fontspec?{ numbers?: FontspecNumbers }LaTeX fontspec package configurations.

Enum Types

Country

A union type for all possible countries and regions in the world.

Degree

A union type for all possible degrees.

  • Associate
  • Bachelor
  • Diploma
  • Doctor
  • High School
  • Master
  • Middle School

Fluency

A union type for all possible language fluency levels.

  • Elementary Proficiency
  • Full Professional Proficiency
  • Limited Working Proficiency
  • Minimum Professional Proficiency
  • Native or Bilingual Proficiency

Language

A union type for all supported languages.

Level

A union type for all possible skill proficiency levels.

  • Advanced
  • Beginner
  • Expert
  • Intermediate
  • Master
  • Novice

Network

A union type for all possible social network options.

Template

A union type for all possible template options.

See also: templates

  • moderncv-banking
  • moderncv-casual
  • moderncv-classic

LocaleLanguage

A union type for all possible locale languages.

See also: multi-languages

  • en
  • es
  • zh-hans
  • zh-hant-hk
  • zh-hant-tw

FontspecNumbers

A union type for all possible latex fontspec numbers options.

  • Auto - allowing the style to be automatically determined based on the selected LocaleLanguage (default)
  • Lining - standard lining figures (default for CJK languages)
  • OldStyle - old style figures with varying heights (default for Latin languages)

FontSize

A union type for all possible font size options.

For now only 3 options are supported:

  • 10pt - 10pt font size (default)
  • 11pt - 11pt font size
  • 12pt - 12pt font size