A professional resume builder application built with React, TypeScript, Vite, and Electron. Create, manage, and export multiple resume profiles with ease.
- Create and manage multiple resume profiles (e.g., "Senior Engineer", "Manager Role")
- Quick profile switching with dropdown selector
- Duplicate existing profiles to save time
- Each profile remembers its own template preference
- Personal Information: Name, contact details, social links (LinkedIn, GitHub, website)
- Professional Summary: Highlight your career objectives
- Work Experience: Company, role, duration, description, and project highlights
- Education: Degrees, institutions, GPA, and dates
- Skills: Organized by categories:
- Programming Languages
- Frameworks & Libraries
- Tools
- AIML Models
- Product Skills
- Agile & Delivery
- Analytics & Business
- Soft Skills
- Languages
- Other
- Personal Details: Optional section for additional information
- Modern: Clean and contemporary design
- Classic: Traditional professional layout
- Minimal: Simple and elegant style
- Creative: Eye-catching format
- PDF Export: Professional PDF output with proper formatting
- DOCX Export: Editable Microsoft Word documents
- Customizable filename based on your name
- Desktop (Electron): SQLite database for reliable local storage
- Web Mode: localStorage fallback for browser-based usage
- Auto-save functionality with debouncing (500ms)
- Automatic migration from single-profile to multi-profile system
- Toggle visibility of any resume section
- Hide/show sections without deleting data
- Customize what appears in your final resume
- Node.js (v18 or higher)
- npm (v9 or higher)
- Clone the repository:
git clone <repository-url>
cd resume_builder- Install dependencies:
npm installStart the Electron application in development mode:
npm run electron:devThis will:
- Start the Vite development server
- Launch the Electron app with hot-reload
- Open DevTools for debugging
- Store data in SQLite database
Start the web version for browser-based usage:
npm run devThen open http://localhost:5173 in your browser.
Note: In web mode, data is stored in browser localStorage instead of SQLite.
- When you first launch the app, a "Default Profile" is automatically created
- Click the profile selector in the header to manage profiles
- Click the profile selector in the header
- Select "Create New Profile"
- Enter a descriptive name (e.g., "Senior Engineer", "Manager Role")
- Click "Create"
- Load the profile you want to duplicate
- Click the profile selector
- Select "Duplicate Current"
- Enter a new name for the copy
- All data (resume content + template) will be copied
- Click the profile selector in the header
- Select the profile you want to edit
- The app will load all data for that profile
- Click the profile selector
- Select "Rename Current"
- Enter the new name
- Click the profile selector
- Select "Delete Current"
- Confirm the deletion
Note: You cannot delete the last remaining profile
Fill in:
- Full Name
- Email Address
- Phone Number
- Location (optional)
- LinkedIn URL (optional)
- GitHub URL (optional)
- Website URL (optional)
Write a brief summary (2-4 sentences) highlighting your experience and career goals.
- Enter a skill name
- Select a category from the dropdown
- Click "Add" or press Enter
- Skills are automatically grouped by category
- Click the trash icon to remove a skill
- Click "Add Work Experience"
- Fill in:
- Company name
- Role/Position
- Start date (YYYY-MM format)
- End date or check "Currently working here"
- Job description (optional)
- Project highlights/responsibilities (add multiple)
- Click "Add Project" to add bullet points
- Use the visibility toggle to show/hide this section
- Click "Add Education"
- Fill in:
- Institution name
- Degree type
- Field of study
- Start and end dates
- GPA (optional)
- Use the visibility toggle to show/hide this section
Fill in any relevant personal information:
- Father's Name
- Date of Birth
- Gender
- Marital Status
- Languages Known
- Nationality
Use the visibility toggle if you don't want this section in your resume.
- Scroll to the preview section on the right
- Click one of the template buttons:
- Modern: Contemporary design with blue accents
- Classic: Traditional layout with serif fonts
- Minimal: Clean and simple design
- Creative: Bold and eye-catching
The template preference is saved per-profile.
- Click the green "Export PDF" button
- Your resume will download as
YourName_resume.pdf
- Click the blue "Export DOCX" button
- Your resume will download as
YourName_resume.docx - You can further edit the document in Microsoft Word
Each section has an eye icon:
- 👁️ Visible: Section will appear in exported resume
- 👁️🗨️ Hidden: Section is hidden but data is preserved
Use this to:
- Hide personal details for certain applications
- Temporarily remove sections without deleting data
- Customize resume content for different roles
Use Case: Senior Engineer vs. Manager Roles
- Create your main profile with all details
- Duplicate it as "Manager Role"
- In the Manager profile:
- Update the professional summary to focus on leadership
- Modify work experience descriptions to highlight management achievements
- Adjust skills to emphasize product/business skills
- Choose a different template if desired
- Switch between profiles as needed when applying for different positions
npm run buildFor macOS:
npm run electron:build:macFor Windows:
npm run electron:build:winFor Linux:
npm run electron:build:linuxFor all platforms:
npm run electron:buildBuilt applications will be in the release/ directory.
- Database location:
~/Library/Application Support/resume-app/resume.db(macOS) - Windows:
%APPDATA%/resume-app/resume.db - Linux:
~/.config/resume-app/resume.db
- Data stored in browser localStorage
- Key:
resume_builder_profile_*andresume_builder_profiles_list
- Frontend: React 19, TypeScript
- Build Tool: Vite 7
- Desktop: Electron 39
- Database: better-sqlite3 (for Electron)
- PDF Export: @react-pdf/renderer
- DOCX Export: docx
- Styling: Tailwind CSS 3
- Icons: lucide-react
- Routing: react-router-dom
- Ensure all dependencies are installed:
npm install - Try rebuilding native modules:
npm run rebuildornpx electron-rebuild
- Check console for errors
- In Electron mode, ensure write permissions to app data directory
- In web mode, check browser localStorage is enabled
- Hard refresh the app (Cmd+Shift+R or Ctrl+Shift+R)
- Check browser console for errors
MIT
Contributions are welcome! Please feel free to submit a Pull Request.