PDF templates / Resume / CV

Traditional Resume

Single-column reverse-chronological A4 resume with centred name + contact header, serif-friendly summary, experience with bullet achievements, education, skills grouped by category and optional languages + certifications. Conservative styling suited to formal industries.

First page of the Traditional Resume template, rendered with its sample data
resume-traditional.pdfpage 1 of 2

DSL source

The whole template. Learn the language in the template DSL guide.

js
const sectionHeading = (text) =>
  col({ margin: [0, 2, 0, 2] },
    s({ "font-family": "NotoSans", "font-size": 10.5, "font-weight": 700, "letter-spacing": 1, color: "#1a1a1a" }, text),
    hr(2, "#1a1a1a"),
  );

const template = doc(
  {
    size: "A4",
    title: "{{name}} — Resume",
    padding: [32, 48, 32, 48],
    styles: {
      body: { "font-family": "NotoSans", "font-size": 11, "line-height": 1.35, color: "#1a1a1a" },
      meta: { "font-family": "NotoSans", "font-size": 9, color: "#555555" },
      roleLine: { "font-family": "NotoSans", "font-size": 11, "font-weight": 700, color: "#1a1a1a" },
      dateLine: { "font-family": "NotoSans", "font-size": 9, color: "#555555", "font-style": "italic" },
      name: { "font-family": "NotoSans", "font-size": 20, "font-weight": 700, "letter-spacing": 1, color: "#1a1a1a" },
      title: { "font-family": "NotoSans", "font-size": 11.5, "font-style": "italic", color: "#333333" },
    },
  },

  // Header
  col({ align: "center", margin: [0, 0, 0, 4] },
    s(".name", "{{name}}"),
  ),
  col({ align: "center", margin: [0, 0, 0, 4] },
    s(".title", "{{title}}"),
  ),
  col({ align: "center", margin: [0, 0, 0, 3] },
    s(".meta", "{{contact.location}}  •  {{contact.phone}}  •  {{contact.email}}"),
  ),
  col({ align: "center", margin: [0, 0, 0, 6] },
    s(".meta", "{{contact.website}}  •  {{contact.linkedin}}  •  {{contact.github}}"),
  ),
  hr(4, "#1a1a1a"),

  // Summary
  sectionHeading("SUMMARY"),
  col({ margin: [0, 0, 0, 6] },
    s(".body", "{{summary}}"),
  ),

  // Experience
  sectionHeading("EXPERIENCE"),
  each("job in experience",
    col({ margin: [0, 3, 0, 6] },
      r({ margin: [0, 0, 0, 1] },
        col("70%", s(".roleLine", "{{job.role}}, {{job.company}}")),
        col({ width: "30%", align: "right" }, s(".dateLine", "{{job.from}} – {{job.to}}")),
      ),
      col({ margin: [0, 0, 0, 2] },
        s(".meta", "{{job.location}}"),
      ),
      each("b in job.bullets",
        r({ margin: [0, 1, 0, 0] },
          col({ width: "3%" }, s(".body", "•")),
          col("97%", s(".body", "{{b}}")),
        ),
      ),
    ),
  ),

  // Education
  sectionHeading("EDUCATION"),
  each("ed in education",
    col({ margin: [0, 3, 0, 4] },
      r({ margin: [0, 0, 0, 1] },
        col("70%", s(".roleLine", "{{ed.institution}}")),
        col({ width: "30%", align: "right" }, s(".dateLine", "{{ed.from}} – {{ed.to}}")),
      ),
      r({ margin: [0, 0, 0, 1] },
        col("70%", s(".body", "{{ed.degree}}")),
        col({ width: "30%", align: "right" }, s(".meta", "{{ed.location}}")),
      ),
      col(s(".meta", "{{ed.detail}}")),
    ),
  ),

  // Skills
  sectionHeading("SKILLS"),
  col({ margin: [0, 2, 0, 4] },
    each("g in skills",
      r({ margin: [0, 1, 0, 1] },
        col("22%", s({ "font-family": "NotoSans", "font-size": 11, "font-weight": 700 }, "{{g.category}}")),
        col("78%",
          each("it, i in g.items",
            s(".body", "{{i == 0 ? '' : ', '}}{{it}}"),
          ),
        ),
      ),
    ),
  ),

  // Projects
  sectionHeading("PROJECTS"),
  each("p in projects",
    col({ margin: [0, 3, 0, 4] },
      r({ margin: [0, 0, 0, 1] },
        col("70%", s(".roleLine", "{{p.name}} — "), s({ "font-family": "NotoSans", "font-size": 11, "font-style": "italic" }, "{{p.role}}")),
        col({ width: "30%", align: "right" }, s(".meta", "{{p.url}}")),
      ),
      col(s(".body", "{{p.description}}")),
    ),
  ),

  // Languages
  sectionHeading("LANGUAGES"),
  col({ margin: [0, 2, 0, 4] },
    r(
      each("l, i in languages",
        col({ width: "33%" },
          s({ "font-family": "NotoSans", "font-size": 11, "font-weight": 700 }, "{{l.name}}"),
          s(".body", " — "),
          s(".body", "{{l.level}}"),
        ),
      ),
    ),
  ),

  // Certifications
  sectionHeading("CERTIFICATIONS"),
  each("c in certifications",
    r({ margin: [0, 1, 0, 1] },
      col("70%",
        s({ "font-family": "NotoSans", "font-size": 11, "font-weight": 700 }, "{{c.name}}"),
        s(".body", " — "),
        s(".body", "{{c.issuer}}"),
      ),
      col({ width: "30%", align: "right" }, s(".meta", "{{c.year}}")),
    ),
  ),

  ftrPages("{{name}}"),
);

