# Reactive Resume Schema Reference

Generated by `pnpm docs:gen` from `resumeDataSchema`. Do not edit this file directly.

Canonical schema: https://rxresu.me/schema.json

## Required top-level fields

`picture`, `basics`, `summary`, `sections`, `customSections`, and `metadata`

## Union variant shapes

Choose one coherent shape for each union value. Required fields are local to that variant; optional fields remain in the field catalog.

| Path | Type/variant | Item schema | Representative required shape |
| --- | --- | --- | --- |
| `customSections[]` | `summary` | `summaryItemSchema` | `{ id, hidden, content }` |
| `customSections[]` | `profiles` | `profileItemSchema` | `{ id, hidden, icon, network, username }` |
| `customSections[]` | `experience` | `experienceItemSchema` | `{ id, hidden, company, position, location, period, description }` |
| `customSections[]` | `education` | `educationItemSchema` | `{ id, hidden, school, degree, area, grade, location, period, description }` |
| `customSections[]` | `projects` | `projectItemSchema` | `{ id, hidden, name, period, description }` |
| `customSections[]` | `skills` | `skillItemSchema` | `{ id, hidden, icon, name, proficiency }` |
| `customSections[]` | `languages` | `languageItemSchema` | `{ id, hidden, language, fluency }` |
| `customSections[]` | `interests` | `interestItemSchema` | `{ id, hidden, icon, name }` |
| `customSections[]` | `awards` | `awardItemSchema` | `{ id, hidden, title, awarder, date, description }` |
| `customSections[]` | `certifications` | `certificationItemSchema` | `{ id, hidden, title, issuer, date, description }` |
| `customSections[]` | `publications` | `publicationItemSchema` | `{ id, hidden, title, publisher, date, description }` |
| `customSections[]` | `volunteer` | `volunteerItemSchema` | `{ id, hidden, organization, location, period, description }` |
| `customSections[]` | `references` | `referenceItemSchema` | `{ id, hidden, name, position, phone, description }` |
| `customSections[]` | `cover-letter` | `coverLetterItemSchema` | `{ id, hidden, recipient, content }` |

## Field catalog

