Skip to main content

A terminal-based LLM-powered resume coaching tool

Project description

PyPI Version Python Versions PyPI Downloads License CI security: bandit

Resume Roast

A terminal-based LLM-powered resume coaching tool. Get brutal, structured feedback on your resume, refine individual bullet points through back-and-forth chat, or generate new resume blocks from scratch.

Features

  • evaluate — Submit a PDF resume and receive a structured roast: per-category scores, highlighted strengths and weaknesses, and concrete rewrite suggestions with before/after examples
  • refine — Interactive chat that coaches a single resume bullet, rating it on every turn and suggesting improvements
  • generate-block — Chat-based interviewer that gathers details about a role or project, then generates a formatted resume block rated against our bullet-writing principles
  • Multiple LLM models to choose from, with per-session token usage and cost reporting
  • Configurable persona (recruiter, hiring manager, senior engineer) and level (intern through senior) for evaluations

Getting Started

Prerequisites

Installation

pip install resume-roast

For development:

git clone https://github.com/jfang324/resume-roast.git
cd resume-roast
poetry install

First-Time Setup

Set your NVIDIA API key:

resume-roast config credentials

You can also configure the model, persona, and seniority level:

resume-roast config settings

Configuration is stored in ~/.resume-roast/.

Usage

Evaluate a Resume

resume-roast evaluate path/to/resume.pdf

Extracts your resume, sends it to the LLM for structured analysis, and prints a diff-highlighted report with scores and rewrite suggestions.

Refine a Bullet

resume-roast refine "Managed a team of 5 engineers"

Opens an interactive chat. The LLM coaches you, rating the bullet on every reply and suggesting improvements. Available commands:

Command Action
/replace <text> Replace the bullet with a new version (re-rates it)
/generate <notes> Generate a candidate rewrite (notes optional)
/help Show available commands
/exit End the session
(plain text) Conversational coaching turn

Generate a Block

resume-roast generate-block

Opens an interactive chat. The LLM interviews you about a role or project, asking questions to gather specifics. Type /generate when you're ready to produce a formatted resume block (header + 3-6 bullet points). The model only generates if it can produce an 8-10/10 quality block — otherwise it asks more questions. Available commands:

Command Action
/generate <notes> Generate a resume block (notes optional)
/help Show available commands
/exit End the session
(plain text) Answer questions, add details

Development

See docs/development.md for setup and development commands.

Tools & Technologies

Core

  • Python 3.12+
  • Typer (CLI framework)
  • Rich (terminal output, spinners, diff rendering)
  • pymupdf4llm (PDF to Markdown extraction)
  • openai SDK (NVIDIA NIM API client)

Code Quality

  • Ruff (linting + formatting)
  • Pyright (strict type checking)
  • Bandit (security linting)
  • pre-commit hooks

Testing

  • pytest
  • coverage (branch coverage, 85% minimum)
  • pytest-asyncio

Build & Package

  • Poetry

License

This project is licensed under the MIT License — see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

resume_roast-1.0.1.tar.gz (42.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

resume_roast-1.0.1-py3-none-any.whl (69.6 kB view details)

Uploaded Python 3

File details

Details for the file resume_roast-1.0.1.tar.gz.

File metadata

  • Download URL: resume_roast-1.0.1.tar.gz
  • Upload date:
  • Size: 42.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.4 CPython/3.12.7 Windows/11

File hashes

Hashes for resume_roast-1.0.1.tar.gz
Algorithm Hash digest
SHA256 3f6355c91f91aba7907b64f3be27fffe239f317974cf53c2cf2ac5d61507fd9c
MD5 8cc30f468aa4deec890fbfc8d8a2b53d
BLAKE2b-256 3f37092fe3f5a00ac554e960a3230beb39d8d9cabf2916202921c983234b6f55

See more details on using hashes here.

File details

Details for the file resume_roast-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: resume_roast-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 69.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.4 CPython/3.12.7 Windows/11

File hashes

Hashes for resume_roast-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 42822ec00df4d7eeb439b5f9917a1c069ebd9e7f307789276dea686a3d978769
MD5 f2cf39bbc8e7832b427a9a753833fa21
BLAKE2b-256 325ba4ebe4663b1f7748590fe540e6bfae365721ea97547c7c9bf11803739059

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page