const sampleData = {
  name: "Harriet Okonkwo-Salazar",
  title: "Senior Product Engineer",
  contact: {
    email: "harriet.os@example.com",
    phone: "+1 (206) 555-0137",
    location: "Seattle, WA",
    website: "harriet.dev",
    linkedin: "linkedin.com/in/harriet-os",
    github: "github.com/harriet-os",
  },
  summary:
    "Senior product engineer with 11 years shipping developer-facing infrastructure across billing, auth and observability. Strong track record of reducing oncall load and turning ambiguous product requirements into durable, well-tested systems. Enjoys mentoring, API design and boring, reliable software.",
  experience: [
    {
      company: "Northline Studios",
      role: "Staff Product Engineer",
      location: "Seattle, WA (remote)",
      from: "February 2023",
      to: "Present",
      bullets: [
        "Led the migration of the billing platform from a monolithic Rails service to a modular Cloudflare Workers + D1 architecture, cutting p99 checkout latency from 820ms to 140ms and halving infrastructure spend.",
        "Designed and shipped the customer-facing metered-usage API (PDF renders, API credits, storage) used by 4,200+ paying teams, with idempotent writes and exactly-once invoice reconciliation.",
        "Rebuilt the oncall rotation tooling and paging taxonomy, reducing out-of-hours pages by 62% over two quarters without regressing MTTR.",
        "Mentored four engineers through the senior promotion pipeline; three promoted within 18 months.",
      ],
    },
    {
      company: "Cascadia Federal Credit Union",
      role: "Senior Software Engineer — Platform",
      location: "Seattle, WA",
      from: "August 2019",
      to: "January 2023",
      bullets: [
        "Led the re-architecture of the member authentication stack to a zero-trust, device-bound model, reducing account-takeover incidents by 88% year over year.",
        "Owned the observability platform (metrics, logs, traces) across 140+ services; introduced service-level objectives tooling adopted by every product team.",
        "Represented engineering on the quarterly compliance review board, partnering with risk and legal on SOX and PCI-DSS controls.",
      ],
    },
    {
      company: "Pagliacci Software",
      role: "Software Engineer",
      location: "Portland, OR",
      from: "June 2016",
      to: "July 2019",
      bullets: [
        "Shipped the point-of-sale integration platform used across 280+ retail locations, handling 1.4M transactions per day at peak.",
        "Built the first generation of the company's public REST API, including rate limiting, key rotation and developer portal documentation.",
        "Reduced end-to-end test flake from 22% to <1% by rewriting the fixture layer on top of deterministic seed data.",
      ],
    },
    {
      company: "Elliott Bay Digital",
      role: "Junior Developer",
      location: "Seattle, WA",
      from: "September 2014",
      to: "May 2016",
      bullets: [
        "Implemented the bookstore's e-commerce storefront and inventory sync against a legacy SOAP warehouse system.",
        "Co-authored the content-management pipeline that powered the staff-recommendations section on the homepage.",
      ],
    },
  ],
  education: [
    {
      institution: "University of Washington",
      degree: "B.S. Computer Science, magna cum laude",
      location: "Seattle, WA",
      from: "2010",
      to: "2014",
      detail: "Focus on distributed systems and programming languages. Undergraduate research assistant in the PLSE lab.",
    },
    {
      institution: "The Cascadia Institute of Design Leadership",
      degree: "Certificate, Advanced Practice in Systems Design",
      location: "Seattle, WA",
      from: "2024",
      to: "2025",
      detail: "With distinction.",
    },
  ],
  skills: [
    { category: "Languages", items: ["TypeScript", "Go", "Python", "Rust (working knowledge)", "SQL"] },
    { category: "Platforms", items: ["Cloudflare Workers", "AWS", "PostgreSQL", "D1 / SQLite", "Redis", "Kafka"] },
    { category: "Practice", items: ["API design", "Observability", "Incident response", "Technical writing", "Mentorship"] },
  ],
  languages: [
    { name: "English", level: "Native" },
    { name: "Spanish", level: "Professional working" },
    { name: "Igbo", level: "Conversational" },
  ],
  certifications: [
    { name: "AWS Solutions Architect — Associate", issuer: "Amazon Web Services", year: "2022" },
    { name: "Certified Kubernetes Administrator", issuer: "CNCF", year: "2021" },
  ],
  projects: [
    {
      name: "makesPDF",
      role: "Creator & maintainer",
      url: "github.com/makesPDF",
      description: "Open-source deterministic PDF layout engine and hosted API. 4k+ GitHub stars; used in production by several YC-backed teams.",
    },
    {
      name: "oncall-tax",
      role: "Co-author",
      url: "github.com/harriet-os/oncall-tax",
      description: "CLI that quantifies the hidden cost of interruption-driven work across an engineering organisation.",
    },
  ],
};

