Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/CristianParadaLopez/cv-builder/llms.txt

Use this file to discover all available pages before exploring further.

CVFormData is the primary data structure sent to /api/cv/generate. It defines every section of a resume: personal contact information, a professional headline, experience history, education records, skills and tools, language proficiencies, an optional profile photo, and extended optional sections for portfolio items, certifications, volunteer work, and projects. The AI uses this object as the sole source of truth when building the CV HTML — it never invents or supplements data.

CVFormData fields

name
string
required
The candidate’s full name. Used as the primary heading in every template style.
email
string
required
The candidate’s email address. Displayed in the contact section.
phone
string
The candidate’s phone number, including country code if desired (e.g. "+503 7000-0000").
location
string
The candidate’s city and country (e.g. "San Salvador, El Salvador").
title
string
The professional headline or job title shown beneath the candidate’s name (e.g. "Frontend Developer").
summary
string
A paragraph-length professional summary. Rendered as the opening section of the CV in most templates.
experience
ExperienceItem[]
An array of work experience entries ordered from most to least recent. See ExperienceItem below.
education
EducationItem[]
An array of educational background entries. See EducationItem below.
skills
string[]
A flat list of professional or technical skills (e.g. ["React", "TypeScript", "REST APIs"]).
tools
string[]
A flat list of tools, platforms, or software the candidate uses (e.g. ["Vite", "Git", "Figma"]).
languages
string[]
A flat list of spoken languages and proficiency levels (e.g. ["Español (nativo)", "Inglés (avanzado)"]).
photo
string
An optional base64 data URI of the candidate’s profile photo (e.g. "data:image/jpeg;base64,/9j/4AAQ..."). The backend strips this value before sending to the AI model and re-injects it afterward. Only rendered in "designed" mode — ignored in "ats" mode.
portfolio
PortfolioItem[]
An optional array of portfolio items showcasing the candidate’s work. See PortfolioItem below.
certifications
CertificationItem[]
An optional array of professional certifications or credentials. See CertificationItem below.
volunteer
VolunteerItem[]
An optional array of volunteer or community service experiences. See VolunteerItem below.
projects
ProjectItem[]
An optional array of personal or professional projects to highlight. See ProjectItem below.

ExperienceItem

Represents a single period of employment.
company
string
required
The name of the employer or organization.
position
string
required
The job title or role held at this company.
startDate
string
required
The start date in free-text format (e.g. "Ene 2022" or "January 2022").
endDate
string
required
The end date in free-text format. Use "Presente" for the current position.
description
string
required
A description of responsibilities, achievements, or key contributions in this role.

EducationItem

Represents a single academic credential.
institution
string
required
The name of the school, university, or training provider.
degree
string
required
The degree, diploma, or qualification earned (e.g. "Ingeniería en Sistemas").
startDate
string
required
The start date of the program (e.g. "Ene 2018").
endDate
string
required
The end date or graduation date (e.g. "Dic 2022").
description
string
An optional note about the program, specialization, or academic honors.

PortfolioItem

Represents a portfolio piece showcasing the candidate’s work.
title
string
required
The title or name of the portfolio item.
description
string
required
A brief description of the work, its purpose, and outcome.
url
string
An optional URL linking to the live work, case study, or hosted example.
tech
string[]
required
An array of technologies, languages, or tools used to create the portfolio item (e.g. ["React", "Figma", "Node.js"]).

CertificationItem

Represents a professional certification or credential.
name
string
required
The name of the certification (e.g. "AWS Certified Solutions Architect").
institution
string
required
The issuing organization or body.
date
string
required
The date the certification was awarded (e.g. "Mar 2023").
url
string
An optional URL to the credential verification page.
expires
string
An optional expiry date, if the certification is time-limited.
description
string
An optional short description of what the certification covers.

VolunteerItem

Represents a volunteer or community service role.
organization
string
required
The name of the organization or initiative.
role
string
required
The role or responsibility held during the volunteer engagement.
startDate
string
required
The start date (e.g. "Jun 2021").
endDate
string
required
The end date (e.g. "Dic 2021"). Use "Presente" for ongoing roles.
description
string
required
A description of activities, responsibilities, or impact.

ProjectItem

Represents a personal or professional project.
title
string
required
The project name or title.
description
string
required
A brief description of the project’s purpose, scope, and outcome.
url
string
An optional link to the live project, repository, or case study.
tech
string[]
required
An array of technologies, languages, or frameworks used in the project (e.g. ["React", "Node.js", "PostgreSQL"]).

Full TypeScript interface

interface CVFormData {
  name: string;
  email: string;
  phone: string;
  location: string;
  title: string;
  summary: string;
  experience: ExperienceItem[];
  education: EducationItem[];
  skills: string[];
  tools: string[];
  languages: string[];
  photo?: string;
  portfolio?: PortfolioItem[];
  certifications?: CertificationItem[];
  volunteer?: VolunteerItem[];
  projects?: ProjectItem[];
}

interface ExperienceItem {
  company: string;
  position: string;
  startDate: string;
  endDate: string;
  description: string;
}

interface EducationItem {
  institution: string;
  degree: string;
  startDate: string;
  endDate: string;
  description?: string;
}

interface PortfolioItem {
  title: string;
  description: string;
  url?: string;
  tech: string[];
}

interface CertificationItem {
  name: string;
  institution: string;
  date: string;
  url?: string;
  expires?: string;
  description?: string;
}

interface VolunteerItem {
  organization: string;
  role: string;
  startDate: string;
  endDate: string;
  description: string;
}

interface ProjectItem {
  title: string;
  description: string;
  url?: string;
  tech: string[];
}

Build docs developers (and LLMs) love