competitive-intel
Autonomous competitive intelligence tracking competitors across LinkedIn, news, reviews, job postings, and regulatory signals, generating executive briefs and sales battlecards.
README
competitive-intel
A Claude Code plugin that runs autonomous competitive intelligence. Point it at your competitors and it tracks them across LinkedIn, news, user reviews, job postings, and regulatory signals, then writes an executive brief and per-competitor sales battlecards, on a schedule, and emails them to you.
Seven specialist agents each own one source. A brief-writer synthesizes everything into one brief with a week-over-week diff. A battlecard-writer turns it into something a sales rep can use in a live deal. It runs on free search by default, so there's no required API key beyond a Gmail App Password for delivery.
Built by Brittany Slay. MIT licensed.
Anonymized template. The two config files ship as
*.example.jsondescribing a fictional company. Copy them, drop in your own details, and the whole system re-points at your market. Your realcompany_context.jsonandcompetitors.jsonare git-ignored so they never get committed.
What it does
Weekly (e.g. Monday 9am):
- Pulls each competitor's recent LinkedIn posts
- Scans Google News, competitor sitemaps, and blog content
- Monitors community forums and Reddit for unfiltered feedback
- Checks G2, Capterra, and SoftwareAdvice for new user reviews
- Tracks competitor job postings for leading product signals
- Scans regulatory and industry developments relevant to your market
- Diffs the findings against last week's brief to surface what changed
- Writes a structured executive brief, framed from your company's angle
- Generates one sales battlecard per competitor
- Emails the brief and battlecards
Daily (e.g. 8am):
- A lightweight breaking-news check that only emails you when something significant happens (score ≥ 4/10)
Architecture
agents/
linkedin-researcher.md # LinkedIn posts -> structured JSON
news-scanner.md # News + sitemap + community forums -> structured JSON
review-monitor.md # G2/Capterra/SoftwareAdvice -> review sentiment JSON
hiring-tracker.md # Job postings -> product investment signals JSON
regulatory-radar.md # Regulatory/industry signals -> structured JSON
brief-writer.md # All agents -> executive brief (with week-over-week diff)
battlecard-writer.md # Brief + reviews + hiring -> sales battlecards
commands/
run-intel.md # /run-intel — full weekly pipeline
daily-alert.md # /daily-alert — lightweight daily breaking-news check
skills/
competitive-analysis.md # Auto-activates on competitor questions
mcp/apify/
index.js # MCP server — 5 tools (below)
company_context.example.json # -> copy to company_context.json (your positioning)
competitors.example.json # -> copy to competitors.json (who to track)
scripts/
weekly-run.sh # Cron: weekly — /run-intel
daily-alert.sh # Cron: daily — /daily-alert
output/ # Generated briefs and battlecards (auto-created, git-ignored)
Agents
| Agent | What it does | Output |
|---|---|---|
linkedin-researcher |
Reads competitor LinkedIn posts | Themes, product signals, tone, hiring posts |
news-scanner |
News, press, blog + Reddit/forums | Product launches, partnerships, community complaints |
review-monitor |
G2, Capterra, SoftwareAdvice | Sentiment trends, complaint themes, your openings |
hiring-tracker |
Job posting analysis | Leading product signals, tech stack, geographic expansion |
regulatory-radar |
Regulatory & industry signals | What's coming, competitor reactions, your openings |
brief-writer |
Synthesizes all agents | Executive brief with week-over-week diff |
battlecard-writer |
Brief + reviews + hiring | Per-competitor sales battlecards |
MCP tools (mcp/apify/index.js)
| Tool | What it does |
|---|---|
linkedin_posts |
Fetches a company's LinkedIn posts (search-indexed by default) |
check_sitemap |
Fetches sitemap.xml and filters URLs by publish date — fast, no key |
crawl_website |
Full-page text extraction |
google_search |
Web search (DuckDuckGo by default; Brave/Apify optional) |
send_email |
Sends a styled HTML email via Gmail |
Quick start
Prerequisites: Claude Code, Node.js, and a Gmail account with an App Password. No other API keys required.
# 1. Clone
git clone <your-repo-url> && cd competitive-intel
# 2. Install the MCP server deps
cd mcp/apify && npm install && cd ../..
# 3. Create your config from the examples
cp company_context.example.json company_context.json
cp competitors.example.json competitors.json
# ...then edit both with your real details.
# 4. Set delivery env vars (add to ~/.zshrc or ~/.bashrc)
export GMAIL_USER="you@gmail.com"
export GMAIL_APP_PASSWORD="xxxx xxxx xxxx xxxx"
# export BRAVE_API_KEY="..." # optional, improves search quality
# 5. Register the MCP server
claude mcp add competitive-intel node "$(pwd)/mcp/apify/index.js" \
-e GMAIL_USER=$GMAIL_USER -e GMAIL_APP_PASSWORD=$GMAIL_APP_PASSWORD
# 6. Run it
claude
> /run-intel
See GUIDE.md for full setup, customization, and scheduling.
Usage
/run-intel # Full cycle — all agents, brief, battlecards, email
/run-intel focus:product # LinkedIn + news only — fast product check
/run-intel focus:hiring # Hiring tracker only
/run-intel focus:regulatory # Regulatory radar only
/run-intel no-email # Run everything, skip email
/daily-alert # Manual breaking-news check
The competitive-analysis skill also activates automatically when you ask competitor questions in plain language, e.g. "What is Competitor A doing in AI this quarter?" or "What are people saying about Competitor B in reviews?"
Configuration
| Variable | Required | Description |
|---|---|---|
GMAIL_USER |
Yes | Gmail address used to send the brief |
GMAIL_APP_PASSWORD |
Yes | Gmail App Password — generate here |
BRAVE_API_KEY |
No | Brave Search API key — free tier, improves search over DuckDuckGo |
No paid scraping key required. Search uses DuckDuckGo by default; crawling uses native HTTP fetch; LinkedIn coverage is best-effort via search-indexed posts. For full LinkedIn coverage you can add an Apify token and the linkedin-researcher agent switches to the Apify actor automatically.
Two files drive all quality — keep them current:
company_context.json— your positioning, differentiators, win/loss themes, ICP. Injected into every brief and battlecard.competitors.json— who to track, plus a free-textnotesfield per competitor that gives the agents starting context.
A note on ethics
This tool reads publicly available information: public posts, press, published reviews, public job listings. It does not scrape private data, bypass logins, or collect personal contact information. Keep it that way. See PRIVACY.md.
Built with
- Claude Code — agents and orchestration
- nodemailer — email delivery
- Optional: Apify and Brave Search API for higher-fidelity sourcing
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
E2B
Using MCP to run code via e2b.