Sample data

json
{
  "name": "Harriet Okonkwo-Salazar",
  "title": "Senior Product Engineer",
  "contact": {
    "email": "harriet.os@example.com",
    "phone": "+1 (206) 555-0137",
    "location": "Seattle, WA",
    "website": "harriet.dev",
    "linkedin": "linkedin.com/in/harriet-os",
    "github": "github.com/harriet-os"
  },
  "summary": "Senior product engineer with 11 years shipping developer-facing infrastructure across billing, auth and observability. Strong track record of reducing oncall load and turning ambiguous product requirements into durable, well-tested systems. Enjoys mentoring, API design and boring, reliable software.",
  "experience": [
    {
      "company": "Northline Studios",
      "role": "Staff Product Engineer",
      "location": "Seattle, WA (remote)",
      "from": "February 2023",
      "to": "Present",
      "bullets": [
        "Led the migration of the billing platform from a monolithic Rails service to a modular Cloudflare Workers + D1 architecture, cutting p99 checkout latency from 820ms to 140ms and halving infrastructure spend.",
        "Designed and shipped the customer-facing metered-usage API (PDF renders, API credits, storage) used by 4,200+ paying teams, with idempotent writes and exactly-once invoice reconciliation.",
        "Rebuilt the oncall rotation tooling and paging taxonomy, reducing out-of-hours pages by 62% over two quarters without regressing MTTR.",
        "Mentored four engineers through the senior promotion pipeline; three promoted within 18 months."
      ]
    },
    {
      "company": "Cascadia Federal Credit Union",
      "role": "Senior Software Engineer — Platform",
      "location": "Seattle, WA",
      "from": "August 2019",
      "to": "January 2023",
      "bullets": [
        "Led the re-architecture of the member authentication stack to a zero-trust, device-bound model, reducing account-takeover incidents by 88% year over year.",
        "Owned the observability platform (metrics, logs, traces) across 140+ services; introduced service-level objectives tooling adopted by every product team.",
        "Represented engineering on the quarterly compliance review board, partnering with risk and legal on SOX and PCI-DSS controls."
      ]
    },
    {
      "company": "Pagliacci Software",
      "role": "Software Engineer",
      "location": "Portland, OR",
      "from": "June 2016",
      "to": "July 2019",
      "bullets": [
        "Shipped the point-of-sale integration platform used across 280+ retail locations, handling 1.4M transactions per day at peak.",
        "Built the first generation of the company's public REST API, including rate limiting, key rotation and developer portal documentation.",
        "Reduced end-to-end test flake from 22% to <1% by rewriting the fixture layer on top of deterministic seed data."
      ]
    },
    {
      "company": "Elliott Bay Digital",
      "role": "Junior Developer",
      "location": "Seattle, WA",
      "from": "September 2014",
      "to": "May 2016",
      "bullets": [
        "Implemented the bookstore's e-commerce storefront and inventory sync against a legacy SOAP warehouse system.",
        "Co-authored the content-management pipeline that powered the staff-recommendations section on the homepage."
      ]
    }
  ],
  "education": [
    {
      "institution": "University of Washington",
      "degree": "B.S. Computer Science, magna cum laude",
      "location": "Seattle, WA",
      "from": "2010",
      "to": "2014",
      "detail": "Focus on distributed systems and programming languages. Undergraduate research assistant in the PLSE lab."
    },
    {
      "institution": "The Cascadia Institute of Design Leadership",
      "degree": "Certificate, Advanced Practice in Systems Design",
      "location": "Seattle, WA",
      "from": "2024",
      "to": "2025",
      "detail": "With distinction."
    }
  ],
  "skills": [
    {
      "category": "Languages",
      "items": [
        "TypeScript",
        "Go",
        "Python",
        "Rust (working knowledge)",
        "SQL"
      ]
    },
    {
      "category": "Platforms",
      "items": [
        "Cloudflare Workers",
        "AWS",
        "PostgreSQL",
        "D1 / SQLite",
        "Redis",
        "Kafka"
      ]
    },
    {
      "category": "Practice",
      "items": [
        "API design",
        "Observability",
        "Incident response",
        "Technical writing",
        "Mentorship"
      ]
    }
  ],
  "languages": [
    {
      "name": "English",
      "level": "Native"
    },
    {
      "name": "Spanish",
      "level": "Professional working"
    },
    {
      "name": "Igbo",
      "level": "Conversational"
    }
  ],
  "certifications": [
    {
      "name": "AWS Solutions Architect — Associate",
      "issuer": "Amazon Web Services",
      "year": "2022"
    },
    {
      "name": "Certified Kubernetes Administrator",
      "issuer": "CNCF",
      "year": "2021"
    }
  ],
  "projects": [
    {
      "name": "makesPDF",
      "role": "Creator & maintainer",
      "url": "github.com/makesPDF",
      "description": "Open-source deterministic PDF layout engine and hosted API. 4k+ GitHub stars; used in production by several YC-backed teams."
    },
    {
      "name": "oncall-tax",
      "role": "Co-author",
      "url": "github.com/harriet-os/oncall-tax",
      "description": "CLI that quantifies the hidden cost of interruption-driven work across an engineering organisation."
    }
  ]
}

Render it with your data

Any API key can render this template by its ID. This call uses the sample data; add a data object to use your own. See the API reference.

bash
curl -X POST https://makespdf.com/api/v1/render \
  -H "Authorization: Bearer $MAKESPDF_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"templateId": "resume-traditional"}' \
  -o output.pdf