Personal, local-first B2B sales research-and-outreach tool. Every factual claim in every draft traces to a verified evidence row. Drafts are critiqued against a user-owned principles file. Every revision is preserved.
- macOS with the
claudeCLI installed and logged into a Claude Max 20 account - Node.js 20.9+, pnpm
pnpm install
pnpm db:generate # idempotent after first run
pnpm db:migrate
pnpm devOpen http://localhost:3000.
- Create an account. Add the target company.
- Gather evidence.
- Paste URLs + raw text into the Evidence tab, OR
- Click "Run auto-research" to have the Claude CLI research the account via WebFetch + WebSearch.
- Audit evidence. Click "Run extraction audit on pending" — each fact is checked against its snippet. Disputed rows show a reason and a suggested correction.
- Add a contact (optional; sets the buyer archetype for the drafter).
- Create a sequence. Pick channels per touch (email / LinkedIn).
- Draft each touch. The drafter uses only verified evidence. The validator ensures every cited claim is a verbatim substring of its evidence snippet. If the draft fails validation, it retries once with a correction message.
- Run critics. Three critics score each draft:
- Skeptical Buyer (Sonnet) — "Would I delete this in 2 seconds?"
- Sales Coach (Sonnet) — scores against every principle in
data/principles.md. - Writing Editor (Haiku) — concision, AI-tell phrases, active voice.
- Accept rewrites. Each accepted rewrite creates a new immutable revision; prior revisions and their critiques are preserved.
- Export. Download
.emlfiles for email touches and.txtfor LinkedIn. Touch 1 is copied to clipboard.
data/principles.md— the Sales Coach critic rubric. Edit as your tactical bar evolves.data/icp.md— ICP brief. Read by the drafter on every touch. Fill in before your first draft.skills/— Claude Code-compatible skill files used by the CLI subprocess.docs/superpowers/specs/— full design spec (v2).docs/superpowers/plans/— implementation plan.
Next.js 16 App Router + SQLite (Drizzle ORM) + claude CLI subprocess for every LLM call. No Anthropic API key is used — the CLI authenticates via the owner's existing Max 20 OAuth session.
Three layers with strict contracts:
- Evidence (spine): typed, append-only store. Every fact has a
source_url,snippet(≤1500 char verbatim excerpt), andextractionStatus(pending_audit|verified|disputed). Onlyverifiedrows can be cited in a draft. - Drafting: pulls verified evidence, calls Claude, emits
cited_evidence_ids+supporting_spans(verbatim substrings of snippets). Validator rejects any span that isn't a substring; one-retry loop on failure. - Critique: 3 parallel critics produce structured findings. Accept/reject per suggestion. Accepting a rewrite creates a new immutable
touch_revisionsrow; prior revisions remain intact.
v1 MVP. Out of scope:
- SMTP/Gmail sending (copy-paste the
.emlinto Gmail). - CRM sync.
- Multi-user / SaaS.
- Deep Research paste parser, Perplexity MCP, GPT-5 critic — deferred to v1.1+.
See docs/superpowers/specs/2026-04-17-sales-tool-design.md §10, §11.
pnpm test
pnpm typecheck
pnpm build