# List Quality Scorecard

> Pre-send quality scorecard for any lead list. Grades duplicate rate, title diversity, bad-title patterns, catch-all domain density, ICP fit, email verification coverage. Outputs a letter grade + action items BEFORE you send. Catches bad lists before they burn inboxes. Run after email enrichment, before Smartlead upload.

- **Type:** Skill
- **Install:** `agentstack add skill-growthenginenowoslawski-coldoutboundskills-list-quality-scorecard`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [growthenginenowoslawski](https://agentstack.voostack.com/s/growthenginenowoslawski)
- **Installs:** 0
- **Category:** [Communication](https://agentstack.voostack.com/c/communication)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [growthenginenowoslawski](https://github.com/growthenginenowoslawski)
- **Source:** https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/list-quality-scorecard

## Install

```sh
agentstack add skill-growthenginenowoslawski-coldoutboundskills-list-quality-scorecard
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# List Quality Scorecard

A CSV of 5,000 leads is not the same as a good list of 5,000 leads. This skill grades your list across 8 dimensions BEFORE you send, catching preventable waste.

## Why this exists

The three campaign failure modes cold email runners hit most:

1. **Bad list** — the copy doesn't matter when you're emailing the wrong people
2. **Unverified emails** — bounces burn domain reputation
3. **ICP drift** — you think you're targeting VPs, but the list is mostly Managers

Each of these is catchable before you send, in 5 minutes, for free.

## Inputs

A CSV with at minimum these columns:
- `email` — the primary email
- `first_name`, `last_name`
- `job_title` OR `title`
- `company_name` OR `company`
- `company_domain` (optional, derived from email if missing)
- `company_industry` (optional, used for ICP fit scoring)
- `company_headcount` (optional, used for ICP fit scoring)

## Output

A markdown scorecard with:
- **Letter grade** (A+ to F)
- **8 dimension scores** (each 0-100)
- **Top 5 issues to fix**
- **Pre-send checklist**

## Usage

```bash
npx tsx scripts/score-list.ts --list=leads.csv --icp-file=client-profile.yaml --out=scorecard.md
```

Optional `--icp-file` lets the scorecard compare your list against your declared ICP filters (from `/icp-onboarding`).

## The 8 dimensions

### 1. Email verification coverage (critical)

- **What:** % of emails validated via MillionVerifier or equivalent
- **Rule:** 100% of a cold list must be verified before sending. Unverified emails = bounces = dead domains.
- **Score:** 100 if all verified, 0 if 5% is a problem
- **Score:** 100 at 0%, drops linearly

### 3. Duplicate domain rate

- **What:** max # of leads from any single domain
- **Rule:** 1-2 leads per domain ideal. 5+ suggests you're over-indexing on one company.
- **Score:** 100 if avg 5

### 4. Title relevance

- **What:** % of titles matching your ICP's job title list
- **Rule:** Exact-match + synonym list. If 40% of your "VP Sales" list is actually "Sales Manager", you have drift.
- **Score:** 100 if ≥80% match, 50 if 40-80%, 0 if 10% means your Prospeo filter is too loose
- **Score:** 100 if 15%

### 7. ICP fit

- **What:** % of leads matching your `client-profile.yaml` filters on industry + headcount
- **Requires:** `--icp-file` passed
- **Rule:** 80%+ match, 100 if exact

### 8. Name quality

- **What:** % with both first_name AND last_name populated AND looking human
- **Checks:** Not all-caps, not fake names ("Admin", "Info"), not email-as-name
- **Rule:** 95%+ acceptable
- **Score:** 100 if 95%+, drops linearly

## Letter grade mapping

Weighted average across 8 dimensions (verification and ICP fit weighted 2x):

| Average | Grade | Action |
|---|---|---|
| 90-100 | A+ / A | Ship it |
| 80-89 | B | Minor fixes, then ship |
| 70-79 | C | Fix top 3 issues first |
| 60-69 | D | Serious cleanup required |
| 5 each) — cap at 3 per domain
5. 258 leads outside declared industry filter (12%) — filter by company_industry

Pre-send checklist:
[ ] Deduplicate by email
[ ] Drop catch-all if >5% (reduces bounce rate)
[ ] Filter out bad titles
[ ] Cap per-domain concentration
[ ] Re-run verifier if list shrunk >10%
```

## When to use

- AFTER list-building skills (`/prospeo-full-export`, `/blitz-list-builder`, `/google-maps-list-builder`, `/disco-like`)
- AFTER email waterfall (`/email-waterfall`)
- BEFORE Smartlead upload

## When NOT to use

- On a list of <100. Sample too small for reliable stats.
- On a fully static list (same every send). Check once, reuse.

## Scripts

- `scripts/score-list.ts` — the main scorecard

## What to do next

**If grade ≥ B:** `/campaign-copywriting` to write the emails. Then `/smartlead-campaign-upload-public` to launch as DRAFT.

**If grade < C:** fix the top 3 issues (from scorecard output), re-run this skill until grade ≥ B. Don't upload a C-grade list — bounces and low reply rates will damage domain reputation.

**Or wait:** if large fixes are needed (missing email verification, 30%+ bad titles), address those BEFORE spending more on email-finding or enrichment.

## Related skills

- `/icp-prompt-builder` — more surgical ICP fit scoring (AI per-company)
- `/icp-onboarding` — produces the `client-profile.yaml` this skill checks against
- `/email-waterfall` — run BEFORE this skill for verification coverage

## The 1% rule alignment

A list that scores below C-grade is very likely to produce reply rates below 1%, which violates the 1% rule (see `/email-deliverability-audit`). Catching list issues here saves you the deliverability hangover later.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [growthenginenowoslawski](https://github.com/growthenginenowoslawski)
- **Source:** [growthenginenowoslawski/coldoutboundskills](https://github.com/growthenginenowoslawski/coldoutboundskills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-growthenginenowoslawski-coldoutboundskills-list-quality-scorecard
- Seller: https://agentstack.voostack.com/s/growthenginenowoslawski
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
