SmartResume AI is an innovative web-based resume builder that leverages Google's Gemini AI to automatically generate professional, ATS-friendly resume content from basic user inputs.
- Professional Summaries: Generate compelling 3-4 line career summaries
- Experience Bullets: Transform basic job descriptions into impact-driven bullet points
- Project Descriptions: Enhance technical project details with AI
- Skills Optimization: Get relevant skill suggestions for your target role
- Cover Letters: AI-generated cover letters tailored to job descriptions
- Resume Integration: Link cover letters to saved resumes for better AI context
- Clean, parseable PDF format
- Standard section headings
- No complex graphics or tables
- Proper font choices (Arial/Calibri)
- Consistent formatting
- Professional cover letter layout
- Simple, intuitive forms
- Real-time resume and cover letter preview
- One-click PDF download
- Save/Load resume functionality
- Export/Import data as JSON
- Mobile-responsive design
- Modern, professional UI
- Python 3.10 or higher
- pip (Python package manager)
- Google Gemini API Key (free tier available) OR OpenRouter API Key (free models available)
- Clone or download this repository
git clone https://github.com/yourusername/smartresume-ai.git
cd smartresume-ai- Create a virtual environment (recommended)
# Windows
python -m venv venv
venv\Scripts\activate
# Mac/Linux
python3 -m venv venv
source venv/bin/activate- Install dependencies
pip install -r requirements.txt-
Get your AI API Key
Option 1: Google Gemini (Recommended)
- Visit: https://aistudio.google.com/app/apikey
- Click "Create API Key"
- Copy the generated key
Option 2: OpenRouter (Free Models Available)
- Visit: https://openrouter.ai/keys
- Sign up and create an API key
- Free models like
google/gemma-2-9b-it:freeavailable
-
Configure environment variables
- Copy
.env.exampleto.env - Add your API key:
# Option 1: Gemini GEMINI_API_KEY=your_gemini_api_key_here # Option 2: OpenRouter OPENROUTER_API_KEY=your_openrouter_api_key_here - Copy
-
Run the application
streamlit run app.pyThe app will open in your browser at http://localhost:8501
- Enter your name, email, phone number
- Add LinkedIn profile and portfolio (optional)
- Provide your location
- Enter your target job role
- Specify years of experience
- Click "Generate with AI" for professional summary
- Select degree/qualification
- Enter institution and field of study
- Add graduation year and grade
- Click "Add Education Entry"
- Enter technical skills (comma-separated)
- Add soft skills
- Click "Suggest Skills" for AI recommendations
- Enter company name and job title
- Provide employment dates
- Write basic responsibilities
- Click "Generate Bullet Points" for AI enhancement
- Enter project title and duration
- List technologies used
- Write brief description
- Click "Enhance Description" for AI improvement
- List certifications and achievements
- One per line
- Review the live preview
- Click "Generate & Download PDF"
- Save your professional resume!
- Frontend Framework: Streamlit 1.28+
- AI Engines:
- Google Gemini API (
gemini-2.0-flash-exp) - OpenRouter API (free models available)
- Google Gemini API (
- PDF Generation: FPDF2
- Language: Python 3.10+
- Storage: Session-based local storage with JSON export/import
- Additional Libraries:
- google-generativeai
- requests (for OpenRouter)
- python-dotenv
- Pillow
smartresume-ai/
β
βββ app.py # Main Streamlit application
βββ requirements.txt # Python dependencies
βββ README.md # This file
βββ PROJECT_INFO.md # Detailed project documentation
βββ .env.example # Environment variables template
βββ .gitignore # Git ignore rules
β
βββ components/ # UI components
β βββ __init__.py
β βββ form_sections.py # Resume input forms
β βββ ai_generator.py # AI resume content generation
β βββ preview.py # Resume preview
β βββ pdf_exporter.py # PDF generation (resume & cover letter)
β βββ cover_letter_form.py # Cover letter input forms
β βββ cover_letter_generator.py # AI cover letter generation
β βββ resume_manager.py # Save/Load/Export/Import functionality
β
βββ utils/ # Utility functions
β βββ __init__.py
β βββ ai_client.py # Unified AI client (Gemini + OpenRouter)
β βββ gemini_client.py # Gemini API wrapper
β βββ openrouter_client.py # OpenRouter API wrapper
β βββ storage.py # Local storage management
β
βββ assets/ # Static assets
βββ styles/
βββ custom.css # Custom professional styling
The app uses carefully crafted prompts to generate professional content:
- Professional Summary: Creates compelling 3-4 line summaries highlighting expertise and career goals
- Experience Bullets: Transforms descriptions into action-verb-led, impact-driven statements
- Project Descriptions: Enhances technical depth and clarity
- Skills Suggestions: Recommends relevant skills based on target role
Generated PDFs follow ATS best practices:
- β Single column layout
- β Standard fonts (Arial, Calibri)
- β No headers/footers
- β No images or graphics
- β Simple bullet points
- β Clear section headings
- β Proper spacing and margins
Create a .env file with:
GEMINI_API_KEY=your_api_key_here- 15 requests per minute
- 1,500 requests per day
- 1 million tokens per minute
Issue: "GEMINI_API_KEY not found"
- Solution: Ensure
.envfile exists with valid API key
Issue: "Rate limit exceeded"
- Solution: Wait a few seconds and try again (free tier limits)
Issue: PDF download not working
- Solution: Disable pop-up blocker, try different browser
Issue: AI generation not working
- Solution: Check internet connection, verify API key
Issue: Preview not updating
- Solution: Refresh the page or clear browser cache
- Be specific when describing experiences
- Include numbers and metrics where possible
- Use clear, concise language
- Proofread AI-generated content
- Provide detailed information for better AI output
- Review and edit AI suggestions
- Add personal touches to make it authentic
- Use AI as a starting point, not final output
- Use standard section headings
- Include keywords from job descriptions
- Avoid fancy formatting
- Keep consistent date formats
This is an academic project, but suggestions and feedback are welcome!
This project is licensed under the MIT License - see the LICENSE file for details.
- Powered by Google Gemini AI
- Built with Streamlit
- Icons from Icons8
For questions or support, please open an issue on GitHub.
If this project helped you create a great resume, please give it a β on GitHub!
Made with β€οΈ for job seekers everywhere
- Multiple resume templates
- Job description analyzer
- Resume scoring system
- Multi-language support
- Cover letter generation β
- LinkedIn integration
- Resume version control (Save/Load) β
- Collaboration features
- Cloud storage integration
- Resume analytics dashboard
Version 2.0.0 - Enhanced with Cover Letter & Storage Features