Redense
A resume builder whose LaTeX pipeline guarantees one page at any content length. It recompiles until it fits, and never shrinks the type to get there.
- Role
- Solo build
- Year
- 2026 to present
- Tools
- Next.js, TypeScript, LaTeX
- Links
- redense.org

Redense takes whatever you already have, whether that is an old resume, a LinkedIn export, or a pile of pasted text, and produces a clean one-page PDF tailored to a specific job description. The AI decides what to keep and how to phrase it. The LaTeX side guarantees it fits.
Every resume tool hits the same wall. Content length is unpredictable, so output either spills onto a second page or leaves the first half empty. Most tools guess at it by counting characters.
Redense compiles real LaTeX and reads the page count off the PDF it just produced. If it is over one page, it drops the spacing by a point and compiles again, repeating until it fits or bottoms out at zero. If it is still over at zero, it spends one more compile on narrower margins, which buys room twice over; less page lost to margin, and a wider column so fewer lines wrap. The whole search is capped at six compiles so a pathological resume cannot sit there running LaTeX forever.
It never scales the type. The body size is a constant, and the object carrying the fitting state has no font field at all, so there is no code path that could render at another size even by accident. Shrinking the font is the obvious lever and it is exactly the one that makes a resume look like it is hiding something. The leading is pinned for the same reason.
It also never deletes your content to make something fit. When it runs out of room it stops and tells you, surfaces suggestions for what could be cut, and lets you make the call.
The first version of the collision detector worked on text extracted from the PDF: cluster the words, look for overlaps. It happily approved 0.80 leading and a negative spacing value. Rendering those settings showed section rules striking clean through the text beneath them.
A horizontal rule is a graphic, and text extraction cannot see graphics. The fix was to rasterize each candidate at 300 dpi and analyze rows of ink instead of rows of characters. The real floors came out at 0.90 leading and a spacing gap of zero.
Live at redense.org, with more than fifty people having built a resume on it. It is used as a student resource at NC State, with departmental adoption in progress in the College of Engineering.


