Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

local-gtm

One config, four connected commands. Your whole early-pipeline GTM workflow, running in Claude Code or Codex.

No API keys. No dashboards. No 92-agent skill shelf to choose from. You describe what you sell once; then score → enrich → outbound → prep share one set of account files on your own machine.

Install

Claude Code (one copy-paste)

Inside Claude Code, run:

/plugin marketplace add dan-sheehan/local-gtm
/plugin install gtm@local-gtm

Or paste this into a regular terminal instead (no slash commands needed):

claude plugin marketplace add dan-sheehan/local-gtm && claude plugin install gtm@local-gtm --scope user

If /plugin isn't recognized: your Claude Code is older than v2.1.154. Run claude update, restart Claude Code, and paste again.

Codex

Paste this into a terminal:

codex plugin marketplace add dan-sheehan/local-gtm && codex plugin add gtm@local-gtm

If codex plugin isn't recognized, run codex update and try again. After the install, start a new Codex session so its five skills are available.

In the Codex desktop app or IDE extension, you can use the same marketplace and install gtm from Plugins instead.

Quick start

  1. Make a folder for your GTM work and open Claude Code or Codex there. That folder is your workspace — the plugin reads and writes files in the directory you launch from.
  2. Run the config skill — /gtm:config in Claude Code, or ask Codex to use the gtm plugin's config skill. Paste your company's website and correct what it infers. About 3 minutes, ends with everything written to gtm-profile.md in plain markdown you can open and edit.
  3. Run score Acme Logistics/gtm:score Acme Logistics in Claude Code, or select the gtm plugin's score skill in Codex — for your first ICP score.

From a fresh install to a first score should take under 15 minutes. If it doesn't, that's a bug — open an issue.

The pipeline

Command What it does Writes
/gtm:config Builds your GTM profile: product, value props, your own ICP scoring rubric, personas, tone, sender identity ./gtm-profile.md
/gtm:score <company> Researches the company per rubric dimension, then computes the score — deterministic arithmetic over auditable selections, with a per-dimension evidence table. QUALIFIED or DISQUALIFIED against your threshold ## ICP Score in ./accounts/<company-slug>.md
/gtm:enrich <company> Four-pass deep research: company & business model, product & technology, funding & growth, market position — ending in sourced strengths, risks, and why-it-matters sales implications for your product ## Enrichment
/gtm:outbound <company> Five-email sequence for a named prospect: opener (day 1), value drop (day 3), proof (day 7), direct ask (day 10), and breakup (day 17). Each touch stays under 100 words and follows one research-backed pain angle ## Outbound Draft
/gtm:prep <company> Discovery-call brief: snapshot, prospect background, openers, discovery questions, value hooks, watch-outs ## Discovery Prep

Every account is one markdown file. Every command edits only its own section, so you can re-run anything without losing the rest.

The outbound sequence

/gtm:outbound writes one threaded sequence around the strongest researched pain point or trigger:

Day Email Job
1 Opener Lead with the problem and earn a reply with a soft question
3 Value Drop Share a useful insight or framework without a hard ask
7 Proof Show a verified result from a similar customer
10 Direct Ask Ask for a 15-minute call and offer two times
17 Breakup Close the loop with a useful resource and no hidden pitch

Only the opener creates a subject; the other four emails stay in its thread. The plugin never invents customer metrics, resource links, or meeting times. When those inputs are unavailable, the draft leaves a clear bracketed placeholder for you.

Why the score is trustworthy

Most AI scoring is a vibe. /gtm:score isn't: your rubric lives as editable YAML in gtm-profile.md (weighted dimensions, scored options), research picks one option per dimension with a line of evidence, and the number comes from running the arithmetic in code. Same rubric + same facts = same score, and you can audit every row.

Honest note about the gate

DISQUALIFIED stops enrich/outbound/prep before you spend effort on a bad-fit account. The gate saves the downstream pipeline — the scoring research itself still runs in full. (You can override the gate; the override is recorded in the account file.)

What it needs

  • Claude Code with a Claude subscription (Pro or Max), or Codex. That's it.
  • Web search happens through your coding agent's built-in search. /gtm:config runs a test search so permission setup happens early; later searches may still require approval depending on your agent and workspace settings.
  • The plugin has no hosted backend, telemetry, or third-party data provider. Your coding agent processes the workspace and web searches under its own provider terms.

Your data

gtm-profile.md and accounts/ are plain markdown in your own folder. Edit them, version them, delete them — the plugin itself stores no state anywhere else.

License

MIT

About

Local GTM Tools

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors