── SKILL
crm-analyst✓ APPROVED

Get a structured account read straight from your CRM.

A sixty-second summary, a multi-source activity audit, a qualification-vs-stage gap check, and an 8-state deal-risk verdict.

Inside: The multi-source activity check, the sandbagging detector, and the risk verdict.

01 / HOW TO USE

Install it in one line, or paste it in.

1
In Claude Code (one command)
Copy the install line, paste it into your terminal, and restart Claude Code. The skill installs itself to ~/.claude/skills/ and runs automatically when it is relevant.
2
In Claude, ChatGPT, or a Project (no terminal)
Open the file, then upload it to your chat or paste its contents in. A skill is just a markdown file of instructions, so any capable AI can follow it.
New to skills? A skill is a plain-text file that teaches your AI a workflow. Point any capable assistant at it and it follows the steps, on your data.
02 / MAKE IT YOURS

Connect your context. Set it to your motion.

CONNECT YOUR CONTEXT · AND WHY IT HELPS
a CRM

it reads all of the above automatically, and audits activity across every source, not one field.

an enrichment tool

adds firmographic and buying-committee context. Deepline is one generic example.

a meeting or email tool

tightens the last-touch and champion-drop checks.

SET IT TO YOUR MOTION

This was built for a B2B SaaS org running a staged pipeline. Set these to your stack:

Run any methodology you like. The skill checks "is this account qualified for the stage it claims," so point it at your qualification fields, not anyone else's.

Set thisWhat it isDefault / Example
STAGE fieldthe opportunity stageyour stage field
AMOUNT fieldcurrent and forecasted valueamountARRcontract value
QUALIFICATION fieldsyour methodology's fieldsMEDDICBANTyour custom framework
ACTIVITY sourcesevery place a "last touch" livesaccountopptaskevent dates
CONTACT ROLEShow you see who is on a dealyour contact-role object
DARK_DAYSno-activity days that mean at risk14 (re-tune to your cycle)
STUCK_DAYSdays in one stage that mean stuck21 (re-tune)
03 / THE FULL SKILL

Everything the skill does, in full.

── WHAT THIS DOES

Reads a single account or deal out of your CRM and gives a straight, structured read: current state, when it was last actually touched, whether the rep did the qualification work the stage claims, and one risk verdict on the deal. It is the sixty-second account summary that tells you what to do next, and the "is the rep BS-ing this deal" check that a single CRM field misses.

── THE METHOD
  1. 1
    Multi-source activity check

    Days dark is today minus the most recent touch across ALL your activity sources: the account record, the opp record, completed tasks, and logged events. Never a single field. This solves the classic CRM bug where the opp-level last-activity date is blank because reps log emails and meetings at the account or contact level, so a live deal gets falsely flagged as dead. The skill takes the max across sources and shows the dates.

  2. 2
    Account summary (one screen)

    Current state, owner, value, days in current stage, last real activity, and the single risk flag. The read a rep or leader needs before walking into a meeting, on one screen.

  3. 3
    Qualification-vs-stage gap

    If a deal claims a late stage but the qualification fields for that stage are empty, flag it and name the exact field that is missing. This is the sandbagging detector. It is only as good as the fields you map.

  4. 4
    Deal-risk verdict

    One verdict per open opp: HEALTHY, MOMENTUM, AT_RISK, SLIP_RISK, STUCK, STALE, CHAMPION_DROP, GHOST. GHOST needs every activity source cold and the dates to prove it. CHAMPION_DROP means the main contact has gone quiet. AT_RISK means single-threaded.

  5. 5
    Account context

    Pull the firmographic and buying-committee context that lives on the record: decision maker, tech stack, hiring or expansion signals. An optional enrichment tool fills what the CRM does not carry.

── QUALITY GATES
  • No GHOST verdict without showing the activity dates, across every source, that prove it.
  • Qualification gaps surface field by field, named, never "incomplete."
  • The activity check reads every source, never one field. A single-field read systematically misses real activity.
  • Never report a field the export does not contain. A missing field is a prompt, not a guess.
── OUTPUT (EXAMPLE)
EXAMPLE OUTPUT
ACME CORP · Customer · CSM: owner

Verdict: REACH_OUT (renewal-defence read)
  Last activity: TODAY (account level) - 6 email replies + meeting in 1h
  Days in current stage: 12d (late stage)
  Qualification: 4/4 complete - problems, leverage, decision dynamics, next steps
  Fit-score check: score looks low, but real usage present -> false negative

The qualification read
  PROBLEMS: inbox plateau, no signal on adoption depth
  LEVERAGE: multi-team rollout across Sales, RevOps, CS
  DECISION DYNAMICS: CFO signs, RevOps lead champions
  NEXT STEPS: finalize commercial terms by the 15th

Tech stack: email, CRM, an outbound tool
Decision maker: the CFO
Signal: hiring 14 reps at this account - expansion

Next move: the meeting today. Late stage means commercial close is the gate.
── WHERE THE NUMBERS COME FROM

DARK_DAYS (14) and STUCK_DAYS (21) are defaults, not laws. They suited a mid-market SaaS cycle. If your deals run longer, raise them. The multi-source activity rule is not a threshold, it is the correct way to read a CRM, and it does not change. The thresholds are yours.

── EXAMPLE CHAT
EXAMPLE CHAT
You
Give me the read on Acme Corp before my call in an hour.
CLAUDE
Read's done, and the fit score on this account is wrong. Verdict: REACH_OUT (renewal-defence read) Last activity: TODAY (account level), 6 email replies + meeting in 1h Fit-score check: score looks low, but real usage present -> false negative The fit score was pulling from a single stale field, but checking activity across every source, account, opp, tasks, and events, shows this account is very much alive. That's the classic bug where an opp-level date sits blank because reps log the real activity elsewhere, so a live deal gets falsely flagged as dead. One sharpener: connect a meeting tool so the last-touch and champion checks tighten beyond what's logged in the CRM.
You
Check qualification against the stage it claims.
CLAUDE
Ran it. 4 of 4 fields complete, this one's not being sandbagged. PROBLEMS: inbox plateau, no signal on adoption depth LEVERAGE: multi-team rollout across Sales, RevOps, CS DECISION DYNAMICS: CFO signs, RevOps lead champions NEXT STEPS: finalize commercial terms by the 15th Late stage and full qualification agree here, which is the opposite of what usually triggers a flag. The gap check exists to catch the deal that claims Stage 4 with an empty decision-dynamics field, this one earns its stage. One sharpener: connect an enrichment tool so the tech-stack and hiring-signal context refreshes automatically instead of going stale between calls.
04 / GO FURTHER

Where an operator takes this next.

The read is step one. Here's where an operator takes it once the manual version proves out.

You built the read once; now it runs itself.

01
Run the read on the whole pipeline, not one account

Point a scheduled Claude task at Salesforce nightly and flag every deal that just moved from HEALTHY to AT_RISK or STUCK.

02
Kill sandbagging before the forecast call

Post any qualification-vs-stage gap straight to the manager's Slack the moment a rep advances a stage without the fields to back it.

03
Feed the false-negative catch upstream

Wire the fit-score correction back into your scoring model's exception list so the same account doesn't get mis-scored again next cycle.

05 / PART OF A BIGGER PLAY

One skill is the on-ramp.

── GET NEW SKILLS IN YOUR INBOX

One operator-built skill a week. Free.