A modern, interactive web application for creating professional cover letters using a drag-and-drop interface.
- Drag & Drop Interface - Intuitive letter building by dragging response snippets
- Response Library - Pre-loaded crowd-sourced and AI-generated responses
- Custom Responses - Add, edit, and delete your own response templates
- User Profile Management - Auto-saves personal information (name, address)
- Letter Building - Sortable paragraphs with easy removal
- PDF Export - Professional formatting with intelligent file naming
- Local Storage - All data persists in your browser
- Professional Design - Clean, modern interface
- Responsive Layout - Works on desktop and mobile
- Real-time Saving - Profile and responses auto-save
- Keyboard Shortcuts - Ctrl+Enter to quickly add responses
- Confirmation Dialogs - Prevents accidental data loss
- Error Handling - Graceful handling of storage limitations
- Open
profile.htmland fill in your profile (name, address, phone, email) and upload your resume (optional) - Open
index.htmlto build your letter - Paste a job ad (or URL) to auto-fill fields if desired
- Drag responses from the library, select a theme, and click Preview
- Choose Page size (Letter/A4) and Download as PDF
Click Cover Letter Creator/
├── index.html # Main application page
├── styles.css # Complete styling and responsive design
├── script.js # Full application logic (~18KB)
├── favicon.svg # Briefcase icon
└── README.md # This documentation
- Frontend: Pure HTML5, CSS3, JavaScript (ES6+)
- Dependencies:
- SortableJS - Drag & drop functionality
- html2pdf.js - PDF generation
- Storage: Browser localStorage
- No Backend Required - Fully client-side application
- Drag the project folder to Netlify Drop
- Your app will be live instantly with a generated URL
- No configuration required
- Push this repository to GitHub
- Enable GitHub Pages in repository settings
- Your app will be available at
https://username.github.io/repository-name
Option A: No backend (basic features)
Simply open index.html in your browser - no server required.
Option B: With local DB (persist responses across browsers/sessions)
- Install Node.js 18+
- In project folder:
npm install - Start server:
npm run dev:server - Open
index.htmlin your browser
The app will automatically detect the database server at http://localhost:5050. When online, User/Crowd/AI responses are synced to SQLite. If offline, it falls back to localStorage.
- Enter Personal Info: Fill in your name and address in the "Your Info" section
- Add Job Details: Complete the job information form
- Select Responses: Browse the response library (User Created, Crowd Sourced, AI Generated)
- Drag to Build: Drag response snippets to the letter building area
- Customize Order: Rearrange paragraphs by dragging within the letter area
- Remove Unwanted: Click the × button on any paragraph to remove it
- Export: Click "Download as PDF" for a professionally formatted document
- Add: Type in the text area and click "Add Response"
- Edit: Click the ✏️ icon on any user-created response
- Delete: Click the 🗑️ icon to remove custom responses
- Shortcut: Use Ctrl+Enter in the text area to quickly add responses
- New Letter: Clear current work and start fresh
- Save Locally: Store letters in browser storage for later retrieval
- PDF Export: Generate professional PDFs with intelligent naming
- User Profile:
localStorage['userProfile'] - Response Library:
localStorage['responses'] - Saved Letters:
localStorage['savedLetters']
- Chrome/Edge: Full support
- Firefox: Full support
- Safari: Full support
- IE11+: Basic support (some ES6 features may need polyfills)
- Input Sanitization: HTML tags stripped from user input
- XSS Prevention: All user content properly escaped
- No Server Communication: All data stays in your browser
The application uses CSS custom properties and is designed to be easily themeable. Key color schemes:
- User Responses: Light blue (
#E0F7FA) - Crowd-sourced: Light orange (
#FFF3E0) - AI Generated: Light purple (
#F3E5F5)
- Create a feature branch (e.g.,
feature/my-change) - Push your branch and open a PR on GitHub (we’ll use PRs for merges going forward)
- Keep commits scoped and include a concise PR description
- Cloud Storage Integration (Google Drive, Dropbox)
- Template Variations (different letter formats)
- Company Database (auto-fill company information)
- Collaboration Features (share responses)
- Analytics (track letter success rates)
This project is open source and available under the MIT License.
If you encounter any issues:
- Clear Browser Cache - Refresh the page
- Check Browser Console - Look for JavaScript errors
- Disable Extensions - Some browser extensions may interfere
- Try Incognito Mode - Rule out extension conflicts
Built with ❤️ for job seekers everywhere
Last updated: September 22, 2025