Build Log #3: How to Set Up Branded Business PDFs with AI and Markdown

Write in markdown. Build with one command. Look like you have a design team.

April 21, 2026 · 7 min read · Build Log

We needed business documents — a pitch deck, a one-sheeter, financial overview, product deep dive. The kind of stuff you hand to someone when they ask "so what does your company do?"

The options were: spend a day in Google Slides, pay for Canva Pro, or hire a designer. We did none of those. We set up a pipeline where we write in plain markdown, run one command, and get branded PDFs with our logo colors, proper typography, headers, footers, and a title page.

It took about 30 minutes. Here's exactly how, so you can do the same thing.

What You Need

Pandoc — the universal document converter. It turns markdown into PDFs (via LaTeX), HTML, Word docs, slides, and about 40 other formats. Install it:

brew install pandoc        # Mac
sudo apt install pandoc    # Ubuntu/Debian
choco install pandoc       # Windows

A LaTeX distribution — pandoc uses LaTeX to render PDFs. On Mac, brew install basictex gets you a minimal install. On Linux, texlive-xetex. You need XeLaTeX specifically because it handles custom fonts.

A text editor — you're writing markdown. Any editor works. VS Code, Cursor, even Notes.

Step 1: Write Your Content in Markdown

Just write. Don't think about formatting, fonts, or colors. That's the template's job.

# Your Company Name

**The one-line pitch.**

## The Problem

Describe the problem your company solves. Keep it to 2-3 sentences.
If you can't explain the problem in 3 sentences, you don't understand
it well enough yet.

## The Solution

What you do about it. Be specific. Not "we leverage AI to optimize
synergies" — say what actually happens when someone uses your product.

## Why Now

What changed in the world that makes this the right time.

## Where We Are

- Users, revenue, traction — whatever you've got
- Be honest — people can tell when you're inflating

## What We Need

The ask. Introductions? Investment? Customers? Say it directly.

Save it as pitch.md. That's your source of truth. Every time you update the business, you update this file. The PDF rebuilds in seconds.

Step 2: Create Your Brand Template

This is the part that makes it look professional. You create a LaTeX template file once, and every document you build uses it automatically.

Save this as template.tex in the same directory as your markdown files. Change the colors, fonts, and company name to match your brand:

\documentclass[11pt]{article}

\usepackage[margin=0.75in, top=1in, bottom=0.8in]{geometry}
\usepackage{fancyhdr}
\usepackage{fontspec}
\usepackage{xcolor}
\usepackage{hyperref}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{array}
\usepackage{calc}
\usepackage{parskip}

% === YOUR BRAND COLORS ===
% Change these hex codes to match your brand
\definecolor{brandprimary}{HTML}{C65000}  % Your primary color
\definecolor{darktext}{HTML}{1a1a2e}      % Body text
\definecolor{graytext}{HTML}{6b7280}      % Secondary text
\definecolor{rulegray}{HTML}{d1d5db}      % Lines and rules

% === YOUR FONTS ===
% Use any fonts installed on your system
\setmainfont{Georgia}           % Body text (serif)
\setsansfont{Helvetica Neue}    % Headings (sans-serif)
\setmonofont{Courier}           % Code blocks

% Links in your brand color
\hypersetup{
  colorlinks=true,
  linkcolor=brandprimary,
  urlcolor=brandprimary
}

% Section headings in brand color
\makeatletter
\renewcommand{\section}{%
  \@startsection{section}{1}{0pt}%
  {16pt}{8pt}%
  {\sffamily\Large\bfseries\color{brandprimary}}}
\renewcommand{\subsection}{%
  \@startsection{subsection}{2}{0pt}%
  {12pt}{4pt}%
  {\sffamily\large\bfseries}}
\makeatother

% === HEADER AND FOOTER ===
% This is what makes it look official
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{0.4pt}
\fancyhead[L]{%
  \sffamily\small%
  {\color{brandprimary}YOUR}  % First word in brand color
  {\color{graytext}Company}   % Rest in gray
}
\fancyhead[R]{\sffamily\small\color{graytext}\today}
\fancyfoot[L]{%
  \sffamily\scriptsize\color{rulegray}yourcompany.com}
