AgentStack
SKILL verified MIT Self-run

Anysite Competitor Intelligence

skill-anysiteio-agent-skills-anysite-competitor-intelligence · by anysiteio

Competitive intelligence gathering using anysite MCP server across LinkedIn, social media, Y Combinator, and the web. Track competitor activities, analyze hiring patterns, monitor content strategies, benchmark market positioning, research startup competitors, and gather strategic intelligence. Supports LinkedIn (companies, employees, posts), Instagram, Twitter/X, Reddit, YouTube, Y Combinator, an…

No reviews yet
0 installs
13 views
0.0% view→install

Install

$ agentstack add skill-anysiteio-agent-skills-anysite-competitor-intelligence

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Anysite Competitor Intelligence? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

anysite Competitor Intelligence

Comprehensive competitive intelligence gathering using anysite MCP server. Track competitors across LinkedIn, social media, and the web to understand their strategies, monitor their activities, and identify competitive opportunities.

Overview

The anysite Competitor Intelligence skill helps you:

  • Track competitor companies on LinkedIn and Y Combinator
  • Monitor hiring patterns to identify growth areas and strategic priorities
  • Analyze content strategies across social platforms
  • Benchmark positioning and messaging
  • Identify key employees and leadership changes
  • Track competitive movements like funding, launches, partnerships

This skill provides 90% coverage of competitive intelligence capabilities with excellent LinkedIn and social media monitoring.

v2 Tool Interface

All data fetching uses the universal execute() meta-tool:

execute(source, category, endpoint, params) → returns data + cache_key

After fetching, use these for analysis and export:

  • get_page(cache_key, offset, limit) — paginate through large result sets
  • query_cache(cache_key, conditions, sort_by, aggregate, group_by) — filter/sort/aggregate cached data without re-fetching
  • export_data(cache_key, format) — export to CSV, JSON, or JSONL for sharing

Always call discover(source, category) first if unsure about endpoint names or params.

Error handling: Check response for llm_hint field on errors — it provides actionable guidance (e.g., "Likely passed fsd_company URN instead of company: prefix").

Supported Platforms

  • LinkedIn (Primary): Company pages, employee search, post monitoring, job listings, growth tracking
  • Y Combinator: Startup competitor research, funding data, batch analysis
  • Twitter/X: Social presence monitoring, content strategy, engagement analysis
  • Reddit: Community sentiment, product discussions, competitor mentions
  • Instagram: Brand presence, visual content strategy, influencer partnerships
  • YouTube: Video content, channel growth, community engagement
  • Web Scraping: Company websites, press releases, blog content
  • SEC: Public company filings for competitors

Quick Start

Step 1: Identify Competitors

Choose your competitor identification method:

| Goal | v2 Call | Output | |------|---------|--------| | Find similar companies | execute("linkedin", "search", "search_companies", {"keywords": "...", "count": 50}) | Company list with metrics | | Research startup competitors | execute("yc", "search", "search_companies", {"query": "...", "count": 50}) | YC startups by industry/batch | | Discover by employee search | execute("linkedin", "search", "search_users", {...}) → extract companies | Companies from employee profiles | | Find by keywords/industry | execute("linkedin", "search", "search_companies", {"keywords": "...", "industry": "...", "count": 50}) | Filtered company list |

Step 2: Gather Competitive Intelligence

Execute MCP tools to collect competitor data:

Company Profile Analysis

execute("linkedin", "company", "company", {"company": "competitor-name"})
→ Returns: Description, size, location, website, specialties, URN

Employee Intelligence

execute("linkedin", "search", "search_users", {
  "company_keywords": "Competitor Inc",
  "title": "VP OR Director OR Head",
  "count": 50
})
→ Returns: Key employees, org structure insights
→ Use get_page(cache_key, 10, 50) to load more results

Hiring Velocity Analysis

