Project: Resume Builder

By Martin Moyér 3 min read July 7, 2025
Project: Resume Builder

Building an AI-Powered Resume Builder with Streamlit
 

I built this tool after a few friends complained about rewriting their resumes for every job application. Automating the formatting and using AI to surface key achievements and relevant experiences means they can spend their time refining content, not redoing layouts.

Why I Built It

People were losing hours tweaking bullet points, rearranging sections, and wrestling with design. I wanted to give them a fast, role‑focused draft they could polish – rather than starting over each time – and end up with a professional resume in minutes.

How It Works

  1. Input your details: Enter personal info, work history, education, skills, certifications and projects.

  2. Paste the job description: Drop in the exact job posting you’re targeting.

  3. AI-generated draft: Behind the scenes, OpenAI’s GPT analyzes both inputs and produces a resume that emphasizes relevant experience.

  4. Edit in markdown: A live‑preview markdown editor lets you tweak phrasing, reorder sections or add missing items.

  5. Export: Download a clean HTML file, then use your browser’s print-to-PDF for a final copy.

Under the Hood

The app uses Streamlit to keep the UI simple and interactive. It integrates OpenAI’s API with the GPT‑4o‑mini model to analyze job descriptions and generate tailored content. A built‑in markdown editor with real‑time preview offers easy manual adjustments and Jinja2 handles clean, exportable HTML templating. User data stays separate from the AI layer, so no raw personal information is ever sent to the model.

Reflection

Finding a prompt that reliably generated clean, relevant resume content involved a fair bit of trial and error – small tweaks often made a noticeable difference. I settled on the GPT‑4o‑mini model because it struck the right balance of cost and quality; the premium models only marginally improved output, and didn’t justify the extra expense. Streamlit proved to be a practical choice for quickly putting together a usable and polished interface without getting bogged down in front‑end details. I'll definitely use this for rapid prototyping in the future. Finally, designing a clear boundary between user inputs and AI calls got me thinking carefully about privacy. By isolating personal data before it ever reaches the LLM, I could guarantee sensitive information stayed under my control.

What's Next?

The project is fully open source – feel free to explore or fork on GitHub. See the full project description with images, source code and more here: Resume Builder
 

 

Share: