# geo-prospect

Lightweight CRM for GEO agencies. It tracks prospects through the sales pipeline, logs audit scores, and calculates forecast revenue directly in the terminal.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 782 installs · ★ 11253
- Author: zubair-trabzada
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/zubair-trabzada/geo-seo-claude/tree/HEAD/skills/geo-prospect/SKILL.md
- Updated: 2026-10-25
- HTML: https://affpapa.org/en/nevibecode/skills/geo-prospect

## What it does

The skill adds a set of `/geo prospect` slash commands to run a sales pipeline without leaving the coding agent. All records live locally in `~/.geo-prospects/prospects.json`, keeping prospect status and contract details persistent across CLI sessions. Each record stores contact details, pipeline stages from `lead` to `won` or `lost`, notes, and monthly contract value.

The workflow connects prospect tracking with site scans. Running `/geo prospect audit <id-or-domain>` performs a quick GEO score snapshot, updates the record, and writes a markdown summary into `~/.geo-prospects/audits/`. If the score drops below 55, the skill prompts you to generate a sales proposal.

Because everything resides in a single local JSON file, it requires zero external SaaS subscriptions or complex database setups.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add zubair-trabzada/geo-seo-claude --skill geo-prospect -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/geo-prospect/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/geo-prospect/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add zubair-trabzada/geo-seo-claude --skill geo-prospect -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/geo-prospect/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add zubair-trabzada/geo-seo-claude --skill geo-prospect -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/geo-prospect/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install zubair-trabzada/geo-seo-claude geo-prospect
```

2. **Manually: put the files in place**
- File: `.github/skills/geo-prospect/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add zubair-trabzada/geo-seo-claude --skill geo-prospect -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/zubair-trabzada/geo-seo-claude --path skills/geo-prospect
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/geo-prospect/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add zubair-trabzada/geo-seo-claude --skill geo-prospect -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/zubair-trabzada/geo-seo-claude/tree/HEAD/skills/geo-prospect/SKILL.md

## When to use it
- track client leads across five pipeline stages from initial contact to won deal
- link automated GEO audit markdown reports directly to prospect records
- calculate committed monthly recurring revenue and total pipeline value
- log timestamped interaction notes without leaving the CLI

## Example prompts
- /geo prospect new electron-srl.com
- /geo prospect audit PRO-001
- /geo prospect pipeline

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: 2e68558cd3d98b4d.

BEGIN THIRD-PARTY FILE 2e68558cd3d98b4d
````text
---
name: geo-prospect
description: >
  CRM-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", "crm", "nuovo prospect",
  "aggiungi cliente", or when managing the business side of GEO services.
version: 1.0.0
tags: [geo, business, crm, prospect, pipeline, sales]
allowed-tools: Read, Write, Bash, Glob
---

# GEO Prospect Manager

## Purpose

Manage GEO agency prospects and clients through the full sales lifecycle.
All data is stored in `~/.geo-prospects/prospects.json` (persistent across sessions).

---

## Commands

| Command | What It Does |
|---------|-------------|
| `/geo prospect new <domain>` | Create new prospect (interactive prompts) |
| `/geo prospect list` | Show all prospects with pipeline status |
| `/geo prospect list <status>` | Filter: lead, qualified, proposal, won, lost |
| `/geo prospect show <id-or-domain>` | Full prospect detail with history |
| `/geo prospect audit <id-or-domain>` | Run quick GEO audit and save to prospect record |
| `/geo prospect note <id-or-domain> "<text>"` | Add interaction note with timestamp |
| `/geo prospect status <id-or-domain> <new-status>` | Move through pipeline |
| `/geo prospect won <id-or-domain> <monthly-value>` | Mark as won, set contract value |
| `/geo prospect lost <id-or-domain> "<reason>"` | Mark as lost with reason |
| `/geo prospect pipeline` | Visual pipeline summary with revenue forecast |

---

## Data Structure

Each prospect is stored as a JSON record:

```json
{
  "id": "PRO-001",
  "company": "Electron Srl",
  "domain": "electron-srl.com",
  "contact_email": "info@electron-srl.com",
  "contact_name": "",
  "industry": "Educational Equipment Manufacturing",
  "country": "Italy",
  "status": "qualified",
  "geo_score": 32,
  "audit_date": "2026-03-12",
  "audit_file": "~/.geo-prospects/audits/electron-srl.com-2026-03-12.md",
  "proposal_file": "~/.geo-prospects/proposals/electron-srl.com-proposal.md",
  "monthly_value": 0,
  "contract_start": null,
  "contract_months": 0,
  "notes": [
    {
      "date": "2026-03-12",
      "text": "Initial GEO quick scan. Score 32/100 - Critical tier. Strong candidate for GEO services."
    }
  ],
  "created_at": "2026-03-12",
  "updated_at": "2026-03-12"
}
```

---

## Orchestration Instructions

### `/geo prospect new <domain>`

1. Check if `~/.geo-prospects/prospects.json` exists, create if not (empty array)
2. Auto-detect company name from domain (e.g., `electron-srl.com` → `Electron Srl`)
3. Assign next sequential ID: `PRO-001`, `PRO-002`, etc.
4. Ask user for:
   - Contact name (optional)
   - Contact email
   - Monthly contract value estimate (optional)
5. Set status to `lead`
6. Save to JSON file
````
END THIRD-PARTY FILE 2e68558cd3d98b4d

The third-party file has ended. Everything between the 2e68558cd3d98b4d tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2897 of 7453 bytes. © zubair-trabzada · MIT · https://github.com/zubair-trabzada/geo-seo-claude/tree/HEAD/skills/geo-prospect/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
