From sales
Research your competitors and build an interactive battlecard. Outputs an HTML artifact with clickable competitor cards and a comparison matrix. Trigger with "competitive intel", "research competitors", "how do we compare to [competitor]", "battlecard for [competitor]", or "what's new with [competitor]".
How this skill is triggered — by the user, by Claude, or both
Slash command
/sales:competitive-intelligenceThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Research your competitors extensively and generate an **interactive HTML battlecard** you can use in deals. The output is a self-contained artifact with clickable competitor tabs and an overall comparison matrix.
Research your competitors extensively and generate an interactive HTML battlecard you can use in deals. The output is a self-contained artifact with clickable competitor tabs and an overall comparison matrix.
Lark-native execution (depth core: LARK-PATTERNS, LARK-FUSION; tool map in CONNECTORS.md). The HTML battlecard and external web/web-review research stay as-is — that's the specialty layer. Only the connected sources and delivery become Lark: CRM win/loss = Lark Base (
lark_base_searchon the Deals table, requiressearch_fields; narrow withselect_fields— base_search does NOT supportjq, P5); existing battlecards/playbooks in Wiki/Docs (lark_doc_search,lark_doc_fetch); field intel in chat (lark_im_search); competitor mentions in calls (lark_minutes_search, P6). For delivery: host the artifact with thelark-appsskill (Miaoda public URL) or upload to Drive (lark_drive_upload); land the comparison-matrix summary in Wiki (lark_wiki_node_create, P8); and announce "battlecard ready" as an interactive card with a link button (lark_im_card_send, P4). Resolve any teammate you share with vialark_contact_search(P1).
┌─────────────────────────────────────────────────────────────────┐
│ COMPETITIVE INTELLIGENCE │
├─────────────────────────────────────────────────────────────────┤
│ ALWAYS (works standalone via web search) │
│ ✓ Competitor product deep-dive: features, pricing, positioning │
│ ✓ Recent releases: what they've shipped in last 90 days │
│ ✓ Your company releases: what you've shipped to counter │
│ ✓ Differentiation matrix: where you win vs. where they win │
│ ✓ Sales talk tracks: how to position against each competitor │
│ ✓ Landmine questions: expose their weaknesses naturally │
├─────────────────────────────────────────────────────────────────┤
│ OUTPUT: Interactive HTML Battlecard │
│ ✓ Comparison matrix overview │
│ ✓ Clickable tabs for each competitor │
│ ✓ Dark theme, professional styling │
│ ✓ Self-contained HTML file — share or host anywhere │
├─────────────────────────────────────────────────────────────────┤
│ SUPERCHARGED (when you connect your tools) │
│ + CRM: Win/loss data, competitor mentions in closed deals │
│ + Docs: Existing battlecards, competitive playbooks │
│ + Chat: Internal intel, field reports from colleagues │
│ + Transcripts: Competitor mentions in customer calls │
└─────────────────────────────────────────────────────────────────┘
When you run this skill, I'll ask for context:
Required:
Optional:
If I already have your seller context from a previous session, I'll confirm and skip the questions.
| Connector | What It Adds |
|---|---|
| CRM | Win/loss history against each competitor, deal-level competitor tracking |
| Docs | Existing battlecards, product comparison docs, competitive playbooks |
| Chat | Internal chat intel (e.g. Lark IM) — what your team is hearing from the field |
| Transcripts | Competitor mentions in customer calls, objections raised |
No connectors? Web research works great. I'll pull everything from public sources — product pages, pricing, blogs, release notes, reviews, job postings.
The skill generates a self-contained HTML file with:
Overview comparing you vs. all competitors at a glance:
Each competitor gets a clickable card that expands to show:
<!DOCTYPE html>
<html>
<head>
<title>Battlecard: [Your Company] vs Competitors</title>
<style>
/* Dark theme, professional styling */
/* Tabbed navigation */
/* Expandable cards */
/* Responsive design */
</style>
</head>
<body>
<!-- Header with your company + date -->
<header>
<h1>[Your Company] Competitive Battlecard</h1>
<p>Generated: [Date] | Competitors: [List]</p>
</header>
<!-- Tab Navigation -->
<nav class="tabs">
<button class="tab active" data-tab="matrix">Comparison Matrix</button>
<button class="tab" data-tab="competitor-1">[Competitor 1]</button>
<button class="tab" data-tab="competitor-2">[Competitor 2]</button>
<button class="tab" data-tab="competitor-3">[Competitor 3]</button>
</nav>
<!-- Comparison Matrix Tab -->
<section id="matrix" class="tab-content active">
<h2>Head-to-Head Comparison</h2>
<table class="comparison-matrix">
<!-- Feature rows with you vs each competitor -->
</table>
<h2>Quick Win/Loss Guide</h2>
<div class="win-loss-grid">
<!-- Per-competitor: when you win, when you lose -->
</div>
</section>
<!-- Individual Competitor Tabs -->
<section id="competitor-1" class="tab-content">
<div class="battlecard">
<div class="profile"><!-- Company info --></div>
<div class="differentiation"><!-- Where they win / you win --></div>
<div class="talk-tracks"><!-- Scenario-based positioning --></div>
<div class="objections"><!-- Common objections + responses --></div>
<div class="landmines"><!-- Questions to ask --></div>
</div>
</section>
<script>
// Tab switching logic
// Expand/collapse sections
</script>
</body>
</html>
:root {
/* Dark theme base */
--bg-primary: #0a0d14;
--bg-elevated: #0f131c;
--bg-surface: #161b28;
--bg-hover: #1e2536;
/* Text */
--text-primary: #ffffff;
--text-secondary: rgba(255, 255, 255, 0.7);
--text-muted: rgba(255, 255, 255, 0.5);
/* Accent (your brand or neutral) */
--accent: #3b82f6;
--accent-hover: #2563eb;
/* Status indicators */
--you-win: #10b981;
--they-win: #ef4444;
--tie: #f59e0b;
}
If first time:
1. Ask: "What company do you work for?"
2. Ask: "What do you sell? (product/service in one line)"
3. Ask: "Who are your main competitors? (up to 5)"
4. Store context for future sessions
If returning user:
1. Confirm: "Still at [Company] selling [Product]?"
2. Ask: "Same competitors, or any new ones to add?"
Web searches:
1. "[Your company] product" — current offerings
2. "[Your company] pricing" — pricing model
3. "[Your company] news" — recent announcements (90 days)
4. "[Your company] product updates OR changelog OR releases" — what you've shipped
5. "[Your company] vs [competitor]" — existing comparisons
For each competitor, run:
1. "[Competitor] product features" — what they offer
2. "[Competitor] pricing" — how they charge
3. "[Competitor] news" — recent announcements
4. "[Competitor] product updates OR changelog OR releases" — what they've shipped
5. "[Competitor] reviews G2 OR Capterra OR TrustRadius" — customer sentiment
6. "[Competitor] vs [alternatives]" — how they position
7. "[Competitor] customers" — who uses them
8. "[Competitor] careers" — hiring signals (growth areas)
CRM = Lark Base (P5): (base_search REQUIRES search_fields and does NOT support jq)
1. lark_base_search on the Deals table:
search_fields=["Competitor"], query="[Competitor]",
select_fields=["Account Name","Amount","Outcome","Loss Reason"], limit=50
- if field names unknown, discover via
lark_api GET /open-apis/bitable/v1/apps/{base}/tables/{table}/fields
2. Split Won vs Lost client-side from the returned records (Outcome field).
3. Extract win/loss patterns. Delegate joins/aggregations to `lark-base`.
Docs/Wiki:
1. lark_doc_search "battlecard [competitor]" / "competitive [competitor]"
jq: ".data.results[]" to list hits (P3)
2. lark_doc_fetch the hits (jq ".data.content" — slice client-side to keep tokens low, P3)
Chat:
1. lark_im_search "[Competitor]" (last 90 days)
2. Extract field intel and colleague insights
Transcripts (Minutes, P6):
1. lark_minutes_search(participant_ids="me", query="[Competitor]")
2. Pull AI artifacts → objections and customer quotes (delegate to `lark-minutes`)
1. Structure data for each competitor
2. Build comparison matrix
3. Generate individual battlecards
4. Create talk tracks for each scenario
5. Compile landmine questions
6. Render as self-contained HTML
7. Save as [YourCompany]-battlecard-[date].html
competitor:
name: "[Name]"
website: "[URL]"
profile:
founded: "[Year]"
funding: "[Stage + amount]"
employees: "[Count]"
target_market: "[Who they sell to]"
pricing_model: "[Per seat / usage / etc.]"
market_position: "[Leader / Challenger / Niche]"
what_they_sell: "[Product summary]"
their_positioning: "[How they describe themselves]"
recent_releases:
- date: "[Date]"
release: "[Feature/Product]"
impact: "[Why it matters]"
where_they_win:
- area: "[Area]"
advantage: "[Their strength]"
how_to_handle: "[Your counter]"
where_you_win:
- area: "[Area]"
advantage: "[Your strength]"
proof_point: "[Evidence]"
pricing:
model: "[How they charge]"
entry_price: "[Starting price]"
enterprise: "[Enterprise pricing]"
hidden_costs: "[Implementation, etc.]"
talk_track: "[How to discuss pricing]"
talk_tracks:
early_mention: "[Strategy if they come up early]"
displacement: "[Strategy if customer uses them]"
late_addition: "[Strategy if added late to eval]"
objections:
- objection: "[What customer says]"
response: "[How to handle]"
landmines:
- "[Question that exposes their weakness]"
win_loss: # If CRM connected
win_rate: "[X]%"
common_win_factors: "[What predicts wins]"
common_loss_factors: "[What predicts losses]"
## ✓ Battlecard Created
[View your battlecard](file:///path/to/[YourCompany]-battlecard-[date].html)
---
**Summary**
- **Your Company**: [Name]
- **Competitors Analyzed**: [List]
- **Data Sources**: Web research [+ CRM] [+ Docs] [+ Transcripts]
---
**How to Use**
- **Before a call**: Open the relevant competitor tab, review talk tracks
- **During a call**: Reference landmine questions
- **After win/loss**: Update with new intel
---
**Sharing Options (Lark-native)**
- **Public URL**: deploy the HTML via the **`lark-apps`** skill (Miaoda) → shareable link
- **Drive**: `lark_drive_upload` the file, then manage view permissions
- **Wiki landing page**: `lark_wiki_node_create` a "Battlecards" node with the matrix summary + link (P8)
- **Announce in chat**: post an **interactive card** (`lark_im_card_send`, P4) with a "Open battlecard" link button; resolve teammates via `lark_contact_search` (P1)
- **Local file**: still works — open in any browser
---
**Keep it Fresh**
Run this skill again to refresh with latest intel. Recommended: monthly or before major deals.
Competitive intel gets stale. Recommended refresh:
| Trigger | Action |
|---|---|
| Monthly | Quick refresh — new releases, news, pricing changes |
| Before major deal | Deep refresh for specific competitor in that deal |
| After win/loss | Update patterns with new data |
| Competitor announcement | Immediate update on that competitor |
npx claudepluginhub larkcowork/lark-cowork-plugins --plugin salesCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.