Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ StackResume turns minimal input into a polished, interview-ready software-develo
- **Generates** a complete resume JSON with STAR-format bullets and quantified metrics.
- **Reviews & enhances** in a loop — a Reviewer agent scores ATS compatibility, writing quality, impact, and completeness (0–100 each), then an Enhancer rewrites weak bullets and injects missing keywords. Loops until the score crosses `MIN_QUALITY_SCORE` (default 82) or hits `MAX_REVIEW_ITERATIONS` (default 3).
- **Tailors** — paste a job description to unlock a cover letter and a library of outreach email templates alongside the resume.
- **Exports** to PDF, Word (`.docx`), or OpenDocument (`.odt`) across four visual templates.
- **Exports** to PDF, Word (`.docx`), or OpenDocument (`.odt`) across five visual templates.

Everything is wrapped in a chat-style web UI with persistent sessions, search, favourites, an application tracker, and a live LLM activity log.

Expand Down Expand Up @@ -249,7 +249,7 @@ Every resume has an **✏ Edit** tab for inline editing of every section — sum
| **Word (`.docx`)** | Editable in Word / Google Docs / Pages. |
| **OpenDocument (`.odt`)** | Editable in LibreOffice / OpenOffice. |

Four templates: **Classic ATS** (max ATS compatibility), **Modern Clean** (blue accents), **Executive** (dark slate), **Dark Theme** (deep navy). Font size (9 / 10 / 11pt) and page cap (auto / 1 / 2) configurable per export. The Export modal includes a **live side-by-side PDF preview** that updates as you change options.
Five templates: **Classic ATS** (max ATS compatibility), **Modern Clean** (blue accents), **Executive** (dark slate), **Dark Theme** (deep navy), and **LaTeX** (serif, academic — Computer Modern with Font Awesome icons). Font size (9 / 10 / 11pt) and page cap (auto / 1 / 2) configurable per export. The Export modal includes a **live side-by-side PDF preview** that updates as you change options.

### Application tracker

Expand Down
2 changes: 1 addition & 1 deletion backend/app/api/document_routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ class CoverLetterPDFRequest(BaseModel):
inline: bool = False # true → render inline (preview iframe), false → download


ALLOWED_TEMPLATES = {"classic_ats", "modern_clean", "executive_dark", "dark_theme"}
ALLOWED_TEMPLATES = {"classic_ats", "modern_clean", "executive_dark", "dark_theme", "latex_serif"}
# Presets stay for the UI labels; numeric strings in [8.0, 13.0] also accepted
# (see is_valid_font_size). The slider sends e.g. "10.3".
ALLOWED_FONT_PRESETS = {"small", "normal", "large"}
Expand Down
633 changes: 632 additions & 1 deletion backend/app/documents/docx_generator.py

Large diffs are not rendered by default.

Binary file added backend/app/documents/fonts/CMUSerif-Bold.ttf
Binary file not shown.
Binary file not shown.
Binary file added backend/app/documents/fonts/CMUSerif-Italic.ttf
Binary file not shown.
Binary file added backend/app/documents/fonts/CMUSerif-Roman.ttf
Binary file not shown.
108 changes: 108 additions & 0 deletions backend/app/documents/fonts/LICENSE-CMU.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
Computer Modern Unicode (CMU Serif) — bundled with StackResume
==============================================================

These TrueType files —

CMUSerif-Roman.ttf
CMUSerif-Bold.ttf
CMUSerif-Italic.ttf
CMUSerif-BoldItalic.ttf

— were generated by converting the OpenType (CFF) "cm-unicode" fonts to
TrueType outlines (ReportLab cannot embed CFF/PostScript outlines). The glyph
shapes are unchanged; only the outline format was converted (cubic → quadratic
Béziers via fontTools/cu2qu).

They are used by the `latex_serif` ("LaTeX") résumé template so the generated
PDF is typographically identical to a pdfLaTeX-compiled document.

Original work
-------------
Computer Modern Unicode fonts, by Andrey V. Panov, derived from the METAFONT
sources of Computer Modern by Donald E. Knuth.
Project: https://cm-unicode.sourceforge.io/ (CTAN: fonts/cm-unicode)

License
-------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.

The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply to any
document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may include
source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).

"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.

"Author" refers to any designer, engineer, programmer, technical writer or
other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining a
copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components, in
Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or in
the appropriate machine-readable metadata fields within text or binary
files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name
as presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any Modified
Version, except to acknowledge the contribution(s) of the Copyright
Holder(s) and the Author(s) or with their explicit written permission.

5) The Font Software, modified or unmodified, in part or in whole, must be
distributed entirely under this license, and must not be distributed under
any other license. The requirement for fonts to remain under this license
does not apply to any document created using the Font Software.

TERMINATION
This license becomes null and void if any of the above conditions are not
met.

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS
IN THE FONT SOFTWARE.
27 changes: 27 additions & 0 deletions backend/app/documents/fonts/LICENSE-FONTAWESOME.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
Font Awesome Free — bundled with StackResume
============================================

Files:
fa-solid-900.ttf (Font Awesome 6 Free, Solid style)
fa-brands-400.ttf (Font Awesome 6 Free, Brands style)

Used by the `latex_serif` ("LaTeX") résumé template to render contact icons
(phone, envelope, map-marker, globe, LinkedIn, GitHub) as real glyphs — the same
icons the LaTeX `fontawesome5` package emits — so the output matches a
pdfLaTeX-compiled résumé exactly.

Source: https://fontawesome.com / https://github.com/FortAwesome/Font-Awesome
Version: 6.x (Free)

License (Font Awesome Free):
- Icons (the glyph artwork): CC BY 4.0
https://creativecommons.org/licenses/by/4.0/
- Fonts (the .ttf/.woff files): SIL OFL 1.1
https://scripts.sil.org/OFL
- Code (not bundled here): MIT

Attribution: "Font Awesome Free by @fontawesome - https://fontawesome.com".

The fonts are redistributed unmodified under the SIL Open Font License v1.1.
A full copy of the OFL 1.1 text is included in LICENSE-CMU.txt in this directory
and applies equally to these font files.
Binary file added backend/app/documents/fonts/fa-brands-400.ttf
Binary file not shown.
Binary file added backend/app/documents/fonts/fa-solid-900.ttf
Binary file not shown.
Loading
Loading