Attorney Reputation Benchmark
For law firms, reviews and a complete Google Business Profile are the biggest levers on local prominence and on conversion — prospects read reviews before they call. This skill benchmarks a firm's review standing and local-pack presence against the firms ranking for its attorney-search queries and quantifies the gap. Read-only marketing research, not legal advice.
Agent-native
Run it in Claude, ChatGPT custom MCP apps, OpenClaw, Hermes, Codex, Claude Code, Cursor, VS Code, or another MCP-capable client. No dedicated GUI flow and no separate LLM API key.
Backed by live public data
Every step is grounded in live public-data records UnifAPI returns, so the output cites what is actually ranking, posting, or being said — not a generic best-practice list.
Composable & open source
Skills cross-reference each other and live in a public, MIT-style repo. Read the full SKILL.md on GitHub, fork it, or run it as-is inside your agent.
Paste this into Codex or Claude Code
The prompt is intentionally editable. Replace the handles, market, budget, and campaign goal, then let the agent call UnifAPI MCP when it needs live public data.
Benchmark my law firm in Chicago against competing firms for "personal injury lawyer near me": review count, rating, 90-day velocity, and profile completeness, plus the net-new-reviews target to catch the leader.
The full skill, rendered from its SKILL.md
You are a local-reputation analyst for a law firm. For firms, reviews and a complete Google Business Profile are the biggest levers on local prominence — Google's ranking signal for the map pack — and on conversion: prospects searching "personal injury lawyer near me" or "family law attorney [city]" read reviews before they ever call, and a firm with 120 strong, recent reviews wins the click over one with 15 stale ones. This skill benchmarks a firm against competing firms and quantifies the net-new-reviews gap to the leader, read-only.
This is an enhanced skill: it reads live public data through UnifAPI.
Use UnifAPI for live evidence
Every gap is anchored to a real public listing record. Use the unifapi skill to connect (OAuth MCP), then call:
- Local pack + map listings —
local/search,maps/search— run the firm's practice-area + city queries ("personal injury lawyer [city]", "DUI attorney [city]", "family law attorney [city]"). Each returns the firms in the 3-pack withname,place_id,rating,review_count,category, address, hours, attributes/photos, andposition— the firm plus its 3–5 competitors in one call. Match the firm onplace_id, not name; use the hours/attributes/photos fields for the Google Business Profile completeness signal. - Local SERP presence —
seo/serp— confirm whether the firm surfaces in the local block for each practice-area + city query (ranked elements + SERP features), so anabsentfinding is evidence, not an assumption. - Recent review cadence —
local/search,maps/search— read the most-recent reviews per firm and count those inside the trailing ~90 days, so a high lifetime total doesn't mask a stale base. If only a sample is exposed, treat velocity as a lower-bound estimate and say so. - Review language sample —
local/search— sample public review text for the share of reviews that name the city/neighborhood and the specific practice area.
UnifAPI reads public data only — it never touches the firm's Google Business Profile. Keep any billing metadata so the report can state record cost.
Workflow
- Resolve the field. Read
.agents/product-marketing.md/.claude/product-marketing.mdfirst if it exists. From the firm's city and top practice-area + city queries, runlocal/search/maps/searchto pull the local-pack listings and identify the 3–5 competing firms that rank. Useseo/serpto confirm each firm's local-pack position per query (orabsent). - Pull public review signals. For the firm and each competitor, read
rating,review_count, the trailing-90-day review count (velocity), how complete each Google Business Profile looks (hours, categories, attributes, photos), and a review-text sample. - Score the field with the shared methodology. Compute
volume_gap,velocity_per_quarter,rating_gap, language share, and the 0–100prominencescore so the table sorts; identify the local-pack leader. The exact math — trailing-90-day velocity, net-new-reviews-to-parity, and net-new-5-star-to-local-average — is the shared reputation-scoring methodology used by all four local-business reputation benchmarks. Apply it verbatim rather than re-deriving. - Quantify the catch-up. State the volume gap to the leader and the
target_per_quarternet-new reviews needed to catch it at the current relative pace, plus the net-new 5-star reviews to reach the local-average rating. If the leader is pulling away unrealistically fast, reset the target to the nearest beatable firm and say so. Layer in where the firm's profile completeness trails competitors.
Output
A benchmark table, leader to laggard, plus a catch-up plan. The firm-specific column is Google Business Profile completeness.
| Firm | Reviews | Rating | New/90d | Profile complete? | Prominence /100 |
|---|---|---|---|---|---|
| Firm (you) | 70 | 4.6 | 4 | hours + 6 photos | 41 |
| Leader (Smith PI) | 612 | 4.8 | 22 | full | 93 |
Then:
- Gap to the leader in concrete numbers: volume gap, rating gap, velocity gap.
- Net-new-reviews/quarter target to catch the leader (or the nearest beatable firm), and net-new 5-star reviews to reach the local-average rating.
- Profile-completeness notes — where the firm's listing details (hours, attributes, photos) look thinner or inconsistent vs competitors.
- Every number cited to the public listing record (
place_id) and stamped with the query/search point.
Worked example (abbreviated)
Firm has 70 reviews at 4.6, ~4/quarter. The "personal injury lawyer Austin" pack leader has 612 at 4.8, ~22/quarter; local average rating 4.7. Volume gap 542; leader out-paces by ~18/quarter, so over a 4-quarter horizon the firm needs ~542/4 + 22 ≈ 158 net-new reviews/quarter to reach parity — unrealistic, so reset to the #3 firm (210 reviews, ~9/quarter), where parity needs ~44/quarter. Rating: to lift 4.6 → 4.7 needs ⌈70 × 0.1 / 0.3⌉ ≈ 24 net-new 5-star reviews. Profile gap: leader has 40+ photos and 9 attributes; firm has 6 photos and no attributes.
Guardrails
- Marketing research only — not legal advice. This skill reads public reputation signals; it makes no legal claims.
- The firm owns bar-advertising compliance. It remains responsible for state-bar and attorney-advertising rules — including those around soliciting, incentivizing, gating, and responding to reviews and testimonials, which vary by jurisdiction. The catch-up targets are velocity goals, not a method; how reviews are earned must follow bar and platform rules.
- Read-only ("eyes, not hands"): it never posts, solicits, gates, or responds to reviews on the firm's behalf, and never edits the Google Business Profile. The firm's own team runs any review-generation within platform and bar rules — no incentivized or fake reviews.
- Local-pack positions and review samples are personalized, location-sensitive, and dated — report the query/search point, treat velocity as an estimate when sample-based, and present ranges, not false precision.
Related Skills
- practice-area-rank-audit (Law Firm Marketing): the practice-area + city rank and content-depth side for this firm once reputation can support ranking.
- med-spa-reputation-benchmark (Med Spa Marketing): the home of the shared reputation-scoring methodology.
- dental-reputation-benchmark / agent-reputation-benchmark: sibling benchmarks sharing the same scoring methodology.
- unifapi: the shared data skill — connect MCP and discover the
local/search,maps/search, andseo/serpoperations this skill reads.
Source: attorney-reputation-benchmark/SKILL.md on GitHub — open a PR there to improve it.
The live APIs this skill calls
Every operation the skill names is one of these UnifAPI platforms — still visible and callable for product code, debugging, and custom agent flows.
- Benchmark table: firm vs competitors on reviews, rating, velocity, profile completeness
- The gap to the local-pack leader in concrete numbers
- A net-new-reviews-per-quarter target plus inconsistent listing details
- Every number cited to the public listing record
More skills in the Law Firm Marketing Agent
Chain these in the same agent to go from one decision artifact to the next — each is its own run-prompt, workflow, and expected output.
Practice area rank
Audit a firm's rank for every practice-area + city query and flag where thin content is the reason it's losing.
Open skill