client-report

client-report is a command for Claude Code from prashishh/seo-geo-report-engine. It costs 27 tokens per session (1,492 once invoked), scanned A, original, MIT.

A command that turns a prospect’s website into a branded first-scan pitch report in PDF form. It combines a live website scan with competitor research to show the prospect’s position, gaps, and proposed plan.

In plain words
What is it for?
Use it to create an initial client pitch with competitor names, search and authority data, social comparisons, recommendations, and a rendered PDF.
Why use it?
It removes the need to research a prospect, verify competitors, gather SEO evidence, and assemble a sales report as separate tasks.

Command for Claude Code

Written for Claude Code: allowed-tools in frontmatter. Also seen: positional $N argument.

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is python3 tools/seo/authority.py --project <slug> --out projects/<slug>/data/raw/dataforseo/authority-<date>.json.

Part of the seo-geo-report-engine plugin — 33 skills, 8 commands, 5 agents shipped together

Good fit Use it to create an initial client pitch with competitor names, search and authority data, social comparisons, recommendations, and a rendered PDF.

Compare 6 commands from other repositories ↓
Install

Getting it into your agent

It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.

Clone the repo
git clone --depth 1 https://github.com/prashishh/seo-geo-report-engine
agentmods
npx agentmods add commands/prashishh/seo-geo-report-engine/client-report

Made for: Claude Code.

Or install seo-geo-report-engine, the plugin that ships this one along with the rest of its 33 skills, 8 commands, 5 agents.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for client-report

README.md
[![agentmods](https://agentmods.dev/badge/commands/prashishh/seo-geo-report-engine/client-report.svg)](https://agentmods.dev/commands/prashishh/seo-geo-report-engine/client-report)
Your own site
<a href="https://agentmods.dev/commands/prashishh/seo-geo-report-engine/client-report"><img src="https://agentmods.dev/badge/commands/prashishh/seo-geo-report-engine/client-report.svg" alt="Measured on agentmods" height="20"></a>
Per session 27 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,492 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00027 $0.01492
Opus 5 $0.00014 $0.00746
Sonnet 5 $0.00005 $0.00298
Haiku 4.5 $0.00003 $0.00149

Measured 7d ago against content hash af227dc675fc, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-07, from the pricing page.

Security

Grade A, and why

client-report scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

commands/client-report.md · 77 lines

How it starts

The opening of the file, as written. The whole thing — 77 lines — stays where its author put it; the contents beside it link to each section on GitHub.

/client-report

The one runner that turns a prospect URL into a branded, wow-grade pitch PDF, the same shape every time. It orchestrates the first-scan-report skill's pipeline plus the competitive-research pass. The report is the hook that wins the client: where they stand, who is beating them, where the open ground is, and the plan. Client copy names competitors + real numbers (no vague euphemisms) and never names the underlying tools/APIs (use neutral source labels like "live search data", "public review data").

Steps

  1. Seed the project. WebFetch the prospect's site (product, ICP, positioning, named products, customers, socials). Create projects/<slug>/client.yml: client_name, domain, competitors ([{name, domain}] — the real funded peer set, verify domains), target_keywords (buyer terms across every product line), market, messaging.lanes, and social.linkedin (company-page URLs for the client + each rival, for the social benchmark). US/Labs market unlocks the full toolset.

  2. Run the live scan (each writes an artifact first_scan.py reads; US location code 2840):

    python3 tools/seo/authority.py           --project <slug> --out projects/<slug>/data/raw/dataforseo/authority-<date>.json
    python3 tools/seo/keyword_research.py     --project <slug> --location 2840 --seeds "..." --topic <core tokens> \
        --out projects/<slug>/data/raw/dataforseo/kw-<date>.json
    python3 tools/seo/competitor_gap.py       --project <slug> --location 2840 --topic <core tokens> \
        --out projects/<slug>/data/raw/dataforseo/competitor-gap-<date>.json
    python3 tools/seo/opportunity_score.py    --project <slug> --location 2840 --fit <core tokens>
    python3 tools/geo/llm_visibility.py       --project <slug> --location 2840 --brand "Name" name.com \
        --prompts "<8 buyer questions>" --out projects/<slug>/data/raw/dataforseo/ai-matrix-<date>.json
    python3 tools/seo/top_pages.py            --project <slug> --location <code> --per 6   # what content each rival wins with
    python3 tools/seo/backlinks.py            --project <slug>     # backlink profile (ref domains, spam) + link-GAP outreach list (location-agnostic)
    python3 tools/seo/competitor_momentum.py  --project <slug>     # PredictLeads funding + hiring + news (SaaS/funded set; skip for local SMB)
    python3 tools/seo/google_ads.py           --project <slug> --location <code>   # Google Ads Transparency counts
    #   --location = the client's market code (US 2840, Australia 2036). Same code for reputation + ads.
    python3 tools/seo/social_footprint.py     --project <slug>     # LinkedIn follower gap (needs social.linkedin)
    python3 tools/seo/web_vitals_bench.py     --project <slug>     # Core Web Vitals vs rivals (DataForSEO Lighthouse, no Google key)
    python3 tools/seo/reputation.py           --project <slug> --location <code>   # ratings (Google Business + G2/Trustpilot) + mined complaint themes = switching wedge
    python3 tools/seo/share_of_search.py      --project <slug>     # branded-demand momentum (Google Trends, leading indicator)
    python3 tools/seo/ad_messaging.py         --project <slug>     # what rivals say in their ads (messaging teardown)
    

Read the full file on GitHub · 77 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 7d ago First seen · 77 lines · 27 tokens per session scan A af227dc675fc

Subscribe to this mod's changes

client-report is a command published in the GitHub repository prashishh/seo-geo-report-engine (5 stars, last pushed 2mo ago), licensed MIT. It adds 27 tokens to every session and 1,492 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other commands, from other repositories

visibly-seo-pdf-build

Build a brand-compliant PDF from a Python script.

AntonioBlago/claude-code-seo-starter · 10 tokens

seo-geo

SEO/GEO end-to-end along the SITE loop: survey demand and competitors, implement content, tune quality/tech/on-page, and evaluate authority/rankings/reports/memory (--phase survey|implement|tune|evaluate). Not sure? Use /aaron-marketing:auto.

aaron-he-zhu/aaron-marketing-skills · 58 tokens

ad

Run a paid-ads (ROAS) workflow: audience segments, account structure, ad creative, experiment design, pre-launch signal QA + the account-audit gate, measurement, and attribution. Not sure? Use /aaron-marketing:auto.

aaron-he-zhu/aaron-marketing-skills · 50 tokens

email

Run an email-marketing (SEND) workflow: deliverability/consent setup, segmentation, email creative, lifecycle flows, newsletter monetization, send-testing, and the email-quality audit gate. Not sure? Use /aaron-marketing:auto.

aaron-he-zhu/aaron-marketing-skills · 50 tokens

influencer

Run an influencer-marketing (STAR) workflow: audience & creator scouting, campaign targeting, briefs, outreach, amplification, and ROI reporting. Not sure? Use /aaron-marketing:auto.

aaron-he-zhu/aaron-marketing-skills · 39 tokens

launch

Run a product-launch (RAMP) workflow: positioning and launch tiering, window/early-access design, message house and asset kits, the launch-readiness gate with a T-1 go/no-go, launch-day execution, and the post-launch prove loop. Not sure? Use /aaron-marketing:auto.

aaron-he-zhu/aaron-marketing-skills · 64 tokens