Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
extruct-ai avatar

Competitor Monitoring

  • 28 installs
  • 104 repo stars
  • Updated July 1, 2026
  • extruct-ai/gtm-skills

Helps with ai & agent building tasks.

About

competitor-monitoring is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.

  • competitor-monitoring
  • AI & Agent Building
  • AI-coding skill

Competitor Monitoring by the numbers

  • 28 all-time installs (skills.sh)
  • Ranked #9,505 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Jul 31, 2026 (Skillselion catalog sync)
npx skills add https://github.com/extruct-ai/gtm-skills --skill competitor-monitoring

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs28
repo stars104
Last updatedJuly 1, 2026
Repositoryextruct-ai/gtm-skills

What it does

Helps with ai & agent building tasks.

Files

SKILL.mdMarkdownGitHub ↗

Competitor Monitoring

Discover competitors, build a tracked company table in Extruct, and run recurring research columns to monitor their content, social presence, news, and product moves.

Related Skills

market-research → competitor-monitoring → list-building (for targeting competitor customers)
                                        → competitor-post-engagers (for targeting their audience)

This skill sets up the competitive intelligence foundation. Its outputs feed into prospecting workflows (target competitor customers or engaged audiences).

Extruct API Operations

This skill delegates all Extruct API calls to the extruct-api skill.

For all Extruct API operations, read and follow the instructions in skills/extruct-api/SKILL.md.

Table creation, row uploads, column creation, enrichment runs, and data fetching are handled by the extruct-api skill. This skill focuses on which competitors to track and what monitoring columns to add.

Inputs

InputSourceRequired
Client company domainUser providesyes
Known competitorsUser provides (optional — can be discovered)no
Monitoring focus areasUser choice (default: all)no
Existing monitoring table IDExtruct table to reuseno

Workflow

Step 1: Collect competitors

Start by asking the user: "Which competitors do you want to track?" They may already have a list. Then augment with discovery methods as needed.

Direct input (always start here)

Ask the user for their known competitors. Most users know their top 3-5. This is the primary input — discovery methods below are supplementary.

Augment with lookalike search

Use the extruct-api skill to find similar companies:

companies similar --company-identifier {client_domain} --limit 20

Present results to the user — not all lookalikes are direct competitors. Let the user pick which ones to add.

Augment with web search

Search for competitor lists and comparison pages:

  • "{client_company} vs" — head-to-head comparisons
  • "{client_company} alternatives" — competitor roundups
  • G2/Capterra category pages for the client's product category

Augment with G2 / review site discovery

If the client is listed on G2, Capterra, or TrustRadius:

  • Find the client's category page
  • Extract other vendors in the same category

Combining methods: Use direct input as the base, then run lookalike + web search to surface competitors the user may have missed. Deduplicate by domain. Present the merged list for final confirmation.

Output: Confirmed list of 3-10 competitor domains.

Step 2: Create the competitor monitoring table

Delegate to the extruct-api skill to create a company table (or reuse an existing one):

{
  "name": "{client_name} — Competitor Monitoring",
  "kind": "company"
}

Upload competitor domains as rows (batch of 50 via extruct-api skill). The table auto-generates company_profile, company_name, and company_website columns.

Include the client's own domain as the first row — useful for side-by-side comparison.

Step 3: Add monitoring columns

Add research columns based on the user's monitoring focus. Present the menu below and let them choose which to enable.

Core columns (recommended for all setups)
ColumnKeyAgentFormatPrompt summary
Key Peoplekey_peopleresearch_protextList key people with roles, LinkedIn/X profiles. Search company website, Crunchbase/PitchBook, LinkedIn
Business Model Analysisbusiness_model_analysisresearch_protextRevenue streams, customer segments, value propositions, competitive advantages
Competitors Listcompetitors_listresearch_protextWho this competitor competes with (useful for discovering adjacent competitors)
Funding Historyfunding_historyresearch_protextFunding rounds, investors, amounts, dates
Content monitoring columns
ColumnKeyAgentFormatPrompt summary
Company Blog URLcompany_blog_urlresearch_prourlFind the company's blog or content hub URL
Recent Blog Posts (6mo)recent_blog_posts_6moresearch_protextList blog posts from the last 6 months with titles, dates, topics, and URLs
People LinkedIn Updatesrecent_company_updatesresearch_protextRecent LinkedIn posts and activity from key people at the company
News monitoring columns
ColumnKeyAgentFormatPrompt summary
Recent Company Newsrecent_company_newsresearch_protextNews articles, press releases, product announcements from the last 6 months
Public News (6mo)public_news_6moresearch_protextBroader public coverage — media mentions, analyst reports, event appearances
News Summarynews_summaryllmtextSynthesize recent_company_news and public_news_6mo into a concise briefing. Dependencies: recent_company_news, public_news_6mo
Column config examples

Key People:

