A brand monitoring and competitive intelligence platform that analyzes how you and your competitor brands are mentioned and discussed across various topics in LLM responses. In its current iteration, this project only looks at ChatGPT (future platforms will be added).
A web application focused on brand positioning and mentions in LLMs, starting with ChatGPT today. Specific components:
- prompt research & analysis
- brand mentions, both your own and competitors
- sources cited in prompts
It automatically scrapes brand websites, generates targeted prompts, and processes responses to provide actionable areas of improvement, like where your brand should be mentioned. The flow:
- analyze your own provided website
- figure out competitors, with user input
- use ChatGPT to generate diverse prompts
- use ChatGPT to fetch prompt results
- display prompt results and sources cited
- Website Analysis: Automatically scrapes and analyzes your brand website
- Competitor Tracking: Identifies and monitors competitor mentions in ChatGPT responses
- Prompt Generation: Creates diverse, relevant prompts for comprehensive brand analysis
- Source Attribution: Tracks which sources and domains are cited in responses
- Progress Over Time: Monitor analysis progress over time
- Actionable Next Steps: Identifies where your brand should be mentioned but isn't
- Node.js/Express: RESTful API server
- PostgreSQL: Primary database with Drizzle ORM
- OpenAI API: LLM integration for analysis
- WebSocket: Real-time progress updates
- React 18: Modern UI framework
- TypeScript: Type-safe development
- Tailwind CSS: Utility-first styling
- Radix UI: Accessible component primitives
- Vite: Fast development and build tooling
- Topics: Analysis categories and themes
- Prompts: Generated analysis questions
- Responses: AI-generated brand analysis
- Competitors: Competitor tracking and mentions
- Sources: Citation and domain tracking
- Analytics: Aggregated metrics and insights
- Node.js 18+
- PostgreSQL database (local or cloud)
- OpenAI API key
-
Clone the repository
git clone https://github.com/yourusername/llm-brand-tracker.git cd llm-brand-tracker -
Install dependencies
npm install
-
Set up the database
Temp Solution: Local PostgreSQL
# Install PostgreSQL (macOS with Homebrew) brew install postgresql brew services start postgresql # Edit the following bash replacing "your_password" with the password you would like. createdb brand_tracker psql -d brand_tracker -c "CREATE USER admin WITH PASSWORD 'your_password';" psql -d brand_tracker -c "GRANT ALL PRIVILEGES ON DATABASE brand_tracker TO admin;" psql -d brand_tracker -c "GRANT ALL ON SCHEMA public TO admin;"
-
Set up environment variables Create a
.envfile in the root directory and add the following:# Database Configuration DATABASE_URL=postgresql://admin:your_password@localhost:5432/brand_tracker # Replace 'your_password' with the password you set when creating the user # OpenAI Configuration OPENAI_API_KEY=your_openai_api_key_here # Application Configuration NODE_ENV=development # Analysis Settings (optional) PROMPTS_PER_TOPIC=20 ANALYSIS_FREQUENCY=daily
Then run:
npm install dotenv
-
Push database schema
npm run db:push
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:3000
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run check # TypeScript type checking
npm run db:push # Push database schema changes- Navigate to the dashboard
- Enter your brand URL (e.g.,
https://yourbrand.com) - Configure analysis settings (number of topics, prompts per topic)
- Click "Start Analysis" to begin the automated process
- Monitor real-time progress through the web interface
- View live updates as prompts are generated and processed
- Overview Metrics: High-level brand mention statistics
- Topic Analysis: Brand perception across different categories
- Competitor Analysis: Competitive landscape insights
- Source Analysis: Citation and domain tracking
There are many improvements to make. Here are a few issues that need to be addressed:
- Local Postgres only. This currently only works with local postgres. If you wipe this locally, all your historical analysis is lost.
- No deployment options. This isn't dockerized, so there's no way to host this somewhere.
- Prompts are redundant. There isn't enough differentiation among prompt structure, so results are skewed.
- Prompt specificity. Prompts are too specific to devtools; need better prompting to get prompts.
- Competitor compleness. Getting competitors is a bit buggy, could use prompt iteration.
- UI bugs. The UI is sometimes unintuitive, sharp on the edges, or even buggy.
- Speed & repeatability. The analysis only runs when you press a button, but should run in the background. It's also super slow.
- Auth. Even if we did deploy it somewhere, there's no auth (user/pw even).
- Error handling. There are still some hard coded values, do better error handling to not have fallbacks.
The above is why this project is public. Let's fix this and all benefit from better brand LLM visibility.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Issues: Report bugs and feature requests on GitHub. Better yet, contribute and fix them.