Schema

Resume JSON

The editor, THEA, and MCP all load this document. sections is a top-level array. Do not nest items under education / experience / projects / skills object keys — that content will not show up.

Canonical document

{
  "header": {
    "name": "",
    "location": "",
    "email": "",
    "phone": "",
    "linkedin": "",
    "github": "",
    "portfolio": ""
  },
  "sections": [
    {
      "id": "education",
      "type": "education",
      "name": "Education",
      "visible": true,
      "items": [{ "degree": "", "location": "", "institution": "", "cgpa": "", "dates": "" }]
    },
    {
      "id": "skills",
      "type": "skills",
      "name": "Skills",
      "visible": true,
      "items": [{ "label": "Languages", "value": "" }]
    },
    {
      "id": "experience",
      "type": "experience",
      "name": "Experience",
      "visible": true,
      "items": [{ "title": "", "dates": "", "company": "", "type": "", "bullets": [""] }]
    },
    {
      "id": "projects",
      "type": "projects",
      "name": "Projects",
      "visible": true,
      "items": [{ "name": "", "url": "", "stack": "", "bullets": [""] }]
    },
    {
      "id": "certifications",
      "type": "certifications",
      "name": "Certifications",
      "visible": true,
      "items": ["Certificate name (year)"]
    }
  ]
}

Header rules

  • Do not add extra header keys. Unused fields must be "".
  • linkedin: profile slug only (alexvance or in/alexvance), never a full URL.
  • github: username only, never a full URL.
  • portfolio: domain or URL. Aliases website, url, site are mapped here.

Section types

typeitems
education{ degree, location, institution, cgpa, dates }
skills{ label, value }
experience{ title, dates, company, type, bullets[] }type is work arrangement / location.
projects{ name, url, stack, bullets[] }
certificationsstrings
custom{ type: "text"|"bullet", heading?, content }

Unknown type values do not crash the renderer. visible: false omits the section from PDF/LaTeX. Optional filename on the document sets the download name.