# Cold Email Rubric

An open 6-dimension rubric for grading cold emails, with a free hosted scoring API at [coldsmith.dev/api/cold-email-audit](https://coldsmith.dev/api/cold-email-audit).

This rubric and API are built and maintained by [Coldsmith](https://coldsmith.dev), a productized cold-email lead-research service. We use the same rubric to grade our own outbound before it ships.

## The rubric

Each email is scored 0-10 on six dimensions:

| Dimension | Weight | What 9-10 looks like |
|---|---|---|
| **Personalization** | 2x | Cites a dated, specific signal (post, launch, hire) the recipient would recognize |
| **Ask specificity** | 1.5x | "15-min call Tuesday at 11am ET" or "reply yes/no, no call needed" |
| **Length** | 1x | Under 80 words, three short paragraphs max |
| **Tone match** | 1x | Reads like a founder DM'ing another founder |
| **Value clarity** | 1x | One sentence: what you do, why it matters to them specifically |
| **Send-readiness** | 1x | No links, no images, no tracking pixels, plain-text style |

Overall score = weighted average of the six dimensions, scaled to 0-100.

Grade bands:
- **A**: 80-100 (production-ready)
- **B**: 70-79 (small gaps)
- **C**: 60-69 (working but risky)
- **D**: 50-59 (at least one critical gap)
- **F**: below 50 (multiple critical gaps, looks like a sequence)

Across the public dataset (audit_runs in our D1), the median cold email scores **53/100**.

## Hosted API

Free, no auth, no key, 20 requests / hour / IP.

### POST `/api/cold-email-audit`

```bash
curl -X POST https://coldsmith.dev/api/cold-email-audit \
  -H "Content-Type: application/json" \
  -d '{
    "email_body": "Hi Sarah, noticed Vercel shipped edge KV last week...",
    "icp": "VP Eng at Series-B fintech"
  }'
```

Response:

```json
{
  "overall_score": 72,
  "one_line_verdict": "Sharp but salesy in the second sentence.",
  "biggest_lever": "Replace 'I help SaaS teams' with a concrete result.",
  "dimensions": [
    { "name": "Personalization", "score": 7, "verdict": "...", "detail": "...", "fix": "..." }
  ],
  "rewrite_suggestion": "Hi Marcus, noticed Vercel shipped...",
  "share_id": "3z4x074g5g3c"
}
```

The `share_id` corresponds to a public result page at `https://coldsmith.dev/audit/<share_id>` with the full breakdown and a per-audit OG image at `/audit/<share_id>/og.svg`.

Full docs: [coldsmith.dev/api](https://coldsmith.dev/api).

## TypeScript types

```ts
export type AuditDimension = {
  name: string;
  score: number;       // 0-10
  verdict: string;     // short headline
  detail: string;      // 1-2 sentence rationale
  fix: string | null;  // concrete improvement
};

export type EmailAudit = {
  overall_score: number;     // 0-100
  one_line_verdict: string;
  dimensions: AuditDimension[];
  rewrite_suggestion: string | null;
  biggest_lever: string;
  share_id: string;          // public result page slug
};
```

## Use cases

- **CRM integration**: score every outbound draft before send, block any below 65.
- **Email tool browser extension**: score on save in Smartlead, Instantly, Lemlist.
- **Agency QA dashboard**: bulk-score client campaigns nightly.
- **Internal training**: show SDR onboards what a 70+ email looks like.
- **Public widget**: embed behind a form on your own site.

## Why this is open

The rubric itself is the unlock; the API is just a convenience layer. We publish both so anyone can audit their cold email regardless of whether they buy our paid list service. The free audit funnels into our $1 cheat sheet, $9 playbook, and $49 100-lead orders, but the scoring is genuinely free forever.

## Reference

- Hosted tool: [coldsmith.dev/tools/cold-email-audit](https://coldsmith.dev/tools/cold-email-audit)
- Bookmarklet (drag to bookmarks bar, click on any draft): [coldsmith.dev/bookmarklet](https://coldsmith.dev/bookmarklet)
- 5 scored examples: [coldsmith.dev/examples](https://coldsmith.dev/examples)
- Aggregate stats: [coldsmith.dev/api/audit-stats](https://coldsmith.dev/api/audit-stats)

## License

Public domain (CC0). Use it, fork it, integrate it. Attribution appreciated but not required.
