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.

Two TypeScript union types control how the AI generates a CV: CVStyle selects the visual template used when rendering the document, and CVMode switches between a fully designed layout and an ATS-optimized plain-text format. Together they give callers precise control over the look and compatibility of the generated HTML.

CVStyle

CVStyle specifies which of the four named visual templates the AI should use to structure and style the generated HTML. The value is passed as the style field in the request body of /api/cv/generate.
type CVStyle = 'moderno' | 'clasico' | 'minimalista' | 'creativo';
ValueDescription
"moderno"A two-column layout with a dark blue (#1E293B) left sidebar, blue accent (#2563EB) highlights, and a clean white right column — the default style for professional roles.
"clasico"An executive two-column layout featuring a dark navy (#1a2744) header strip spanning the full width, a light grey left column for contact and education, and a white right column for experience.
"minimalista"A single-column Nordic-inspired layout with generous whitespace, lightweight Helvetica Neue typography, no color accents, and no sidebar — ideal when a clean, uncluttered look is required.
"creativo"A two-column layout with a green gradient sidebar (#2d9c7e → #1f7a60), circular profile photo, language proficiency bars, skill badge chips, and a timeline-style experience column on the right.

CVMode

CVMode controls whether the style-specific visual template is applied or bypassed in favor of a single-column ATS-safe format. The value is passed as the mode field in /api/cv/generate.
type CVMode = 'ats' | 'designed';
ValueDescription
"designed"Uses the full visual template defined by CVStyle. Background colors, sidebars, badges, and photo are all rendered.
"ats"Ignores the style value entirely and generates a single-column black-and-white layout with no background fills, no images, no decorative elements, and no multi-column structure — optimized for Applicant Tracking System parsers.

Style × Mode behavior

CVStyleCVModeOutput
modernodesignedBlue sidebar, two-column professional layout
clasicodesignedDark header strip, two-column executive layout
minimalistadesignedSingle-column, minimal Nordic style
creativodesignedGreen gradient sidebar with timeline
anyatsSingle-column black-and-white ATS-safe format

Valid contexts for /api/cv/suggest

The /api/cv/suggest endpoint validates the context field against a fixed list defined in cv.controller.ts as VALID_CONTEXTS:
const VALID_CONTEXTS = [
  "experience",
  "summary",
  "education",
  "skills",
  "tools",
  "project",
  "certification",
  "volunteer",
] as const;
Any value outside this list returns a 400 error with "Contexto inválido". The context tells the AI model which writing conventions to apply when rewriting the candidate’s informal text into professional resume language.

Default fallback behavior

Both style and mode have server-side defaults applied by the controller when an invalid or missing value is received. No error is returned — the request proceeds with the safe default:
FieldInvalid / missing valueDefault applied
styleAny string not in VALID_STYLES, or omitted"moderno"
modeAny string not in VALID_MODES, or omitted"designed"
The CVStyle and CVMode types are defined in frontend/src/pages/types/cv.types.ts and mirrored implicitly in the backend controller validation arrays. The backend does not import from the frontend types file — validation is done with runtime array checks against VALID_STYLES and VALID_MODES.

Build docs developers (and LLMs) love