Create professional, ATS-friendly resumes in minutes with the power of AI
Live Demo β’ Features β’ Getting Started β’ Documentation
- About
- Features
- Tech Stack
- Getting Started
- Environment Variables
- Project Structure
- Usage
- API Integration
- Deployment
- Troubleshooting
- Contributing
- License
SwiftResume AI is a modern, intelligent resume builder that leverages Google's Gemini AI to help job seekers create professional, ATS-optimized resumes effortlessly. With real-time preview, multiple templates, and AI-powered content generation, building your perfect resume has never been easier.
- π€ AI-Powered: Generate professional summaries and descriptions with Google Gemini
- β‘ Lightning Fast: Built with Vite for instant hot module replacement
- π¨ Customizable: Multiple templates and theme colors
- π± Responsive: Perfect on desktop, tablet, and mobile
- π Secure: Enterprise-grade authentication with Clerk
- π PDF Export: Download print-ready PDFs with a single click
- π Shareable: Generate unique public links for your resume
- Smart Summaries: Generate professional summaries based on your job title and experience
- Experience Descriptions: AI-generated bullet points for your work experience
- Skill Recommendations: Get suggestions for relevant skills in your field
- Personal Details: Name, contact info, professional links (LinkedIn, GitHub)
- Professional Summary: AI-assisted or custom summary section
- Work Experience: Detailed work history with AI-generated descriptions
- Education: Academic background and certifications
- Skills: Technical and soft skills with visual tags
- Projects: Showcase your portfolio projects with links
- Languages: Multilingual proficiency levels
- Certifications: Professional certifications and achievements
- Multiple Templates: Choose from modern, professional resume layouts
- Theme Colors: Customize accent colors to match your style
- Font Size Control: Adjust text size to fit content on one page
- Real-time Preview: See changes instantly as you type
- Resume Dashboard: Manage multiple resumes from one place
- Create/Edit/Delete: Full CRUD operations for your resumes
- Resume Analytics: Track views and engagement (coming soon)
- PDF Download: High-quality, print-ready PDF export
- Single-Page Optimization: Automatic content fitting for one-page resumes
- Public Links: Share your resume with a unique URL
- Clickable Links: All URLs in PDF are fully functional
- React 19.1.1 - Modern UI library
- Vite 7.1.2 - Next-generation frontend tooling
- TailwindCSS 4.1.13 - Utility-first CSS framework
- React Router DOM 7.9.1 - Client-side routing
- Radix UI - Accessible component primitives
- Lucide React - Beautiful icon library
- Shadcn UI - Custom component implementation
- React Simple WYSIWYG - Rich text editor
- Strapi - Headless CMS for data management
- Clerk - Authentication and user management
- Google Gemini AI - AI content generation
- Axios - HTTP client for API requests
- ESLint - Code linting
- Vite - Build tool and dev server
- tw-animate-css - Tailwind animations
Before you begin, ensure you have the following installed:
- Node.js (v18 or higher)
- npm or yarn
- Git
You'll also need accounts for:
- Google AI Studio - For Gemini API key
- Clerk - For authentication
- Strapi - For backend CMS (or use hosted version)
-
Clone the repository
git clone https://github.com/RahulDev-01/SwiftResume-AI.git cd SwiftResume-AI -
Install dependencies
npm install
-
Set up environment variables
Create a
.env.localfile in the root directory:# Google AI API Key VITE_GOOGLE_AI_API_KEY=your_google_ai_api_key_here # Clerk Authentication VITE_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key_here # Strapi Backend VITE_BASE_URL=http://localhost:1337 VITE_STRAPI_API_KEY=your_strapi_api_key_here # Frontend URL (for sharing) VITE_URL=http://localhost:5173
-
Start the development server
npm run dev
-
Open your browser
Navigate to
http://localhost:5173
| Variable | Description | Required | Example |
|---|---|---|---|
VITE_GOOGLE_AI_API_KEY |
Google Gemini API key for AI features | Yes | AIza... |
VITE_CLERK_PUBLISHABLE_KEY |
Clerk publishable key for auth | Yes | pk_test_... |
VITE_BASE_URL |
Strapi backend URL | Yes | http://localhost:1337 |
VITE_STRAPI_API_KEY |
Strapi API token | Yes | abc123... |
VITE_URL |
Frontend URL for sharing links | Yes | http://localhost:5173 |
Google AI (Gemini)
- Visit Google AI Studio
- Sign in with your Google account
- Click "Create API Key"
- Copy the key to your
.env.local
Clerk
- Sign up at Clerk
- Create a new application
- Copy the "Publishable Key" from the dashboard
- Add to your
.env.local
Strapi
- Set up Strapi backend (local or cloud)
- Create an API token in Settings β API Tokens
- Add the token to your
.env.local
SwiftResume-AI/
βββ public/ # Static assets
βββ src/
β βββ components/ # Reusable UI components
β β βββ custom/ # Custom components (Header, etc.)
β β βββ shared/ # Shared utilities (RWebShare)
β β βββ ui/ # Shadcn UI components
β βββ context/ # React Context providers
β β βββ ResumeInfoContext.jsx
β βββ Data/ # Static data and dummy content
β βββ My-resume/ # Public resume view pages
β β βββ [resumeId]/
β β βββ View/ # Resume preview and download
β βββ Pages/ # Application pages
β β βββ auth/ # Authentication pages
β β βββ dashboard/ # Dashboard and resume editor
β β βββ Home/ # Landing page
β βββ service/ # API services
β β βββ AIModal.js # Google Gemini integration
β β βββ GlobalApi.js # Strapi API calls
β βββ App.jsx # Main app component
β βββ index.css # Global styles
β βββ main.jsx # App entry point
βββ .env.local # Environment variables
βββ package.json # Dependencies
βββ vite.config.js # Vite configuration
βββ README.md # This file
-
Sign Up/Login
- Click "Get Started" on the home page
- Sign up using Clerk authentication
-
Create New Resume
- Click "Create New Resume" from the dashboard
- Enter a resume title
-
Fill in Your Information
- Personal Details: Name, email, phone, address, LinkedIn, GitHub
- Summary: Use AI to generate or write your own
- Experience: Add work history with AI-generated descriptions
- Education: Add your academic background
- Skills: Add technical and soft skills
- Projects: Showcase your portfolio
- Languages: Add language proficiency
- Certifications: Add professional certifications
-
Customize Appearance
- Choose a template (Classic or Modern)
- Select theme color
- Adjust font size for optimal fit
-
Download or Share
- Click "Download Resume" for PDF
- Click "Share Link" to generate public URL
Generate Summary
- Enter your job title
- Click "Generate from AI"
- Review and edit the generated summary
Generate Experience Descriptions
- Fill in job title and company
- Click "Generate from AI"
- AI will create professional bullet points
- Edit as needed
The application requires a Strapi backend with the following content types:
User Resume
title(String)firstName(String)lastName(String)jobTitle(String)address(String)phone(String)email(String)linkedin(String)github(String)themeColor(String)summary(Text)templateId(String)Experience(Component, repeatable)Education(Component, repeatable)Skills(Component, repeatable)Projects(Component, repeatable)Languages(Component, repeatable)Certifications(Component, repeatable)
// Get all user resumes
GET /api/user-resumes?filters[userEmail][$eq]={email}
// Get single resume
GET /api/user-resumes/{id}?populate=*
// Create resume
POST /api/user-resumes
// Update resume
PUT /api/user-resumes/{id}
// Delete resume
DELETE /api/user-resumes/{id}-
Push to GitHub
git add . git commit -m "Ready for deployment" git push origin main
-
Deploy to Vercel
- Import your GitHub repository
- Add environment variables
- Deploy
-
Update Environment Variables
- Set
VITE_URLto your Vercel URL
- Set
- Deploy Strapi to Strapi Cloud or your preferred hosting
- Update
VITE_BASE_URLin your frontend environment variables - Ensure CORS is configured to allow your frontend domain
PDF shows blank page
- Solution: The print CSS now forces proper text rendering. Clear cache and try again.
Links not clickable in PDF
- Solution: Ensure URLs include
http://orhttps://prefix
Resume spans 2 pages
- Solution: Use the font size slider to reduce text size (default is 85%)
AI generation not working
- Check your Google AI API key is valid
- Ensure you haven't exceeded API quota
- Check browser console for errors
Authentication issues
- Verify Clerk publishable key is correct
- Check Clerk dashboard for any issues
- Clear browser cookies and try again
Data not saving
- Check Strapi backend is running
- Verify API token is valid
- Check network tab for API errors
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Commit your changes
git commit -m "Add amazing feature" - Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
- Follow existing code style
- Write meaningful commit messages
- Test your changes thoroughly
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
- Google Gemini AI for AI capabilities
- Clerk for authentication
- Strapi for backend CMS
- Radix UI for accessible components
- Lucide for beautiful icons
- Tailwind CSS for styling
Savvana Rahul
- GitHub: @RahulDev-01
- LinkedIn: s-rahul-885613312
- Email: s.rahul5116@gmail.com
β Star this repo if you find it helpful!
Made with β€οΈ by Savvana Rahul