From gtm-skills
Discovers competitors via user input, lookalikes, web search, or G2 sites; creates Extruct tables with monitoring columns for blogs, social media, news, key people, and business models.
npx claudepluginhub extruct-ai/gtm-skills --plugin gtm-skillsThis skill uses the workspace's default tool permissions.
Discover competitors, build a tracked company table in Extruct, and run recurring research columns to monitor their content, social presence, news, and product moves.
Gathers competitive intelligence from websites, social media, ads, news, reviews, job postings, and product updates; analyzes positioning, identifies patterns, and generates strategic recommendations.
Searches live web via Nimble CLI for competitor news, product launches, hiring signals, funding; compares prior findings to highlight updates. For competitive intelligence requests.
Sets up ongoing competitor monitoring: define tracked competitors, dimensions (content, pricing, ads, social, SEO, SERP), scan frequencies, and change alerts.
Share bugs, ideas, or general feedback.
Discover competitors, build a tracked company table in Extruct, and run recurring research columns to monitor their content, social presence, news, and product moves.
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).
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.
| Input | Source | Required |
|---|---|---|
| Client company domain | User provides | yes |
| Known competitors | User provides (optional — can be discovered) | no |
| Monitoring focus areas | User choice (default: all) | no |
| Existing monitoring table ID | Extruct table to reuse | no |
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 roundupsAugment with G2 / review site discovery
If the client is listed on G2, Capterra, or TrustRadius:
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.
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.
Add research columns based on the user's monitoring focus. Present the menu below and let them choose which to enable.
| Column | Key | Agent | Format | Prompt summary |
|---|---|---|---|---|
| Key People | key_people | research_pro | text | List key people with roles, LinkedIn/X profiles. Search company website, Crunchbase/PitchBook, LinkedIn |
| Business Model Analysis | business_model_analysis | research_pro | text | Revenue streams, customer segments, value propositions, competitive advantages |
| Competitors List | competitors_list | research_pro | text | Who this competitor competes with (useful for discovering adjacent competitors) |
| Funding History | funding_history | research_pro | text | Funding rounds, investors, amounts, dates |
| Column | Key | Agent | Format | Prompt summary |
|---|---|---|---|---|
| Company Blog URL | company_blog_url | research_pro | url | Find the company's blog or content hub URL |
| Recent Blog Posts (6mo) | recent_blog_posts_6mo | research_pro | text | List blog posts from the last 6 months with titles, dates, topics, and URLs |
| People LinkedIn Updates | recent_company_updates | research_pro | text | Recent LinkedIn posts and activity from key people at the company |
| Column | Key | Agent | Format | Prompt summary |
|---|---|---|---|---|
| Recent Company News | recent_company_news | research_pro | text | News articles, press releases, product announcements from the last 6 months |
| Public News (6mo) | public_news_6mo | research_pro | text | Broader public coverage — media mentions, analyst reports, event appearances |
| News Summary | news_summary | llm | text | Synthesize recent_company_news and public_news_6mo into a concise briefing. Dependencies: recent_company_news, public_news_6mo |
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"]
}
}
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).
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:
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:
| Columns | When to re-run | Why |
|---|---|---|
recent_blog_posts_6mo, recent_company_updates | When the user wants a content update | Blog and social data goes stale fastest |
recent_company_news, public_news_6mo, news_summary | When the user wants a news update | Catches new announcements, funding, launches |
key_people | After hearing about exec changes | Detects new hires, departures |
funding_history | After hearing about a raise | Updates funding rounds |
business_model_analysis, competitors_list | Periodically or after market shifts | These 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 | Format | Location |
|---|---|---|
| Competitor monitoring table | Extruct company table | https://app.extruct.ai/tables/{table_id} |
list-building with competitor domains as seeds for lookalike searchcompetitor-post-engagers to scrape people engaging with competitor LinkedIn postsmarket-research for in-depth analysis of a specific competitor's market positioninglist-enrichment to add custom research columns (pricing, tech stack, etc.)