A Claude Skill that takes two HubSpot pipeline snapshots — this Monday’s and last Monday’s — slices them by segment, and writes the one-page brief the sales VP reads before the Monday pipeline review. Every metric carries a movement-direction word. Every claim is flat — there is a hedge-removal pass. The output sits at the top of #pipeline-review at six on Monday morning and the leadership thread is already arguing about the right thing by the time the call starts.
When to use
You are a RevOps lead or sales operations manager and your sales VP runs a Monday pipeline review. You have a HubSpot pipeline that you can extract via the deals API. You want the standing brief at the top of the thread on Monday morning to be written, not skipped, and you do not want to write it yourself every week.
The skill assumes the team is segment-aware — Enterprise / Mid-Market / SMB, or some equivalent slice — and that the VP wants to see segment-level deltas, not just one aggregate pipeline number. It assumes you have a snapshot of last week’s pipeline saved somewhere accessible. The first run produces a baseline brief; the second run onward produces a real WoW story.
The bundle is at apps/web/public/artifacts/weekly-pipeline-report-skill/. The skill body is SKILL.md; the templates the skill reads on every run are references/1-report-format-template.md, references/2-segment-mapping.md, and references/3-hedge-words-blocklist.md.
When NOT to use
Do not use this skill for board materials. The brief is operational — it uses last-week deltas and one-week-stale assumptions about what is real in the pipe. Board reporting needs reconciled, audited numbers from the finance system, not from a Monday morning Markdown file.
Do not use it for customer-facing reports. The brief names deals, owners, and risks in language that reads fine in an internal Slack channel and is unsafe to share externally. There is no anonymization pass; building one is out of scope.
Do not let anyone cite the headline number as the actual forecast. The brief summarizes pipeline composition and movement; it is not a forecast model. The forecast comes from the Friday forecast call, owned by the sales VP and the RevOps lead. The brief footer carries this disclaimer on every run — the disclaimer is in references/1-report-format-template.md and removing it defeats the guard.
If your team does not segment its pipeline, do not start by adopting this skill — start by writing references/2-segment-mapping.md for the team. The brief works without segments only as an aggregate-only baseline run, which is less useful than the same data in HubSpot’s own dashboard.
Setup
- Drop the bundle into your Skills folder. Copy
apps/web/public/artifacts/weekly-pipeline-report-skill/into your Claude project under.claude/skills/weekly-pipeline-report/. Claude Code (or Claude.ai with a project-mounted MCP) discovers it on next launch. - Replace the three reference files.
references/1-report-format-template.mdis the literal layout the brief follows — edit it to change the report shape, do not editSKILL.md.references/2-segment-mapping.mddeclares your segment rules; the placeholders ship as Enterprise/Mid-Market/SMB and you almost certainly want to change them.references/3-hedge-words-blocklist.mdis a starting list; extend it whenever a hedge lands in production. - Configure the snapshot extractor. The skill consumes two snapshot files; it does not call the HubSpot API itself. Stand up a small extractor (cron job, n8n flow, scheduled GitHub Action) that hits
/crm/v3/objects/dealswith the columns the skill expects (deal_id,deal_name,owner_id,stage,amount,close_date,last_modified, plus whatever your segment rules reference) and writes one CSV or JSON file per Monday into a known directory. The extractor is the part of this stack that is HubSpot-specific. - Run the skill on Monday at 06:00. Invoke with two paths (
pipeline_snapshot,previous_snapshot) and the segments file. Pipe the output to#pipeline-reviewor to the leadership distribution list. The first run setscomparison_mode = noneand emits a baseline brief instead of fabricating zero-deltas. - Run the hedge-removal pass review weekly. Read the brief that landed. If a hedge slipped through (“appears to suggest”, “looks like it might”), add it to
references/3-hedge-words-blocklist.mdso the next week’s pass catches it. The blocklist is meant to evolve.
What the skill actually does
The method is in SKILL.md step-by-step. The engineering choices worth knowing about before you adopt it:
Segment-aware, not aggregate. A flat “pipeline up 4 percent” hides the case where Enterprise is down 12 and SMB is up 30 — opposite stories that demand opposite responses. The brief slices every metric by segment and rolls up to a headline only after. If a deal cannot be assigned to a segment it goes into a visible unsegmented bucket; never silently dropped.
Movement-direction stamped on every metric. Not just the headline. The VP scans the page in one pass — if only the top number carries a direction word, the rest reads as data and the eye skips it. Every cell in the segment table, every bullet in the headline list, is up +Z% or down -Z% or flat.
Top deals moving the number, not top deals by size. This section is about motion since last Monday — stage transitions, new adds, scope changes, slipped close dates. A static $500k deal that did nothing this week is not in the section. The deals that move the number this week are the ones the VP needs to ask about.
Top risks are the quietly-slipping deals. The loud risks (CFO email, “we lost”) get escalated through other channels. The brief surfaces deals that look fine in the board view but have been pushed twice, regressed a stage, had their amount cut by more than 25 percent, or sat dormant for 14+ days while still flagged as closing this quarter.
One pattern, one ask. The brief names a single biggest pattern and a single ask. Not five patterns and a five-bullet recommendations list. The brief is read in three minutes; one ask is a point of view, five is a list, and the difference is whether the VP walks into the room with a stance or with a survey.
Hedge-removal pass at the end. The model drafts the brief, then re-reads it against references/3-hedge-words-blocklist.md and rewrites any sentence that contains a blocked term. Hedging drifts in because the model is being polite about uncertain data; the brief is more useful when it states the observed pattern flatly and the reader pushes back than when every claim is pre-hedged. The pass is mechanical and it refuses to ship a brief that violates the blocklist.
Cost reality
Token cost per weekly brief is small. A 1,000-deal pipeline serializes to roughly 80-120k input tokens once both snapshots and the references are loaded. Output is around 600-900 tokens — the brief is one page on purpose. At Claude Sonnet pricing, the per-run cost lands in the single-digit-cents range. At Opus pricing, low double digits. Across a year of Mondays, this is a rounding error against the cost of any other pipeline-tooling line item.
Time saved per RevOps lead is the larger number. The Monday brief is typically 30-60 minutes of manual work — pulling the report, eyeballing the deltas, writing the narrative, posting it to Slack. Skill-authored, the cycle drops to under 5 minutes (read the draft, accept or rewrite the pattern paragraph, post). Across 50 Mondays a year that is roughly 25 hours back, which is real time even if the dollar value is hard to pin.
The hidden cost is the snapshot extractor. Standing up the cron job that writes two consistent CSVs is roughly half a day of one-time work. If your team does not already have an extract pipeline, count that work before claiming the skill is “free to adopt”.
Success metric
The metric that matters is whether the Monday brief gets read and referenced in the pipeline review. Two leading indicators that work in practice:
- Did the VP cite the brief’s pattern paragraph in the meeting? Track this qualitatively for the first six weeks. If the VP is naming the pattern back during the review, the brief is doing its job. If the VP is reading from HubSpot dashboards and ignoring the Slack thread, the brief is not landing and the pattern paragraph needs work.
- Time-to-first-question in the pipeline review. Before the skill, leaders spent the first 10 minutes orienting on what changed. After, they should walk in already arguing about the pattern the brief named. If orientation time has not dropped, either the brief is not being read or the pattern is not naming the right thing.
The lagging metric — pipeline accuracy or forecast accuracy — does not move because of this skill. The brief does not change what is in the pipe; it changes what the team talks about on Monday morning.
vs alternatives
HubSpot’s built-in dashboards. The HubSpot Sales Hub has a deals dashboard that shows pipeline by stage and owner, with WoW deltas if you build the report carefully. It does not produce a narrative — there is no top-3-moving, no top-3-risk, no pattern paragraph, no recommended ask. A team can run on dashboards alone and many do. The brief earns its keep when leadership wants the narrative pre-written rather than constructed live in the meeting.
Clari weekly briefings. Clari (or Gong Forecast, or BoostUp) ships a forecast tool with weekly summary capabilities. The briefings are credible and the underlying data layer is more reliable than a hand-rolled extractor. The trade-off: Clari’s seat license is in the four-figures-per-rep-per-year range, the briefings follow Clari’s opinionated shape rather than your VP’s, and you do not control the wording. The skill is the right answer when budget rules out a Clari and your team already has HubSpot.
Manual RevOps-written summary. The status quo for most teams. Quality is high when the RevOps lead has time to write it, low when they do not. The brief is consistent week to week — same shape, same metrics, same pattern-and-ask structure — which makes it easier for the VP to read. A senior RevOps lead can out-write the skill on any given Monday; the skill wins on consistency and on giving that lead 25 hours back per year for higher-leverage work.
Watch-outs
- Confident-but-stale data. The HubSpot snapshot is only as fresh as the extractor’s last run. If
last_modifiedon the snapshot file is more than 24 hours old, the brief prepends a one-line warning (“Snapshot is N hours stale — figures may not reflect Friday’s late-week activity”). Guard: the freshness check runs before any computation; the skill refuses to ship the brief without it. - Hedging language drifting in despite removal. The hedge-removal pass uses a fixed blocklist; new hedge phrasings the model invents will slip through. Guard: the blocklist at
references/3-hedge-words-blocklist.mdis meant to be extended weekly. The first month of running the skill will surface 5-10 new hedge phrasings; add them as you see them. - Downstream readers citing this as the forecast. The brief headlines an open-pipeline number, which a casual reader will round to “the forecast.” Guard: the brief footer always reads “Operational summary, not a forecast. Forecast is owned by <VP name> and produced in the Friday call.” The line is in
references/1-report-format-template.mdand removing it defeats the guard. Do not remove it. - Owner reassignments break WoW math. If a deal changed owner mid-week, both the old and new owners’ deltas fire — double-counting motion. Guard: the skill emits a “deals reassigned this week: N” footnote and excludes reassigned deals from the top-deals-moving section, so the move is not attributed to either owner. Pick a side (follow-the-deal or follow-the-owner) and document it in your team’s playbook.
- Custom HubSpot stages not in the segment file. If your team renamed default stages, the segment-mapping rules that reference stage names break silently. Guard: the snapshot validator confirms every distinct
stagevalue in the snapshot is referenced by at least one segment rule, and surfaces unmatched stages in the report footer. If a new stage shows up there, updatereferences/2-segment-mapping.md.
Stack
- HubSpot — pipeline source of truth and snapshot extractor input
- Claude Skill — drafts the brief from the two snapshots and the references
- Snapshot extractor (cron / n8n / GitHub Action) — writes the weekly CSV the skill consumes; the part of the stack that is HubSpot-specific
- Slack — distribution channel for the rendered brief