Skip to content

RahulDev-01/SwiftResume-AI

Repository files navigation

SwiftResume AI πŸ“ƒ - AI-Powered Resume Builder

SwiftResume AI React Vite TailwindCSS

Create professional, ATS-friendly resumes in minutes with the power of AI

Live Demo β€’ Features β€’ Getting Started β€’ Documentation


πŸ“– Table of Contents


🎯 About

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.

Why SwiftResume AI?

  • πŸ€– 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

✨ Features

πŸ€– AI-Powered Content Generation

  • 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

πŸ“ Comprehensive Resume Builder

  • 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

🎨 Customization Options

  • 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

πŸ“Š Dashboard & Management

  • 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)

πŸ”— Sharing & Export

  • 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

πŸ› οΈ Tech Stack

Frontend

  • 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

UI Components

  • Radix UI - Accessible component primitives
  • Lucide React - Beautiful icon library
  • Shadcn UI - Custom component implementation
  • React Simple WYSIWYG - Rich text editor

Backend & Services

  • Strapi - Headless CMS for data management
  • Clerk - Authentication and user management
  • Google Gemini AI - AI content generation
  • Axios - HTTP client for API requests

Development Tools

  • ESLint - Code linting
  • Vite - Build tool and dev server
  • tw-animate-css - Tailwind animations

πŸš€ Getting Started

Prerequisites

Before you begin, ensure you have the following installed:

  • Node.js (v18 or higher)
  • npm or yarn
  • Git

You'll also need accounts for:

Installation

  1. Clone the repository

    git clone https://github.com/RahulDev-01/SwiftResume-AI.git
    cd SwiftResume-AI
  2. Install dependencies

    npm install
  3. Set up environment variables

    Create a .env.local file 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
  4. Start the development server

    npm run dev
  5. Open your browser

    Navigate to http://localhost:5173


πŸ” Environment Variables

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

Getting API Keys

Google AI (Gemini)

  1. Visit Google AI Studio
  2. Sign in with your Google account
  3. Click "Create API Key"
  4. Copy the key to your .env.local

Clerk

  1. Sign up at Clerk
  2. Create a new application
  3. Copy the "Publishable Key" from the dashboard
  4. Add to your .env.local

Strapi

  1. Set up Strapi backend (local or cloud)
  2. Create an API token in Settings β†’ API Tokens
  3. Add the token to your .env.local

πŸ“ Project Structure

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

πŸ’‘ Usage

Creating Your First Resume

  1. Sign Up/Login

    • Click "Get Started" on the home page
    • Sign up using Clerk authentication
  2. Create New Resume

    • Click "Create New Resume" from the dashboard
    • Enter a resume title
  3. 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
  4. Customize Appearance

    • Choose a template (Classic or Modern)
    • Select theme color
    • Adjust font size for optimal fit
  5. Download or Share

    • Click "Download Resume" for PDF
    • Click "Share Link" to generate public URL

Using AI Features

Generate Summary

  1. Enter your job title
  2. Click "Generate from AI"
  3. Review and edit the generated summary

Generate Experience Descriptions

  1. Fill in job title and company
  2. Click "Generate from AI"
  3. AI will create professional bullet points
  4. Edit as needed

πŸ”Œ API Integration

Strapi Backend Setup

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)

API Endpoints

// 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}

πŸš€ Deployment

Frontend Deployment (Vercel)

  1. Push to GitHub

    git add .
    git commit -m "Ready for deployment"
    git push origin main
  2. Deploy to Vercel

    • Import your GitHub repository
    • Add environment variables
    • Deploy
  3. Update Environment Variables

    • Set VITE_URL to your Vercel URL

Backend Deployment (Strapi Cloud)

  1. Deploy Strapi to Strapi Cloud or your preferred hosting
  2. Update VITE_BASE_URL in your frontend environment variables
  3. Ensure CORS is configured to allow your frontend domain

πŸ› Troubleshooting

Common Issues

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:// or https:// 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

🀝 Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/amazing-feature
  3. Commit your changes
    git commit -m "Add amazing feature"
  4. Push to the branch
    git push origin feature/amazing-feature
  5. Open a Pull Request

Development Guidelines

  • Follow existing code style
  • Write meaningful commit messages
  • Test your changes thoroughly
  • Update documentation as needed

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments


πŸ“§ Contact

Savvana Rahul


⭐ Star this repo if you find it helpful!

Made with ❀️ by Savvana Rahul

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published