From b2b-research-agent
Research and identify B2B engagement opportunities for a target company. Use when the user provides a company name to research as a potential client, partner, or engagement opportunity. Also supports broad pipeline building when no specific target is given. Conducts structured web research, compiles intelligence dossiers, maps decision-makers, and produces actionable engagement strategies with branded HTML reports and outreach templates. Output is designed to feed directly into the BEAM selling framework.
How this skill is triggered — by the user, by Claude, or both
Slash command
/b2b-research-agent:b2b-research-agentThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Research and identify business-to-business engagement opportunities with a **problem-first** approach. This skill conducts structured web research to find problems worth solving, validate qualification, map buying committees, and produce intelligence that earns the right to a diagnostic conversation.
Research and identify business-to-business engagement opportunities with a problem-first approach. This skill conducts structured web research to find problems worth solving, validate qualification, map buying committees, and produce intelligence that earns the right to a diagnostic conversation.
This skill is built on the principle that progression is earned, not claimed. Research should honestly assess:
The goal is not to "sell" — it's to qualify whether a conversation is worth having, and if so, to earn the right to have it.
This skill produces output designed to feed directly into the marcov.BEAM (Bayesian Evidence-Advancing Markov) selling framework. Every dossier includes:
| Gate | Research Must Provide |
|---|---|
| Problem domain identified | Specific, evidenced problems — not assumptions or generic categories |
| Access to authority | Named individuals with buying roles — not "someone in IT" |
| Willingness to diagnose | Signals that suggest openness to a conversation — or honest assessment of barriers |
Qualifying out is a valid outcome. If research reveals no real problem or no path to authority, that's valuable intelligence — don't force-fit an opportunity that doesn't exist.
This skill helps you:
This skill accepts a target company name as its primary input. The user provides the company they want to research, and the skill produces a full engagement dossier and HTML report for that company.
/b2b-research-agent GeelongPort
/b2b-research-agent Research BHP for asset management consulting opportunities
/b2b-research-agent Analyse Yarra Trams as a potential client for edge AI
When a target company is provided, skip straight to the focused discovery questions below — do not ask broad questions about target market, ICP, or how many prospects they need. The target is already known.
Before conducting any research, you MUST conduct a brief discovery interview to understand the engagement context and what problem you're trying to solve for them. Adapt the questions based on what was provided in the invocation.
Ask only what you need to know about the user's side of the engagement. Skip target market and ICP questions — the target is already identified. Focus on understanding what problem your offering solves.
Your Business & Problem You Solve
Engagement Context
Qualification Criteria
Output Preferences
Then proceed directly to Phase 3: Deep-Dive Intelligence for that specific company.
If the user asks for broad prospect identification (e.g., "find companies in mining for us"), conduct the full discovery:
Your Business
Target Market
Ideal Customer Profile (ICP)
Engagement Goals
Existing Intelligence
Output Preferences
Before researching the company, establish clarity on what you're looking for:
Research with a problem-first lens — actively seek evidence that validates or invalidates your problem hypothesis:
Be honest: If you don't find evidence of the problem, document that. Qualifying out is valuable.
For each shortlisted prospect, compile with a problem-centric focus:
| Category | Details to Capture | BEAM Relevance |
|---|---|---|
| Company Overview | Name, HQ, revenue, employees, industry, sub-vertical | Context for fit assessment |
| Business Model | What they do, who they serve, how they make money | Understanding their world |
| Problem Evidence | Specific evidence that they have the problem you solve — not assumptions | Gate 1: Problem domain |
| Pain Quantification | What is this problem costing them? (dollars, time, risk, reputation) | BEAM Stage 2 preparation |
| Technology Landscape | Current systems and their limitations — problems created by their tech stack | Problem evidence |
| Buying Committee | Stakeholders mapped to BEAM buying roles (see below) | Gate 2: Access to authority |
| Access Path | How can you reach authority? Warm intros, events, content, cold | Gate 2 support |
| Willingness Signals | Evidence they're open to conversation — responding to content, attending events, issuing RFPs | Gate 3: Willingness |
| Competitive Landscape | Current vendors — are they happy or is there vendor fatigue/dissatisfaction? | Problem/timing signal |
| Qualification Assessment | Honest evaluation: is this a real opportunity or are we forcing it? | BEAM integrity |
You MUST use web search with site:linkedin.com/in to find and identify key decision-makers. This is a core part of every dossier.
Search strategy — run these searches for each target company:
C-Suite and senior leadership:
site:linkedin.com/in "[Company Name]" CEO OR "Managing Director" OR "General Manager"
Operational / technical leaders (adapt titles to the offering):
site:linkedin.com/in "[Company Name]" "Head of" OR "Director" OR "VP" operations OR technology OR engineering OR "asset management"
Financial decision-makers:
site:linkedin.com/in "[Company Name]" CFO OR "Chief Financial" OR "Finance Director" OR "Head of Finance"
Procurement / buying roles:
site:linkedin.com/in "[Company Name]" procurement OR purchasing OR "vendor management" OR "strategic sourcing"
Domain-specific roles (tailor to what you're selling):
site:linkedin.com/in "[Company Name]" "digital transformation" OR "innovation" OR "data" OR "analytics"
For each decision-maker found, capture:
| Field | What to Record |
|---|---|
| Full Name | As shown on their LinkedIn profile |
| Title | Current job title |
| Department | Inferred from title (e.g., Operations, IT, Finance, Strategy) |
| LinkedIn URL | Direct link to their profile (e.g., https://linkedin.com/in/firstname-lastname) |
| Relevance | Why this person matters for the engagement (budget authority, technical evaluator, operational sponsor, etc.) |
| Background Notes | Career history, prior companies, education, shared connections — anything useful for personalisation |
| Engagement Angle | How to approach this person specifically (what to reference, what pain point to lead with) |
Map the BEAM buying committee — identify at minimum:
| BEAM Role | Description | Typical Titles | What They Care About |
|---|---|---|---|
| Economic Buyer | Controls the budget; makes the final financial decision | CEO, CFO, VP, GM | ROI, risk, strategic fit |
| Technical Evaluator | Assesses solution fit and technical feasibility | CTO, Head of IT, Engineering Director | Will it work? Integration? |
| Champion / Sponsor | Internally advocates for your solution; feels the pain most | Director, Senior Manager, Program Lead | Solving their problem |
| Gatekeeper | Controls access to decision-makers and process | EA, Procurement Manager, PMO | Process, compliance, vendor management |
CRITICAL: For BEAM Stage 1, you need at least one named individual you can access — not just "someone in IT". The skill will challenge vague answers.
Before producing engagement strategy, honestly assess BEAM Stage 1 gate readiness:
| Assessment | Criteria |
|---|---|
| STRONG | Multiple specific problems evidenced with sources; problems align directly to your offering |
| MODERATE | Some problem signals found but not highly specific; requires validation in discovery |
| WEAK | Assumed problems based on industry norms; no company-specific evidence |
| NONE | No evidence of the problem you solve; consider qualifying out |
| Assessment | Criteria |
|---|---|
| STRONG | Named individual identified; existing relationship or warm introduction path |
| MODERATE | Named individual identified; no relationship but clear outreach path |
| WEAK | Roles identified but no specific names; requires LinkedIn research |
| NONE | No path to authority visible; consider qualifying out |
| Assessment | Criteria |
|---|---|
| STRONG | Active signals: issued RFP, attending your events, responded to content |
| MODERATE | Passive signals: in relevant industry groups, hiring in your area |
| WEAK | No signals but no negative indicators either |
| NONE | Negative signals: recently bought competitor, stated no interest |
Based on the gate assessment, issue a verdict:
| Verdict | Criteria | Recommended Action |
|---|---|---|
| QUALIFIED | 2+ gates STRONG, none NONE | Proceed to engagement strategy |
| EXPLORATORY | Mixed signals; worth pursuing with lower investment | Light-touch outreach; validate problem first |
| NURTURE | Weak signals; not ready now | Add to content nurture; revisit in 6 months |
| DISQUALIFIED | Any gate NONE; fundamental misalignment | Document reasons; do not pursue |
For qualified prospects, produce:
Always lead with this summary before presenting the full dossier. It gives the user an immediate read on whether the prospect qualifies and at what confidence level.
# [Company Name] — Engagement Opportunity
## BEAM Qualification Readiness
| Gate | Status | Evidence Summary |
|------|--------|-----------------|
| **Problem Domain** | [STRONG/MODERATE/WEAK/NONE] | [1-line evidence summary] |
| **Access to Authority** | [STRONG/MODERATE/WEAK/NONE] | [Named contact or access path] |
| **Willingness to Diagnose** | [STRONG/MODERATE/WEAK/NONE] | [Signal or barrier] |
**Qualification Verdict: [QUALIFIED / EXPLORATORY / NURTURE / DISQUALIFIED]**
---
## Key Findings
🎯 **Problem We Can Solve**
- [Specific problem identified — evidenced, not assumed]
- [Impact of this problem on their business]
- [Why your offering addresses this problem specifically]
⏰ **Timing Signals**
- [Evidence of urgency — deadline, event, initiative]
- [Window of opportunity]
- [Risk if timing is missed]
🔑 **Buying Committee**
- **Economic Buyer**: [Name] ([Title]) — [access status]
- **Champion**: [Name] ([Title]) — [relationship status]
- **Technical Evaluator**: [Name] ([Title]) — [relevance]
- **Gatekeeper**: [Name/role] — [known or unknown]
💡 **Access Path**
- [Best route to a conversation — warm intro, event, content, cold]
- [Relationship leverage points]
- [Barriers to access and mitigation]
📊 **Qualification Confidence**
- [Fit Score]: [X/5] — [1-line rationale]
- [Timing Score]: [X/5] — [1-line rationale]
- [Overall]: [HIGH/MEDIUM/LOW] confidence this warrants pursuit
---
**First Contact Goal**: Earn the right to a diagnostic conversation — validate problem hypothesis, not pitch solution.
**If DISQUALIFIED**: [Reason] — document and move on. Qualifying out is a success.
The full detailed output for deep research on a single prospect.
# [Company Name] — Engagement Dossier
## Company Snapshot
| Field | Detail |
|-------|--------|
| **Company** | [Name] |
| **Website** | [URL] |
| **Headquarters** | [City, State/Country] |
| **Industry** | [Primary vertical] |
| **Revenue** | [Annual revenue or range] |
| **Employees** | [Headcount or range] |
| **Ownership** | [Public/Private/Government] |
## Business Overview
[2–3 paragraph summary of what the company does, who they serve, and their market position.]
## Strategic Priorities
- [Priority 1 — with source/evidence]
- [Priority 2 — with source/evidence]
- [Priority 3 — with source/evidence]
## Pain Points & Challenges
- [Pain point 1 — how it relates to your offering]
- [Pain point 2 — how it relates to your offering]
- [Pain point 3 — how it relates to your offering]
## Technology Landscape
| System | Vendor/Product | Notes |
|--------|---------------|-------|
| ERP | [e.g., SAP S/4HANA] | [Implementation date, known issues] |
| EAM | [e.g., IBM Maximo] | [Version, satisfaction level] |
| CRM | [e.g., Salesforce] | [Usage context] |
| Other | [Relevant systems] | [Notes] |
## Decision-Makers
*Found via `site:linkedin.com/in` web search*
| Name | Title | Department | Buying Role | Relevance | LinkedIn |
|------|-------|------------|-------------|-----------|----------|
| [Name] | [Title] | [Dept] | Economic Buyer | [Why they matter] | [linkedin.com/in/...] |
| [Name] | [Title] | [Dept] | Technical Evaluator | [Why they matter] | [linkedin.com/in/...] |
| [Name] | [Title] | [Dept] | Champion / Sponsor | [Why they matter] | [linkedin.com/in/...] |
| [Name] | [Title] | [Dept] | Gatekeeper | [Why they matter] | [linkedin.com/in/...] |
## Buying Signals
- [Signal 1 — date, source, interpretation]
- [Signal 2 — date, source, interpretation]
## Competitive Intelligence
| Competitor | Product/Service | Relationship Status | Vulnerability |
|-----------|----------------|--------------------:|--------------|
| [Vendor] | [Product] | [Active/Expiring/Dissatisfied] | [Why you could displace] |
## Engagement Strategy
### Fit Score: [X/5] | Timing Score: [X/5] | Priority: [HIGH/MEDIUM/LOW]
### Recommended Approach
[Specific approach — e.g., "Warm introduction via [mutual contact] targeting [decision-maker] at [upcoming event]"]
### Personalised Talking Points
1. [Point linking your value prop to their specific situation]
2. [Point referencing their recent initiative/announcement]
3. [Point addressing a known pain point]
4. [Point differentiating from their current vendor]
### Potential Objections & Responses
| Objection | Response |
|-----------|----------|
| "[Expected objection]" | "[How to counter]" |
### Outreach Sequence
| Step | Channel | Timing | Action |
|------|---------|--------|--------|
| 1 | Email | Day 1 | [Initial outreach — personalised cold email] |
| 2 | LinkedIn | Day 3 | [Connection request with note] |
| 3 | Email | Day 7 | [Follow-up with value-add content] |
| 4 | Phone | Day 10 | [Call script — reference email] |
| 5 | Email | Day 14 | [Break-up email or pivot to different contact] |
---
*Research compiled: [Date]*
*Sources: [List key sources]*
For batch research across multiple prospects.
# B2B Prospect Pipeline — [Target Vertical / Campaign Name]
## Research Parameters
- **Your Company**: [Name]
- **Offering**: [Product/Service]
- **Target Vertical**: [Industry]
- **Target Geography**: [Region]
- **ICP Criteria**: [Summary]
- **Date**: [Research date]
## Pipeline Summary
| # | Company | Industry | Revenue | Fit | Timing | Priority | Recommended Approach |
|---|---------|----------|---------|-----|--------|----------|---------------------|
| 1 | [Name] | [Vertical] | [Rev] | [1-5] | [1-5] | HIGH | [Approach] |
| 2 | [Name] | [Vertical] | [Rev] | [1-5] | [1-5] | HIGH | [Approach] |
| 3 | [Name] | [Vertical] | [Rev] | [1-5] | [1-5] | MEDIUM | [Approach] |
## Tier 1 Prospects (High Priority)
### [Company 1]
[Brief paragraph — why they are Tier 1, key trigger, recommended next step]
**Key Contact**: [Name, Title]
**Trigger**: [What makes this timely]
**Next Step**: [Specific action]
### [Company 2]
...
## Tier 2 Prospects (Medium Priority)
### [Company 3]
...
## Tier 3 Prospects (Monitor)
### [Company N]
...
## Recommended Actions (Next 30 Days)
1. [Action 1 — specific, measurable, with owner and deadline]
2. [Action 2]
3. [Action 3]
---
*Pipeline compiled: [Date]*
Personalised email sequences for each prospect.
# Outreach Templates — [Company Name]
## Email 1: Initial Outreach
**Subject**: [Personalised subject line referencing their situation]
**To**: [Decision-maker name and title]
---
Hi [First Name],
[Opening line referencing a specific trigger — their recent announcement, a shared connection, or industry event.]
[1–2 sentences connecting their challenge to your value proposition. Be specific to their situation, not generic.]
[Social proof — a brief reference to a similar company you've helped, with a measurable outcome.]
[Clear, low-commitment call to action — e.g., "Would a 15-minute call next week make sense to explore whether this could work for [Company]?"]
Best regards,
[Your Name]
[Your Title] | [Your Company]
[Phone] | [Email]
---
## Email 2: Follow-Up (Day 7)
**Subject**: Re: [Original subject] — [Value-add hook]
---
Hi [First Name],
[Reference previous email briefly — don't guilt-trip.]
[Provide genuine value — share a relevant insight, article, case study, or data point that's useful to them regardless of whether they buy.]
[Reiterate the CTA with a slight variation.]
Best regards,
[Your Name]
---
## Email 3: Break-Up (Day 14)
**Subject**: Should I close your file?
---
Hi [First Name],
[Acknowledge they're busy. No pressure.]
[One final value statement — "If [specific outcome] is still a priority for [Company], I'd welcome the chance to share how [your company] helped [similar company] achieve [result]."]
[Permission-based close — "If the timing isn't right, no worries at all. I'll keep an eye out for anything relevant to share."]
Best regards,
[Your Name]
For preparing engagement strategies around a specific event.
# Event Engagement Brief — [Event Name]
## Event Details
| Field | Detail |
|-------|--------|
| **Event** | [Name] |
| **Date** | [Date range] |
| **Location** | [Venue, City] |
| **Website** | [URL] |
| **Our Presence** | [Exhibiting/Attending/Speaking/Sponsoring] |
## Target Attendees
| # | Company | Contact | Title | Booth/Session | Engagement Plan |
|---|---------|---------|-------|---------------|----------------|
| 1 | [Company] | [Name] | [Title] | [Location] | [Approach] |
## Pre-Event Outreach
[Email templates to send before the event requesting meetings.]
## On-Site Talking Points
### For [Company 1]
- [Point 1]
- [Point 2]
- [Point 3]
## Post-Event Follow-Up
[Follow-up email template referencing the conversation at the event.]
The preferred delivery format. A polished, branded HTML report with SAS-AM styling, light/dark mode toggle, sidebar navigation, and interactive elements. Opens directly in any browser.
report-folder/
├── report.html # Main report file
└── styles.css # Report theme styles (from references/report-styles.css)
Logos are loaded from the Webflow CDN — no local asset files needed:
https://cdn.prod.website-files.com/653497186047abfdf821b2fc/69a77a2f0e9f223c5f196bd3_sas-logo.jpghttps://cdn.prod.website-files.com/653497186047abfdf821b2fc/69a777cb2f01269a5c7f073e_sas-logo-lightmode.pngreport-styles.css from references as styles.cssreport-template.html from references as the scaffold{{PLACEHOLDER}} values with research findingsUses the same SAS-AM brand system as the presentation skill:
| Element | Light Mode | Dark Mode |
|---|---|---|
| Brand Blue | #002244 | #1a4d7a |
| Brand Green | #69BE28 | #7AD33B |
| Background | #ffffff | #0a0f1a |
| Text Primary | #002244 | #f4fbff |
| Card Background | #ffffff | #141d2b |
Typography: Source Sans Pro (300, 400, 600, 700 weights) from Google Fonts Icons: Font Awesome 6.5.1 from CDN
Philosophy: Default to skepticism. A prospect must earn a high score through concrete evidence, not assumptions or optimism. If you're uncertain, score down. It's better to undersell a qualified opportunity than to overcommit to a dud.
| Score | Criteria | Evidence Required | Red Flags That Drop Score |
|---|---|---|---|
| 5 — Perfect Fit | Has documented evidence of the exact problem you solve; matches ALL ICP criteria with proof | Direct quotes, specific incident reports, job postings explicitly describing the problem, regulatory filings showing the issue | Never assume 5 without multiple independent evidence sources |
| 4 — Strong Fit | Has multiple signals of the problem; matches most ICP criteria | At least 2 independent evidence sources confirming problem domain | Single evidence source = max score 3 |
| 3 — Moderate Fit | Some evidence of potential problem; matches core ICP criteria | At least 1 concrete signal; plausible fit argument | Industry-level assumptions without company-specific evidence |
| 2 — Weak Fit | Industry suggests potential fit but no company-specific evidence of the problem | ICP match on paper only | Assuming need based on what "companies like them" typically have |
| 1 — Poor Fit | No evidence of problem; disqualifying criteria present | N/A — this is the absence of evidence | Evidence of recent competitor purchase; stated no need; misaligned industry |
Default starting point: Score 2 until evidence moves it up. Optimism doesn't earn points.
| Score | Criteria | Evidence Required | Red Flags That Drop Score |
|---|---|---|---|
| 5 — Immediate | Active RFP mentioning your problem domain; documented budget allocation; leadership statement with deadline | Written RFP, board announcement with timeline, regulatory deadline | "They're probably looking" = max score 2 |
| 4 — Near-Term | Recent trigger event specifically related to your problem domain; decision expected within 6 months | Job posting for role that would use your solution; incident report; leadership change with relevant mandate | Trigger event unrelated to your problem domain = score 3 max |
| 3 — Medium-Term | Strategic alignment visible; no confirmed timeline; may be 6–12 months | Strategic plan mentions your problem area; preliminary discussions reported | No timeline visibility = cap at 3 regardless of fit |
| 2 — Long-Term | Potential future need based on industry trends; no company-specific signals | Industry reports suggesting eventual need | Assuming timing based on "everyone will need this eventually" |
| 1 — No Signal | No buying signals detected; no trigger events; no urgency indicators | N/A — this is the absence of evidence | Evidence of recent purchase or "not a priority" statement |
Default starting point: Score 2 until a specific, dated trigger event moves it up.
Before assigning Fit or Timing scores, answer these questions honestly:
| Test | Question | If "No"... |
|---|---|---|
| Specificity | Is this evidence specific to THIS company, or just industry-level assumptions? | Cap score at 2 |
| Recency | Is this evidence from the last 12 months? | Reduce score by 1 |
| Independence | Do you have 2+ independent sources? | Cap Fit at 3 |
| Problem Match | Does the evidence directly match YOUR problem domain, or just adjacent? | Cap Fit at 3 |
| Timeline Clarity | Is there a specific date, deadline, or decision event? | Cap Timing at 3 |
| Access Reality | Can you actually reach a decision-maker, or are you hoping? | Note barrier in assessment |
Default to NURTURE unless evidence compels higher priority. Pursuing a weak opportunity costs more than missing a marginal one.
| Timing 4–5 (Hot) | Timing 3 (Warm) | Timing 1–2 (Cold) | |
|---|---|---|---|
| Fit 5 | HIGH — Pursue immediately; rare — verify twice | MEDIUM — Nurture actively; timing may shift | LOW — Monitor; great fit but no urgency |
| Fit 4 | HIGH — Strong case; validate access | MEDIUM — Worth light pursuit | NURTURE — Build relationship |
| Fit 3 | MEDIUM — Validate problem first | NURTURE — Stay in touch | SKIP — Not worth the effort |
| Fit 1–2 | EXPLORATORY at best — validate fit first | SKIP | SKIP |
| Tier | Evidence Type | Score Multiplier |
|---|---|---|
| Tier 1 (Gold) | Direct quote from prospect; their written RFP; their public filing mentioning the problem | Full score valid |
| Tier 2 (Silver) | News article about them + the problem; job posting; investor report mentioning challenge | Score - 1 max unless corroborated |
| Tier 3 (Bronze) | Industry analyst report; peer company comparison; your assumption based on typical patterns | Cap at 3 regardless of logic |
| Tier 4 (Lead) | "Companies like them usually..." / "They must have..." / "I assume..." | Cap at 2; flag as unverified |
For every Fit and Timing score, document:
Fit Score: X/5
- Evidence: [What specific evidence supports this?]
- Evidence Tier: [Gold/Silver/Bronze/Lead]
- Confidence Killer: [What would disprove this?]
- Honest Doubt: [What aren't you sure about?]
Timing Score: X/5
- Evidence: [What specific trigger/signal supports this?]
- Evidence Tier: [Gold/Silver/Bronze/Lead]
- Timeline Uncertainty: [What could delay or accelerate?]
- Honest Doubt: [What aren't you sure about?]
Overall Assessment: [QUALIFIED/EXPLORATORY/NURTURE/DISQUALIFIED]
Confidence Level: [HIGH/MEDIUM/LOW]
If Wrong: [What's the cost if this assessment is wrong?]
When conducting research, prioritise these source types:
site:linkedin.com/in "[Company]" [title] — find specific people by company and rolesite:linkedin.com/company "[Company]" — company page for employee count, industry, and overviewsite:linkedin.com/in "[Company]" "joined" OR "started" — recent hires signalling investment areassite:linkedin.com/posts "[Company]" [topic] — stakeholder posts revealing priorities and opinionsUse this path when the user provides a specific company name (the most common invocation).
Step 1: Problem-First Discovery
Step 2: Problem Evidence Research
Step 3: Buying Committee Mapping
site:linkedin.com/in "[Company]" [title] queries:
Step 4: BEAM Qualification Assessment
Step 5: Engagement Strategy (If Qualified)
Step 6: Delivery
Use this path when the user asks for broad prospect identification across a market.
Step 1: Full Discovery
Step 2: Research Planning
Step 3: Prospect Identification
Step 4: Deep-Dive Research For each shortlisted prospect:
Step 5: Strategy Development
report-styles.css from references as styles.cssreport-template.html from references and populate all placeholders with research findingsassets/The engagement timeline provides a chronological view of all activities related to a prospect. It complements the kanban board by showing the full history of engagement in an easy-to-scan format.
Generate or update the timeline HTML file:
Store the timeline in the engagement directory:
.beam/
└── engagements/
├── {company}-timeline.html # Visual timeline (HTML)
├── {company}-kanban.html # Kanban board (HTML)
└── {company}.json # Engagement state (JSON)
Each timeline entry MUST include:
| Field | Required | Description |
|---|---|---|
date | Yes | Specific date in DD MMM YYYY format (e.g., "23 Feb 2026") |
type | Yes | One of: outreach, meeting, document, evidence, decision, milestone, blocker |
stage | Yes | BEAM stage number (1-6) |
title | Yes | Specific action title — NOT generic (see specificity guidelines below) |
description | Yes | 1-2 sentences explaining what happened |
details | Recommended | Structured key:value pairs with specifics (channel, recipient, file, etc.) |
outcome | Recommended | success, pending, or blocked with description |
BAD (too generic):
title: "Outreach to James Hicks"
description: "Sent message requesting catch-up"
GOOD (specific and actionable):
title: "LinkedIn message sent to James Hicks"
description: "Sent personalised message referencing AMPEAK2024 conference and Bega consolidation news, requesting coffee catch-up to discuss asset management challenges."
details:
Channel: LinkedIn
Recipient: James Hicks (Group Manager Asset Management)
Message: "Hi James, Hope you're well! I've been following the Bega consolidation news..."
outcome: pending — Awaiting response
Use references/engagement-timeline-template.html as the scaffold. Replace placeholders:
| Placeholder | Value |
|---|---|
{{COMPANY_NAME}} | Prospect company name |
{{CURRENT_STAGE}} | BEAM stage number (1-6) |
{{WIN_PROBABILITY}} | Current win probability percentage |
{{DAYS_ACTIVE}} | Days since engagement started |
{{ACTIVITY_COUNT}} | Total number of timeline entries |
{{GENERATED_DATE}} | Current date |
{{TIMELINE_ENTRIES}} | HTML for each timeline entry (see template comments) |
The kanban board visualises current activities and BEAM gate progress. It should be updated immediately when activities are proposed, started, completed, or blocked.
Update the kanban board when:
| Trigger | Action |
|---|---|
| Research completed | Add card with status "done" |
| Outreach sent | Add card with status "doing", awaiting response |
| Meeting scheduled | Add card with status "todo", include date |
| Meeting held | Move card to "done", add outcome notes |
| Document created | Add card with status "done", reference file |
| Evidence captured | Add card with status "done", link to gate |
| Blocker identified | Add card with status "blocked", describe issue |
| Gate criteria met | Update gate in JSON, add evidence card |
| Stage transition | Move cards to archive, update stage status |
Every kanban card MUST be specific enough that someone reading it understands exactly what happened without needing to investigate further.
BAD EXAMPLES:
| Card | Problem |
|---|---|
| "Research complete" | What research? What was found? |
| "Outreach to James" | What channel? What was said? When? |
| "Meeting scheduled" | With whom? When? What's the agenda? |
| "Document created" | What document? Where is it? |
GOOD EXAMPLES:
| Card | Why It Works |
|---|---|
| "B2B dossier ingested — Fit: 5/5, Timing: 5/5, 21 manufacturing sites identified" | Specific outcome, quantified |
| "LinkedIn message sent to James Hicks 23 Feb — referenced AMPEAK2024, requested coffee" | Channel, date, content summary |
| "Discovery call scheduled: James Hicks, 28 Feb 2pm AEDT, Teams" | All logistics clear |
| "Pilot proposal drafted: bega-pilot-proposal.html — $35K, 5 weeks, 2-3 sites" | File reference, commercial terms |
The notes field on each kanban card should include:
Example:
{
"id": "1-004",
"type": "meeting",
"title": "LinkedIn message sent to James Hicks 23 Feb",
"status": "doing",
"notes": "Sent personalised message via LinkedIn referencing AMPEAK2024 and Bega consolidation. Message: 'Hi James, Hope you're well! I've been following the Bega consolidation news...' Awaiting response. Follow up Day 3 (26 Feb) if no reply. Gate: access_to_authority depends on positive response.",
"gate_ref": "access_to_authority",
"created_at": "2026-02-23"
}
The kanban board and engagement JSON must stay in sync:
When ANY of the following activities occur, you MUST update both the kanban board and timeline:
| Activity | Kanban Update | Timeline Update |
|---|---|---|
| Outreach sent (email, LinkedIn, call) | Add card: type=meeting, status=doing | Add entry: type=outreach |
| Response received | Update card status to done/blocked | Add entry: type=evidence or blocker |
| Meeting scheduled | Add card: type=meeting, status=todo | Add entry: type=meeting (scheduled) |
| Meeting held | Update card status to done | Add entry: type=meeting (held) |
| Document created | Add card: type=document, status=done | Add entry: type=document |
| Evidence captured | Add card: type=evidence, status=done | Add entry: type=evidence |
| Gate criteria met | Update gate in JSON, add evidence card | Add entry: type=milestone |
| Stage transition | Archive previous stage cards | Add stage-transition block |
| Blocker identified | Add card: type=blocker, status=blocked | Add entry: type=blocker |
| Decision made | Add card: type=evidence, status=done | Add entry: type=decision |
activity_log[], update relevant stage, add to timeline.milestones[]At the END of every session, update the session log:
# Session Log — {{COMPANY}} — {{DATE}}
## What We Covered
- [List of activities completed this session]
## Evidence Collected
| ID | Type | Description | Date | Supports |
|----|------|-------------|------|----------|
| ev-XXX | ... | ... | ... | ... |
## Gate Progress
| Gate | Verdict | Evidence |
|------|---------|----------|
| ... | ... | ... |
## Next Steps
1. [Specific next action with date]
2. ...
## Current State
- Stage: X
- Win Probability: X%
- Gates Met: X/X
Long-running engagements span multiple sessions. Use this protocol to manage context windows by saving work to files and resuming cleanly.
┌─────────────────────────────────────────────────────────────┐
│ SESSION START │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Load Context from Files │ │
│ │ • Read {company}.json │ │
│ │ • Read latest session log │ │
│ │ • Review kanban board state │ │
│ └─────────────────────────────────────────────────────┘ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Work in Session │ │
│ │ • Perform activities │ │
│ │ • Capture evidence │ │
│ │ • Update state incrementally │ │
│ └─────────────────────────────────────────────────────┘ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Save Context to Files (CRITICAL) │ │
│ │ • Update {company}.json with all changes │ │
│ │ • Update kanban HTML with new cards │ │
│ │ • Update timeline HTML with new entries │ │
│ │ • Write session log with summary │ │
│ └─────────────────────────────────────────────────────┘ │
│ SESSION END │
└─────────────────────────────────────────────────────────────┘
{research_directory}/
├── .beam/
│ ├── config.json # Seller context (persists across all engagements)
│ ├── engagements/
│ │ ├── {company}.json # MASTER STATE — all engagement data
│ │ ├── {company}-kanban.html # Visual kanban board
│ │ └── {company}-timeline.html # Visual timeline
│ └── sessions/
│ ├── {company}-{date}.md # Session log (one per session)
│ └── ...
├── {company}-dossier.html # Initial research dossier
├── {company}-proposal.html # Proposal document (when created)
└── styles.css # Shared styles
When resuming an engagement, ALWAYS:
{company}.json contains full stateExample prompt to user:
📋 **Resuming Bega Group engagement**
**Last session (23 Feb 2026):**
- LinkedIn message sent to James Hicks
- Pilot proposal drafted ($35K, 5 weeks)
- Conversation prep materials created
**Current state:**
- Stage: 1 — Qualify (1/3 gates passed)
- Win probability: 10%
- Pending: Awaiting James Hicks response
**Next steps from last session:**
1. Wait for James response
2. Follow up Day 3 (26 Feb) if no reply
3. Send value-add content Day 7
**What would you like to do?**
At the END of every session, ALWAYS:
Example:
✅ **Session saved**
Updated files:
- `.beam/engagements/bega-group.json` — engagement state
- `.beam/engagements/bega-group-kanban.html` — 2 cards updated
- `.beam/engagements/bega-group-timeline.html` — 3 entries added
- `.beam/sessions/bega-group-2026-02-26.md` — session log
**Pick up next session by reading the session log.**
Some activities are natural checkpoints where you should save context:
| Activity | Save? | Rationale |
|---|---|---|
| Research dossier complete | Yes | Major deliverable, captures all discovery work |
| Outreach sent | Yes | Activity logged, waiting for external response |
| Meeting completed | Yes | Evidence captured, next steps defined |
| Stage transition | Yes | Major milestone, previous stage archived |
| Document created | Yes | Asset saved to file system |
| Proposal delivered | Yes | Critical commercial milestone |
| User requests pause | Yes | Explicit checkpoint requested |
When loading context, prioritise files in this order:
{company}.json — master state (most authoritative)To resume an engagement with minimal context load, read:
{
"current_stage": 1,
"win_probability": 10,
"last_session": "2026-02-23",
"gates_met": ["problem_domain_identified"],
"gates_pending": ["access_to_authority", "willing_to_diagnose"],
"last_activity": "LinkedIn outreach to James Hicks",
"next_steps": ["Await response", "Follow up Day 3"]
}
This summary can be extracted from the master JSON and presented to the user without loading full context.
Before delivering initial research, verify:
When updating the kanban board, verify:
When generating/updating timeline, verify:
Before ending ANY session, verify:
When resuming an engagement, verify:
npx claudepluginhub sas-asset-management/sasamclaudecodeskills --plugin b2b-research-agentQualify sales deals using MEDDIC, BANT, SPICED, or CHAMP frameworks with structured scoring and gap analysis. Use this skill whenever a rep needs to qualify a deal, assess deal health, decide whether to invest more time in an opportunity, says "should I pursue this deal", "qualify this opportunity", "MEDDIC score", "BANT check", or asks about deal qualification criteria. Also trigger when a manager reviews pipeline quality or when someone mentions deal scoring, opportunity assessment, or go/no-go decisions.
Guides enterprise account planning and execution, including MEDDICC qualification, stakeholder management, mutual action plans (MAPs), and deal health tracking via 'stale MAP equals dead deal' rule. Use for complex sales cycles over 60 days.
Generates a strategic meeting battle plan with coaching frameworks, scripted talk tracks, stakeholder map, and timed game plan rendered as self-contained HTML.