JobTailor AI is a modern AI-powered web application designed to help job seekers generate professional, customized cover letters based on their resume and a job description. Built using React and Google's Gemini API, it streamlines the job application process with just a few clicks.
- Upload a resume in
.pdf
format. - Automatically extract clean text from the resume using
react-pdftotext
. - No backend or MIME errors — fully frontend and Vite-compatible.
- Paste a job description.
- Generate a customized cover letter using Gemini 1.5 Flash Free API.
- Prompt crafted for professional tone and resume-job alignment.
- Editable WYSIWYG interface built using
draft-js
. - Users can tweak AI output before exporting.
- Clean, styled PDF export using
@react-pdf/renderer
. - Custom paragraph splitting logic to respect blank lines for proper paragraph separation.
- Paragraphs rendered as separate
<Text>
components with margin spacing for clear line separation. - Added a visible border around the PDF page content acting as a margin frame (using
borderWidth
andborderColor
). - Ensured PDF download feature is stable and consistent without layout breaking.
- Clean, non-blocking loading spinner while Gemini is processing.
- Frontend: React + Vite
- AI API: Google Gemini 1.5 Flash (via free API key)
- PDF Parsing:
react-pdftotext
- PDF Download:
@react-pdf/renderer
- Text Editor:
draft-js
- Styling: Basic inline styles (can be replaced with Tailwind or CSS Modules)
src/
├── components/
│ ├── FileUpload.jsx // Resume upload + parsing
│ ├── Loader.jsx // Spinner component
│ ├── CoverLetterEditor.jsx // Editable WYSIWYG component
│ └── CoverLetterPDF.jsx // PDF layout using react-pdf with paragraph splitting and border styles
├── pages/
│ └── Home.jsx // Main UI logic
├── utils/
│ ├── geminiApi.js // API call to Gemini
│ └── pdfParser.js // PDF parsing using react-pdftotext
- ATS (Applicant Tracking System) feedback on resume
- Gemini-based resume rewriting suggestions
- Interview question generation from job description
- Resume-to-job match score / confidence indicator
- Drag & drop resume upload
- Save generated letters to local storage or cloud
- Dark mode / theming
- Resume preview with highlights
- Deploy to Vercel with secure env handling for API key
- Optional backend for secure Gemini API key proxy (Node.js / Firebase)
- Offline support (PWA)
- Clone the repo
- Install dependencies:
npm install
- Set your Gemini API Key in
.env
:VITE_GEMINI_API_KEY=your_google_api_key
- Start the dev server:
npm run dev
MIT — free to use, modify, and build upon.