---
title: "Exporting your resume"
description: "Learn how to export your resume as a PDF or JSON file, and discover how JSON exports can be used with AI assistants like ChatGPT or Claude."
---

Reactive Resume lets you export your resume in two formats: **PDF** and **JSON**. Each format serves a different purpose—PDFs are ideal for sharing with recruiters and uploading to job applications, while JSON files are perfect for backups, importing into other tools, or working with AI assistants.

## Where to find the Export section

In the resume builder, open the **right sidebar** and select **Export**.

You'll see two export options:

- **JSON** - Download a machine-readable copy of your resume data
- **PDF** - Download a print-ready version of your resume

## Exporting as PDF

Click the **PDF** button to generate and download a PDF version of your resume.

<Info>
  The PDF is rendered server-side using your current resume data and template settings. What you see in the preview is
  what you'll get in the PDF, split into multiple pages if necessary.
</Info>

### When to use PDF exports

- **Job applications** - Most applicant tracking systems (ATS) accept PDF uploads
- **Sharing with recruiters** - PDFs are universally readable and preserve your formatting
- **Printing** - PDFs are print-ready and maintain exact layout on paper
- **Email attachments** - Easy to attach and share via email

<Tip>Before exporting, double-check your resume in the live preview.</Tip>

## Exporting as JSON

Click the **JSON** button to download your resume as a JSON file.

The JSON file contains your **complete resume data**, including:

- Personal information (name, email, phone, location, etc.)
- All sections (experience, education, projects, skills, etc.)
- Custom sections
- Template and design settings (colors, fonts, layout, spacing)
- Metadata (page format, margins, typography)

### When to use JSON exports

<AccordionGroup>
  <Accordion title="Backup and version control" icon="floppy-disk">
    Keep local backups of your resume data. If you ever need to restore or compare versions, you can import the JSON file back into Reactive Resume.
  </Accordion>

<Accordion title="Import into Reactive Resume" icon="file-import">
  You can import a JSON export back into Reactive Resume to create a new resume based on that data. This is useful for
  creating variations or restoring from a backup.
</Accordion>

  <Accordion title="Use with AI assistants (ChatGPT, Claude, etc.)" icon="robot">
    JSON files are structured data that AI assistants can read and understand. You can share your resume JSON with an AI to get suggestions, rewrites, or entirely new content tailored to a specific job.
  </Accordion>
</AccordionGroup>

## Using JSON exports with AI assistants

One of the most powerful uses for JSON exports is working with AI assistants like **ChatGPT**, **Claude**, or other LLMs. Because the JSON file contains structured, machine-readable data, AI assistants can:

1. **Read and understand your resume** - The AI can parse your experience, skills, and other sections
2. **Suggest improvements** - Ask the AI to rewrite bullet points, improve descriptions, or suggest keywords
3. **Tailor your resume** - Provide a job description and ask the AI to modify your resume to match
4. **Generate cover letters** - Use your resume data to draft a matching cover letter
5. **Create multiple versions** - Ask the AI to create variations for different roles or industries

### Example workflow with an AI assistant

<Steps>
  <Step title="Export your resume as JSON">
    In the resume builder, go to **Export** and click **JSON** to download your resume data.
  </Step>

  <Step title="Share the JSON with your AI assistant">
    Upload the JSON file to ChatGPT, Claude, or paste its contents into the chat. You can say something like:

    > "Here is my resume in JSON format. Please review it and suggest improvements for a Senior Software Engineer role at a fintech company."

  </Step>

  <Step title="Ask the AI to modify the JSON">
    The AI can make changes directly to the JSON structure. For example:

    > "Please update my experience descriptions to be more quantitative and action-oriented. Return the modified JSON."

  </Step>

  <Step title="Import the modified JSON back into Reactive Resume">
    1. Go to your **Dashboard**
    2. Click **Import an existing resume**
    3. Select **Reactive Resume (JSON)** as the type
    4. Upload the modified JSON file

    A new resume will be created with the AI's changes applied.

  </Step>
</Steps>

<Warning>
  Always review AI-generated changes before using them. AI assistants can make mistakes or suggest content that doesn't
  accurately reflect your experience.
</Warning>

### Example prompts for AI assistants

Here are some prompts you can use after sharing your resume JSON:

