Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Resume Engine

An AI resume builder that actually tells you the truth instead of just hallucinating strengths.

Live Demo Stack AI


Why I Built This

There are tons of job openings out there, but millions of candidates. You'll often see 100+ applicants on a LinkedIn post within 20 minutes. Because of this insane demand, ATS systems usually filter resumes before any human even looks at them. If your keywords don't match the Job Description (JD), you're basically ghosted.

Manually tweaking your resume for every single application takes way too much time. And most AI tools just make things worse—they make stuff up or tell you you're a great fit when you're clearly not.

Resume Engine fixes this. You build a Master Profile once (dump everything you've ever done in there). Then, you paste a JD. The app acts like a strict, no-nonsense hiring manager. It scores your fit, tells you if you should even bother applying, rewrites your bullets to match the JD, and spits out an ATS-friendly PDF.


Live Demo

🔗 resumeengine.online

Step What Happens
1. Build your Master Profile Add your experience, education, skills, and projects just once.
2. Paste a Job Description Grab a JD from anywhere.
3. Watch the Engine run Streams real-time progress steps (Validating, Analyzing, Saving) and returns the result.
4. Tweak things Use the workbench to edit the AI suggestions before saving.
5. Download the PDF Get a clean, single-column, ATS-optimized PDF.

Screenshots

Landing Profile Tailor Analysis
Landing Profile Analysis

Check out the screenshots/ folder for more.


What's Under the Hood (Tech Stack)

Part Tech Used Quick Note
Frontend React 19, TypeScript, Vite Fast and type-safe.
Styling Tailwind CSS v4, Framer Motion, Radix UI Looks good and easy to build with.
State Zustand, TanStack Query Handles data fetching and global state without the boilerplate.
Forms React Hook Form + Zod Validates data on both client and server.
Backend Node.js, Express 5 Standard API stuff.
Database MongoDB + Mongoose Great for nested profile data.
AI Groq API (Llama 3.3 70B) Super fast JSON completion for rapid evaluation.
PDFs Puppeteer + Handlebars Turns HTML into PDFs on the server.
Auth JWT, HttpOnly cookies, BCrypt Keeps sessions secure.
Infra AWS EC2, NGINX, PM2, Vercel Backend on EC2, frontend on Vercel.

The Interesting Engineering Stuff

NPM Workspaces (Monorepo)

I got tired of defining types on the frontend and then writing validation logic again on the backend. So I set it up as a monorepo with three parts:

resume-engine/
├── client/          → The React app
├── server/          → The Express API
└── shared/          → Zod schemas

Now, if a form passes validation on the frontend, the exact same Zod schema checks it on the backend. No drifting out of sync.

Progress Tracking & Connection Management with Server-Sent Events (SSE)

Instead of leaving the user in the dark with a plain loading spinner while the backend validates the JD, invokes Groq, and saves the tailored profile, I used Server-Sent Events. The server streams real-time status updates (like "Validating Job Description...", "Analyzing profile...") so the user sees progress steps live. It also handles connection timeouts and automatically refunds credits if the client disconnects mid-request.

The Puppeteer Singleton

Generating PDFs with Puppeteer takes a lot of RAM. If you launch a new headless browser for every request, a small EC2 instance will crash almost immediately. I fixed this by keeping a single Chrome instance running and just opening new tabs (contexts) for each request, managing the load with a semaphore.

Atomic Signups

When a new user signs up, the app needs to create a User document and a blank Profile document. I wrapped this in a Mongoose transaction so it's all or nothing. This prevents weird bugs where a user exists but their profile doesn't.


What's Next (Roadmap)

I'm actively working on this project. Here is what is coming up:

  • New Resume Templates: Right now it generates a standard ATS-friendly layout. I'm adding a few more clean, professional templates that you can choose from before you hit download.
  • Ongoing Maintenance & Bug Fixes: Still smoothing out some edge cases (especially around weird characters in job descriptions) and keeping dependencies updated.
  • Better Mobile Experience: The PDF preview on small screens still needs a bit of polish.
  • Cover Letter Generator: Taking the same strict, no-nonsense AI approach and applying it to cover letters.

Want to read more?

Check out the docs for deeper dives:

Document Description
architecture/system-overview.md How the pieces fit together.
architecture/auth-flow.md How login and cookies work.
architecture/llm-pipeline.md How data gets sent to the AI safely.
architecture/database-schema.md The Mongo DB structure.
docs/feature-map.md Where to find things in the code.
docs/security-model.md Basic security setup.
docs/engineering-decisions.md Why I picked certain tools over others.

Contributing & Feedback

I'm keeping the actual production source code private for now. This repo is just a portfolio case study to explain how I built it.

However, the live app fully supports reporting bugs and requesting new features. If you run into any issues or have ideas on how to improve the Engine, please let me know through the app.

If you're a developer interested in contributing or chatting about the architecture, feel free to reach out to me on LinkedIn (you can find the link on my GitHub profile). You can also check out the live site at resumeengine.online.

About

A resume tailoring platform that uses AI to analyze job descriptions and generate targeted resumes from a master profile.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors