AI Resume Builder is a full-stack MERN application that helps users create, upload, edit, and preview professional resumes. It includes authentication, resume templates, AI-assisted content enhancement, PDF resume extraction, and a public resume preview flow.
- Frontend: https://ai-resume-builder-app-eta.vercel.app/
- Backend: https://ai-resume-builder-app-1.onrender.com
- User registration and login with JWT authentication
- Protected dashboard for managing resumes
- Create a resume from scratch
- Upload an existing PDF resume and extract its content automatically
- AI-powered enhancement for professional summaries and job descriptions
- Multiple resume templates for different visual styles
- Resume preview and public view support
- Profile and resume image handling with ImageKit upload support
- Responsive UI built with React, Vite, Tailwind CSS, and Redux Toolkit
- Frontend: React, Vite, React Router, Redux Toolkit, Axios, Tailwind CSS
- Backend: Node.js, Express, MongoDB, Mongoose, JWT, bcrypt
- AI and media: OpenAI SDK with a Gemini-compatible API base URL, ImageKit, multer, react-pdftotext
- Deployment: Vercel for frontend, Render for backend
resume-builder/
client/ # React frontend
server/ # Express API backend
- Landing page with hero, features, testimonials, call to action, and about sections
- Login and signup flow
- Dashboard for creating, editing, deleting, and uploading resumes
- Resume builder pages and preview pages
- Ready-made templates such as Classic, Minimal, Modern, and Minimal Image layouts
- User authentication routes
- Resume CRUD routes
- AI routes for improving content and uploading resumes
- MongoDB connection helper and middleware for protected routes
POST /api/users/register- Register a new userPOST /api/users/login- Login and receive a JWT tokenGET /api/users/data- Fetch the current user profileGET /api/users/resumes- Fetch all resumes for the logged-in user
POST /api/resumes/create- Create a blank resumePUT /api/resumes/update- Update a resume, including image uploadDELETE /api/resumes/delete/:resumeId- Delete a resumeGET /api/resumes/get/:resumeId- Fetch a private resume by idGET /api/resumes/get/public/:resumeId- Fetch a public resume by id
POST /api/ai/enhance-pro-sum- Improve a professional summaryPOST /api/ai/enhance-job-desc- Improve a job descriptionPOST /api/ai/upload-resume- Extract resume data from a PDF and create a resume
- Node.js installed
- MongoDB running locally or a MongoDB Atlas connection string
- ImageKit credentials for image uploads
- An OpenAI-compatible API key and model configuration for AI features
git clone https://github.com/deviddeos/ai-resume-builder-app.git
cd resume-builderInstall frontend dependencies:
cd client
npm installInstall backend dependencies:
cd ../server
npm installCreate a client/.env file:
VITE_BASE_URL=http://localhost:4000Create a server/.env file:
PORT=4000
MONGODB_URI=mongodb://localhost:27017
JWT_SECRET=your_secret_key
IMAGEKIT_PRIVATE_KEY=''
OPENAI_API_KEY=''
OPENAI_BASE_URL=''
OPENAI_MODEL=''Start the backend:
cd server
npm run startStart the frontend:
cd client
npm run dev- Frontend is deployed on Vercel
- Backend is deployed on Render
- Make sure the frontend
VITE_BASE_URLpoints to the deployed backend URL - Make sure Render environment variables are configured before deploying the backend
- The app uses JWT stored in local storage for authentication
- Protected API requests automatically attach the token through the Axios interceptor
- If you sign in with an existing email, the server returns a conflict response