geo-prospect
Skill16 starsChanged 35 days agoMITView on GitHub
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.
3 other projects use a version of this, 3 of them edited.
Adopted by
Most recently taken up by
- alpit-patel/seo-aeo-geo-kitedited, first seen Nov 8, 2026
- zubair-trabzada/geo-seo-claudeedited, first seen Aug 4, 2026
- kennyolofsson23-netizen/claude-code-configedited, first seen Mar 16, 2026
Other versions3 projects use a version of this.
Word for word · 0
None found.
Edited · 3
- zubair-trabzada/geo-seo-claude★ 11k84% same
- alpit-patel/seo-aeo-geo-kit★ 281% same
- kennyolofsson23-netizen/claude-code-config★ 084% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository17 other files it gives its agents.
- llms.txtllms.txt
- agent-readiness-scanSkill
- found-by-aiSkill
- geo-auditSkill
- geo-brand-mentionsSkill
- geo-citabilitySkill
- geo-compareSkill
- geo-contentSkill
- geo-crawlersSkill
- geo-llmstxtSkill
- geo-platform-optimizerSkill
- geo-proposalSkill
- geo-report-pdfSkill
- geo-reportSkill
- geo-schemaSkill
- geoSkill
- geo-technicalSkill
The file
We split this skill into the rules it gives an agent
12 rules. 4 are common, 0 are distinctive, and 8 are very specific to this project.
4
Common
Most of the 3 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 19
All data is stored in ~/.geo-prospects/prospects.json (persistent across sessions).
- Very specific: line 78
Check if ~/.geo-prospects/prospects.json exists, create if not (empty array)
- Very specific: line 91
Read ~/.geo-prospects/prospects.json and render a summary table:
- Very specific: line 110
Run /geo quick <domain> to get GEO snapshot score
- Very specific: line 113
Update audit_file path in prospect record
- Common: line 114
Add auto-note: "Quick audit run.
- Very specific: line 115
If score < 55: suggest "Score indicates strong sales opportunity.
- Common: line 129
Add auto-note: "Status changed to <status>"
- Very specific: line 163
All data stored in ~/.geo-prospects/:
- Very specific: line 173
Create directory if it does not exist: mkdir -p ~/.geo-prospects/audits ~/.geo-prospects/proposals
- Common: line 191
All commands print confirmation + current prospect status to terminal
- Common: line 192
No external files unless explicitly saving audits/proposals
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
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:
{
"id": "PRO-001",
"company": "Meridian Legal",
"domain": "meridianlegal.com.au",
"contact_email": "info@meridianlegal.com.au",
"contact_name": "",
"industry": "Educational Equipment Manufacturing",
"country": "Italy",
"status": "qualified",
"geo_score": 32,
"audit_date": "2026-03-12",
"audit_file": "~/.geo-prospects/audits/meridianlegal.com.au-2026-03-12.md",
"proposal_file": "~/.geo-prospects/proposals/meridianlegal.com.au-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>
- Check if
~/.geo-prospects/prospects.jsonexists, create if not (empty array) - Auto-detect company name from domain (e.g.,
meridianlegal.com.au→Meridian Legal) - Assign next sequential ID:
PRO-001,PRO-002, etc. - Ask user for:
- Contact name (optional)
- Contact email
- Monthly contract value estimate (optional)
- Set status to
lead - Save to JSON file
- Suggest next step: "Run
/geo prospect audit meridianlegal.com.auto score this prospect"
/geo prospect list
Read ~/.geo-prospects/prospects.json and render a summary table:
GEO Prospect Pipeline: March 2026
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ID Domain Company Status Score Value
─────── ────────────────────── ──────────────── ────────── ───── ──────
PRO-001 meridianlegal.com.au Meridian Legal Qualified 32/100 A$4.5K
PRO-002 acme.com ACME Corp Lead n/a n/a
PRO-003 coastalfitness.com.au Coastal Fitness Won 41/100 A$6.0K
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Pipeline: 1 lead | 1 qualified | 0 proposals | 1 won | 0 lost
Committed MRR: A$6,000 | Pipeline Value: A$4,500/geo prospect audit <id-or-domain>
- Run
/geo quick <domain>to get GEO snapshot score - Save score to prospect record:
geo_score,audit_date - Save audit output to
~/.geo-prospects/audits/<domain>-<date>.md - Update
audit_filepath in prospect record - Add auto-note: "Quick audit run. GEO Score: XX/100."
- If score < 55: suggest "Score indicates strong sales opportunity. Run
/geo proposal <domain>to generate proposal."
/geo prospect note <id-or-domain> "<text>"
- Find prospect by ID or domain
- Append note with current ISO date
- Save back to JSON
- Confirm: "Note added to Meridian Legal (PRO-001)"
/geo prospect status <id-or-domain> <status>
Valid statuses: lead, qualified, proposal, won, lost
- Update status field
- Add auto-note: "Status changed to
<status>" - Save and confirm
/geo prospect pipeline
Visual revenue-focused pipeline summary:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GEO AGENCY PIPELINE SUMMARY: March 2026
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
STAGE COUNT POTENTIAL VALUE NOTES
───────────── ───── ─────────────── ─────────────────────
Lead 2 A$8,000/mo New discoveries
Qualified 1 A$4,500/mo Ready for proposal
Proposal Sent 1 A$6,000/mo Awaiting signature
Won 3 A$18,500/mo Active clients (MRR)
Lost 1 n/a Budget freeze
COMMITTED MRR: A$18,500
PIPELINE (qualified+): A$10,500
TOTAL POTENTIAL: A$29,000/mo → A$348,000/yr
Next actions:
→ PRO-003 (acme.com): Send proposal (score 38/100, strong case)
→ PRO-007 (coastalfitness.com.au): Follow up: proposal sent 8 days ago
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━Storage Location
All data stored in ~/.geo-prospects/:
~/.geo-prospects/
├── prospects.json # Main CRM database
├── audits/ # Quick audit snapshots
│ └── meridianlegal.com.au-2026-03-12.md
└── proposals/ # Generated proposals
└── meridianlegal.com.au-proposal.mdCreate directory if it does not exist: mkdir -p ~/.geo-prospects/audits ~/.geo-prospects/proposals
Pipeline Stage Definitions
| Status | Meaning | Typical Next Action |
lead | Discovered, not yet contacted | Run quick audit, assess opportunity |
qualified | Audit done, confirmed pain points | Generate proposal |
proposal | Proposal sent, awaiting decision | Follow up, answer questions |
won | Contract signed, active client | Run full audit, start onboarding |
lost | Deal closed lost | Log reason for future reference |
Output
- All commands print confirmation + current prospect status to terminal
- No external files unless explicitly saving audits/proposals
- JSON database is the single source of truth
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