execute("linkedin", "company", "company_employee_stats", {
  "urn": {"type": "company", "value": ""}
})
→ Returns: Growth metrics, department distribution
→ Use query_cache(cache_key, sort_by=[{"field": "count", "order": "desc"}]) to rank departments

Content Strategy

execute("linkedin", "company", "company_posts", {
  "urn": {"type": "company", "value": ""},
  "count": 20
})
→ Returns: Recent posts, engagement, messaging themes
→ Use query_cache(cache_key, aggregate=[{"field": "reactions", "function": "avg"}]) for engagement stats

Step 3: Process and Analyze

Analyze gathered data for:

  • Growth signals: Hiring velocity, funding, expansion
  • Strategic priorities: Department hiring, job postings, content themes
  • Market positioning: Messaging, target audience, value props
  • Competitive threats: New products, partnerships, key hires

Use query_cache() to filter and aggregate without re-fetching:

query_cache(cache_key, conditions=[{"field": "department", "operator": "contains", "value": "Engineering"}])

Step 4: Format Output

Chat Summary: Competitive insights with key findings CSV Export: export_data(cache_key, "csv") → Competitor comparison matrix JSON Export: export_data(cache_key, "json") → Complete data for tracking over time

Common Workflows

Workflow 1: Comprehensive Competitor Profile

Scenario: Deep dive on a specific competitor

Steps:

  1. Company Overview
execute("linkedin", "company", "company", {"company": "competitor"})
→ Size, industry, description, website, founding year
→ Save the URN (convert fsd_company to company: prefix for sub-endpoints)
  1. Leadership Team
execute("linkedin", "search", "search_users", {
  "company_keywords": "Competitor Inc",
  "title": "C-level OR VP OR SVP OR President",
  "count": 50
})
→ C-suite and VP-level executives
→ Use get_page(cache_key, 10, 50) for more results
  1. Organizational Structure
execute("linkedin", "company", "company_employee_stats", {
  "urn": {"type": "company", "value": ""}
})
→ Total employees, growth rate, department breakdown

For each department:
  execute("linkedin", "search", "search_users", {
    "company_keywords": "Competitor Inc",
    "title": "",
    "count": 50
  })
→ Team sizes, key roles
  1. Hiring Intelligence
execute("linkedin", "search", "search_jobs", {"keywords": "Competitor Inc", "count": 50})
→ Open positions, hiring priorities, expansion areas
→ Use query_cache(cache_key, group_by="location") to see geographic expansion
  1. Content Strategy
execute("linkedin", "company", "company_posts", {
  "urn": {"type": "company", "value": ""},
  "count": 50
})
→ Posting frequency, themes, engagement levels

execute("twitter", "user", "user", {"user": "competitor"})
execute("twitter", "user", "user_posts", {"user": "competitor", "count": 50})
→ Social media presence and strategy
  1. Product/Market Intelligence
execute("webparser", "parse", "parse", {"url": "https://competitor.com"})
→ Positioning, messaging, product offerings

execute("webparser", "parse", "parse", {"url": "https://competitor.com/blog"})
→ Content topics, thought leadership

execute("reddit", "search", "search_posts", {"query": "Competitor Inc", "count": 20})
→ Customer sentiment, product feedback

Expected Output:

  • Complete company profile
  • Leadership team roster (10-20 executives)
  • Hiring velocity and priorities
  • Content strategy analysis
  • Product positioning insights
  • Customer sentiment summary
  • Use export_data(cache_key, "csv") to create downloadable competitor report

Workflow 2: Competitive Landscape Mapping

Scenario: Map all competitors in your space

Steps:

  1. Identify Competitors
execute("linkedin", "search", "search_companies", {
  "keywords": "",
  "industry": "",
  "employee_count": ["51-200", "201-500", "501-1000"],
  "count": 50
})
  1. Filter and Prioritize
For each company:
  execute("linkedin", "company", "company", {"company": ""})
  → Review description for relevance
  → Check employee count and growth
  → Verify competitive overlap
  1. Categorize Competitors
