Agent skill
portfolio-deal-linker
Auto-update GTME portfolio when HubSpot deals close. Links deal outcomes (won/lost, revenue, cycle time) to the skills, automations, and outreach that influenced them — building VP BD transition evidence automatically. Runs daily at 7am CST or on-demand. Use when: 'portfolio update', 'deal closed', 'link deal to portfolio', 'gtme evidence', 'what did I influence', 'career evidence', 'transition tracker'.
Install this agent skill to your Project
npx add-skill https://github.com/ScientiaCapital/skills/tree/main/active/portfolio-deal-linker-skill
SKILL.md
<quick_start> Daily automated run (7am CST): Checks for deals closed since last run → attributes to skills/actions → updates portfolio
On-demand: "portfolio update" → runs full attribution scan now "what did I influence this month" → generates monthly impact report "gtme evidence" → formats portfolio for interview/review context
Trigger phrases:
- "portfolio update" / "deal closed"
- "link deal to portfolio" / "gtme evidence"
- "what did I influence" / "career evidence"
- "transition tracker" / "show my impact" </quick_start>
<success_criteria>
- Every closed-won deal attributed to originating skill/workflow within 24 hours
- Revenue influenced tracked with clear attribution chain
- Time-saved metrics aggregated weekly (skills that eliminated manual work)
- Portfolio evidence formatted for VP BD transition narrative
- Monthly executive summary auto-generated
- Zero missed attributions on deals Tim touched </success_criteria>
Architecture
SCHEDULED (7am CST) ATTRIBUTION PORTFOLIO UPDATE
──────────────────────────────────────────────────────────────────────────────
HubSpot: recently closed → Match deal to skill that → Update portfolio.jsonl
deals (won + lost) → originated/influenced it → Update weekly digest
→ Calculate metrics → Update GTME narrative
→ Compare to manual baseline → Career evidence file
Stage 1: Detect Newly Closed Deals
Use hubspot_search_deals with filters:
dealstageIN ('closedwon', 'closedlost')closedate>= last run timestamp (stored in~/.claude/portfolio/last-run.json)- Exclude channel deals (
is_channel = true) and owned by AE IDs '82625923', '423155215', '190030668' (Lex Evans, Ron Epstein, Phillip Sandler)
For each deal, pull:
| Field | Purpose |
|---|---|
dealname |
Identification |
amount |
Revenue attribution |
closedate |
Cycle time calculation |
createdate |
Pipeline velocity |
dealstage |
Won vs lost |
hubspot_owner_id |
Tim's deals only |
| Associated contacts | Who was engaged |
| Associated company | Company match |
| Deal notes/activity | Attribution signals |
Stage 2: Skill Attribution Engine
For each closed deal, determine which skills/automations contributed:
Attribution Signals
| Signal | Skill Attributed | How to Detect |
|---|---|---|
| Contact was loaded via Apollo sequence | prospect-research-to-cadence | Apollo emailer_campaigns_search — check if contact was in a sequence |
| MEDDIC call prep was generated | meddic-call-prep-auto | Check if company appears in call prep logs |
| Deal was flagged by momentum analyzer | deal-momentum-analyzer | Check if deal appeared in RED/YELLOW actions |
| Contact enriched via Apollo | prospect-research-to-cadence | Apollo contact create date vs deal create date |
| Outreach email was drafted | prospect-research-to-cadence | Gmail draft history for contact email |
| Activity history exists | meddic-call-prep-auto | ask_agent — query activity timeline for company |
| Manual prospecting (no automation match) | Tim (manual) | Fallback — still counts for portfolio |
Attribution Model
PRIMARY attribution (100% credit):
→ Skill that ORIGINATED the deal (first touch)
ASSIST attribution (shared credit):
→ Skills that INFLUENCED the deal (middle touches)
→ E.g., prospect-research found the contact, meddic-call-prep prepped the demo,
deal-momentum flagged it when stalling
RECOVERY attribution:
→ If deal-momentum-analyzer flagged deal as RED/YELLOW
AND deal subsequently closed-won
→ This is "recovered revenue" — strongest GTME evidence
Stage 3: Calculate Portfolio Metrics
Per-Deal Metrics
| Metric | Formula | Why It Matters |
|---|---|---|
| Cycle time | closedate - createdate |
Pipeline velocity |
| Revenue | amount |
Direct impact |
| Cost to close | Estimated from skill usage costs | Efficiency |
| Automation touches | Count of skill attributions | Leverage |
| Manual vs automated | % of deal lifecycle automated | Transition evidence |
Aggregate Metrics (Rolling 30 days)
| Metric | Formula | Target |
|---|---|---|
| Total revenue influenced | Sum of attributed closed-won deals | Track monthly |
| Deals recovered | Deals flagged RED/YELLOW → closed-won | 5-10% of pipeline |
| Time saved (hours/month) | Sum of skill time-saved estimates × usage count | 30+ hrs/mo |
| Cost per deal | Total automation cost / deals closed | < $5/deal |
| Automation coverage | Deals with ≥1 skill touch / total deals | > 80% |
| Win rate lift | Automated deal win rate vs manual baseline | Track delta |
GTME Positioning Metrics
| Metric | Narrative | VP BD Relevance |
|---|---|---|
| Revenue influenced/month | "I influenced $X in pipeline through automated workflows" | Revenue ownership |
| Hours saved/month | "Built systems that save 30+ hours/month of manual work" | Operational leverage |
| Cost per lead | "Reduced cost-per-qualified-lead from $X to $Y" | Unit economics |
| Recovery rate | "Recovered $18K/month in stalled pipeline through automated detection" | Pipeline management |
| Automation coverage | "80%+ of deals now touch at least one automated workflow" | Systems thinking |
Stage 4: Update Portfolio Files
4a. Append to portfolio.jsonl
{
"date": "2026-03-15",
"deal_id": "hs_12345",
"deal_name": "Baylor University",
"amount": 45000,
"outcome": "closedwon",
"cycle_days": 32,
"primary_skill": "prospect-research-to-cadence",
"assist_skills": ["meddic-call-prep-auto", "deal-momentum-analyzer"],
"recovered": true,
"recovery_skill": "deal-momentum-analyzer",
"automation_touches": 5,
"manual_touches": 3,
"automation_pct": 0.625
}
4b. Update Weekly Digest
Append deal to the existing portfolio-artifact weekly digest with attribution details.
4c. Generate Monthly GTME Evidence Report
╔══════════════════════════════════════════════════════════════╗
║ GTME PORTFOLIO — [Month Year] ║
║ Tim Kipper | BDR → VP Business Development ║
╠══════════════════════════════════════════════════════════════╣
HEADLINE METRICS:
┌─────────────────────────────────────────────────────────────┐
│ Revenue Influenced: $[XXX,XXX] (XX deals) │
│ Pipeline Recovered: $[XX,XXX] (X deals saved from stall) │
│ Time Saved: [XX] hours ([X] min/day × [XX] days) │
│ Automation Coverage: [XX]% (deals with skill touch) │
│ Cost per Deal: $[X.XX] (automation cost / deals) │
└─────────────────────────────────────────────────────────────┘
SKILL ATTRIBUTION BREAKDOWN:
| Skill | Deals Influenced | Revenue | Time Saved |
|-------|-----------------|---------|------------|
| prospect-research-to-cadence | XX | $XX,XXX | XX hrs |
| meddic-call-prep-auto | XX | $XX,XXX | XX hrs |
| deal-momentum-analyzer | XX (recovered) | $XX,XXX | XX hrs |
TOP DEALS (with attribution chain):
1. [Deal] — $XX,XXX | Won
Chain: Apollo enrich → sequence load → call prep → demo → close
Skills: PRC → MCA → DMA
VP BD TRANSITION NARRATIVE:
"In [Month], I influenced $[X] in revenue through automated GTM systems
I designed and built. These systems saved [X] hours of manual work,
recovered $[X] in stalled pipeline, and achieved [X]% automation
coverage across the deal lifecycle. This demonstrates [operational
leverage / systems thinking / revenue ownership] at VP BD scale."
╚══════════════════════════════════════════════════════════════╝
Stage 4: Comp Plan Attainment Tracker
Calculate daily progress against Tim's 2026 BDR comp plan targets.
March 2026 Targets (Ramp 50%)
| Metric | Monthly Target | Stretch (126%+) | Daily Run Rate |
|---|---|---|---|
| Deals created | 12 | 16+ | 0.6/day |
| Pipeline generated | $357,000 | $450,000+ | $17,850/day |
| Revenue (closed-won) | $125,000 | $157,000+ | $6,250/day |
Calculation Logic
- Query HubSpot for deals created this month where Tim is owner (87486452) or collaborator
- Sum
amountfor pipeline generated - Sum
amountwheredealstage= 'closedwon' for revenue - Calculate:
- Pipeline attainment % = total pipeline / monthly target × 100
- Revenue attainment % = total closed-won / monthly target × 100
- Deal count attainment % = deals created / monthly target × 100
- Accelerator zone: <100% = base, 100-110% = 1.0x, 111-125% = 1.25x, 126%+ = 1.5x
- Days remaining = business days left in month
- Required daily run rate = (target - achieved) / days remaining
Output Format (append to daily portfolio report)
📊 COMP PLAN TRACKER — March 2026 (Ramp 50%)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Pipeline: $XXX,XXX / $357,000 (XX% — Zone: BASE/1.0x/1.25x/1.5x)
Revenue: $XX,XXX / $125,000 (XX% — Zone: BASE/1.0x/1.25x/1.5x)
Deals: X / 12 (XX%)
Days left: X business days
Gap to stretch: $XXX,XXX pipeline | $XX,XXX revenue | X deals
Daily run rate needed: $X,XXX pipeline | $X,XXX revenue
Monthly Target Lookup (for future months)
| Month | Deals | Pipeline | Revenue | Phase |
|---|---|---|---|---|
| March | 12 | $357K | $125K | Ramp 50% |
| April | 16 | $464K | $163K | Ramp 65% |
| May | 20 | $607K | $212K | Ramp 85% |
| June | 24 | $714K | $250K | Full (H1) |
| July+ | 24 | $714K | $475-600K | Full (H2) |
Dynamically select targets based on current month.
<scheduled_automation>
Daily 7am CST Run
Schedule: Daily at 7:00 AM CST (13:00 UTC), weekdays Task name: "portfolio-deal-linker-daily" Flow:
- Check HubSpot for deals closed since last run
- Attribute each deal to originating skills
- Calculate per-deal and aggregate metrics
- Append to portfolio.jsonl
- Update weekly digest if new closed-wons
- Generate monthly report if month-end
Integration with EOD: When Tim says "EOD", include portfolio attribution summary for any deals closed today. </scheduled_automation>
Sibling Skills Referenced
portfolio-artifact-skill— Base metrics capture, weekly digest format, executive summary templatedeal-momentum-analyzer-skill— Recovery attribution (deals flagged RED/YELLOW that closed-won)prospect-research-to-cadence-skill— Origination attribution (Apollo sequence enrollment)meddic-call-prep-auto-skill— Influence attribution (call prep generated for deal)hubspot-revops-skill— HubSpot query patterns, deal stage definitions
Emit Outcome Sidecar
As the final step, write to ~/.claude/skill-analytics/last-outcome-portfolio-deal-linker.json:
{"ts":"[UTC ISO8601]","skill":"portfolio-deal-linker","version":"1.0.0","variant":"default",
"status":"[success|partial|error]","runtime_ms":[estimated ms from start],
"metrics":{"deals_linked":[n],"skills_attributed":[n],"revenue_tracked_usd":[n]},
"error":null,"session_id":"[YYYY-MM-DD]"}
Use status "partial" if some stages failed but results were produced. Use "error" only if no output was generated.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
project-context
Maintains project context and progress tracking across Claude sessions. Use at session start to load context, on session end to save progress. Triggers: load project context, save context, end session, what was I working on, switch to project, done for today.
workflow-enforcer-skill
Enforces workflow discipline across ALL projects. Ensures Claude checks for specialized agents before responding, announces skill/agent usage, and creates TodoWrite todos for multi-step tasks. Triggers: automatic on all sessions, use the right agent, follow workflow.
gtm-pricing
B2B go-to-market strategy, pricing models, ICP development, positioning, and competitive intelligence. Use when planning GTM strategy, setting pricing, defining ICP, or evaluating opportunities.
subagent-teams
Orchestrate in-session Task tool teams for parallel work. Fan-out research, implementation, review, and documentation across subagents. Use when: parallel tasks, fan-out, subagent team, Task tool, in-session agents.
planning-prompts
Comprehensive skill for project planning and prompt engineering. Covers hierarchical plans (briefs, roadmaps, phases), Claude-to-Claude meta-prompts, and multi-stage workflows. Use when: planning, prompt creation, agentic pipeline work, project roadmap, meta-prompts, research to implement workflow.
linkedin-sales-navigator-alt-skill
Build targeted prospect lists by analyzing LinkedIn profiles, extracting job titles, companies, locations, and recent activity. Identifies decision-makers, tracks job changes for warm outreach, and enriches contact data. Use when users need to find prospects, build lead lists, or track decision-maker movements.
Didn't find tool you were looking for?