Inspiration These days, everyone’s stuck in a cycle of brainrot—scrolling nonstop and losing focus—so finding a way to make something as boring as resume building actually engaging feels like the perfect way to turn that energy into real career progress. We wanted to build a tool that was not only genuinely useful but also fun and shareable, turning a dreaded task into a humorous and productive experience.
What it does Resume Roaster is a full-stack application that transforms a user's resume into a hilarious, personalized roast video, all while providing constructive feedback.
A user visits the site and uploads their resume as a PDF or DOCX file. The system then:
Analyzes the resume for content, formatting, ATS compatibility, weak verbs, and buzzwords.
Generates a custom roast video using AI. The user can even choose the intensity: "gentle," "medium," or "savage."
Improves the resume by providing actionable suggestions and even generating a new document with fixes applied.
It's designed to help you laugh at your resume's flaws and then give you the tools to fix them.
How we built it The project consists of a modern frontend and a powerful Python backend.
Frontend: The UI is a responsive single-page application built with React, Vite, and TypeScript. We used Tailwind CSS for styling and the shadcn/ui component library (which includes components for cards, buttons, and accordions) to build a polished user experience quickly.
Backend: The backend is a modular Python CLI tool orchestrated by a main entry point.
Parsing: It uses pdfplumber and python-docx to parse text from PDF and DOCX files, using regex to extract structured data.
Analysis: A custom engine analyzes the text for issues like buzzwords, weak verbs, and missing metrics, calculating a weighted score.
AI Generation: We integrate with the Anthropic Claude API by sending the analysis results through carefully crafted prompts to generate the roasts and improvement suggestions.
Video & Docs: The roast script is converted to audio using gTTS and stitched into a video with MoviePy. A corrected resume document is generated using python-docx.
CLI: The Rich library is used to provide beautiful, formatted output in the terminal.
Challenges we ran into One of the biggest challenges was prompt engineering. It took many iterations to create prompts for Claude that were genuinely funny and varied in tone (gentle, medium, savage) while still being rooted in constructive criticism.
Another challenge was orchestrating the backend pipeline. Getting multiple libraries that don't always play nice together—like pdfplumber for parsing, moviepy for video rendering, and gtts for audio—to work in a single, smooth process from one command was complex. Finally, designing the system to work as both a CLI tool and a web API required careful modularization.
Accomplishments that we're proud of We're incredibly proud of the core concept and the final AI output. The roasts are genuinely funny, and the improvement suggestions are practical.
We're also proud of the modular backend architecture. Building it as a robust, standalone CLI tool that can also be wrapped by a web API (like FastAPI) makes it highly flexible. The use of the Rich library for the CLI output makes the developer experience fantastic. On the frontend, we're proud of how quickly we built a professional and clean UI using shadcn/ui and Tailwind.
What we learned This project was a deep dive into practical, creative uses for large language models. We learned a ton about prompt engineering and how to chain different AI and non-AI tools to build a complex, multi-step process. We also gained valuable experience in media generation with Python, specifically audio synthesis with gTTS and video composition with MoviePy. On the frontend, it was a great exercise in building a modern, type-safe React application from scratch using Vite and shadcn/ui.
What's next for Resume Roaster The immediate next step is to fully connect the frontend to the backend. Currently, the frontend navigates to a processing page with a placeholder video. We need to implement the API calls to upload the file, poll for status, and finally display the actual generated video and improvement text from the Python backend.
Future feature ideas include:
Adding more video and voice templates for the roasts.
Expanding the analysis engine to cover even more resume pitfalls.
Building a "roast-my-LinkedIn-profile" feature.
Built With
- anthropic-claude-api
- fastapi
- google-cloud
- gtts
- moviepy
- pdfplumber
- python
- python-docx
- react
- react-router-dom
- rich
- shadcn/ui
- tailwind-css
- typescript
- vite
Log in or sign up for Devpost to join the conversation.