$npx -y skills add zubair-trabzada/geo-seo-claude --skill geo-prospectCRM-lite for managing GEO agency prospects and clients. Track leads through the full sales pipeline: Lead → Qualified → Proposal Sent → Won → Lost. Store audit history, notes, deal values, and generate pipeline summaries. Use when user says "prospect", "lead", "client", "pipeline
| 1 | # GEO Prospect Manager |
| 2 | |
| 3 | ## Purpose |
| 4 | |
| 5 | Manage GEO agency prospects and clients through the full sales lifecycle. |
| 6 | All data is stored in `~/.geo-prospects/prospects.json` (persistent across sessions). |
| 7 | |
| 8 | --- |
| 9 | |
| 10 | ## Commands |
| 11 | |
| 12 | | Command | What It Does | |
| 13 | |---------|-------------| |
| 14 | | `/geo prospect new <domain>` | Create new prospect (interactive prompts) | |
| 15 | | `/geo prospect list` | Show all prospects with pipeline status | |
| 16 | | `/geo prospect list <status>` | Filter: lead, qualified, proposal, won, lost | |
| 17 | | `/geo prospect show <id-or-domain>` | Full prospect detail with history | |
| 18 | | `/geo prospect audit <id-or-domain>` | Run quick GEO audit and save to prospect record | |
| 19 | | `/geo prospect note <id-or-domain> "<text>"` | Add interaction note with timestamp | |
| 20 | | `/geo prospect status <id-or-domain> <new-status>` | Move through pipeline | |
| 21 | | `/geo prospect won <id-or-domain> <monthly-value>` | Mark as won, set contract value | |
| 22 | | `/geo prospect lost <id-or-domain> "<reason>"` | Mark as lost with reason | |
| 23 | | `/geo prospect pipeline` | Visual pipeline summary with revenue forecast | |
| 24 | |
| 25 | --- |
| 26 | |
| 27 | ## Data Structure |
| 28 | |
| 29 | Each prospect is stored as a JSON record: |
| 30 | |
| 31 | ```json |
| 32 | { |
| 33 | "id": "PRO-001", |
| 34 | "company": "Electron Srl", |
| 35 | "domain": "electron-srl.com", |
| 36 | "contact_email": "info@electron-srl.com", |
| 37 | "contact_name": "", |
| 38 | "industry": "Educational Equipment Manufacturing", |
| 39 | "country": "Italy", |
| 40 | "status": "qualified", |
| 41 | "geo_score": 32, |
| 42 | "audit_date": "2026-03-12", |
| 43 | "audit_file": "~/.geo-prospects/audits/electron-srl.com-2026-03-12.md", |
| 44 | "proposal_file": "~/.geo-prospects/proposals/electron-srl.com-proposal.md", |
| 45 | "monthly_value": 0, |
| 46 | "contract_start": null, |
| 47 | "contract_months": 0, |
| 48 | "notes": [ |
| 49 | { |
| 50 | "date": "2026-03-12", |
| 51 | "text": "Initial GEO quick scan. Score 32/100 - Critical tier. Strong candidate for GEO services." |
| 52 | } |
| 53 | ], |
| 54 | "created_at": "2026-03-12", |
| 55 | "updated_at": "2026-03-12" |
| 56 | } |
| 57 | ``` |
| 58 | |
| 59 | --- |
| 60 | |
| 61 | ## Orchestration Instructions |
| 62 | |
| 63 | ### `/geo prospect new <domain>` |
| 64 | |
| 65 | 1. Check if `~/.geo-prospects/prospects.json` exists, create if not (empty array) |
| 66 | 2. Auto-detect company name from domain (e.g., `electron-srl.com` → `Electron Srl`) |
| 67 | 3. Assign next sequential ID: `PRO-001`, `PRO-002`, etc. |
| 68 | 4. Ask user for: |
| 69 | - Contact name (optional) |
| 70 | - Contact email |
| 71 | - Monthly contract value estimate (optional) |
| 72 | 5. Set status to `lead` |
| 73 | 6. Save to JSON file |
| 74 | 7. Suggest next step: "Run `/geo prospect audit electron-srl.com` to score this prospect" |
| 75 | |
| 76 | ### `/geo prospect list` |
| 77 | |
| 78 | Read `~/.geo-prospects/prospects.json` and render a summary table: |
| 79 | |
| 80 | ``` |
| 81 | GEO Prospect Pipeline — March 2026 |
| 82 | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ |
| 83 | |
| 84 | ID Domain Company Status Score Value |
| 85 | ─────── ────────────────────── ──────────────── ────────── ───── ────── |
| 86 | PRO-001 electron-srl.com Electron Srl Qualified 32/100 €4.5K |
| 87 | PRO-002 acme.com ACME Corp Lead — — |
| 88 | PRO-003 bigshop.it BigShop Won 41/100 €6.0K |
| 89 | |
| 90 | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ |
| 91 | Pipeline: 1 lead | 1 qualified | 0 proposals | 1 won | 0 lost |
| 92 | Committed MRR: €6,000 | Pipeline Value: €4,500 |
| 93 | ``` |
| 94 | |
| 95 | ### `/geo prospect audit <id-or-domain>` |
| 96 | |
| 97 | 1. Run `/geo quick <domain>` to get GEO snapshot score |
| 98 | 2. Save score to prospect record: `geo_score`, `audit_date` |
| 99 | 3. Save audit output to `~/.geo-prospects/audits/<domain>-<date>.md` |
| 100 | 4. Update `audit_file` path in prospect record |
| 101 | 5. Add auto-note: "Quick audit run. GEO Score: XX/100." |
| 102 | 6. If score < 55: suggest "Score indicates strong sales opportunity. Run `/geo proposal <domain>` to generate proposal." |
| 103 | |
| 104 | ### `/geo prospect note <id-or-domain> "<text>"` |
| 105 | |
| 106 | 1. Find prospect by ID or domain |
| 107 | 2. Append note with current ISO date |
| 108 | 3. Save back to JSON |
| 109 | 4. Confirm: "Note added to Electron Srl (PRO-001)" |
| 110 | |
| 111 | ### `/geo prospect status <id-or-domain> <status>` |
| 112 | |
| 113 | Valid statuses: `lead`, `qualified`, `proposal`, `won`, `lost` |
| 114 | |
| 115 | 1. Update status field |
| 116 | 2. Add auto-note: "Status changed to <status>" |
| 117 | 3. Save and confirm |
| 118 | |
| 119 | ### `/geo prospect pipeline` |
| 120 | |
| 121 | Visual revenue-focused pipeline summary: |
| 122 | |
| 123 | ``` |
| 124 | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ |
| 125 | GEO AGENCY PIPELINE SUMMARY — March 2026 |
| 126 | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ |
| 127 | |
| 128 | STAGE COUNT POTENTIAL VALUE NOTES |
| 129 | ───────────── ───── ─────────────── ───────────────────── |
| 130 | Lead 2 €8,000/mo New discoveries |
| 131 | Qualified 1 €4,500/mo |