Table of contents
When building a modern resume platform, the obvious technical shortcut is headless Chromium. You write HTML and CSS, render it in a hidden browser tab, and call window.print() or Puppeteer to generate a PDF.
Nearly every resume builder on the web uses this approach. In our early prototypes, we did too. But we quickly discovered that web-to-print tools make terrible resume engines: they are slow, memory-intensive, and prone to awkward page-break bugs.
The Headless Browser Trap
Browsers are designed for dynamic, infinite-scrolling screen viewports, not fixed physical pages. When you ask a browser to paginate content across A4 or US Letter boundaries, several edge cases appear:
- Slow Compilation: Spawning a Chromium instance takes 1.5 to 2.5 seconds per document, creating unacceptable latency during live editing.
- Awkward Line Breaks: A browser will happily strand a single bullet point or date line alone at the top of a second page (orphan lines).
- Inconsistent Font Hinting: Rendered fonts often get rasterized or flattened, increasing PDF file size and reducing ATS text clarity.
Typesetting Over HTML Printing
To deliver instantaneous feedback, we rebuilt our document generation pipeline around a native vector typesetting compiler.
Instead of converting HTML to PDF through a browser, our engine parses candidate profile data directly into parameterized document AST nodes. The compiler generates pure vector PDF byte streams in memory in 40ms to 80ms — over 30x faster than headless Chrome.
Deterministic Page Fitting
Because typesetting compilers understand physical geometry natively, our engine solves the common "page overflow" frustration automatically:
- It dynamically micro-adjusts vertical paragraph margins and line heights.
- It balances bullet density so that content fits neatly onto exactly 1 page or 2 full pages.
- Section headers are strictly grouped with their subsequent work experience items, preventing isolated headers from ever sitting at the bottom of a page.
What This Means for Candidates
When candidates use Scoutly, editing a resume feels like typing in a desktop text editor: the live vector preview refreshes instantaneously with zero page flickers or loading spinners.
Most importantly, the exported PDF contains pristine vector typography and an unbroken single-stream text layer that reads perfectly on every Applicant Tracking System.