Direct: Same products, same market
Indirect: Similar products, different market
Potential: Adjacent space, could expand
  1. Size and Growth Metrics
For each competitor:
  execute("linkedin", "company", "company_employee_stats", {
    "urn": {"type": "company", "value": ""}
  })
  → Employee count, growth rate
  → Department distribution
  → Use query_cache() to compare across competitors
  1. Positioning Analysis
For each competitor:
  execute("linkedin", "company", "company_posts", {
    "urn": {"type": "company", "value": ""},
    "count": 10
  })
  → Key messaging themes

  execute("webparser", "parse", "parse", {"url": "/about"})
  → Value proposition, target market
  1. Funding and Traction (for startups)
execute("yc", "search", "search_companies", {"query": "", "count": 50})
→ YC competitors with funding data
→ Use query_cache(cache_key, sort_by=[{"field": "team_size", "order": "desc"}]) to rank by size

For each YC company:
  execute("yc", "company", "get", {"slug": ""})
  → Batch, team size, description

Expected Output:

  • 20-50 competitors identified
  • Categorized by competitive threat level
  • Size and growth metrics for each
  • Positioning and messaging summaries
  • Competitive landscape map
  • Use export_data(cache_key, "csv") for the full comparison matrix

Workflow 3: Hiring Velocity Tracking

Scenario: Monitor competitor hiring to identify growth areas

Steps:

  1. Baseline Employee Count
execute("linkedin", "company", "company_employee_stats", {
  "urn": {"type": "company", "value": ""}
})
→ Current total employees
→ Department distribution
  1. Track Open Positions
execute("linkedin", "search", "search_jobs", {"keywords": "Competitor Inc", "count": 100})
→ All open positions
→ Use query_cache(cache_key, group_by="location") to group by office

Group by department:
- Engineering roles
- Sales roles
- Marketing roles
- Operations roles
  1. Analyze Recent Hires
execute("linkedin", "search", "search_users", {
  "company_keywords": "Competitor Inc",
  "count": 100
})
→ Get all employees
→ Use get_page(cache_key, 10, 100) to paginate through full list

Filter for recent joins:
execute("linkedin", "user", "user_experience", {
  "urn": {"type": "fsd_profile", "value": ""},
  "count": 5
})
→ Start date at current company
→ Identify hires from last 3-6 months
  1. Track Key Departures
For former employees:
execute("linkedin", "search", "search_users", {"keywords": "Competitor Inc", "count": 50})
→ Filter profiles showing "Former" or past employment

Identify:
- Leadership departures
- Team exodus (multiple from same department)
- Moves to other competitors
  1. Competitive Recruiting Analysis
Identify where competitors hire from:
- For each new hire: get previous companies
- Track talent pipelines
- Identify poaching patterns
→ Use export_data(cache_key, "csv") to build a hiring tracker spreadsheet

Expected Output:

  • Hiring velocity (hires per month/quarter)
  • Department growth priorities
  • Key hires and their backgrounds
  • Leadership changes
  • Talent pipeline insights

Workflow 4: Content Strategy Benchmarking

Scenario: Analyze competitor content across platforms

Steps:

  1. LinkedIn Content
execute("linkedin", "company", "company_posts", {
  "urn": {"type": "company", "value": ""},
  "count": 50
})
→ Use query_cache(cache_key, aggregate=[{"field": "comment_count", "function": "avg"}]) for engagement stats

Analyze:
- Posting frequency (posts/week)
- Content types (articles, videos, polls)
- Engagement rates (likes, comments, shares)
- Topics and themes
- Employee advocacy (shares/comments from team)
  1. Twitter/X Content
execute("twitter", "user", "user", {"user": "competitor"})
execute("twitter", "user", "user_posts", {"user": "competitor", "count": 100})

Analyze:
- Tweet frequency
- Engagement metrics
- Content themes
- Use of threads/media
- Response rates
  1. YouTube Content
execute("youtube", "channel", "channel_videos", {"channel": "competitor", "count": 30})