\fancyfoot[C]{\sffamily\small\color{graytext}\thepage}
\fancyfoot[R]{%
  \sffamily\scriptsize\color{rulegray}Confidential}

% === TITLE PAGE ===
\newcommand{\doctitle}[1]{%
  \thispagestyle{empty}
  \begin{center}
  \vspace*{80pt}
  {\sffamily\fontsize{36}{42}\selectfont%
    \color{brandprimary}\textbf{Your Company}}\\[16pt]
  {\sffamily\fontsize{16}{20}\selectfont%
    \color{graytext}#1}\\[50pt]
  {\color{rulegray}\rule{0.3\textwidth}{1pt}}\\[40pt]
  {\sffamily\color{graytext}\today}\\[6pt]
  {\sffamily\small\color{graytext}Confidential}
  \end{center}
  \newpage
}

% Pandoc compatibility
\providecommand{\tightlist}{%
  \setlength{\itemsep}{2pt}%
  \setlength{\parskip}{2pt}}
\newcounter{none}

\begin{document}
$body$
\end{document}

That's it. One file. Change the hex colors on lines 10-13, the fonts on lines 16-18, the company name in the header and title page, and you're done. Every document you build will have your branding.

Step 3: Build It

One command:

pandoc -f markdown --pdf-engine=xelatex \
  --template=template.tex \
  pitch.md -o pitch.pdf

That's it. Open pitch.pdf. You've got a branded document with proper typography, colored headings, header/footer with your company name, page numbers, and clean formatting.

Want a table of contents? Add --toc. Want tighter margins? Change the geometry in the template. Want a different font? Change \setmainfont.

Step 4: Automate It

We have 7 markdown files that make up our business documentation. A one-sheeter, executive summary, product overview, market analysis, revenue model, go-to-market strategy, and appendices. We built a shell script that turns all of them into individual PDFs plus one combined deck — in about 5 seconds:

#!/bin/bash
# build-pdf.sh — Build all business docs

cd "$(dirname "$0")"
mkdir -p pdf

for f in *.md; do
  echo "Building $(basename "$f" .md).pdf..."
  pandoc -f markdown --pdf-engine=xelatex \
    --template=template.tex \
    "$f" -o "pdf/$(basename "$f" .md).pdf"
done

echo "Done."

Now every time we update the business — new traction numbers, revised pitch, new section — we edit the markdown file and run ./build-pdf.sh. Five seconds later, every PDF is updated with the latest content and consistent branding.

No Google Slides. No Canva. No designer. No version control nightmare of "pitch-deck-v7-FINAL-v2.pptx".

Why This Matters More Than You Think

Three reasons:

Your documents look professional for free. The template costs nothing. The tools are free. The output looks like you have a design team. First impressions matter — when someone opens your pitch PDF and sees branded headers, proper typography, and consistent formatting, they take you more seriously. That's worth something when you're a one-person company.

Markdown is where AI is best. If you use Claude, ChatGPT, Cursor, or any AI tool — they all think in markdown. Ask AI to help write your pitch and it gives you markdown. Ask it to update the financials and it edits the markdown. The AI never touches the formatting — that's the template's job. Clean separation of content and presentation. This is how we wrote our entire business documentation: the founder provides the direction and key insights, AI organizes and articulates, the template handles the look.

AI agents will find and use your templates. This is the part most people miss. When an AI agent needs to "create a business document" or "generate a report," it searches for how to do it. If your branded template and build process are documented publicly, agents learn your format. Your brand gets baked into AI workflows. We're already seeing this — our analysis report format shows up in AI recommendations because the documentation exists for agents to find.

The Full Setup Takes 30 Minutes

Here's the realistic timeline:

After that, every new document is just writing markdown and running one command. We've built pitch decks, investor one-sheets, internal strategy docs, and operational reports with this same setup. The template handles the look. You handle the thinking.

Which, honestly, is how it should work.

Speaking of professional reports

MCP Analytics generates complete statistical analysis reports from any dataset. Same idea — structured, branded, shareable. Except we do the analysis too.

Try it free