A clean, single-page resume built with Typst and driven by simple JSON data files. It renders to a PDF with consistent typography and layout.
- A recent build is included as
main.pdffor quick preview. - Release builds are named like
ken_esparta_cv_<hash>.pdf(generated by the Makefile).
- Typst Install
- Make (optional, for using the provided Makefile)
- Fonts are bundled in
fonts/and referenced automatically during compilation.
- Build a development PDF:
- Using Make:
make gen-test - Directly with Typst:
typst compile main.typ main.pdf --font-path fonts
- Using Make:
- Build a release PDF with a short hash in the filename:
make gen-release
- Clean generated PDFs:
make clean
The generated PDF will appear in the project root.
main.typ— Entry point that includes the section templates.title.typ— Name and role heading.contact.typ— Contact links and social info.intro.typ— Short professional summary.experience.typ— Work experience section, rendered from JSON.projects.typ— Selected projects, rendered from JSON.education.typ— Education history, rendered from JSON.skills.typ— Skills by category, rendered from JSON.config.typ— Theme colors, common helpers, and reusable components.fonts/— Local font files used by the layout.data/— All data sources used to populate the resume sections:experience.jsonprojects.jsoneducation.jsonskills.json
Makefile— Convenience tasks for building and cleaning.
Update the JSON files in data/ to change content. Keys are straightforward and self-descriptive.
- experience.json
- Fields per job:
company,position,location,from,to,short_description,description(array of bullet points) - Dates use the format
MM-YYYY. An emptytovalue means "Now".
- Fields per job:
- projects.json
- Fields per project:
name,institution,link,link_name,description(array of bullet points)
- Fields per project:
- education.json
- Fields per entry:
school,location,degree,from,to
- Fields per entry:
- skills.json
- Array of objects with:
categoryanditems(array of strings)
- Array of objects with:
After editing, run a build command again to regenerate the PDF.
- Colors and style helpers live in
config.typ:primary_color,secondary_color,accent_colorformat_datefunction convertsMM-YYYYstrings into "Mon YYYY".section_titleandnew_contacthelpers for consistent section styling and links.
- Typography is defined in
main.typand the section files, using fonts fromfonts/. - Page size and margins are configured in
main.typ.
- Keep bullet points concise and outcome-focused.
- Prefer consistent verb tense and measurable results where possible.
- Rebuild after each change to verify layout fits on a single page.
- If Typst can't find the fonts, ensure you pass the
--font-path fontsflag (Makefile already does this). - If dates render unexpectedly, confirm the
MM-YYYYformat (e.g.,10-2022).
This project is licensed under the MIT License. See the LICENSE file for details.