Analyze and optimize product discoverability for AI search engines
An AI-powered platform that helps e-commerce businesses optimize their product descriptions for AI search engines like ChatGPT, Perplexity, and Gemini.
E-commerce products are not optimized for AI search engines. This tool analyzes how discoverable a product is by AI systems and provides actionable optimization suggestions.
- AI Visibility Score (0-100): Comprehensive scoring based on 4 key components
- Semantic Analysis: Uses sentence-transformers for semantic similarity
- Competitive Ranking: Compare your product against competitors
- LLM-Powered Optimization: Automatically rewrite descriptions for better AI visibility
- Weakness Detection: Identify missing specs, keywords, and clarity issues
- Before/After Comparison: See the impact of optimizations
[ Streamlit Frontend ]
|
v
[ FastAPI Backend ]
|
---------------------
| ML Services |
|-------------------|
| Embedding Engine |
| Scoring Engine |
| Ranking Engine |
| LLM Optimizer |
---------------------
Final Score =
0.4 × Semantic Relevance +
0.2 × Keyword Coverage +
0.2 × Completeness +
0.2 × Readability
- Python 3.8+
- pip
- Clone the repository:
git clone <repository-url>
cd ai-visibility-platform- Install dependencies:
pip install -r requirements.txt- Setup environment variables:
Create a
.envfile in the root directory (use.env.exampleas a template):
cp .env.example .envFill in your GEMINI_API_KEY and other optional keys in the .env file.
- Start the FastAPI backend:
cd backend
python main.pyThe API will be available at http://localhost:8000
- In a new terminal, start the Streamlit frontend:
cd frontend
streamlit run app.pyThe dashboard will open in your browser at http://localhost:8501
Analyze a product and return AI visibility score with detailed breakdown.
Request:
{
"title": "Sony WH-1000XM5 Wireless Headphones",
"description": "Premium noise cancelling headphones...",
"category": "Headphones",
"brand": "Sony"
}Response:
{
"ai_visibility_score": 75.5,
"score_breakdown": {
"semantic_relevance": 80.2,
"keyword_coverage": 65.0,
"completeness": 70.5,
"readability": 85.0
},
"weakness_analysis": {
"missing_specs": ["battery life", "warranty"],
"suggestions": ["Add more technical specifications"]
}
}Rank your product against competitors.
Optimize product description using LLM.
Input:
- Product: "Noise cancelling headphones"
- Description: "Good headphones for music"
Analysis:
- Score: 56/100
- Rank: #4 out of 8
- Missing: Battery life, use cases, compatibility
After Optimization:
- Score: 82/100
- Rank: #1
- Improvements: Added specifications, use cases, and relevant keywords
Backend:
- FastAPI
- Pydantic
- Uvicorn
ML/AI:
- sentence-transformers (all-MiniLM-L6-v2)
- scikit-learn
- textstat
- OpenAI API (optional)
Frontend:
- Streamlit
- Plotly
ai-visibility-platform/
├── backend/
│ ├── main.py
│ ├── routers/
│ │ └── analyze.py
│ ├── services/
│ │ ├── embedder.py
│ │ ├── scorer.py
│ │ ├── ranker.py
│ │ └── optimizer.py
│ ├── schemas/
│ │ └── product.py
│ └── core/
│ └── config.py
├── frontend/
│ └── app.py
├── requirements.txt
└── README.md
- Connect your GitHub repository
- Set environment variables (OPENAI_API_KEY if using LLM)
- Deploy with command:
python backend/main.py
- Push to GitHub
- Connect to Streamlit Cloud
- Set main file path:
frontend/app.py - Configure API_BASE_URL to your deployed backend
- CSV upload for bulk product analysis
- Chrome extension for real-time analysis
- Multi-language support
- User authentication and history
- Amazon product scraper integration
MIT License
Contributions are welcome! Please feel free to submit a Pull Request.