Frontend-Only Resume Builder with AI Enhancement
An intelligent, fully-client-side resume generator powered by Hugging Face AI and Supabase.
-
β AI-Powered Content Generation - Uses Mistral-7B model to improve your resume
- Generate professional summaries
- Create job descriptions with action verbs
- Enhance skill proficiencies
-
β Live ATS Score Checking - Real-time feedback on your resume's ATS compatibility (0-100)
- Keyword matching analysis
- Actionable improvement suggestions
- Section structure validation
-
β Multiple Resume Templates - Choose from Modern, Classic, or Creative designs
-
β Secure Data Storage - Save to Supabase, load anytime
-
β Export Options - Download as PDF or print directly
-
β Fully Responsive - Works seamlessly on desktop and mobile
- Frontend: React 18 + TypeScript + Vite
- Styling: Tailwind CSS
- AI: Hugging Face Inference API (Mistral-7B-Instruct-v0.2)
- Database: Supabase (PostgreSQL + Auth)
- Icons: Lucide React
- Export: HTML-to-PDF conversion
node >= 16
npm >= 7- Clone the repository
git clone https://github.com/Alisonrajpal/genRes.git
cd genRes/frontend- Install dependencies
npm install- Set up environment variables
Create a .env file in the frontend/ directory:
# Hugging Face API Token (get from https://huggingface.co/settings/tokens)
VITE_HF_TOKEN=hf_YOUR_TOKEN_HERE
# Supabase Configuration
VITE_SUPABASE_URL=https://your-project.supabase.co
VITE_SUPABASE_KEY=your_anon_key
# Optional: Set to "true" to use mock data instead of real API
VITE_USE_MOCK_HF=false- Start the development server
npm run devThe app will be available at http://localhost:5173/
- Enter personal details (name, email, phone, LinkedIn, etc.)
- Add education history
- List work experience
- Add your technical and soft skills
Click the AI enhancement buttons to generate or improve:
- Generate Summary - Creates a professional summary based on your skills and experience
- Enhance Skills - Assigns proficiency levels to your skills
- Generate Job Descriptions - Creates achievement-focused bullet points for each job
- Real-time ATS compatibility score (0-100) in the preview panel
- See which keywords are matched
- Get specific suggestions to improve your score
- Target score: 80+ for best ATS compatibility
- Modern: Clean, professional design with accent colors
- Classic: Traditional format that works with all ATS systems
- Creative: Unique layout with visual elements
- Download as PDF
- Print directly
- Data is automatically saved to localStorage and Supabase
Frontend (React + Vite)
βββ Hugging Face API β Text Generation (Mistral-7B)
βββ Supabase β Data Storage
βββ localStorage β Local Backup
- Text Generation: Prompts are engineered to generate resume-specific content
- ATS Scoring: Uses keyword analysis and structural validation (no API call required)
- Fallback Mode: If HF token is missing or API fails, uses intelligent mock responses
| Variable | Description | Required |
|---|---|---|
VITE_HF_TOKEN |
Hugging Face API token | Yes |
VITE_SUPABASE_URL |
Supabase project URL | Yes |
VITE_SUPABASE_KEY |
Supabase anon key | Yes |
VITE_USE_MOCK_HF |
Use mock data instead of real API | No (default: false) |
Hugging Face Token:
- Go to https://huggingface.co/settings/tokens
- Create a new token with
readpermissions - Copy and paste into
.env
Supabase Keys:
- Create a project at https://supabase.com
- Go to Settings β API
- Copy
URLandanonkey
- Uses
mistralai/Mistral-7B-Instruct-v0.2model - Smart prompt engineering for resume-specific content
- Automatic error handling and fallback to mock mode
- Max tokens: 150-250 per generation
Scoring Factors:
- Base score: 50 points
- Keyword matching: +30 points (based on industry-standard ATS keywords)
- Section structure: +15 points (Education, Experience, Skills, Certifications)
- Word count validation: +5 points (optimal: 300-1000 words)
Feedback Includes:
- Keyword suggestions
- Section organization tips
- Word count optimization
- Action verb recommendations
- localStorage: Automatic backup of resume data in browser
- Supabase: Optional cloud storage and sync
- Encrypted and secure
npm run buildnpm run previewnpm run lintnpm run type-checkfrontend/
βββ src/
β βββ components/
β β βββ ResumeBuilder/ # Main resume building component
β β βββ PreviewPanel/ # Live preview with ATS score
β β βββ InputForms/ # Form components for data input
β β βββ TemplateSelector/ # Template chooser
β β βββ Auth/ # Authentication components
β β βββ Layout/ # Header and layout
β βββ services/
β β βββ api.ts # API calls and ATS scoring
β β βββ hf.ts # Hugging Face integration
β β βββ supabaseClient.ts # Supabase configuration
β βββ types/
β β βββ resume.ts # TypeScript types
β βββ utils/
β β βββ default.ts # Default data
β β βββ helpers.ts # Utility functions
β βββ main.tsx
βββ package.json
βββ tsconfig.json
βββ vite.config.ts
- Check your Hugging Face token is valid
- Open browser DevTools (F12) β Console
- Look for
[HF Service]log messages - Ensure internet connection is stable
- Try again (model may need to warm up first time)
- Score updates automatically as you type
- Check that your resume text includes standard section headers
- Refresh the page if stuck
- Check browser localStorage is enabled
- For Supabase: verify credentials in
.env - Check browser DevTools for errors
- β All resume data stays on your device (localStorage)
- β Optional Supabase storage is encrypted
- β
No data is sent to third parties except:
- Hugging Face API (for text generation)
- Supabase (for cloud storage, if enabled)
- β Your API tokens are only used client-side
- Fast page loads (Vite + code splitting)
- Lightweight bundle (~1MB gzipped)
- No server required
- Works offline (with mock mode)
Contributions are welcome! Please feel free to submit a Pull Request.
This project is open source and available under the MIT License.
Made with β€οΈ for job seekers and professionals