| Goal                  | Example Prompt                                                                                             |
| --------------------- | ---------------------------------------------------------------------------------------------------------- |
| General review        | "Review my resume and suggest 3-5 improvements to make it more impactful."                                 |
| Tailor to a job       | "Here's a job description for [role]. Update my resume JSON to better match this position."                |
| Improve bullet points | "Rewrite my experience descriptions to start with strong action verbs and include metrics where possible." |
| Add keywords          | "Add relevant keywords for [industry/role] to my skills and experience sections."                          |
| Shorten resume        | "Condense my resume to fit on one page while keeping the most important information."                      |
| Create a summary      | "Write a compelling 2-3 sentence professional summary based on my experience."                             |

## JSON schema reference

The exported JSON follows the Reactive Resume schema. Here's a high-level overview of the structure:

```json
{
  "$schema": "http://json-schema.org/draft-07/schema",
  "type": "object",
  "properties": {
    "picture": {
      "type": "object",
      "properties": {
        "hidden": { "type": "boolean", "description": "Whether to hide the picture from the resume." },
        "url": {
          "type": "string",
          "description": "The URL to the picture to display on the resume. Must be a valid URL with a protocol (http:// or https://). Leave blank to hide."
        },
        "size": {
          "type": "number",
          "minimum": 32,
          "maximum": 512,
          "description": "The size of the picture to display on the resume, defined in points (pt)."
        },
        "rotation": {
          "type": "number",
          "minimum": 0,
          "maximum": 360,
          "description": "The rotation of the picture to display on the resume, defined in degrees (°)."
        },
        "aspectRatio": {
          "type": "number",
          "minimum": 0.5,
          "maximum": 2.5,
          "description": "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)."
        },
        "borderRadius": {
          "type": "number",
          "minimum": 0,
          "maximum": 100,
          "description": "The border radius of the picture to display on the resume, defined in points (pt)."
        },
        "borderColor": {
          "type": "string",
          "description": "The color of the border of the picture to display on the resume, defined as rgba(r, g, b, a)."
        },
        "borderWidth": {
          "type": "number",
          "minimum": 0,
          "description": "The width of the border of the picture to display on the resume, defined in points (pt)."
        },
        "shadowColor": {
          "type": "string",
          "description": "The color of the shadow of the picture to display on the resume, defined as rgba(r, g, b, a)."
        },
        "shadowWidth": {
          "type": "number",
          "minimum": 0,
          "description": "The width of the shadow of the picture to display on the resume, defined in points (pt)."
        }
      },
      "required": [
        "hidden",
        "url",
        "size",
        "rotation",
        "aspectRatio",
        "borderRadius",
        "borderColor",
        "borderWidth",
        "shadowColor",
        "shadowWidth"
      ],
      "additionalProperties": false,
      "description": "Configuration for photograph displayed on the resume"
    },
    "basics": {
      "type": "object",
      "properties": {
        "name": { "type": "string", "description": "The full name of the author of the resume." },
        "headline": { "type": "string", "description": "The headline of the author of the resume." },
        "email": {
          "anyOf": [
            {
              "type": "string",
              "format": "email",
              "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
            },
            { "type": "string", "const": "" }
          ],
          "description": "The email address of the author of the resume. Leave blank to hide."
        },
        "phone": {
          "type": "string",
          "description": "The phone number of the author of the resume. Leave blank to hide."
        },
        "location": { "type": "string", "description": "The location of the author of the resume." },
        "website": {
          "type": "object",
          "properties": {
            "url": {
              "type": "string",
              "description": "The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). Leave blank to hide."
            },
            "label": {
              "type": "string",
              "description": "The label to display for the URL. Leave blank to display the URL as-is."
            }
          },
          "required": ["url", "label"],
          "additionalProperties": false,
          "description": "The website of the author of the resume."
        },
        "customFields": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier for the custom field. Usually generated as a UUID."
              },
              "icon": {
                "type": "string",
                "description": "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."
              },
              "text": { "type": "string", "description": "The text to display for the custom field." }
            },
            "required": ["id", "icon", "text"],
            "additionalProperties": false
          },
          "description": "The custom fields to display on the resume."
        }
      },
      "required": ["name", "headline", "email", "phone", "location", "website", "customFields"],
      "additionalProperties": false,
      "description": "Basic information about the author, such as name, email, phone, location, and website"
    },
    "summary": {
      "type": "object",
      "properties": {
        "title": { "type": "string", "description": "The title of the summary of the resume." },
        "columns": { "type": "number", "description": "The number of columns the summary should span across." },
        "hidden": { "type": "boolean", "description": "Whether to hide the summary from the resume." },
        "content": {
          "type": "string",
          "description": "The content of the summary of the resume. This should be a HTML-formatted string. Leave blank to hide."
        }
      },
      "required": ["title", "columns", "hidden", "content"],
      "additionalProperties": false,
      "description": "Summary section of the resume, useful for a short bio or introduction"
    },
    "sections": {
      "type": "object",
      "properties": {
        "profiles": {
          "type": "object",
          "properties": {
            "title": { "type": "string", "description": "The title of the section." },
            "columns": { "type": "number", "description": "The number of columns the section should span across." },
            "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." },
            "items": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The unique identifier for the item. Usually generated as a UUID."
                  },
                  "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." },
                  "icon": {
                    "type": "string",
                    "description": "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."
                  },
                  "network": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The name of the network or platform."
                  },
                  "username": {
                    "type": "string",
                    "description": "The username of the author on the network or platform."
                  },
                  "website": {
                    "type": "object",
                    "properties": {
                      "url": {
                        "type": "string",
                        "description": "The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). Leave blank to hide."
                      },
                      "label": {
                        "type": "string",
                        "description": "The label to display for the URL. Leave blank to display the URL as-is."
                      }
                    },
                    "required": ["url", "label"],
                    "additionalProperties": false,
                    "description": "The link to the profile of the author on the network or platform, if any."
                  }
                },
                "required": ["id", "hidden", "icon", "network", "username", "website"],
                "additionalProperties": false
              },
              "description": "The items to display in the profiles section."
            }
          },
          "required": ["title", "columns", "hidden", "items"],
          "additionalProperties": false,
          "description": "The section to display the profiles of the author."
        },
        "experience": {
          "type": "object",
          "properties": {
            "title": { "type": "string", "description": "The title of the section." },
            "columns": { "type": "number", "description": "The number of columns the section should span across." },
            "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." },
            "items": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The unique identifier for the item. Usually generated as a UUID."
                  },
                  "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." },
                  "company": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The name of the company or organization."
                  },
                  "position": { "type": "string", "description": "The position held at the company or organization." },
                  "location": { "type": "string", "description": "The location of the company or organization." },
                  "period": {
                    "type": "string",
                    "description": "The period of time the author was employed at the company or organization."
                  },
                  "website": {
                    "type": "object",
                    "properties": {
                      "url": {
                        "type": "string",
                        "description": "The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). Leave blank to hide."
                      },
                      "label": {
                        "type": "string",
                        "description": "The label to display for the URL. Leave blank to display the URL as-is."
                      }
                    },
                    "required": ["url", "label"],
                    "additionalProperties": false,
                    "description": "The website of the company or organization, if any."
                  },
                  "description": {
                    "type": "string",
                    "description": "The description of the experience. This should be a HTML-formatted string. Leave blank to hide."
                  }
                },
                "required": ["id", "hidden", "company", "position", "location", "period", "website", "description"],
                "additionalProperties": false
              },
              "description": "The items to display in the experience section."
            }
          },
          "required": ["title", "columns", "hidden", "items"],
          "additionalProperties": false,
          "description": "The section to display the experience of the author."
        },
        "education": {
          "type": "object",
          "properties": {
            "title": { "type": "string", "description": "The title of the section." },
            "columns": { "type": "number", "description": "The number of columns the section should span across." },
            "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." },
            "items": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The unique identifier for the item. Usually generated as a UUID."
                  },
                  "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." },
                  "school": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The name of the school or institution."
                  },
                  "degree": { "type": "string", "description": "The degree or qualification obtained." },
                  "area": { "type": "string", "description": "The area of study or specialization." },
                  "grade": { "type": "string", "description": "The grade or score achieved." },
                  "location": { "type": "string", "description": "The location of the school or institution." },
                  "period": { "type": "string", "description": "The period of time the education was obtained over." },
                  "website": {
                    "type": "object",
                    "properties": {
                      "url": {
                        "type": "string",
                        "description": "The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). Leave blank to hide."
                      },
                      "label": {
                        "type": "string",
                        "description": "The label to display for the URL. Leave blank to display the URL as-is."
                      }
                    },
                    "required": ["url", "label"],
                    "additionalProperties": false,
                    "description": "The website of the school or institution, if any."
                  },
                  "description": {
                    "type": "string",
                    "description": "The description of the education. This should be a HTML-formatted string. Leave blank to hide."
                  }
                },
                "required": [
                  "id",
                  "hidden",
                  "school",
                  "degree",
                  "area",
                  "grade",
                  "location",
                  "period",
                  "website",
                  "description"
                ],
                "additionalProperties": false
              },
              "description": "The items to display in the education section."
            }
          },
          "required": ["title", "columns", "hidden", "items"],
          "additionalProperties": false,
          "description": "The section to display the education of the author."
        },
        "projects": {
          "type": "object",
          "properties": {
            "title": { "type": "string", "description": "The title of the section." },
            "columns": { "type": "number", "description": "The number of columns the section should span across." },
            "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." },
            "items": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The unique identifier for the item. Usually generated as a UUID."
                  },
                  "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." },
                  "name": { "type": "string", "minLength": 1, "description": "The name of the project." },
                  "period": { "type": "string", "description": "The period of time the project was worked on." },
                  "website": {
                    "type": "object",
                    "properties": {
                      "url": {
                        "type": "string",
                        "description": "The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). Leave blank to hide."
                      },
                      "label": {
                        "type": "string",
                        "description": "The label to display for the URL. Leave blank to display the URL as-is."
                      }
                    },
                    "required": ["url", "label"],
                    "additionalProperties": false,
                    "description": "The link to the project, if any."
                  },
                  "description": {
                    "type": "string",
                    "description": "The description of the project. This should be a HTML-formatted string. Leave blank to hide."
                  }
                },
                "required": ["id", "hidden", "name", "period", "website", "description"],
                "additionalProperties": false
              },
              "description": "The items to display in the projects section."
            }
          },
          "required": ["title", "columns", "hidden", "items"],
          "additionalProperties": false,
          "description": "The section to display the projects of the author."
        },
        "skills": {
          "type": "object",
          "properties": {
            "title": { "type": "string", "description": "The title of the section." },
            "columns": { "type": "number", "description": "The number of columns the section should span across." },
            "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." },
            "items": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The unique identifier for the item. Usually generated as a UUID."
                  },
                  "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." },
                  "icon": {
                    "type": "string",
                    "description": "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."
                  },
                  "name": { "type": "string", "minLength": 1, "description": "The name of the skill." },
                  "proficiency": {
                    "type": "string",
                    "description": "The proficiency level of the skill. Can be any text, such as 'Beginner', 'Intermediate', 'Advanced', etc."
                  },
                  "level": {
                    "default": 0,
                    "description": "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.",
                    "type": "number",
                    "minimum": 0,
                    "maximum": 5
                  },
                  "keywords": {
                    "default": [],
                    "description": "The keywords associated with the skill, if any. These are displayed as tags below the name.",
                    "type": "array",
                    "items": { "type": "string" }
                  }
                },
                "required": ["id", "hidden", "icon", "name", "proficiency", "level", "keywords"],
                "additionalProperties": false
              },
              "description": "The items to display in the skills section."
            }
          },
          "required": ["title", "columns", "hidden", "items"],
          "additionalProperties": false,
          "description": "The section to display the skills of the author."
        },
        "languages": {
          "type": "object",
          "properties": {
            "title": { "type": "string", "description": "The title of the section." },
            "columns": { "type": "number", "description": "The number of columns the section should span across." },
            "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." },
            "items": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The unique identifier for the item. Usually generated as a UUID."
                  },
                  "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." },
                  "language": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The name of the language the author knows."
                  },
                  "fluency": {
                    "type": "string",
                    "description": "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)."
                  },
                  "level": {
                    "default": 0,
                    "description": "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.",
                    "type": "number",
                    "minimum": 0,
                    "maximum": 5
                  }
                },
                "required": ["id", "hidden", "language", "fluency", "level"],
                "additionalProperties": false
              },
              "description": "The items to display in the languages section."
            }
          },
          "required": ["title", "columns", "hidden", "items"],
          "additionalProperties": false,
          "description": "The section to display the languages of the author."
        },
        "interests": {
          "type": "object",
          "properties": {
            "title": { "type": "string", "description": "The title of the section." },
            "columns": { "type": "number", "description": "The number of columns the section should span across." },
            "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." },
            "items": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The unique identifier for the item. Usually generated as a UUID."
                  },
                  "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." },
                  "icon": {
                    "type": "string",
                    "description": "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."
                  },
                  "name": { "type": "string", "minLength": 1, "description": "The name of the interest/hobby." },
                  "keywords": {
                    "default": [],
                    "description": "The keywords associated with the interest/hobby, if any. These are displayed as tags below the name.",
                    "type": "array",
                    "items": { "type": "string" }
                  }
                },
                "required": ["id", "hidden", "icon", "name", "keywords"],
                "additionalProperties": false
              },
              "description": "The items to display in the interests section."
            }
          },
          "required": ["title", "columns", "hidden", "items"],
          "additionalProperties": false,
          "description": "The section to display the interests of the author."
        },
        "awards": {
          "type": "object",
          "properties": {
            "title": { "type": "string", "description": "The title of the section." },
            "columns": { "type": "number", "description": "The number of columns the section should span across." },
            "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." },
            "items": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The unique identifier for the item. Usually generated as a UUID."
                  },
                  "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." },
                  "title": { "type": "string", "minLength": 1, "description": "The title of the award." },
                  "awarder": { "type": "string", "description": "The awarder of the award." },
                  "date": { "type": "string", "description": "The date when the award was received." },
                  "website": {
                    "type": "object",
                    "properties": {
                      "url": {
                        "type": "string",
                        "description": "The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). Leave blank to hide."
                      },
                      "label": {
                        "type": "string",
                        "description": "The label to display for the URL. Leave blank to display the URL as-is."
                      }
                    },
                    "required": ["url", "label"],
                    "additionalProperties": false,
                    "description": "The website of the award, if any."
                  },
                  "description": {
                    "type": "string",
                    "description": "The description of the award. This should be a HTML-formatted string. Leave blank to hide."
                  }
                },
                "required": ["id", "hidden", "title", "awarder", "date", "website", "description"],
                "additionalProperties": false
              },
              "description": "The items to display in the awards section."
            }
          },
          "required": ["title", "columns", "hidden", "items"],
          "additionalProperties": false,
          "description": "The section to display the awards of the author."
        },
        "certifications": {
          "type": "object",
          "properties": {
            "title": { "type": "string", "description": "The title of the section." },
            "columns": { "type": "number", "description": "The number of columns the section should span across." },
            "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." },
            "items": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The unique identifier for the item. Usually generated as a UUID."
                  },
                  "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." },
                  "title": { "type": "string", "minLength": 1, "description": "The title of the certification." },
                  "issuer": { "type": "string", "description": "The issuer of the certification." },
                  "date": { "type": "string", "description": "The date when the certification was received." },
                  "website": {
                    "type": "object",
                    "properties": {
                      "url": {
                        "type": "string",
                        "description": "The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). Leave blank to hide."
                      },
                      "label": {
                        "type": "string",
                        "description": "The label to display for the URL. Leave blank to display the URL as-is."
                      }
                    },
                    "required": ["url", "label"],
                    "additionalProperties": false,
                    "description": "The website of the certification, if any."
                  },
                  "description": {
                    "type": "string",
                    "description": "The description of the certification. This should be a HTML-formatted string. Leave blank to hide."
                  }
                },
                "required": ["id", "hidden", "title", "issuer", "date", "website", "description"],
                "additionalProperties": false
              },
              "description": "The items to display in the certifications section."
            }
          },
          "required": ["title", "columns", "hidden", "items"],
          "additionalProperties": false,
          "description": "The section to display the certifications of the author."
        },
        "publications": {
          "type": "object",
          "properties": {
            "title": { "type": "string", "description": "The title of the section." },
            "columns": { "type": "number", "description": "The number of columns the section should span across." },
            "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." },
            "items": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The unique identifier for the item. Usually generated as a UUID."
                  },
                  "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." },
                  "title": { "type": "string", "minLength": 1, "description": "The title of the publication." },
                  "publisher": { "type": "string", "description": "The publisher of the publication." },
                  "date": { "type": "string", "description": "The date when the publication was published." },
                  "website": {
                    "type": "object",
                    "properties": {
                      "url": {
                        "type": "string",
                        "description": "The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). Leave blank to hide."
                      },
                      "label": {
                        "type": "string",
                        "description": "The label to display for the URL. Leave blank to display the URL as-is."
                      }
                    },
                    "required": ["url", "label"],
                    "additionalProperties": false,
                    "description": "The link to the publication, if any."
                  },
                  "description": {
                    "type": "string",
                    "description": "The description of the publication. This should be a HTML-formatted string. Leave blank to hide."
                  }
                },
                "required": ["id", "hidden", "title", "publisher", "date", "website", "description"],
                "additionalProperties": false
              },
              "description": "The items to display in the publications section."
            }
          },
          "required": ["title", "columns", "hidden", "items"],
          "additionalProperties": false,
          "description": "The section to display the publications of the author."
        },
        "volunteer": {
          "type": "object",
          "properties": {
            "title": { "type": "string", "description": "The title of the section." },
            "columns": { "type": "number", "description": "The number of columns the section should span across." },
            "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." },
            "items": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The unique identifier for the item. Usually generated as a UUID."
                  },
                  "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." },
                  "organization": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The name of the organization or company."
                  },
                  "location": { "type": "string", "description": "The location of the organization or company." },
                  "period": {
                    "type": "string",
                    "description": "The period of time the author was volunteered at the organization or company."
                  },
                  "website": {
                    "type": "object",
                    "properties": {
                      "url": {
                        "type": "string",
                        "description": "The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). Leave blank to hide."
                      },
                      "label": {
                        "type": "string",
                        "description": "The label to display for the URL. Leave blank to display the URL as-is."
                      }
                    },
                    "required": ["url", "label"],
                    "additionalProperties": false,
                    "description": "The link to the organization or company, if any."
                  },
                  "description": {
                    "type": "string",
                    "description": "The description of the volunteer experience. This should be a HTML-formatted string. Leave blank to hide."
                  }
                },
                "required": ["id", "hidden", "organization", "location", "period", "website", "description"],
                "additionalProperties": false
              },
              "description": "The items to display in the volunteer section."
            }
          },
          "required": ["title", "columns", "hidden", "items"],
          "additionalProperties": false,
          "description": "The section to display the volunteer experience of the author."
        },
        "references": {
          "type": "object",
          "properties": {
            "title": { "type": "string", "description": "The title of the section." },
            "columns": { "type": "number", "description": "The number of columns the section should span across." },
            "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." },
            "items": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The unique identifier for the item. Usually generated as a UUID."
                  },
                  "hidden": { "type": "boolean", "description": "Whether to hide the item from the resume." },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The name of the reference, or a note such as 'Available upon request'."
                  },
                  "description": {
                    "type": "string",
                    "description": "The description of the reference. Can be used to display a quote, a testimonial, etc. This should be a HTML-formatted string. Leave blank to hide."
                  }
                },
                "required": ["id", "hidden", "name", "description"],
                "additionalProperties": false
              },
              "description": "The items to display in the references section."
            }
          },
          "required": ["title", "columns", "hidden", "items"],
          "additionalProperties": false,
          "description": "The section to display the references of the author."
        }
      },
      "required": [
        "profiles",
        "experience",
        "education",
        "projects",
        "skills",
        "languages",
        "interests",
        "awards",
        "certifications",
        "publications",
        "volunteer",
        "references"
      ],
      "additionalProperties": false,
      "description": "Various sections of the resume, such as experience, education, projects, etc."
    },
    "customSections": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": { "type": "string", "description": "The title of the section." },
          "columns": { "type": "number", "description": "The number of columns the section should span across." },
          "hidden": { "type": "boolean", "description": "Whether to hide the section from the resume." },
          "id": {
            "type": "string",
            "description": "The unique identifier for the custom section. Usually generated as a UUID."
          },
          "content": {
            "type": "string",
            "description": "The content of the custom section. This should be a HTML-formatted string. Leave blank to hide."
          }
        },
        "required": ["title", "columns", "hidden", "id", "content"],
        "additionalProperties": false
      },
      "description": "Custom sections of the resume, such as a custom section for notes, etc."
    },
    "metadata": {
      "type": "object",
      "properties": {
        "template": {
          "default": "onyx",
          "description": "The template to use for the resume. Determines the overall design and appearance of the resume.",
          "type": "string",
          "enum": [
            "azurill",
            "bronzor",
            "chikorita",
            "ditto",
            "gengar",
            "glalie",
            "kakuna",
            "lapras",
            "leafish",
            "onyx",
            "pikachu",
            "rhyhorn"
          ]
        },
        "layout": {
          "type": "object",
          "properties": {
            "sidebarWidth": {
              "default": 35,
              "description": "The width of the sidebar column, defined as a percentage of the page width.",
              "type": "number",
              "minimum": 10,
              "maximum": 50
            },
            "pages": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "fullWidth": {
                    "type": "boolean",
                    "description": "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."
                  },
                  "main": {
                    "type": "array",
                    "items": { "type": "string" },
                    "description": "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)."
                  },
                  "sidebar": {
                    "type": "array",
                    "items": { "type": "string" },
                    "description": "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)."
                  }
                },
                "required": ["fullWidth", "main", "sidebar"],
                "additionalProperties": false
              },
              "description": "The pages to display in the layout."
            }
          },
          "required": ["sidebarWidth", "pages"],
          "additionalProperties": false,
          "description": "The layout of the resume. Determines the structure and arrangement of the sections on the resume."
        },
        "css": {
          "type": "object",
          "properties": {
            "enabled": { "type": "boolean", "description": "Whether to enable custom CSS for the resume." },
            "value": {
              "type": "string",
              "description": "The custom CSS to apply to the resume. This should be a valid CSS string."
            }
          },
          "required": ["enabled", "value"],
          "additionalProperties": false,
          "description": "Custom CSS to apply to the resume. Can be used to override the default styles of the template."
        },
        "page": {
          "type": "object",
          "properties": {
            "gapX": {
              "type": "number",
              "minimum": 0,
              "description": "The horizontal gap between the sections of the page, defined in points (pt)."
            },
            "gapY": {
              "type": "number",
              "minimum": 0,
              "description": "The vertical gap between the sections of the page, defined in points (pt)."
            },
            "marginX": {
              "type": "number",
              "minimum": 0,
              "description": "The horizontal margin of the page, defined in points (pt)."
            },
            "marginY": {
              "type": "number",
              "minimum": 0,
              "description": "The vertical margin of the page, defined in points (pt)."
            },
            "format": {
              "type": "string",
              "enum": ["a4", "letter"],
              "description": "The format of the page. Can be 'a4' or 'letter'."
            },
            "locale": {
              "default": "en-US",
              "anyOf": [
                { "type": "string", "const": "en-US" },
                { "type": "string", "const": "de-DE" },
                { "type": "string", "const": "zu-ZA" }
              ],
              "description": "The language used in the resume, used for displaying pre-translated section headings, if not overridden."
            }
          },
          "required": ["gapX", "gapY", "marginX", "marginY", "format", "locale"],
          "additionalProperties": false,
          "description": "The page settings of the resume. Determines the margins, format, and locale of the resume."
        },
        "design": {
          "type": "object",
          "properties": {
            "level": {
              "type": "object",
              "properties": {
                "icon": {
                  "type": "string",
                  "description": "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."
                },
                "type": {
                  "type": "string",
                  "enum": ["hidden", "circle", "square", "rectangle", "rectangle-full", "progress-bar", "icon"],
                  "description": "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."
                }
              },
              "required": ["icon", "type"],
              "additionalProperties": false
            },
            "colors": {
              "type": "object",
              "properties": {
                "primary": {
                  "type": "string",
                  "description": "The primary color of the design, defined as rgba(r, g, b, a)."
                },
                "text": {
                  "type": "string",
                  "description": "The text color of the design, defined as rgba(r, g, b, a). Usually set to black: rgba(0, 0, 0, 1)."
                },
                "background": {
                  "type": "string",
                  "description": "The background color of the design, defined as rgba(r, g, b, a). Usually set to white: rgba(255, 255, 255, 1)."
                }
              },
              "required": ["primary", "text", "background"],
              "additionalProperties": false
            }
          },
          "required": ["level", "colors"],
          "additionalProperties": false,
          "description": "The design settings of the resume. Determines the colors, level designs, and typography of the resume."
        },
        "typography": {
          "type": "object",
          "properties": {
            "body": {
              "type": "object",
              "properties": {
                "fontFamily": {
                  "type": "string",
                  "description": "The family of the font to use. Must be a font that is available on Google Fonts."
                },
                "fontWeights": {
                  "default": ["400"],
                  "description": "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.",
                  "type": "array",
                  "items": { "type": "string", "enum": ["100", "200", "300", "400", "500", "600", "700", "800", "900"] }
                },
                "fontSize": {
                  "default": 11,
                  "description": "The size of the font to use, defined in points (pt).",
                  "type": "number",
                  "minimum": 6,
                  "maximum": 24
                },
                "lineHeight": {
                  "default": 1.5,
                  "description": "The line height of the font to use, defined as a multiplier of the font size (e.g. 1.5 for 1.5x).",
                  "type": "number",
                  "minimum": 0.5,
                  "maximum": 4
                }
              },
              "required": ["fontFamily", "fontWeights", "fontSize", "lineHeight"],
              "additionalProperties": false,
              "description": "The typography for the body of the resume."
            },
            "heading": {
              "type": "object",
              "properties": {
                "fontFamily": {
                  "type": "string",
                  "description": "The family of the font to use. Must be a font that is available on Google Fonts."
                },
                "fontWeights": {
                  "default": ["400"],
                  "description": "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.",
                  "type": "array",
                  "items": { "type": "string", "enum": ["100", "200", "300", "400", "500", "600", "700", "800", "900"] }
                },
                "fontSize": {
                  "default": 11,
                  "description": "The size of the font to use, defined in points (pt).",
                  "type": "number",
                  "minimum": 6,
                  "maximum": 24
                },
                "lineHeight": {
                  "default": 1.5,
                  "description": "The line height of the font to use, defined as a multiplier of the font size (e.g. 1.5 for 1.5x).",
                  "type": "number",
                  "minimum": 0.5,
                  "maximum": 4
                }
              },
              "required": ["fontFamily", "fontWeights", "fontSize", "lineHeight"],
              "additionalProperties": false,
              "description": "The typography for the headings of the resume."
            }
          },
          "required": ["body", "heading"],
          "additionalProperties": false,
          "description": "The typography settings of the resume. Determines the fonts and sizes of the body and headings of the resume."
        },
        "notes": {
          "type": "string",
          "description": "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."
        }
      },
      "required": ["template", "layout", "css", "page", "design", "typography", "notes"],
      "additionalProperties": false,
      "description": "Metadata for the resume, such as template, layout, typography, etc. This section describes the overall design and appearance of the resume."
    },
    "version": { "type": "string", "const": "5.0.0", "description": "The version of the Reactive Resume JSON Schema" },
    "$schema": {
      "type": "string",
      "const": "http://localhost:3000/schema.json",
      "description": "The URL of the Reactive Resume JSON Schema, used for validation and documentation purposes."
    }
  },
  "required": ["picture", "basics", "summary", "sections", "customSections", "metadata", "version", "$schema"],
  "additionalProperties": false
}
```

<Tip>
  You can access the complete JSON schema at [`https://rxresu.me/schema.json`](https://rxresu.me/schema.json).
  Referencing this is helpful for validating your resume JSON or providing a detailed schema reference when
  collaborating with AI assistants.
</Tip>

## Re-importing your JSON

To import a JSON file back into Reactive Resume:

<Steps>
  <Step title="Go to your Dashboard">
    Navigate to your resumes dashboard.
  </Step>

<Step title="Click 'Import an existing resume'">Find the import card and click it to open the import dialog.</Step>

<Step title="Select the right format">
  In the format options, select **Reactive Resume (JSON)** if your file was exported from the current version.
</Step>

<Step title="Upload your file">Click the upload area and select your JSON file.</Step>

  <Step title="Import">
    Click **Import** to create a new resume from the file.
  </Step>
</Steps>

<Info>Importing a JSON file creates a **new resume**. Your existing resumes are not affected.</Info>
