An intelligent, serverless AI-powered resume analyzer that provides real-time ATS (Applicant Tracking System) scores and personalized feedback to help job seekers optimize their resumes for specific positions.
Stop sending resumes into the void. Get instant, AI-powered feedback on how well your resume matches any job posting, with detailed suggestions on how to improve your chances of landing an interview.
Built with cutting-edge technologies:
- โ 100% serverless architecture
- โ Zero backend configuration required
- โ Free AI models (GPT, Claude, Grok)
- โ User-pays model (zero infrastructure costs)
- โ Real-time analysis and feedback
- Smart Resume Upload - Drag-and-drop PDF upload with instant preview
- Job Matching Analysis - Compare your resume against specific job descriptions
- ATS Score Calculation - Get a comprehensive score (0-100) on resume effectiveness
- AI-Powered Feedback - Detailed suggestions across 4 key categories:
- Tone & Style
- Content Quality
- Structure & Format
- Skills Matching
- PDF to Image Conversion - Automatic thumbnail generation for easy browsing
- Serverless Authentication - Secure login through Puter.js
- Cloud Storage - All resumes stored securely in the cloud
- Key-Value Database - Fast data retrieval with no configuration
- Multiple AI Models - Access to Claude Sonnet, GPT, and more
- Responsive Design - Works beautifully on desktop and mobile
- React 19 - Latest React with concurrent features
- React Router v7 - Modern routing with data loading
- TypeScript - Full type safety throughout
- Vite - Lightning-fast build tool and dev server
- Tailwind CSS v4 - Utility-first CSS framework
- tailwindcss-animate - Beautiful animations out of the box
- Custom Gradients - Unique design system
- Puter.js - Serverless cloud platform
- Authentication (OAuth)
- File storage (cloud storage)
- Key-Value storage (database)
- AI integration (multiple models)
- Zustand - Lightweight state management
- pdf.js-dist - PDF rendering and conversion
- Canvas API - PDF to image conversion
- clsx - Conditional classNames utility
- tailwind-merge - Merge Tailwind classes intelligently
- react-dropzone - File upload with drag-and-drop
- Node.js (v18 or higher)
- npm or yarn
- Puter account (free - no credit card required)
- Clone the repository
git clone https://github.com/yourusername/ai-resume-analyzer.git
cd ai-resume-analyzer- Install dependencies
npm install- Create a Puter account
- Visit puter.com
- Sign up for a free account (no credit card required)
- No API keys needed - authentication handled in-app
- Start the development server
npm run devThe application will open at http://localhost:5173
- Build for production
npm run buildai-resume-analyzer/
โโโ app/
โ โโโ components/
โ โ โโโ Navbar.tsx
โ โ โโโ ResumeCard.tsx
โ โ โโโ FileUploader.tsx
โ โ โโโ ScoreCircle.tsx
โ โ โโโ ScoreGauge.tsx
โ โ โโโ ScoreBadge.tsx
โ โ โโโ Summary.tsx
โ โ โโโ ATS.tsx
โ โ โโโ Details.tsx
โ โ โโโ Accordion.tsx
โ โโโ routes/
โ โ โโโ home.tsx
โ โ โโโ auth.tsx
โ โ โโโ upload.tsx
โ โ โโโ resume.tsx
โ โ โโโ wipe.tsx
โ โโโ lib/
โ โ โโโ puter.ts
โ โ โโโ pdfToImage.ts
โ โ โโโ utils.ts
โ โโโ app.css
โ โโโ root.tsx
โโโ constants/
โ โโโ index.ts
โโโ types/
โ โโโ index.d.ts
โ โโโ puter.d.ts
โโโ public/
โ โโโ images/
โ โโโ icons/
โโโ package.json
โโโ vite.config.ts
โโโ README.md
- Users click "Login" and are redirected to Puter's authentication
- After successful login, users return to the app with a session
- All data is tied to the authenticated user
User uploads PDF โ Convert to image thumbnail โ
Upload both to Puter storage โ Store metadata in KV database
Extract resume + job description โ
Send to Puter AI (Claude Sonnet) โ
Parse structured feedback โ
Calculate ATS score โ
Store results โ Display feedback
- File Storage: Original PDFs and generated thumbnails
- Key-Value Store: Resume metadata, scores, and AI feedback
- Format:
resume:{uuid}โ JSON object
Puter.js provides a complete backend without any server setup:
// Authentication
await puter.auth.signIn();
// File Upload
await puter.fs.upload([file]);
// AI Analysis
await puter.ai.chat(model, messages);
// Key-Value Storage
await puter.kv.set(key, value);Automatically converts uploaded PDFs to thumbnails for easy preview:
const convertPDFToImage = async (file: File) => {
// Load PDF
const pdf = await pdfjsLib.getDocument(arrayBuffer);
// Render to canvas
const canvas = document.createElement('canvas');
// Convert to PNG
return canvas.toBlob('image/png');
};The AI returns structured feedback in JSON format:
{
"overallScore": 75,
"ats": {
"score": 75,
"tips": ["Add relevant keywords", "Include metrics"]
},
"toneAndStyle": {
"score": 80,
"tips": ["Use action verbs"],
"whatWentWell": ["Professional tone"],
"whatToImprove": ["Add more passion"]
}
// ... more categories
}- Fade-in effects on page load
- Smooth transitions between pages
- Animated score gauges and circles
- Loading states with custom GIFs
- Mobile-first design
- Flexible grid system
- Collapsible components on smaller screens
- Touch-friendly interactions
- Score Circle: Circular progress indicator (0-100)
- Score Gauge: Half-circle gauge for overview
- Score Badge: Color-coded labels (Strong/Good/Needs Work)
- Accordion: Expandable feedback sections
-
Log In
- Click "Login" in the navigation
- Authenticate through Puter
- Get redirected back to the app
-
Upload Resume
- Click "Upload Resume"
- Fill in:
- Company name (optional)
- Job title (optional)
- Job description (paste full description)
- Drag and drop your PDF resume
- Click "Analyze Resume"
-
View Results
- Wait for AI analysis (15-30 seconds)
- Get redirected to detailed feedback page
- Review scores and suggestions
-
Browse History
- Return to homepage
- View all analyzed resumes
- Click any card to see full feedback
- 70-100: Strong - Resume is well-optimized
- 50-69: Good Start - Some improvements needed
- 0-49: Needs Work - Significant changes recommended
- Prepare for build
// In react-router.config.ts
export default {
ssr: false // Required for Puter deployment
}- Build the application
npm run build-
Deploy to Puter
- Go to puter.com/app-center
- Click "Add Your App"
- Give it a name (e.g., "AI Resume Analyzer")
- Drag and drop contents of
build/client/folder - Click "Deploy Now"
-
Configure App Settings
- Update title and description
- Set category
- Upload favicon
- Publish to Puter Store (optional)
You can also deploy to traditional platforms:
- Vercel:
vercel --prod - Netlify: Drag and drop build folder
- GitHub Pages: Configure in repo settings
Edit app/lib/puter.ts:
const feedback = await puter.ai.chat(
'claude-sonnet-3-5-20241022', // Change model here
messages
);Available models:
claude-sonnet-3-5-20241022(recommended)claude-sonnet-3-7gpt-4o- Check Puter docs for latest models
Edit constants/index.ts:
export const AI_RESPONSE_FORMAT = `
// Define your custom feedback structure
{
"overallScore": number,
"customCategory": {...}
}
`;All custom styles in app/app.css:
- Color tokens (CSS variables)
- Component classes
- Gradient definitions
- Animation keyframes
โโโโโโโโโโโโโโโ
โ User โ
โโโโโโโโฌโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโ
โ React Frontend โ
โ (Vite + React 19) โ
โโโโโโโโโโโฌโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโ
โ Puter.js โ
โ - Auth โ
โ - Storage โ
โ - AI โ
โ - KV Database โ
โโโโโโโโโโโฌโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโ
โ AI Models โ
โ - Claude Sonnet โ
โ - GPT-4 โ
โโโโโโโโโโโโโโโโโโโโโโโ
- Try refreshing the page
- Check Puter service status
- Switch AI model in code
- Verify job description isn't too long
- Check file size (max 20MB)
- Ensure PDF is valid
- Clear browser cache
- Check Puter storage quota
- Clear browser cookies
- Try incognito mode
- Re-initialize Puter script
- Check internet connection
- Resume template suggestions
- Skills gap analysis
- Industry-specific scoring
- Resume version comparison
- Export feedback as PDF
- LinkedIn profile integration
- Batch resume analysis
- Cover letter generation
- Interview prep suggestions
- Puter.js - For providing an incredible serverless platform
- Anthropic - For Claude AI models
- React Team - For React 19 and React Router
- Tailwind Labs - For Tailwind CSS
- Adrian from JavaScript Mastery for the tutorial inspiration
Built with โค๏ธ to help job seekers land their dream jobs