Skip to main content

ResumeData

The main type that represents all resume data in the application.
export type ResumeData = {
  personalInfo: PersonalInfo;
  summary: string;
  experience: Experience[];
  education: Education[];
  skills: Skill[];
  projects: Project[];
  customSections: CustomSection[];
  sectionOrder: SectionId[];
};

Fields

personalInfo
PersonalInfo
required
Contact and identifying information for the resume header
summary
string
required
Professional summary or objective statement
experience
Experience[]
required
Array of work experience entries
education
Education[]
required
Array of education entries
skills
Skill[]
required
Array of skills
projects
Project[]
required
Array of project entries
customSections
CustomSection[]
required
Array of custom sections you can add to the resume
sectionOrder
SectionId[]
required
Defines the order in which sections appear on the resume

PersonalInfo

Contains all personal and contact information displayed in the resume header.
export type PersonalInfo = {
  fullName: string;
  email: string;
  phone: string;
  website: string;
  linkedin: string;
  github: string;
  location: string;
  jobTitle: string;
};

Fields

fullName
string
required
Your full name as it should appear on the resume
email
string
required
Email address for contact
phone
string
required
Phone number for contact
website
string
required
Personal website URL
linkedin
string
required
LinkedIn profile URL or username
github
string
required
GitHub profile URL or username
location
string
required
Current location (city, state/country)
jobTitle
string
required
Current or desired job title

ResumeTemplate

Defines the available template styles for rendering the resume.
export type ResumeTemplate = 'classic' | 'modern' | 'minimal';

Values

  • classic - Traditional resume layout with serif fonts
  • modern - Contemporary design with accent colors
  • minimal - Clean, minimalist layout

SectionId

Identifies the different sections that can appear on a resume.
export type SectionId = 
  | 'personal-info' 
  | 'summary' 
  | 'experience' 
  | 'projects' 
  | 'education' 
  | 'skills' 
  | 'customSections';

Values

  • personal-info - Personal information header
  • summary - Professional summary section
  • experience - Work experience section
  • projects - Projects section
  • education - Education section
  • skills - Skills section
  • customSections - Custom sections you define

Default Values

The application provides default initial values:
export const initialResumeData: ResumeData = {
  personalInfo: {
    fullName: '',
    email: '',
    phone: '',
    website: '',
    linkedin: '',
    github: '',
    location: '',
    jobTitle: '',
  },
  summary: '',
  experience: [],
  education: [],
  skills: [],
  projects: [],
  customSections: [],
  sectionOrder: defaultSectionOrder,
};

export const defaultSectionOrder: SectionId[] = [
  'personal-info',
  'summary',
  'experience',
  'projects',
  'education',
  'skills',
  'customSections'
];

Build docs developers (and LLMs) love