A lightweight, browser-based resume builder to quickly draft a professional CV and export it as a PDF. No signup required—and now includes an optional Node.js backend so you can save and reload drafts from any device.
- Inline editing: Click into any field (name, title, contact, summary, sections) and type.
- Work/Education sections: Add roles and programs interactively.
- Skills block: Simple list for quick scanning.
- One-click PDF: Use the Download PDF button to export your resume.
- Save & load drafts: Persist resumes to the Express backend and reload them later with a shareable draft ID.
- HTML5 – structure
- CSS3 – layout & styles
- Vanilla JavaScript – interactivity (form fields, add/remove items, PDF trigger)
- Node.js + Express – lightweight REST API for saving and loading resume drafts
-
Clone the repository
git clone https://github.com/NehitPahuja/Basic-resume-builder.git cd Basic-resume-builder -
Install dependencies
npm install
-
Start the backend + static server
npm start
The app will be available at http://localhost:4000.
-
Build your resume
- Click fields to edit content in the live preview.
- Add entries under Work History / Education.
- Click Save Draft to store a copy on the backend—an ID will be generated so you can reload it later with Load Draft.
- Click Download PDF to export a polished copy.
Prefer the original static version? Open
index.htmldirectly in your browser without starting the backend (save/load will be unavailable).
.
├─ index.html # Layout & content areas
├─ styles.css # Styling
├─ script.js # Field logic, add/remove items, PDF trigger, backend integration
├─ server.js # Express server that serves static assets + REST API
├─ package.json # Project metadata & dependencies
├─ data/ # JSON storage for saved drafts (gitignored)
└─ .gitignore
The backend persists drafts to data/resumes.json on disk and exposes a small REST API:
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/health |
Health check for uptime monitoring. |
POST |
/api/resumes |
Save a draft. Expects the same shape as the frontend state and returns { id }. |
GET |
/api/resumes |
List saved drafts with minimal metadata (ID, name, job title, timestamp). |
GET |
/api/resumes/:id |
Retrieve a full draft by ID for loading back into the editor. |
Drafts are stored unencrypted on disk for simplicity. Use environment-level protections or swap in a different persistence layer before deploying publicly.
Because it’s static, you can deploy anywhere:
- Vercel (the demo is hosted there).
- GitHub Pages
- Netlify
- Multiple templates (classic, modern, minimalist)
- Section reordering + drag & drop
- Dark mode toggle
- Auto-save to LocalStorage
- Custom theme colors and font picker
- Fork the repo
- Create a feature branch:
git checkout -b feat/your-feature - Commit:
git commit -m "Add your feature" - Push:
git push origin feat/your-feature - Open a Pull Request