gtm-engineer-playbook: Skill for Claude Code

.claude/skills/gtm-playbook/crm-hygiene-scanner/SKILL.md

crm-hygiene-scanner is a skill for Claude Code from Othmane-Khadri/gtm-engineer-playbook. It costs 66 tokens per session (4,362 once invoked), scanned A, original, MIT.

A read-only checker for the quality of exported CRM data, where a CRM is software that stores customer and sales records.

In plain words
What is it for?
Use it to audit contacts, companies, or deals from a CRM export, calculate a quality score, and create a prioritized cleanup report.
Why use it?
It finds duplicate records, outdated leads, missing information, and pipeline data issues without changing the original CSV file.

Skill for Claude Code

Written for Claude Code: installed under .claude/.

This is Othmane-Khadri/gtm-engineer-playbook's own configuration. It tells Claude Code how to work on gtm-engineer-playbook itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything gtm-engineer-playbook configures →

Reuse

Borrowing it

Nothing to install: this file belongs to Othmane-Khadri/gtm-engineer-playbook. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/Othmane-Khadri/gtm-engineer-playbook/main/.claude/skills/gtm-playbook/crm-hygiene-scanner/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/Othmane-Khadri/gtm-engineer-playbook

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for crm-hygiene-scanner

README.md
[![agentmods](https://agentmods.dev/badge/skills/othmane-khadri/gtm-engineer-playbook/crm-hygiene-scanner/github.svg)](https://agentmods.dev/skills/othmane-khadri/gtm-engineer-playbook/crm-hygiene-scanner)
Your own site
<a href="https://agentmods.dev/skills/othmane-khadri/gtm-engineer-playbook/crm-hygiene-scanner"><img src="https://agentmods.dev/badge/skills/othmane-khadri/gtm-engineer-playbook/crm-hygiene-scanner/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for crm-hygiene-scanner

Your own site · 80×15
<a href="https://agentmods.dev/skills/othmane-khadri/gtm-engineer-playbook/crm-hygiene-scanner"><img src="https://agentmods.dev/badge/skills/othmane-khadri/gtm-engineer-playbook/crm-hygiene-scanner.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 66 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 4,362 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00066 $0.04362
Opus 5 $0.00033 $0.02181
Sonnet 5 $0.00013 $0.00872
Haiku 4.5 $0.00007 $0.00436

Measured 12d ago against content hash 418c5154c7e2, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

crm-hygiene-scanner scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/gtm-playbook/crm-hygiene-scanner/SKILL.md · 433 lines

How it starts

The opening of the file, as written. The whole thing — 433 lines — stays where its author put it; the contents beside it link to each section on GitHub.

CRM Hygiene Scanner

Scan a CSV export of CRM data (contacts, companies, or deals), detect duplicates, flag stale records, measure data completeness, calculate an overall quality score, and produce a prioritized cleanup plan. This is a read-only audit — the original file is never modified.

Tools Used

  • Read — load the CSV file and any existing hygiene reports
  • Write — save the hygiene report to docs/crm-hygiene-report.md
  • Bash — run Python one-liners for CSV parsing, fuzzy matching, and statistical analysis
  • Glob — check for existing reports before overwriting

Methodology

Follow these steps in order. Do not skip steps. Do not fabricate data.

Step 1: Input

Ask the user for four pieces of information before proceeding:

To run the CRM hygiene scan, I need:

  1. CRM export file path — path to the CSV file on disk
  2. Data type — is this contacts, companies, or deals/opportunities?
  3. CRM system — which CRM did this come from? (HubSpot, Salesforce, Pipedrive, or other)
  4. Critical fields — which fields matter most for your business? (e.g., email, phone, company name, deal stage, last activity date, owner)

Wait for all four answers. Do not assume defaults.

Once the user responds, validate the CSV path exists using Read. If the file is not found, tell the user and ask for the correct path.

Step 2: Data Profiling

Read the CSV and build a profile of the dataset. Use Bash with Python one-liners for parsing.

Produce these metrics:

Metric How to Calculate
Total records Row count (excluding header)
Column inventory List every column name
Data types Infer type per column: text, email, phone, date, number, boolean, URL
Fill rate per column (non-empty cells / total rows) * 100 — report as percentage
Date range Oldest and newest value across all date columns
Unique vs. total values For each key field (email, company name, phone), count unique values vs. total rows
Row completeness Average number of filled columns per row, as a percentage of total columns

Read the full file on GitHub · 433 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 12d ago First seen · 433 lines · 66 tokens per session scan A 418c5154c7e2

Subscribe to this mod's changes

crm-hygiene-scanner is a skill published in the GitHub repository Othmane-Khadri/gtm-engineer-playbook (56 stars, last pushed 5mo ago), licensed MIT. It adds 66 tokens to every session and 4,362 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

go-to-market-playbook

A reusable Go-to-Market strategy template for both B2B and B2C launches. Covers positioning, messaging, ICP definition, channel selection, and competitive analysis frameworks. By @WeiYipei.

Gingiris-1031/gingiris-skills · 48 tokens

adoption-leaderboard

Scores a rep's or a team's recent sales calls against a fixed set of five winning-behavior checklists (rapport, upsell signals, renewal risk, customer experience, value realization), then ranks reps lowest-adoption-first so the highest-leverage coaching targets lead. Use when running a team calibration, prepping 1:1…

zime-ai/zime-gtm-skills · 96 tokens

challenger

Audits a B2B sales call transcript against the Challenger Sale framework (teach, tailor, take control, plus the commercial-teaching pitch arc), or sweeps a CRM export for deals with no teaching insight logged. Use when a rep leans on discovery-question skill but rarely brings a point of view, when prepping a rep for a…

zime-ai/zime-gtm-skills · 104 tokens

champion-tracker

Tracks champion strength across a deal's call(s) — builds an action ledger, one row per named contact per cited quote, tagging each as either an act of internal selling (looping in a stakeholder, pushing back for the rep in a room the rep wasn't in) or mere positive sentiment (encouraging words, no action), then reads…

zime-ai/zime-gtm-skills · 112 tokens

executive-briefing

Writes the short brief a rep sends upward out of one deal — to their own exec or the buyer's exec sponsor — covering deal snapshot, status, what's at risk, and the ask, each claim cited to a quote or a CSV column/cell. Use when someone who will never read the transcript needs to act on one deal, not a call-by-call…

zime-ai/zime-gtm-skills · 86 tokens

faint

Audits a B2B sales call transcript against the FAINT qualification framework (Funds, Authority, Interest, Need, Timing), or sweeps a CRM export for deals missing FAINT fields. Use when a prospect hasn't articulated a clear need yet but shows financial capacity and curiosity, or when deciding whether a demand-driven…

zime-ai/zime-gtm-skills · 78 tokens