/company-radar
Competitive intelligence orchestrator tracking companies across 8+ platforms (GitHub, Twitter, Reddit, HN, PH, YC Jobs) with heat scores and AI briefings.
$ npx -y skills add Varnan-Tech/opendirectory --skill company-radar --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/company-radar
Context preview
The summary Claude sees to decide when to auto-load this skill.
Competitive intelligence orchestrator tracking companies across 8+ platforms (GitHub, Twitter, Reddit, HN, PH, YC Jobs) with heat scores and AI briefings.
SKILL.md
company-radar.SKILL.mdname: company-radar
description: Competitive intelligence orchestrator tracking companies across 8+ platforms (GitHub, Twitter, Reddit, HN, PH, YC Jobs) with heat scores and AI briefings.
compatibility: [claude-code, gemini-cli, github-copilot]
author: OpenDirectory
version: 1.0.0
Company Radar
**Competitive intelligence orchestrator.** Takes company names, runs parallel research across 8+ platforms, scores each on a 0-100 heat scale, and produces a structured radar report with AI briefings.
This is an orchestration skill. It delegates data collection to existing opendirectory micro-skills and coordinates their output --- it doesn't replace them.
---
Architecture
INPUT: Company name(s) / URL(s)
|
[1. Profile Phase] -- Web research to build company profiles
|
[2. Signal Collection] -- Parallel platform research (8 channels)
/ | | | | | \ \
GH TW RD HN PH YC WEB MEDIA
|
[3. Scoring Engine] -- 4-dimension heat score (0-100)
|
[4. AI Synthesis] -- Executive briefing generation
|
OUTPUT: Radar Report + Per-Company Deep DivesSignal Channels and Their Opendirectory Mappings
| Channel | Opendirectory Skill | What It Detects | |---|---|---| | GitHub | `gh-issue-to-demand-signal` + web search | Stars, forks, commits, releases, shipping velocity | | Twitter/X | `twitter-GTM-find-skill` | Tweets, mentions, engagement, founder activity | | Reddit | `reddit-icp-monitor`, `reddit-post-engine` | Community sentiment, pain points, buzz | | Hacker News | `hackernews-intel` | Story mentions, points, front-page signals | | Product Hunt | `producthunt-launch-kit` | Launches, votes, maker activity | | YC Jobs | `yc-intent-radar-skill` / `yc-jobs-scraper` | Job listings, hiring departments, growth signals | | Web / Press | Tavily search + `competitor-pr-finder` | News, product announcements, funding | | Pricing | `pricing-finder` | Pricing changes, tier updates, plan structure | | Market Position | `map-your-market` | ICP, competitor landscape, messaging gaps |
---
Common Mistakes
| The agent will want to... | Why that's wrong | |---|---| | Run skills sequentially | All 8 signal channels are independent. Must run in parallel. | | Hallucinate GitHub star counts or hiring numbers | Every data point must trace to a specific search result or skill output. No "approx 500 stars". | | Skip the heat score computation | The radar report requires scored output, not just raw data dump. Heat score is the core differentiator. | | Output incomplete reports because a skill failed | One failing channel does not block the full report. Score what you have, note gaps. | | Use AI training knowledge for company descriptions | Every company description must come from live web research, not memory. | | Forget to score activity levels from heat scores | Heat score has explicit thresholds: High (60+), Medium (30-59), Low (1-29), Dormant (0). |
---
Step 1: Setup Check
Check that required API keys are accessible for the channels the user's platform supports:
if [ -z "$TAVILY_API_KEY" ]; then echo "TAVILY_API_KEY: NOT SET -- required for web enrichment"; else echo "TAVILY_API_KEY: configured"; fi
if [ -z "$GITHUB_TOKEN" ]; then echo "GITHUB_TOKEN: not set -- GitHub API rate limited to 60 req/hr"; else echo "GITHUB_TOKEN: configured"; fi
The specific skills being orchestrated have their own API key requirements. Check each skill's SKILL.md for details. Required for full operation:
- `TAVILY_API_KEY` -- web search and company enrichment (get at app.tavily.com)
- `GITHUB_TOKEN` -- GitHub API access (get at github.com/settings/tokens)
If `TAVILY_API_KEY` is missing: stop and tell the user. Without it, company profiling and web enrichment cannot operate.
---
Step 2: Parse Input
Collect from the conversation:
- `companies`: list of company names/URLs to track (required, min 1, max 10 per run)
- `output_preference`: "full report" (default), "alert-only", "briefing-only", or "heat-score-only" (leaderboard table + scores only, no deep dives)
- `timeframe`: "realtime" (default) or "last-week" or "last-month"
**If the user gives a single company name:** still run full radar pipeline. Single-company radars are valid -- get the full profile.
**If more than 10 companies:** tell the user "Maximum 10 companies per radar scan. I'll run the first 10. Let me know if you want to swap any out."
Ask if any companies have specific known handles:
- GitHub org name (if different from company name)
- Twitter handle
- YC batch (if YC company)
- Product Hunt slug
This saves research time. If unknown, the profile phase will discover them.
---
Step 3: Company Profile Phase
For each company, build a basic profile before running platform research.
Step 3a: Initial Web Enrichment
For each company, run a Tavily search to discover:
[company name] official website twitter github linkedin producthunt yc founders
Extract from search results:
- Domain / website URL
- Description (2-3 sentences)
- Twitter handle (from twitter.com/X.com URLs in results)
- GitHub org (from github.com URLs in results)
- LinkedIn URL
- Product Hunt slug
- YC batch and URL (if applicable)
- Founder names and Twitter handles
**Output format:** For each company, produce a profile object following `references/company-profile-format.md`.
Step 3b: Confirm With User
Display the discovered profiles and ask the user to confirm or correct before proceeding.
## Discovered Company Profiles
| Company | Domain | Twitter | GitHub | YC Batch | Founders |
|---|---|---|---|---|---|
| ... | ... | ... | ... | ... | ... |
Correct any incorrect handles before I proceed to signal collection?
Wait for user confirmation. Do not skip this step -- wrong handles produce wrong signals.
---
Step 4: Parallel Signal Collection
Now run research across all platforms **in parallel** for all confirmed companies.
Signal Collection Map
For ea
Read more
name: company-radar description: Competitive intelligence orchestrator tracking companies across 8+ platforms (GitHub, Twitter, Reddit, HN, PH, YC Jobs) with heat scores and AI briefings. compatibility: [claude-code, gemini-cli, github-copilot] author: OpenDirectory version: 1.0.0
Company Radar
**Competitive intelligence orchestrator.** Takes company names, runs parallel research across 8+ platforms, scores each on a 0-100 heat scale, and produces a structured radar report with AI briefings.
This is an orchestration skill. It delegates data collection to existing opendirectory micro-skills and coordinates their output --- it doesn't replace them.
---
Architecture
INPUT: Company name(s) / URL(s)
|
[1. Profile Phase] -- Web research to build company profiles
|
[2. Signal Collection] -- Parallel platform research (8 channels)
/ | | | | | \ \
GH TW RD HN PH YC WEB MEDIA
|
[3. Scoring Engine] -- 4-dimension heat score (0-100)
|
[4. AI Synthesis] -- Executive briefing generation
|
OUTPUT: Radar Report + Per-Company Deep DivesSignal Channels and Their Opendirectory Mappings
| Channel | Opendirectory Skill | What It Detects | |---|---|---| | GitHub | `gh-issue-to-demand-signal` + web search | Stars, forks, commits, releases, shipping velocity | | Twitter/X | `twitter-GTM-find-skill` | Tweets, mentions, engagement, founder activity | | Reddit | `reddit-icp-monitor`, `reddit-post-engine` | Community sentiment, pain points, buzz | | Hacker News | `hackernews-intel` | Story mentions, points, front-page signals | | Product Hunt | `producthunt-launch-kit` | Launches, votes, maker activity | | YC Jobs | `yc-intent-radar-skill` / `yc-jobs-scraper` | Job listings, hiring departments, growth signals | | Web / Press | Tavily search + `competitor-pr-finder` | News, product announcements, funding | | Pricing | `pricing-finder` | Pricing changes, tier updates, plan structure | | Market Position | `map-your-market` | ICP, competitor landscape, messaging gaps |
---
Common Mistakes
| The agent will want to... | Why that's wrong | |---|---| | Run skills sequentially | All 8 signal channels are independent. Must run in parallel. | | Hallucinate GitHub star counts or hiring numbers | Every data point must trace to a specific search result or skill output. No "approx 500 stars". | | Skip the heat score computation | The radar report requires scored output, not just raw data dump. Heat score is the core differentiator. | | Output incomplete reports because a skill failed | One failing channel does not block the full report. Score what you have, note gaps. | | Use AI training knowledge for company descriptions | Every company description must come from live web research, not memory. | | Forget to score activity levels from heat scores | Heat score has explicit thresholds: High (60+), Medium (30-59), Low (1-29), Dormant (0). |
---
Step 1: Setup Check
Check that required API keys are accessible for the channels the user's platform supports:
if [ -z "$TAVILY_API_KEY" ]; then echo "TAVILY_API_KEY: NOT SET -- required for web enrichment"; else echo "TAVILY_API_KEY: configured"; fi if [ -z "$GITHUB_TOKEN" ]; then echo "GITHUB_TOKEN: not set -- GitHub API rate limited to 60 req/hr"; else echo "GITHUB_TOKEN: configured"; fi
The specific skills being orchestrated have their own API key requirements. Check each skill's SKILL.md for details. Required for full operation:
- `TAVILY_API_KEY` -- web search and company enrichment (get at app.tavily.com)
- `GITHUB_TOKEN` -- GitHub API access (get at github.com/settings/tokens)
If `TAVILY_API_KEY` is missing: stop and tell the user. Without it, company profiling and web enrichment cannot operate.
---
Step 2: Parse Input
Collect from the conversation:
- `companies`: list of company names/URLs to track (required, min 1, max 10 per run)
- `output_preference`: "full report" (default), "alert-only", "briefing-only", or "heat-score-only" (leaderboard table + scores only, no deep dives)
- `timeframe`: "realtime" (default) or "last-week" or "last-month"
**If the user gives a single company name:** still run full radar pipeline. Single-company radars are valid -- get the full profile.
**If more than 10 companies:** tell the user "Maximum 10 companies per radar scan. I'll run the first 10. Let me know if you want to swap any out."
Ask if any companies have specific known handles:
- GitHub org name (if different from company name)
- Twitter handle
- YC batch (if YC company)
- Product Hunt slug
This saves research time. If unknown, the profile phase will discover them.
---
Step 3: Company Profile Phase
For each company, build a basic profile before running platform research.
Step 3a: Initial Web Enrichment
For each company, run a Tavily search to discover:
[company name] official website twitter github linkedin producthunt yc founders
Extract from search results:
- Domain / website URL
- Description (2-3 sentences)
- Twitter handle (from twitter.com/X.com URLs in results)
- GitHub org (from github.com URLs in results)
- LinkedIn URL
- Product Hunt slug
- YC batch and URL (if applicable)
- Founder names and Twitter handles
**Output format:** For each company, produce a profile object following `references/company-profile-format.md`.
Step 3b: Confirm With User
Display the discovered profiles and ask the user to confirm or correct before proceeding.
## Discovered Company Profiles | Company | Domain | Twitter | GitHub | YC Batch | Founders | |---|---|---|---|---|---| | ... | ... | ... | ... | ... | ... | Correct any incorrect handles before I proceed to signal collection?
Wait for user confirmation. Do not skip this step -- wrong handles produce wrong signals.
---
Step 4: Parallel Signal Collection
Now run research across all platforms **in parallel** for all confirmed companies.
Signal Collection Map
For ea
AI Agent Skills built for Founders who hate Marketing
Repo: Varnan-Tech/opendirectory
Other skills on opendirectory-gtm-skills.
- /app-store-review-arbitrage
Fetches low-star App Store and Google Play reviews, clusters them into broken-promise patterns, and generates a ranked copy brief with positioning opportunities.
Open skill - /blog-cover-image-cli
Use when the user asks to generate a blog cover image, thumbnail, or article header. Automatically uses modern typography, brand logos, and Google Search grounding to create beautiful 16:9 images with Gemini 3.1 Flash Image Preview.
Open skill - /brand-alchemy
World-class brand strategist and naming expert. Uses an interrogation-led discovery phase to extract your brand's DNA, then applies scientific naming frameworks (Phonosemantics) and automated multi-TLD domain checking.
Open skill - /claude-md-generator
Use when the user asks to generate or update a project's CLAUDE or AGENTS context file from a codebase scan. Writes a focused file under 100 lines containing only the non-obvious build commands, conventions, and gotchas Claude Code needs.
Open skill - /cold-email-verifier
Use when the user wants to verify cold emails, enrich a lead list, or autonomously guess email addresses from a CSV using ValidEmail.co or the open-source Reacher engine.
Open skill - /competitor-pr-finder
Give it your product URL or description. It finds your top 5 competitors, runs three-track PR research across all of them (editorial, podcasts, communities), identifies which channels appear most frequently, looks up the journalist or host for each, and returns a tiered outreach
Open skill

