An intelligent AI agent with a beautiful web interface that analyzes freelance project descriptions and generates winning bids automatically. Now powered by Google Gemini (FREE!) by default!
- π€ AI-Powered Analysis: Uses Google Gemini, GPT-4, or Claude for intelligent bid generation
- π FREE by Default: Google Gemini API is free and powerful (no credit card required!)
- π» Modern Web UI: Beautiful React interface with real-time bid generation
- β¨ Smart Mode: Just paste the entire project page - automatic extraction of all details
- π Live Extraction Process: See real-time progress as your bid is being generated
- π― Skill Matching: Automatically highlights relevant experience
- π Bid Optimization: AI-powered suggestions to improve your bids
- π One-Click Copy: Copy generated bids instantly to clipboard
- π± Fully Responsive: Optimized for desktop, tablet, and mobile (even 360px screens!)
ai_chatbot/
βββ backend/
β βββ main.py # FastAPI server
β βββ requirements.txt # Python dependencies
βββ frontend/
β βββ src/
β β βββ components/
β β β βββ BidGenerator.jsx # Main UI component
β β β βββ BidGenerator.css # Styles
β β βββ App.jsx
β β βββ App.css
β βββ package.json
βββ src/
β βββ core/
β β βββ llm_client.py # LLM integration (OpenAI/Anthropic)
β β βββ config.py # Configuration management
β βββ agents/
β βββ bid_generator.py # Main bid generation logic
β βββ analyzer.py # Project description analyzer
β βββ optimizer.py # Bid optimization strategies
βββ setup.sh # Automated setup script
βββ start.sh # Start both frontend & backend
βββ .env.example # Environment variables template
βββ README.md
# Make scripts executable
chmod +x setup.sh start.sh
# Run setup (one time only)
./setup.sh
# Get your FREE Gemini API key from: https://makersuite.google.com/app/apikey
# Configure your API key
nano .env # or use any text editor
# Start the application
./start.shThe app will open at:
- Frontend: http://localhost:5173
- Backend API: http://localhost:8000
- API Docs: http://localhost:8000/docs
- Copy entire project page from Freelancer/Upwork
- Paste everything into the textarea
- Click "Preview Extraction" to see extracted details (budget, bids, client info)
- Watch the extraction process in real-time (6 steps with animations!)
- Click "Generate Bid" - done! π
The system automatically extracts:
- π° Budget range
- π Number of bids
- π Client location
- β° Time remaining
- π Project description
- Everything else needed!
- Project Name: Copy from the freelance platform
- Project Description: Paste the full project description
- Optional Fields: Add bid rank, total bids, and pricing for better optimization
The app will show:
- β Generated Bid: Professional bid text ready to copy
- π Project Analysis: Type, skills required, complexity
- π― Skill Matching: Which of your skills match the project
- π‘ Optimization Tips: Suggestions to improve win rate
- π Win Probability: Estimated chance of winning
Click "π Copy" and paste the bid into your freelance platform!
β Recommended for everyone
- π 100% FREE - No credit card required
- β‘ Fast and powerful (gemini-2.0-flash-exp)
- π― Great for bid generation
- Get your key: https://makersuite.google.com/app/apikey
AI_PROVIDER=gemini
GEMINI_API_KEY=your_key_here- π° Requires paid API key
- Most powerful option
- Good for complex projects
AI_PROVIDER=openai
OPENAI_API_KEY=your_key_here- π° Requires paid API key
- Excellent reasoning
- Good for detailed analysis
AI_PROVIDER=anthropic
ANTHROPIC_API_KEY=your_key_hereFully optimized for all screen sizes:
- π₯οΈ Desktop: Full-width, multi-column layouts
- π» Laptop: 1024px+ screens
- π± Tablet: 768px - 1024px
- π± Mobile: 480px - 768px
- π± Small Mobile: 360px - 480px
- π± Extra Small: Even 360px screens!
Edit .env file:
# Choose AI provider
AI_PROVIDER=openai # or anthropic
# Add your API key
OPENAI_API_KEY=sk-...
# Customize your profile
YOUR_NAME=Your Name
YOUR_GITHUB=https://github.com/yourusername
YOUR_SKILLS=Python,JavaScript,AI,MLThe AI analyzes the project description to extract:
- Project type and complexity
- Required skills and technologies
- Key requirements and deliverables
- Estimated budget range
Compares your skills (from config) with project requirements:
- Calculates skill match percentage
- Identifies your relevant experience
- Determines confidence score
Creates a personalized, professional bid:
- Tailored to specific project requirements
- Includes relevant sample work
- Professional but approachable tone
- Optimal length (100-250 words)
##π‘ Tips for Winning Bids
Based on analysis of winning vs. losing bids:
- β Keep bids concise (3-5 short paragraphs)
- β Include sample work or demo links when relevant
- β State specific delivery timeline
- β Show confidence without overselling
- β Mention immediate availability
- β Address the client's specific requirements
- β Use concrete examples from your experience
- β Write overly long proposals (>300 words)
- β Apply to projects outside your expertise
- β Use generic templates without customization
- β Ignore specific tools/requirements mentioned
- β Under-price significantly (damages credibility)
- β Make promises you can't deliver
"LLM client not configured" error:
- Check that your
.envfile exists in the root directory - Verify your API key is correct
- Make sure
AI_PROVIDERmatches your key (openai or anthropic)
Frontend can't connect to backend:
- Ensure backend is running on port 8000
- Check for CORS errors in browser console
- Verify both services are running
"Module not found" errors:
- Backend: Make sure you ran
pip install -r backend/requirements.txt - Frontend: Make sure you ran
npm installin the frontend directory
MIT License - feel free to customize for your needs.
Contributions are welcome! Feel free to:
- Report bugs
- Suggest features
- Submit pull requests
- Improve documentation
Built with curiosity by Vicky Kumar
- Go to https://platform.openai.com/api-keys
- Create a new API key
- Add to
.envasOPENAI_API_KEY
Anthropic (Alternative):
- Go to https://console.anthropic.com/
- Generate an API key
- Add to
.envas `ANTHROPIC_API_KEY Tips for Winning Bids
Based on analysis of My winning vs. losing bids:
β DO:
- Keep bids concise (3-5 short paragraphs)
- Provide sample work or demo links
- State specific delivery timeline
- Show confidence without overselling
- Mention immediate availability
β DON'T:
- Write overly long proposals
- Apply to projects outside your expertise
- Use generic templates without customization
- Ignore the client's specific requirements
- Under-price significantly (damages credibility)
- Real-time Upwork/Freelancer integration
- A/B testing different bid strategies
- Automatic bid success tracking
- Multi-language support
- Budget recommendation engine
MIT License - feel free to customize for your needs.