{
  "slug": "yaml-resume",
  "name": "gizza-ai/yaml-resume",
  "version": "0.1.0",
  "title": "YAML Resume to HTML — print-ready résumé builder — gizza.ai",
  "description": "Turn a JSON Resume document written in YAML or JSON into one self-contained, print-ready HTML résumé with themes, accent color, fonts and page setup.",
  "tags": [
    "yaml resume",
    "json resume",
    "resume to html",
    "cv generator",
    "resume pdf",
    "ats resume"
  ],
  "category": "data",
  "urls": {
    "page": "https://gizza.ai/tools/yaml-resume/",
    "markdown": "https://gizza.ai/tools/yaml-resume/index.md",
    "descriptor": "https://gizza.ai/tools/yaml-resume/tool.json",
    "deep_link_example": "https://gizza.ai/tools/yaml-resume/?data=basics%3A%0A%20%20name%3A%20Ada%20Lovelace%0A%20%20label%3A%20Analytical%20Engineer%0Awork%3A%0A%20%20-%20name%3A%20Analytical%20Engine%20Co%0A%20%20%20%20position%3A%20Lead%20Engineer%0A%20%20%20%20startDate%3A%20%221843-01%22&format=auto&theme=modern&accent=%232563eb&font=sans&font_size=10.5&page_size=letter&margin=0.5&date_format=month-year&sections=summary%2C%20work%2C%20education%2C%20skills"
  },
  "cli": "gizza tool yaml-resume 'basics:\n  name: Ada Lovelace\n  label: Analytical Engineer\nwork:\n  - name: Analytical Engine Co\n    position: Lead Engineer\n    startDate: \"1843-01\"'",
  "tool": {
    "description": "Render a JSON Resume v1.0.0 document — written as YAML or JSON — into a self-contained, print-ready HTML résumé: one file with embedded styling and a print stylesheet, ready to open and Print → Save-as-PDF from the browser. Covers the full standard schema (basics, work, volunteer, education, projects, skills, awards, certificates, publications, languages, interests, references) and pairs with resume-to-json, which produces documents in this format. `data` is the document; `format` picks the parser (auto|yaml|json). Style with theme (classic|modern|compact|ats — 'ats' is a plain single column for résumé parsers), accent (hex or CSS color name), font (sans|serif), font_size (8-14pt), page_size (letter|a4), margin (0.25-1.5in), date_format (month-year|year|iso), and sections to pick/reorder what appears. All résumé text is HTML-escaped and only http(s)/mailto URLs become links.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "accent": {
          "default": "#2563eb",
          "description": "Accent color for section titles and rules. A hex value like #2563eb or a plain CSS color name like navy. Default #2563eb (blue). The 'classic' and 'ats' themes render headings in ink regardless.",
          "type": "string"
        },
        "data": {
          "description": "The résumé as a JSON Resume v1.0.0 document, written as YAML or JSON. Recognized top-level keys: basics (name required; label, email, phone, url, summary, location{address,postalCode,city,region,countryCode}, profiles[{network,username,url}]), work[{name,position,location,url,startDate,endDate,summary,highlights[]}], volunteer, education[{institution,area,studyType,score,courses[]}], projects[{name,description,highlights[],keywords[],roles[],entity,type}], skills[{name,level,keywords[]}], awards, certificates, publications, languages[{language,fluency}], interests, references[{name,reference}]. Unknown keys are ignored; an absent endDate reads as Present.",
          "type": "string"
        },
        "date_format": {
          "default": "month-year",
          "description": "How ISO-8601 dates are printed. 'month-year' (default) renders 2020-01-15 as Jan 2020; 'year' renders 2020; 'iso' prints the value exactly as written. Text that isn't a date (e.g. 'Summer 2019') always passes through unchanged.",
          "enum": [
            "month-year",
            "year",
            "iso"
          ],
          "type": "string"
        },
        "font": {
          "default": "sans",
          "description": "Body font family. 'sans' (default) or 'serif'.",
          "enum": [
            "sans",
            "serif"
          ],
          "type": "string"
        },
        "font_size": {
          "default": 10.5,
          "description": "Body type size in points (8-14). Default 10.5. Lower it to pull a long résumé onto one page.",
          "maximum": 14,
          "minimum": 8,
          "type": "number"
        },
        "format": {
          "default": "auto",
          "description": "How to parse 'data'. 'auto' (default) sniffs it — a document starting with { is tried as JSON first, anything else as YAML. Use 'yaml' or 'json' to force one and get that parser's error message.",
          "enum": [
            "auto",
            "yaml",
            "json"
          ],
          "type": "string"
        },
        "margin": {
          "default": 0.5,
          "description": "Print margin in inches on all four sides (0.25-1.5). Default 0.5. Also sets the on-screen page width.",
          "maximum": 1.5,
          "minimum": 0.25,
          "type": "number"
        },
        "page_size": {
          "default": "letter",
          "description": "Print page size for the embedded @page rule. 'letter' (US Letter, default) or 'a4'.",
          "enum": [
            "letter",
            "a4"
          ],
          "type": "string"
        },
        "sections": {
          "default": "",
          "description": "Comma-separated section keys to render, in this order — any of summary, work, volunteer, education, projects, skills, awards, certificates, publications, languages, interests, references. Blank (default) renders every section that has content, in that canonical order.",
          "type": "string"
        },
        "theme": {
          "default": "modern",
          "description": "Layout style. 'modern' (default) = sans, left header, an accent bar beside each section title. 'classic' = centered header with ink-ruled section titles. 'compact' = tighter spacing to fit more on one page. 'ats' = single column, no color and no rules — plain headings for résumé-parsing software.",
          "enum": [
            "classic",
            "modern",
            "compact",
            "ats"
          ],
          "type": "string"
        }
      },
      "required": [
        "data"
      ],
      "type": "object"
    }
  }
}