| Path | Type | Required | Constraints and default | Description |
| --- | --- | --- | --- | --- |
| `picture` | `object` | yes | — | Configuration for photograph displayed on the resume |
| `picture.hidden` | `boolean` | yes | — | Whether to hide the picture from the resume. |
| `picture.url` | `string` | yes | — | The URL to the picture to display on the resume. Prefer local app-served paths (for example /uploads/...) populated via upload. |
| `picture.size` | `number` | yes | minimum: 32; maximum: 512 | The size of the picture to display on the resume, defined in points (pt). |
| `picture.rotation` | `number` | yes | minimum: 0; maximum: 360 | The rotation of the picture to display on the resume, defined in degrees (°). |
| `picture.aspectRatio` | `number` | yes | minimum: 0.5; maximum: 2.5 | The aspect ratio of the picture to display on the resume, defined as width / height (e.g. 1.5 for 1.5:1 or 0.5 for 1:2). |
| `picture.borderRadius` | `number` | yes | minimum: 0; maximum: 100 | The border radius of the picture to display on the resume, defined in points (pt). |
| `picture.borderColor` | `string` | yes | — | The color of the border of the picture to display on the resume, defined as rgba(r, g, b, a). |
| `picture.borderWidth` | `number` | yes | minimum: 0 | The width of the border of the picture to display on the resume, defined in points (pt). |
| `picture.shadowColor` | `string` | yes | — | The color of the shadow of the picture to display on the resume, defined as rgba(r, g, b, a). |
| `picture.shadowWidth` | `number` | yes | minimum: 0 | The width of the shadow of the picture to display on the resume, defined in points (pt). |
| `basics` | `object` | yes | — | Basic information about the author, such as name, email, phone, location, and website |
| `basics.name` | `string` | yes | — | The full name of the author of the resume. |
| `basics.headline` | `string` | yes | — | The headline of the author of the resume. |
| `basics.email` | `string` | yes | — | The email address of the author of the resume. |
| `basics.phone` | `string` | yes | — | The phone number of the author of the resume. |
| `basics.location` | `string` | yes | — | The location of the author of the resume. |
| `basics.website` | `object` | yes | — | The website of the author of the resume. |
| `basics.website.url` | `string` | yes | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `basics.website.label` | `string` | yes | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `basics.customFields` | `array` | yes | — | The custom fields to display on the resume. |
| `basics.customFields[]` | `object` | — | — | — |
| `basics.customFields[].id` | `string` | yes | — | The unique identifier for the custom field. Usually generated as a UUID. |
| `basics.customFields[].icon` | `string` | yes | — | The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available. |
| `basics.customFields[].text` | `string` | yes | — | The text to display for the custom field. |
| `basics.customFields[].link` | `string` | no | default: "" | If the custom field should be a link, the URL to link to. |
| `summary` | `object` | yes | — | Summary section of the resume, useful for a short bio or introduction |
| `summary.title` | `string` | yes | — | The title of the summary of the resume. |
| `summary.icon` | `string` | no | default: "" | Phosphor icon name to display before the summary section title in the PDF output. Empty string uses the default summary icon; 'none' hides the icon. |
| `summary.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the summary should span across. |
| `summary.hidden` | `boolean` | yes | — | Whether to hide the summary from the resume. |
| `summary.keepTogether` | `boolean` | no | default: false | If true, the summary is kept on a single page instead of splitting across a page break. |
| `summary.startOnNewPage` | `boolean` | no | default: false | If true, the summary always begins on a new page. |
| `summary.content` | `string` | yes | — | The content of the summary of the resume. This should be a HTML-formatted string. |
| `sections` | `object` | yes | — | Various sections of the resume, such as experience, education, projects, etc. |
| `sections.profiles` | `object` | yes | — | The section to display the profiles of the author. |
| `sections.profiles.title` | `string` | yes | — | The title of the section. |
| `sections.profiles.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.profiles.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.profiles.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.profiles.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.profiles.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.profiles.items` | `array` | yes | — | The items to display in the profiles section. |
| `sections.profiles.items[]` | `object` | — | — | — |
| `sections.profiles.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
| `sections.profiles.items[].hidden` | `boolean` | yes | — | Whether to hide the item from the resume. |
| `sections.profiles.items[].icon` | `string` | yes | — | The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available. |
| `sections.profiles.items[].iconColor` | `string` | no | default: "" | Custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color. |
| `sections.profiles.items[].network` | `string` | yes | minLength: 1 | The name of the network or platform. |
| `sections.profiles.items[].username` | `string` | yes | — | The username of the author on the network or platform. |
| `sections.profiles.items[].website` | `object` | no | default: {"url":"","label":"","inlineLink":false} | The link to the profile of the author on the network or platform, if any. |
| `sections.profiles.items[].website.url` | `string` | yes | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `sections.profiles.items[].website.label` | `string` | yes | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `sections.profiles.items[].website.inlineLink` | `boolean` | no | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.experience` | `object` | yes | — | The section to display the experience of the author. |
| `sections.experience.title` | `string` | yes | — | The title of the section. |
| `sections.experience.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.experience.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.experience.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.experience.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.experience.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.experience.items` | `array` | yes | — | The items to display in the experience section. |
| `sections.experience.items[]` | `object` | — | — | — |
| `sections.experience.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
| `sections.experience.items[].hidden` | `boolean` | yes | — | Whether to hide the item from the resume. |
| `sections.experience.items[].company` | `string` | yes | minLength: 1 | The name of the company or organization. |
| `sections.experience.items[].position` | `string` | yes | — | The position held at the company or organization. Used when there is only a single role. If multiple roles are provided in the 'roles' field, this serves as a summary title or can be left blank. |
| `sections.experience.items[].location` | `string` | yes | — | The location of the company or organization. |
| `sections.experience.items[].period` | `string` | yes | — | The overall period of time at the company. When multiple roles are used, this should reflect the total tenure. |
| `sections.experience.items[].website` | `object` | no | default: {"url":"","label":"","inlineLink":false} | The website of the company or organization, if any. |
| `sections.experience.items[].website.url` | `string` | yes | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `sections.experience.items[].website.label` | `string` | yes | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `sections.experience.items[].website.inlineLink` | `boolean` | no | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.experience.items[].description` | `string` | yes | — | The description of the experience. This should be a HTML-formatted string. |
| `sections.experience.items[].roles` | `array` | no | default: [] | List of individual roles held at this company to show career progression. |
| `sections.experience.items[].roles[]` | `object` | — | — | — |
| `sections.experience.items[].roles[].id` | `string` | yes | — | The unique identifier for the role. Usually generated as a UUID. |
| `sections.experience.items[].roles[].position` | `string` | yes | — | The position or job title for this role. |
| `sections.experience.items[].roles[].period` | `string` | yes | — | The period of time this role was held. |
| `sections.experience.items[].roles[].description` | `string` | yes | — | The description of this specific role. This should be a HTML-formatted string. |
| `sections.education` | `object` | yes | — | The section to display the education of the author. |
| `sections.education.title` | `string` | yes | — | The title of the section. |
| `sections.education.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.education.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.education.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.education.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.education.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.education.items` | `array` | yes | — | The items to display in the education section. |
| `sections.education.items[]` | `object` | — | — | — |
| `sections.education.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
| `sections.education.items[].hidden` | `boolean` | yes | — | Whether to hide the item from the resume. |
| `sections.education.items[].school` | `string` | yes | minLength: 1 | The name of the school or institution. |
| `sections.education.items[].degree` | `string` | yes | — | The degree or qualification obtained. |
| `sections.education.items[].area` | `string` | yes | — | The area of study or specialization. |
| `sections.education.items[].grade` | `string` | yes | — | The grade or score achieved. |
| `sections.education.items[].location` | `string` | yes | — | The location of the school or institution. |
| `sections.education.items[].period` | `string` | yes | — | The period of time the education was obtained over. |
| `sections.education.items[].website` | `object` | no | default: {"url":"","label":"","inlineLink":false} | The website of the school or institution, if any. |
| `sections.education.items[].website.url` | `string` | yes | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `sections.education.items[].website.label` | `string` | yes | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `sections.education.items[].website.inlineLink` | `boolean` | no | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.education.items[].description` | `string` | yes | — | The description of the education. This should be a HTML-formatted string. |
| `sections.projects` | `object` | yes | — | The section to display the projects of the author. |
| `sections.projects.title` | `string` | yes | — | The title of the section. |
| `sections.projects.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.projects.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.projects.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.projects.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.projects.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.projects.items` | `array` | yes | — | The items to display in the projects section. |
| `sections.projects.items[]` | `object` | — | — | — |
| `sections.projects.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
| `sections.projects.items[].hidden` | `boolean` | yes | — | Whether to hide the item from the resume. |
| `sections.projects.items[].name` | `string` | yes | minLength: 1 | The name of the project. |
| `sections.projects.items[].period` | `string` | yes | — | The period of time the project was worked on. |
| `sections.projects.items[].website` | `object` | no | default: {"url":"","label":"","inlineLink":false} | The link to the project, if any. |
| `sections.projects.items[].website.url` | `string` | yes | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `sections.projects.items[].website.label` | `string` | yes | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `sections.projects.items[].website.inlineLink` | `boolean` | no | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.projects.items[].description` | `string` | yes | — | The description of the project. This should be a HTML-formatted string. |
| `sections.skills` | `object` | yes | — | The section to display the skills of the author. |
| `sections.skills.title` | `string` | yes | — | The title of the section. |
| `sections.skills.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.skills.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.skills.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.skills.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.skills.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.skills.items` | `array` | yes | — | The items to display in the skills section. |
| `sections.skills.items[]` | `object` | — | — | — |
| `sections.skills.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
| `sections.skills.items[].hidden` | `boolean` | yes | — | Whether to hide the item from the resume. |
| `sections.skills.items[].icon` | `string` | yes | — | The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available. |
| `sections.skills.items[].iconColor` | `string` | no | default: "" | Custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color. |
| `sections.skills.items[].name` | `string` | yes | minLength: 1 | The name of the skill. |
| `sections.skills.items[].proficiency` | `string` | yes | — | The proficiency level of the skill. Can be any text, such as 'Beginner', 'Intermediate', 'Advanced', etc. |
| `sections.skills.items[].level` | `number` | no | minimum: 0; maximum: 5; default: 0 | The proficiency level of the skill, defined as a number between 0 and 5. If set to 0, the icons displaying the level will be hidden. |
| `sections.skills.items[].keywords` | `array` | no | default: [] | The keywords associated with the skill, if any. These are displayed as tags below the name. |
| `sections.skills.items[].keywords[]` | `string` | — | — | — |
| `sections.languages` | `object` | yes | — | The section to display the languages of the author. |
| `sections.languages.title` | `string` | yes | — | The title of the section. |
| `sections.languages.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.languages.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.languages.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.languages.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.languages.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.languages.items` | `array` | yes | — | The items to display in the languages section. |
| `sections.languages.items[]` | `object` | — | — | — |
| `sections.languages.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
| `sections.languages.items[].hidden` | `boolean` | yes | — | Whether to hide the item from the resume. |
| `sections.languages.items[].language` | `string` | yes | minLength: 1 | The name of the language the author knows. |
| `sections.languages.items[].fluency` | `string` | yes | — | The fluency level of the language. Can be any text, such as 'Native', 'Fluent', 'Conversational', etc. or can also be a CEFR level (A1, A2, B1, B2, C1, C2). |
| `sections.languages.items[].level` | `number` | no | minimum: 0; maximum: 5; default: 0 | The proficiency level of the language, defined as a number between 0 and 5. If set to 0, the icons displaying the level will be hidden. |
| `sections.interests` | `object` | yes | — | The section to display the interests of the author. |
| `sections.interests.title` | `string` | yes | — | The title of the section. |
| `sections.interests.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.interests.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.interests.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.interests.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.interests.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.interests.items` | `array` | yes | — | The items to display in the interests section. |
| `sections.interests.items[]` | `object` | — | — | — |
| `sections.interests.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
| `sections.interests.items[].hidden` | `boolean` | yes | — | Whether to hide the item from the resume. |
| `sections.interests.items[].icon` | `string` | yes | — | The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available. |
| `sections.interests.items[].iconColor` | `string` | no | default: "" | Custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color. |
| `sections.interests.items[].name` | `string` | yes | minLength: 1 | The name of the interest/hobby. |
| `sections.interests.items[].keywords` | `array` | no | default: [] | The keywords associated with the interest/hobby, if any. These are displayed as tags below the name. |
| `sections.interests.items[].keywords[]` | `string` | — | — | — |
| `sections.awards` | `object` | yes | — | The section to display the awards of the author. |
| `sections.awards.title` | `string` | yes | — | The title of the section. |
| `sections.awards.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.awards.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.awards.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.awards.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.awards.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.awards.items` | `array` | yes | — | The items to display in the awards section. |
| `sections.awards.items[]` | `object` | — | — | — |
| `sections.awards.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
| `sections.awards.items[].hidden` | `boolean` | yes | — | Whether to hide the item from the resume. |
| `sections.awards.items[].title` | `string` | yes | minLength: 1 | The title of the award. |
| `sections.awards.items[].awarder` | `string` | yes | — | The awarder of the award. |
| `sections.awards.items[].date` | `string` | yes | — | The date when the award was received. |
| `sections.awards.items[].website` | `object` | no | default: {"url":"","label":"","inlineLink":false} | The website of the award, if any. |
| `sections.awards.items[].website.url` | `string` | yes | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `sections.awards.items[].website.label` | `string` | yes | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `sections.awards.items[].website.inlineLink` | `boolean` | no | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.awards.items[].description` | `string` | yes | — | The description of the award. This should be a HTML-formatted string. |
| `sections.certifications` | `object` | yes | — | The section to display the certifications of the author. |
| `sections.certifications.title` | `string` | yes | — | The title of the section. |
| `sections.certifications.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.certifications.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.certifications.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.certifications.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.certifications.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.certifications.items` | `array` | yes | — | The items to display in the certifications section. |
| `sections.certifications.items[]` | `object` | — | — | — |
| `sections.certifications.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
| `sections.certifications.items[].hidden` | `boolean` | yes | — | Whether to hide the item from the resume. |
| `sections.certifications.items[].title` | `string` | yes | minLength: 1 | The title of the certification. |
| `sections.certifications.items[].issuer` | `string` | yes | — | The issuer of the certification. |
| `sections.certifications.items[].date` | `string` | yes | — | The date when the certification was received. |
| `sections.certifications.items[].website` | `object` | no | default: {"url":"","label":"","inlineLink":false} | The website of the certification, if any. |
| `sections.certifications.items[].website.url` | `string` | yes | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `sections.certifications.items[].website.label` | `string` | yes | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `sections.certifications.items[].website.inlineLink` | `boolean` | no | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.certifications.items[].description` | `string` | yes | — | The description of the certification. This should be a HTML-formatted string. |
| `sections.publications` | `object` | yes | — | The section to display the publications of the author. |
| `sections.publications.title` | `string` | yes | — | The title of the section. |
| `sections.publications.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.publications.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.publications.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.publications.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.publications.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.publications.items` | `array` | yes | — | The items to display in the publications section. |
| `sections.publications.items[]` | `object` | — | — | — |
| `sections.publications.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
| `sections.publications.items[].hidden` | `boolean` | yes | — | Whether to hide the item from the resume. |
| `sections.publications.items[].title` | `string` | yes | minLength: 1 | The title of the publication. |
| `sections.publications.items[].publisher` | `string` | yes | — | The publisher of the publication. |
| `sections.publications.items[].date` | `string` | yes | — | The date when the publication was published. |
| `sections.publications.items[].website` | `object` | no | default: {"url":"","label":"","inlineLink":false} | The link to the publication, if any. |
| `sections.publications.items[].website.url` | `string` | yes | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `sections.publications.items[].website.label` | `string` | yes | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `sections.publications.items[].website.inlineLink` | `boolean` | no | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.publications.items[].description` | `string` | yes | — | The description of the publication. This should be a HTML-formatted string. |
| `sections.volunteer` | `object` | yes | — | The section to display the volunteer experience of the author. |
| `sections.volunteer.title` | `string` | yes | — | The title of the section. |
| `sections.volunteer.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.volunteer.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.volunteer.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.volunteer.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.volunteer.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.volunteer.items` | `array` | yes | — | The items to display in the volunteer section. |
| `sections.volunteer.items[]` | `object` | — | — | — |
| `sections.volunteer.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
| `sections.volunteer.items[].hidden` | `boolean` | yes | — | Whether to hide the item from the resume. |
| `sections.volunteer.items[].organization` | `string` | yes | minLength: 1 | The name of the organization or company. |
| `sections.volunteer.items[].location` | `string` | yes | — | The location of the organization or company. |
| `sections.volunteer.items[].period` | `string` | yes | — | The period of time the author was volunteered at the organization or company. |
| `sections.volunteer.items[].website` | `object` | no | default: {"url":"","label":"","inlineLink":false} | The link to the organization or company, if any. |
| `sections.volunteer.items[].website.url` | `string` | yes | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `sections.volunteer.items[].website.label` | `string` | yes | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `sections.volunteer.items[].website.inlineLink` | `boolean` | no | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.volunteer.items[].description` | `string` | yes | — | The description of the volunteer experience. This should be a HTML-formatted string. |
| `sections.references` | `object` | yes | — | The section to display the references of the author. |
| `sections.references.title` | `string` | yes | — | The title of the section. |
| `sections.references.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.references.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.references.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.references.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.references.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.references.items` | `array` | yes | — | The items to display in the references section. |
| `sections.references.items[]` | `object` | — | — | — |
| `sections.references.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
| `sections.references.items[].hidden` | `boolean` | yes | — | Whether to hide the item from the resume. |
| `sections.references.items[].name` | `string` | yes | minLength: 1 | The name of the reference, or a note such as 'Available upon request'. |
| `sections.references.items[].position` | `string` | yes | — | The position or job title of the reference. |
| `sections.references.items[].website` | `object` | no | default: {"url":"","label":"","inlineLink":false} | The website or LinkedIn profile of the reference, if any. |
| `sections.references.items[].website.url` | `string` | yes | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `sections.references.items[].website.label` | `string` | yes | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `sections.references.items[].website.inlineLink` | `boolean` | no | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.references.items[].phone` | `string` | yes | — | The phone number of the reference. |
| `sections.references.items[].description` | `string` | yes | — | The description of the reference. Can be used to display a quote, a testimonial, etc. This should be a HTML-formatted string. |
| `customSections` | `array` | yes | — | Custom sections of the resume, such as a custom section for notes, etc. |
| `customSections[]` | `object or object or object or object or object or object or object or object or object or object or object or object or object or object` | — | — | — |
| `customSections[]` | `object` | — (type summary, schema summaryItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type summary, schema summaryItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type summary, schema summaryItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type summary, schema summaryItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type summary, schema summaryItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type summary, schema summaryItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type summary, schema summaryItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type summary, schema summaryItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type summary, schema summaryItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type summary, schema summaryItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
| `customSections[].items[]` | `object` | — (type summary, schema summaryItemSchema at customSections[]) | — | — |
| `customSections[].items[].id` | `string` | yes (type summary, schema summaryItemSchema at customSections[]) | — | The unique identifier for the item. Usually generated as a UUID. |
| `customSections[].items[].hidden` | `boolean` | yes (type summary, schema summaryItemSchema at customSections[]) | — | Whether to hide the item from the resume. |
| `customSections[].items[].content` | `string` | yes (type summary, schema summaryItemSchema at customSections[]) | — | The rich text content of the summary item. This should be a HTML-formatted string. |
| `customSections[]` | `object` | — (type profiles, schema profileItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type profiles, schema profileItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type profiles, schema profileItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type profiles, schema profileItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type profiles, schema profileItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type profiles, schema profileItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type profiles, schema profileItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type profiles, schema profileItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type profiles, schema profileItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type profiles, schema profileItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
| `customSections[].items[]` | `object` | — (type profiles, schema profileItemSchema at customSections[]) | — | — |
| `customSections[].items[].id` | `string` | yes (type profiles, schema profileItemSchema at customSections[]) | — | The unique identifier for the item. Usually generated as a UUID. |
| `customSections[].items[].hidden` | `boolean` | yes (type profiles, schema profileItemSchema at customSections[]) | — | Whether to hide the item from the resume. |
| `customSections[].items[].icon` | `string` | yes (type profiles, schema profileItemSchema at customSections[]) | — | The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available. |
| `customSections[].items[].iconColor` | `string` | no (type profiles, schema profileItemSchema at customSections[]) | default: "" | Custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color. |
| `customSections[].items[].network` | `string` | yes (type profiles, schema profileItemSchema at customSections[]) | minLength: 1 | The name of the network or platform. |
| `customSections[].items[].username` | `string` | yes (type profiles, schema profileItemSchema at customSections[]) | — | The username of the author on the network or platform. |
| `customSections[].items[].website` | `object` | no (type profiles, schema profileItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The link to the profile of the author on the network or platform, if any. |
| `customSections[].items[].website.url` | `string` | yes (type profiles, schema profileItemSchema at customSections[]) | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `customSections[].items[].website.label` | `string` | yes (type profiles, schema profileItemSchema at customSections[]) | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `customSections[].items[].website.inlineLink` | `boolean` | no (type profiles, schema profileItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[]` | `object` | — (type experience, schema experienceItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type experience, schema experienceItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type experience, schema experienceItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type experience, schema experienceItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type experience, schema experienceItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type experience, schema experienceItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
| `customSections[].items[]` | `object` | — (type experience, schema experienceItemSchema at customSections[]) | — | — |
| `customSections[].items[].id` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The unique identifier for the item. Usually generated as a UUID. |
| `customSections[].items[].hidden` | `boolean` | yes (type experience, schema experienceItemSchema at customSections[]) | — | Whether to hide the item from the resume. |
| `customSections[].items[].company` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | minLength: 1 | The name of the company or organization. |
| `customSections[].items[].position` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The position held at the company or organization. Used when there is only a single role. If multiple roles are provided in the 'roles' field, this serves as a summary title or can be left blank. |
| `customSections[].items[].location` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The location of the company or organization. |
| `customSections[].items[].period` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The overall period of time at the company. When multiple roles are used, this should reflect the total tenure. |
| `customSections[].items[].website` | `object` | no (type experience, schema experienceItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The website of the company or organization, if any. |
| `customSections[].items[].website.url` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `customSections[].items[].website.label` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `customSections[].items[].website.inlineLink` | `boolean` | no (type experience, schema experienceItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].description` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The description of the experience. This should be a HTML-formatted string. |
| `customSections[].items[].roles` | `array` | no (type experience, schema experienceItemSchema at customSections[]) | default: [] | List of individual roles held at this company to show career progression. |
| `customSections[].items[].roles[]` | `object` | — (type experience, schema experienceItemSchema at customSections[]) | — | — |
| `customSections[].items[].roles[].id` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The unique identifier for the role. Usually generated as a UUID. |
| `customSections[].items[].roles[].position` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The position or job title for this role. |
| `customSections[].items[].roles[].period` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The period of time this role was held. |
| `customSections[].items[].roles[].description` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The description of this specific role. This should be a HTML-formatted string. |
| `customSections[]` | `object` | — (type education, schema educationItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type education, schema educationItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type education, schema educationItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type education, schema educationItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type education, schema educationItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type education, schema educationItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type education, schema educationItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type education, schema educationItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type education, schema educationItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type education, schema educationItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
| `customSections[].items[]` | `object` | — (type education, schema educationItemSchema at customSections[]) | — | — |
| `customSections[].items[].id` | `string` | yes (type education, schema educationItemSchema at customSections[]) | — | The unique identifier for the item. Usually generated as a UUID. |
| `customSections[].items[].hidden` | `boolean` | yes (type education, schema educationItemSchema at customSections[]) | — | Whether to hide the item from the resume. |
| `customSections[].items[].school` | `string` | yes (type education, schema educationItemSchema at customSections[]) | minLength: 1 | The name of the school or institution. |
| `customSections[].items[].degree` | `string` | yes (type education, schema educationItemSchema at customSections[]) | — | The degree or qualification obtained. |
| `customSections[].items[].area` | `string` | yes (type education, schema educationItemSchema at customSections[]) | — | The area of study or specialization. |
| `customSections[].items[].grade` | `string` | yes (type education, schema educationItemSchema at customSections[]) | — | The grade or score achieved. |
| `customSections[].items[].location` | `string` | yes (type education, schema educationItemSchema at customSections[]) | — | The location of the school or institution. |
| `customSections[].items[].period` | `string` | yes (type education, schema educationItemSchema at customSections[]) | — | The period of time the education was obtained over. |
| `customSections[].items[].website` | `object` | no (type education, schema educationItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The website of the school or institution, if any. |
| `customSections[].items[].website.url` | `string` | yes (type education, schema educationItemSchema at customSections[]) | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `customSections[].items[].website.label` | `string` | yes (type education, schema educationItemSchema at customSections[]) | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `customSections[].items[].website.inlineLink` | `boolean` | no (type education, schema educationItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].description` | `string` | yes (type education, schema educationItemSchema at customSections[]) | — | The description of the education. This should be a HTML-formatted string. |
| `customSections[]` | `object` | — (type projects, schema projectItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type projects, schema projectItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type projects, schema projectItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type projects, schema projectItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type projects, schema projectItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type projects, schema projectItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type projects, schema projectItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type projects, schema projectItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type projects, schema projectItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type projects, schema projectItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
| `customSections[].items[]` | `object` | — (type projects, schema projectItemSchema at customSections[]) | — | — |
| `customSections[].items[].id` | `string` | yes (type projects, schema projectItemSchema at customSections[]) | — | The unique identifier for the item. Usually generated as a UUID. |
| `customSections[].items[].hidden` | `boolean` | yes (type projects, schema projectItemSchema at customSections[]) | — | Whether to hide the item from the resume. |
| `customSections[].items[].name` | `string` | yes (type projects, schema projectItemSchema at customSections[]) | minLength: 1 | The name of the project. |
| `customSections[].items[].period` | `string` | yes (type projects, schema projectItemSchema at customSections[]) | — | The period of time the project was worked on. |
| `customSections[].items[].website` | `object` | no (type projects, schema projectItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The link to the project, if any. |
| `customSections[].items[].website.url` | `string` | yes (type projects, schema projectItemSchema at customSections[]) | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `customSections[].items[].website.label` | `string` | yes (type projects, schema projectItemSchema at customSections[]) | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `customSections[].items[].website.inlineLink` | `boolean` | no (type projects, schema projectItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].description` | `string` | yes (type projects, schema projectItemSchema at customSections[]) | — | The description of the project. This should be a HTML-formatted string. |
| `customSections[]` | `object` | — (type skills, schema skillItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type skills, schema skillItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type skills, schema skillItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type skills, schema skillItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type skills, schema skillItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type skills, schema skillItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type skills, schema skillItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type skills, schema skillItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type skills, schema skillItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type skills, schema skillItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
| `customSections[].items[]` | `object` | — (type skills, schema skillItemSchema at customSections[]) | — | — |
| `customSections[].items[].id` | `string` | yes (type skills, schema skillItemSchema at customSections[]) | — | The unique identifier for the item. Usually generated as a UUID. |
| `customSections[].items[].hidden` | `boolean` | yes (type skills, schema skillItemSchema at customSections[]) | — | Whether to hide the item from the resume. |
| `customSections[].items[].icon` | `string` | yes (type skills, schema skillItemSchema at customSections[]) | — | The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available. |
| `customSections[].items[].iconColor` | `string` | no (type skills, schema skillItemSchema at customSections[]) | default: "" | Custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color. |
| `customSections[].items[].name` | `string` | yes (type skills, schema skillItemSchema at customSections[]) | minLength: 1 | The name of the skill. |
| `customSections[].items[].proficiency` | `string` | yes (type skills, schema skillItemSchema at customSections[]) | — | The proficiency level of the skill. Can be any text, such as 'Beginner', 'Intermediate', 'Advanced', etc. |
| `customSections[].items[].level` | `number` | no (type skills, schema skillItemSchema at customSections[]) | minimum: 0; maximum: 5; default: 0 | The proficiency level of the skill, defined as a number between 0 and 5. If set to 0, the icons displaying the level will be hidden. |
| `customSections[].items[].keywords` | `array` | no (type skills, schema skillItemSchema at customSections[]) | default: [] | The keywords associated with the skill, if any. These are displayed as tags below the name. |
| `customSections[].items[].keywords[]` | `string` | — (type skills, schema skillItemSchema at customSections[]) | — | — |
| `customSections[]` | `object` | — (type languages, schema languageItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type languages, schema languageItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type languages, schema languageItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type languages, schema languageItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type languages, schema languageItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type languages, schema languageItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type languages, schema languageItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type languages, schema languageItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type languages, schema languageItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type languages, schema languageItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
| `customSections[].items[]` | `object` | — (type languages, schema languageItemSchema at customSections[]) | — | — |
| `customSections[].items[].id` | `string` | yes (type languages, schema languageItemSchema at customSections[]) | — | The unique identifier for the item. Usually generated as a UUID. |
| `customSections[].items[].hidden` | `boolean` | yes (type languages, schema languageItemSchema at customSections[]) | — | Whether to hide the item from the resume. |
| `customSections[].items[].language` | `string` | yes (type languages, schema languageItemSchema at customSections[]) | minLength: 1 | The name of the language the author knows. |
| `customSections[].items[].fluency` | `string` | yes (type languages, schema languageItemSchema at customSections[]) | — | The fluency level of the language. Can be any text, such as 'Native', 'Fluent', 'Conversational', etc. or can also be a CEFR level (A1, A2, B1, B2, C1, C2). |
| `customSections[].items[].level` | `number` | no (type languages, schema languageItemSchema at customSections[]) | minimum: 0; maximum: 5; default: 0 | The proficiency level of the language, defined as a number between 0 and 5. If set to 0, the icons displaying the level will be hidden. |
| `customSections[]` | `object` | — (type interests, schema interestItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type interests, schema interestItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type interests, schema interestItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type interests, schema interestItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type interests, schema interestItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type interests, schema interestItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type interests, schema interestItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type interests, schema interestItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type interests, schema interestItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type interests, schema interestItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
| `customSections[].items[]` | `object` | — (type interests, schema interestItemSchema at customSections[]) | — | — |
| `customSections[].items[].id` | `string` | yes (type interests, schema interestItemSchema at customSections[]) | — | The unique identifier for the item. Usually generated as a UUID. |
| `customSections[].items[].hidden` | `boolean` | yes (type interests, schema interestItemSchema at customSections[]) | — | Whether to hide the item from the resume. |
| `customSections[].items[].icon` | `string` | yes (type interests, schema interestItemSchema at customSections[]) | — | The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available. |
| `customSections[].items[].iconColor` | `string` | no (type interests, schema interestItemSchema at customSections[]) | default: "" | Custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color. |
| `customSections[].items[].name` | `string` | yes (type interests, schema interestItemSchema at customSections[]) | minLength: 1 | The name of the interest/hobby. |
| `customSections[].items[].keywords` | `array` | no (type interests, schema interestItemSchema at customSections[]) | default: [] | The keywords associated with the interest/hobby, if any. These are displayed as tags below the name. |
| `customSections[].items[].keywords[]` | `string` | — (type interests, schema interestItemSchema at customSections[]) | — | — |
| `customSections[]` | `object` | — (type awards, schema awardItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type awards, schema awardItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type awards, schema awardItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type awards, schema awardItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type awards, schema awardItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type awards, schema awardItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type awards, schema awardItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type awards, schema awardItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type awards, schema awardItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type awards, schema awardItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
| `customSections[].items[]` | `object` | — (type awards, schema awardItemSchema at customSections[]) | — | — |
| `customSections[].items[].id` | `string` | yes (type awards, schema awardItemSchema at customSections[]) | — | The unique identifier for the item. Usually generated as a UUID. |
| `customSections[].items[].hidden` | `boolean` | yes (type awards, schema awardItemSchema at customSections[]) | — | Whether to hide the item from the resume. |
| `customSections[].items[].title` | `string` | yes (type awards, schema awardItemSchema at customSections[]) | minLength: 1 | The title of the award. |
| `customSections[].items[].awarder` | `string` | yes (type awards, schema awardItemSchema at customSections[]) | — | The awarder of the award. |
| `customSections[].items[].date` | `string` | yes (type awards, schema awardItemSchema at customSections[]) | — | The date when the award was received. |
| `customSections[].items[].website` | `object` | no (type awards, schema awardItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The website of the award, if any. |
| `customSections[].items[].website.url` | `string` | yes (type awards, schema awardItemSchema at customSections[]) | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `customSections[].items[].website.label` | `string` | yes (type awards, schema awardItemSchema at customSections[]) | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `customSections[].items[].website.inlineLink` | `boolean` | no (type awards, schema awardItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].description` | `string` | yes (type awards, schema awardItemSchema at customSections[]) | — | The description of the award. This should be a HTML-formatted string. |
| `customSections[]` | `object` | — (type certifications, schema certificationItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type certifications, schema certificationItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type certifications, schema certificationItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type certifications, schema certificationItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type certifications, schema certificationItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type certifications, schema certificationItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type certifications, schema certificationItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type certifications, schema certificationItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type certifications, schema certificationItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type certifications, schema certificationItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
| `customSections[].items[]` | `object` | — (type certifications, schema certificationItemSchema at customSections[]) | — | — |
| `customSections[].items[].id` | `string` | yes (type certifications, schema certificationItemSchema at customSections[]) | — | The unique identifier for the item. Usually generated as a UUID. |
| `customSections[].items[].hidden` | `boolean` | yes (type certifications, schema certificationItemSchema at customSections[]) | — | Whether to hide the item from the resume. |
| `customSections[].items[].title` | `string` | yes (type certifications, schema certificationItemSchema at customSections[]) | minLength: 1 | The title of the certification. |
| `customSections[].items[].issuer` | `string` | yes (type certifications, schema certificationItemSchema at customSections[]) | — | The issuer of the certification. |
| `customSections[].items[].date` | `string` | yes (type certifications, schema certificationItemSchema at customSections[]) | — | The date when the certification was received. |
| `customSections[].items[].website` | `object` | no (type certifications, schema certificationItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The website of the certification, if any. |
| `customSections[].items[].website.url` | `string` | yes (type certifications, schema certificationItemSchema at customSections[]) | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `customSections[].items[].website.label` | `string` | yes (type certifications, schema certificationItemSchema at customSections[]) | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `customSections[].items[].website.inlineLink` | `boolean` | no (type certifications, schema certificationItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].description` | `string` | yes (type certifications, schema certificationItemSchema at customSections[]) | — | The description of the certification. This should be a HTML-formatted string. |
| `customSections[]` | `object` | — (type publications, schema publicationItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type publications, schema publicationItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type publications, schema publicationItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type publications, schema publicationItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type publications, schema publicationItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type publications, schema publicationItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type publications, schema publicationItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type publications, schema publicationItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type publications, schema publicationItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type publications, schema publicationItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
| `customSections[].items[]` | `object` | — (type publications, schema publicationItemSchema at customSections[]) | — | — |
| `customSections[].items[].id` | `string` | yes (type publications, schema publicationItemSchema at customSections[]) | — | The unique identifier for the item. Usually generated as a UUID. |
| `customSections[].items[].hidden` | `boolean` | yes (type publications, schema publicationItemSchema at customSections[]) | — | Whether to hide the item from the resume. |
| `customSections[].items[].title` | `string` | yes (type publications, schema publicationItemSchema at customSections[]) | minLength: 1 | The title of the publication. |
| `customSections[].items[].publisher` | `string` | yes (type publications, schema publicationItemSchema at customSections[]) | — | The publisher of the publication. |
| `customSections[].items[].date` | `string` | yes (type publications, schema publicationItemSchema at customSections[]) | — | The date when the publication was published. |
| `customSections[].items[].website` | `object` | no (type publications, schema publicationItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The link to the publication, if any. |
| `customSections[].items[].website.url` | `string` | yes (type publications, schema publicationItemSchema at customSections[]) | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `customSections[].items[].website.label` | `string` | yes (type publications, schema publicationItemSchema at customSections[]) | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `customSections[].items[].website.inlineLink` | `boolean` | no (type publications, schema publicationItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].description` | `string` | yes (type publications, schema publicationItemSchema at customSections[]) | — | The description of the publication. This should be a HTML-formatted string. |
| `customSections[]` | `object` | — (type volunteer, schema volunteerItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type volunteer, schema volunteerItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type volunteer, schema volunteerItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type volunteer, schema volunteerItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type volunteer, schema volunteerItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
| `customSections[].items[]` | `object` | — (type volunteer, schema volunteerItemSchema at customSections[]) | — | — |
| `customSections[].items[].id` | `string` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | — | The unique identifier for the item. Usually generated as a UUID. |
| `customSections[].items[].hidden` | `boolean` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | — | Whether to hide the item from the resume. |
| `customSections[].items[].organization` | `string` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | minLength: 1 | The name of the organization or company. |
| `customSections[].items[].location` | `string` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | — | The location of the organization or company. |
| `customSections[].items[].period` | `string` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | — | The period of time the author was volunteered at the organization or company. |
| `customSections[].items[].website` | `object` | no (type volunteer, schema volunteerItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The link to the organization or company, if any. |
| `customSections[].items[].website.url` | `string` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `customSections[].items[].website.label` | `string` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `customSections[].items[].website.inlineLink` | `boolean` | no (type volunteer, schema volunteerItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].description` | `string` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | — | The description of the volunteer experience. This should be a HTML-formatted string. |
| `customSections[]` | `object` | — (type references, schema referenceItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type references, schema referenceItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type references, schema referenceItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type references, schema referenceItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type references, schema referenceItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type references, schema referenceItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type references, schema referenceItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type references, schema referenceItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type references, schema referenceItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type references, schema referenceItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
| `customSections[].items[]` | `object` | — (type references, schema referenceItemSchema at customSections[]) | — | — |
| `customSections[].items[].id` | `string` | yes (type references, schema referenceItemSchema at customSections[]) | — | The unique identifier for the item. Usually generated as a UUID. |
| `customSections[].items[].hidden` | `boolean` | yes (type references, schema referenceItemSchema at customSections[]) | — | Whether to hide the item from the resume. |
| `customSections[].items[].name` | `string` | yes (type references, schema referenceItemSchema at customSections[]) | minLength: 1 | The name of the reference, or a note such as 'Available upon request'. |
| `customSections[].items[].position` | `string` | yes (type references, schema referenceItemSchema at customSections[]) | — | The position or job title of the reference. |
| `customSections[].items[].website` | `object` | no (type references, schema referenceItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The website or LinkedIn profile of the reference, if any. |
| `customSections[].items[].website.url` | `string` | yes (type references, schema referenceItemSchema at customSections[]) | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `customSections[].items[].website.label` | `string` | yes (type references, schema referenceItemSchema at customSections[]) | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `customSections[].items[].website.inlineLink` | `boolean` | no (type references, schema referenceItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].phone` | `string` | yes (type references, schema referenceItemSchema at customSections[]) | — | The phone number of the reference. |
| `customSections[].items[].description` | `string` | yes (type references, schema referenceItemSchema at customSections[]) | — | The description of the reference. Can be used to display a quote, a testimonial, etc. This should be a HTML-formatted string. |
| `customSections[]` | `object` | — (type cover-letter, schema coverLetterItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type cover-letter, schema coverLetterItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type cover-letter, schema coverLetterItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type cover-letter, schema coverLetterItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type cover-letter, schema coverLetterItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type cover-letter, schema coverLetterItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type cover-letter, schema coverLetterItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type cover-letter, schema coverLetterItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type cover-letter, schema coverLetterItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type cover-letter, schema coverLetterItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
| `customSections[].items[]` | `object` | — (type cover-letter, schema coverLetterItemSchema at customSections[]) | — | — |
| `customSections[].items[].id` | `string` | yes (type cover-letter, schema coverLetterItemSchema at customSections[]) | — | The unique identifier for the item. Usually generated as a UUID. |
| `customSections[].items[].hidden` | `boolean` | yes (type cover-letter, schema coverLetterItemSchema at customSections[]) | — | Whether to hide the item from the resume. |
| `customSections[].items[].recipient` | `string` | yes (type cover-letter, schema coverLetterItemSchema at customSections[]) | — | The recipient's address block as HTML (name, title, company, address, email). |
| `customSections[].items[].content` | `string` | yes (type cover-letter, schema coverLetterItemSchema at customSections[]) | — | The cover letter body as HTML (salutation, paragraphs, closing, signature). |
| `metadata` | `object` | yes | — | Metadata for the resume, such as template, layout, typography, etc. This section describes the overall design and appearance of the resume. |
| `metadata.template` | `string` | no | enum: ["azurill","bronzor","chikorita","ditgar","ditto","gengar","glalie","kakuna","lapras","leafish","meowth","onyx","pikachu","rhyhorn","scizor"]; default: "onyx" | The template to use for the resume. Determines the overall design and appearance of the resume. |
| `metadata.layout` | `object` | yes | — | The layout of the resume. Determines the structure and arrangement of the sections on the resume. |
| `metadata.layout.sidebarWidth` | `number` | no | minimum: 10; maximum: 50; default: 35 | The width of the sidebar column, defined as a percentage of the page width. |
| `metadata.layout.pages` | `array` | yes | — | The pages to display in the layout. |
| `metadata.layout.pages[]` | `object` | — | — | — |
| `metadata.layout.pages[].fullWidth` | `boolean` | yes | — | Whether the layout of the page should be full width. If true, the main column will span the entire width of the page. This means that there should be no items in the sidebar column. |
| `metadata.layout.pages[].main` | `array` | yes | — | The items to display in the main column of the page. A string array of section IDs (experience, education, projects, skills, languages, interests, awards, certifications, publications, volunteer, references, profiles, summary or UUIDs for custom sections). |
| `metadata.layout.pages[].main[]` | `string` | — | — | — |
| `metadata.layout.pages[].sidebar` | `array` | yes | — | The items to display in the sidebar column of the page. A string array of section IDs (experience, education, projects, skills, languages, interests, awards, certifications, publications, volunteer, references, profiles, summary or UUIDs for custom sections). |
| `metadata.layout.pages[].sidebar[]` | `string` | — | — | — |
| `metadata.page` | `object` | yes | — | The page settings of the resume. Determines the margins, format, and locale of the resume. |
| `metadata.page.gapX` | `number` | yes | minimum: 0 | The horizontal gap between the sections of the page, defined in points (pt). |
| `metadata.page.gapY` | `number` | yes | minimum: 0 | The vertical gap between the sections of the page, defined in points (pt). |
| `metadata.page.marginX` | `number` | no | minimum: 0; maximum: 100; default: 14 | The horizontal margin of the page, defined in points (pt). |
| `metadata.page.marginY` | `number` | no | minimum: 0; maximum: 100; default: 12 | The vertical margin of the page, defined in points (pt). |
| `metadata.page.format` | `string` | no | enum: ["a4","letter","free-form"]; default: "a4" | The format of the page. Can be 'a4', 'letter', or 'free-form'. |
| `metadata.page.locale` | `string` | no | default: "en-US" | The locale of the page. Used for displaying pre-translated section headings, if not overridden. |
| `metadata.page.hideLinkUnderline` | `boolean` | no | default: false | Whether to hide the underlines of the links. |
| `metadata.page.hideIcons` | `boolean` | no | default: false | Whether to hide the item-level icons (skills, profiles, interests). |
| `metadata.page.hideSectionIcons` | `boolean` | no | default: true | Whether to hide the section heading icons displayed before section titles. |
| `metadata.design` | `object` | yes | — | The design settings of the resume. Determines the colors, level designs, and typography of the resume. |
| `metadata.design.level` | `object` | yes | — | — |
| `metadata.design.level.icon` | `string` | yes | — | The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available. |
| `metadata.design.level.type` | `string` | yes | enum: ["hidden","circle","square","rectangle","rectangle-full","progress-bar","icon"] | The type of the level design. 'hidden' will hide the level design, 'circle' will display a circle, 'square' will display a square, 'rectangle' will display a rectangle, 'rectangle-full' will display a full rectangle, 'progress-bar' will display a progress bar, and 'icon' will display an icon. If 'icon' is selected, the icon to display should be specified in the 'icon' field. |
| `metadata.design.colors` | `object` | yes | — | — |
| `metadata.design.colors.primary` | `string` | yes | — | The primary color of the design, defined as rgba(r, g, b, a). |
| `metadata.design.colors.text` | `string` | yes | — | The text color of the design, defined as rgba(r, g, b, a). Usually set to black: rgba(0, 0, 0, 1). |
| `metadata.design.colors.background` | `string` | yes | — | The background color of the design, defined as rgba(r, g, b, a). Usually set to white: rgba(255, 255, 255, 1). |
| `metadata.typography` | `object` | yes | — | The typography settings of the resume. Determines the fonts and sizes of the body and headings of the resume. |
| `metadata.typography.body` | `object` | yes | — | The typography for the body of the resume. |
| `metadata.typography.body.fontFamily` | `string` | yes | — | The family of the font to use. Must be a supported resume font. |
| `metadata.typography.body.fontWeights` | `array` | no | default: ["400"] | The weight of the font, defined as a number between 100 and 900. Default to 400 when unsure if the weight is available in the font. |
| `metadata.typography.body.fontWeights[]` | `string` | — | enum: ["100","200","300","400","500","600","700","800","900"] | — |
| `metadata.typography.body.fontSize` | `number` | no | minimum: 6; maximum: 24; default: 11 | The size of the font to use, defined in points (pt). |
| `metadata.typography.body.lineHeight` | `number` | no | minimum: 0.5; maximum: 4; default: 1.5 | The line height of the font to use, defined as a multiplier of the font size (e.g. 1.5 for 1.5x). |
| `metadata.typography.heading` | `object` | yes | — | The typography for the headings of the resume. |
| `metadata.typography.heading.fontFamily` | `string` | yes | — | The family of the font to use. Must be a supported resume font. |
| `metadata.typography.heading.fontWeights` | `array` | no | default: ["400"] | The weight of the font, defined as a number between 100 and 900. Default to 400 when unsure if the weight is available in the font. |
| `metadata.typography.heading.fontWeights[]` | `string` | — | enum: ["100","200","300","400","500","600","700","800","900"] | — |
| `metadata.typography.heading.fontSize` | `number` | no | minimum: 6; maximum: 24; default: 11 | The size of the font to use, defined in points (pt). |
| `metadata.typography.heading.lineHeight` | `number` | no | minimum: 0.5; maximum: 4; default: 1.5 | The line height of the font to use, defined as a multiplier of the font size (e.g. 1.5 for 1.5x). |
| `metadata.notes` | `string` | yes | — | Personal notes for the resume. Can be used to add any additional information or instructions for the resume. These notes are not displayed on the resume, they are only visible to the author of the resume when editing the resume. This should be a HTML-formatted string. |
| `metadata.styleRules` | `array` | no | default: [] | Structured style rules that target semantic resume sections and slots for React PDF rendering. |
| `metadata.styleRules[]` | `any` | — | — | — |
| `metadata.stylesheet` | `object` | no | — | — |
| `metadata.stylesheet.mode` | `string` | yes | enum: ["legacy","semantic"] | — |
| `metadata.stylesheet.source` | `object` | yes | — | — |
| `metadata.stylesheet.source.languageVersion` | `integer` | yes | exclusiveMinimum: 0; maximum: 9007199254740991 | — |
| `metadata.stylesheet.source.text` | `string` | yes | — | — |
| `metadata.stylesheet.applied` | `object` | yes | — | — |
| `metadata.stylesheet.applied.languageVersion` | `integer` | yes | exclusiveMinimum: 0; maximum: 9007199254740991 | — |
| `metadata.stylesheet.applied.text` | `string` | yes | — | — |
