AI/voice product intelligence — daily automated monitoring of competitor websites for updates related to AI assistants, inference, STT, and TTS.
Voice AI: Vapi, ElevenLabs, Retell AI, Bland AI Transcription: AssemblyAI Platforms: Twilio AI Inference: Together AI, Baseten, Fireworks AI, RunPod, Modal, Replicate
- Fetches competitor sitemaps and detects new pages (via
lastmodor snapshot diffs) - Scrapes new pages for content
- LLM classifies each page by focus area (AI Assistants, Inference, STT, TTS) and filters out noise
- LLM generates an executive digest with competitive signals
- Delivers via Slack and/or email
pip install -r requirements.txtCreate a local variables file from the sample and add secrets there (do not commit it):
mkdir -p local
cp local/.env.example local/.envRequired for LLM classification/summarization:
OPENAI_API_KEY=sk-...
OPENAI_MODEL=gpt-4o-mini # Optional override
Optional delivery settings:
SLACK_BOT_TOKEN=xoxb-... # Slack delivery
SENDGRID_API_KEY=SG.... # Email delivery
SENDGRID_SENDER_EMAIL=... # Email sender
# Full run: scrape, classify, summarize, post to Slack
python tools/competitor_monitor.py
# Refresh one competitor and fail fast if inference is not configured
python tools/competitor_monitor.py --competitor ElevenLabs --require-inference --no-slack
# Skip LLM (raw results only)
python tools/competitor_monitor.py --no-classify
# Email digest
python tools/competitor_monitor.py --email [email protected]
# Dry run
python tools/competitor_monitor.py --no-slack --no-scrape --no-classify
# Custom time window
python tools/competitor_monitor.py --hours 48See workflows/competitor_monitoring.md for full details.
The repo includes .github/workflows/competitor-monitor.yml, which runs every 6
hours and can also be triggered manually from the Actions tab. The default-branch
workflow checks out feat/scraper-feed-support so the scheduled scan uses the
newer inference/feed monitor code.
Configure these GitHub Secrets for the scheduled workflow:
OPENAI_API_KEY # Enables classification and digest generation
TELEGRAM_BOT_TOKEN # Bot token used to send the run summary
TELEGRAM_CHAT_ID # Chat ID that receives the run summary
Optional GitHub Variables:
OPENAI_MODEL # Defaults to gpt-4o-mini
SLACK_COMPETITOR_CHANNEL # Only used if Slack delivery is re-enabled
- Slack notifications — Send daily digest to Max and Jake via Slack DM/channel
- Linear ticket creation — Automatically create Linear tickets for notable competitor updates that need team review