--- title: Job Application Optimizer emoji: 💼 colorFrom: purple colorTo: blue sdk: gradio sdk_version: "4.44.1" app_file: app.py pinned: false --- # Job Application Optimizer 💼 AI-powered tool to tailor your resume and generate personalized messages for job applications. ## 🌟 Features - **📄 Resume Analysis**: Upload your PDF resume and extract text - **🎯 Job Matching**: Paste any job description - **✨ AI-Powered Generation**: - 💬 LinkedIn message for recruiter (short, personal, 3-4 sentences) - 📧 Email to hiring manager (detailed, professional, 5-7 paragraphs) - 📑 Tailored resume content (ATS-optimized keywords) - ⬇️ Download as PDF ## 🤖 Supported Models - **GPT-4o** (OpenAI) - Premium, fastest, most accurate - **Claude-3.5-Sonnet** (Anthropic) - Premium, excellent for professional writing ## 🚀 Quick Start ### Local Development ```bash # 1. Install dependencies pip install -r requirements.txt # 2. Set up environment variables # Create a .env file with: OPENAI_API_KEY=your_openai_api_key_here ANTHROPIC_API_KEY=your_anthropic_api_key_here APP_PASSWORD=your_secure_password # 3. Run the app python app.py ``` The app will launch at `http://0.0.0.0:7860` with password protection. ### 🔐 Authentication - **Username**: `user` - **Password**: Set via `APP_PASSWORD` environment variable (default: `jobapp123`) ## 📦 Deployment to HuggingFace Spaces ### Step 1: Create a Space 1. Go to [HuggingFace Spaces](https://huggingface.co/spaces) 2. Click **"Create new Space"** 3. Choose: - **Name**: `job-application-optimizer` (or your preferred name) - **SDK**: Gradio - **Hardware**: CPU Basic (free tier works fine) - **Visibility**: Public or Private ### Step 2: Upload Files Upload these files to your Space: ``` ├── app.py ├── requirements.txt ├── packages.txt └── README.md ``` ### Step 3: Configure Secrets Go to **Settings → Repository secrets** and add: ``` OPENAI_API_KEY=sk-...your-key-here ANTHROPIC_API_KEY=sk-ant-...your-key-here APP_PASSWORD=your-secure-password ``` ### Step 4: Deploy! 🎉 Your app will automatically build and deploy. Access it at: ``` https://huggingface.co/spaces/YOUR_USERNAME/job-application-optimizer ``` ## 📖 How to Use 1. **Login** with the password you set 2. **Upload** your resume PDF (any format accepted) 3. **Paste** the complete job description 4. **Select** your preferred AI model (GPT-4o or Claude) 5. **Click** "Generate Application Materials" 6. **Review** the generated content: - Copy LinkedIn message - Copy email content - Review tailored resume 7. **Download** the tailored resume as PDF ## ⚠️ Ethical Use Notice **This tool ONLY optimizes existing resume content. It NEVER fabricates experience.** What it does: - ✅ Rewrites bullet points for clarity and impact - ✅ Adjusts keywords to match job requirements - ✅ Reorders/emphasizes relevant experience - ✅ Highlights transferable skills What it NEVER does: - ❌ Add skills or experience not in original resume - ❌ Change dates, company names, or job titles - ❌ Fabricate education or certifications - ❌ Invent projects or achievements **All outputs remain truthful to your original resume.** ## 🔧 Troubleshooting ### "Error: OPENAI_API_KEY not found" - Make sure you added the API key in Space secrets - Restart the Space after adding secrets ### "Error reading PDF" - Ensure your PDF is not password-protected - Try re-saving the PDF and uploading again ### "No response from AI" - Check your API key has credits/quota - Try switching to the other model ### PDF Download Not Working - Make sure you generated content first - The tailored resume text must be present ## 📝 Requirements - Python 3.9+ - Gradio 4.44.1 - OpenAI API key (for GPT-4o) - Anthropic API key (for Claude) See `requirements.txt` for full dependencies. ## 🤝 Support For issues or questions: 1. Check the troubleshooting section above 2. Verify your API keys are valid and have credits 3. Ensure your resume PDF is readable ## 📄 License This project is provided as-is for educational and personal use. --- **Made with ❤️ for job seekers everywhere**