For each video:
  execute("youtube", "video", "video", {"video": ""})

Analyze:
- Upload frequency
- View counts
- Engagement (likes, comments)
- Content types (demos, webinars, customer stories)
- Video length and production quality
→ Use query_cache(cache_key, sort_by=[{"field": "view_count", "order": "desc"}]) to find top videos
  1. Instagram Content (if B2C)
execute("instagram", "user", "user", {"user": "competitor"})
execute("instagram", "user", "user_posts", {"user": "competitor", "count": 50})

Analyze:
- Post frequency
- Visual style/branding
- Engagement rates
- Use of Reels vs. static posts
- Influencer partnerships
  1. Blog/Website Content
execute("webparser", "parse", "parse", {"url": "https://competitor.com/blog"})
execute("webparser", "sitemap", "sitemap", {"url": "https://competitor.com"})
→ Find all blog posts

Analyze:
- Publishing frequency
- Content topics
- SEO keywords
- Thought leadership positioning
  1. Community Sentiment
execute("reddit", "search", "search_posts", {"query": "Competitor Inc", "count": 50})
execute("reddit", "search", "search_posts", {"query": "competitor product name", "count": 50})

Analyze:
- Customer feedback
- Common complaints
- Product strengths
- Feature requests
→ Use query_cache(cache_key, sort_by=[{"field": "comment_count", "order": "desc"}]) to find most-discussed threads

Expected Output:

  • Cross-platform content strategy matrix
  • Engagement benchmarks
  • Content themes and messaging
  • Platform prioritization insights
  • Community sentiment summary
  • Use export_data(cache_key, "csv") for cross-platform content comparison

MCP Tools Reference (v2)

LinkedIn Company Intelligence

Company Profileexecute("linkedin", "company", "company", {"company": "..."})

  • Get detailed company profile
  • Returns: Description, website, size, industry, specialties, URN

Employee Statsexecute("linkedin", "company", "company_employee_stats", {"urn": {"type": "company", "value": "..."}})

  • Get employee statistics and growth
  • Returns: Total employees, growth metrics, department distribution
  • Note: URN must use company: prefix (not fsd_company). Convert: urn:li:fsd_company:1441company:1441

Company Postsexecute("linkedin", "company", "company_posts", {"urn": {"type": "company", "value": "..."}, "count": N})

  • Get recent company posts
  • Returns: Posts with engagement metrics, content, timestamps

LinkedIn People Intelligence

Search Usersexecute("linkedin", "search", "search_users", {"company_keywords": "...", "title": "...", "count": N})

  • Find employees at competitor companies
  • Filter by title, department, location
  • Returns: Employee profiles with titles and URLs

User Profileexecute("linkedin", "user", "user", {"user": "..."})

  • Get detailed employee profile
  • Returns: Work history, education, skills

User Experienceexecute("linkedin", "user", "user_experience", {"urn": {"type": "fsd_profile", "value": "..."}, "count": N})

  • Get detailed work history
  • Returns: All positions with dates and descriptions

LinkedIn Jobs

Search Jobsexecute("linkedin", "search", "search_jobs", {"keywords": "...", "count": N})

  • Search job listings by keywords, location, and filters
  • Returns: Open positions with company, location, work type

Y Combinator Intelligence

Search Companiesexecute("yc", "search", "search_companies", {"query": "...", "count": N})

  • Search YC companies by industry, batch, filters
  • Returns: Company list with batch, team size, status

Company Detailsexecute("yc", "company", "get", {"slug": "..."})

  • Get detailed YC company profile
  • Returns: Description, founders, batch, status, links

Search Foundersexecute("yc", "search", "search_founders", {"query": "...", "count": N})

  • Search for founders by criteria
  • Returns: Founder profiles with company associations

Social Media Monitoring

Twitter/X:

  • execute("twitter", "search", "search_posts", {"query": "...", "count": N}) — Find competitor mentions
  • execute("twitter", "user", "user", {"user": "..."}) — Get co

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.