{
  "kind": "agent",
  "name": "Key People",
  "key": "key_people",
  "value": {
    "agent_type": "research_pro",
    "prompt": "List the key people in the company along with their roles. To find key people, leverage company website, crunchbase/pitchbook or other company profiles, search linkedin and broader web.\n\nFor each person, provide their LinkedIn and/or X profile links if available. Format the response as a bulleted list with names, roles, and links.",
    "output_format": "text",
    "extra_dependencies": ["company_name", "company_website"]
  }
}

Recent Blog Posts:

{
  "kind": "agent",
  "name": "Recent Blog Posts 6mo",
  "key": "recent_blog_posts_6mo",
  "value": {
    "agent_type": "research_pro",
    "prompt": "Find and list blog posts published by this company in the last 6 months. For each post include: title, publication date, main topic/theme, and URL. Focus on the company's official blog or content hub. If no blog is found, check for articles on Medium, Substack, or LinkedIn articles by the company page.",
    "output_format": "text",
    "extra_dependencies": ["company_name", "company_website", "company_blog_url"]
  }
}

People LinkedIn Updates:

{
  "kind": "agent",
  "name": "People LinkedIn Updates",
  "key": "recent_company_updates",
  "value": {
    "agent_type": "research_pro",
    "prompt": "Find recent LinkedIn posts and updates from key people at this company (founders, executives, and other visible team members). Summarize the main themes, announcements, and engagement patterns. Include links to notable posts.",
    "output_format": "text",
    "extra_dependencies": ["company_name", "company_website", "key_people"]
  }
}

News Summary (LLM synthesis, depends on other columns):

{
  "kind": "agent",
  "name": "News Summary",
  "key": "news_summary",
  "value": {
    "agent_type": "llm",
    "prompt": "Synthesize the recent company news and public news into a concise executive briefing. Highlight: 1) Major product or strategy shifts, 2) Funding or M&A activity, 3) Key hires or departures, 4) Market positioning changes. Keep it to 3-5 bullet points.",
    "output_format": "text",
    "extra_dependencies": ["recent_company_news", "public_news_6mo"]
  }
}

Step 4: Run enrichment

Delegate to the extruct-api skill to trigger enrichment on all newly added columns. Scope the run to only the new columns.

Monitor progress — these are research_pro columns, so they take longer than llm columns (expect 1-3 minutes per row per column).

Step 5: Review baseline results

Once enrichment completes, fetch data and present a competitor overview:

Competitor Monitoring Baseline — {client_name}
================================================

| Company | Key People | Blog Posts (6mo) | Recent News | Funding |
|---------|-----------|------------------|-------------|---------|
| Competitor A | 5 found | 12 posts | 3 articles | Series B |
| Competitor B | 3 found | 0 posts | 1 article | Seed |
| ...     | ...       | ...              | ...         | ...     |

Notable Findings:
- [Competitor A] published 12 blog posts in 6mo — active content strategy
- [Competitor B] raised Series B last month — expect product expansion
- [Competitor C] has no blog — rely on social monitoring instead

Ask the user:

  • "Does the competitor list look complete? Want to add any?"
  • "Any columns returning thin results that we should drop?"
  • "Ready to move to next steps (target their customers, scrape their audience)?"

Step 6: Re-running for fresh data

Extruct does not have built-in scheduling. To refresh monitoring data, re-run enrichment on the table's columns. Each re-run overwrites the previous column values with fresh research results.

How to re-run: Use the extruct-api skill to trigger enrichment on specific columns:

tables run {table_id} --mode all --columns recent_blog_posts_6mo,recent_company_updates,recent_company_news

What to re-run and when:

ColumnsWhen to re-runWhy
recent_blog_posts_6mo, recent_company_updatesWhen the user wants a content updateBlog and social data goes stale fastest
recent_company_news, public_news_6mo, news_summaryWhen the user wants a news updateCatches new announcements, funding, launches
key_peopleAfter hearing about exec changesDetects new hires, departures
funding_historyAfter hearing about a raiseUpdates funding rounds
business_model_analysis, competitors_listPeriodically or after market shiftsThese change slowly — quarterly at most

Re-running all columns at once:

tables run {table_id} --mode all

This refreshes everything but costs more research credits and takes longer. Prefer scoped re-runs for routine updates.

After each re-run, review the updated data (Step 5) and flag significant changes to the user — new blog posts, funding rounds, people moves, or messaging shifts.

Output

OutputFormatLocation
Competitor monitoring tableExtruct company tablehttps://app.extruct.ai/tables/{table_id}

Next Steps After Setup

  • Target competitor customers → use list-building with competitor domains as seeds for lookalike search
  • Target competitor audience → use competitor-post-engagers to scrape people engaging with competitor LinkedIn posts
  • Deep dive on a competitor → use market-research for in-depth analysis of a specific competitor's market positioning
  • Enrich with custom data points → use list-enrichment to add custom research columns (pricing, tech stack, etc.)

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.