Building Local Market Intelligence Briefs
Core loop, no code required: Raw business list → Spreadsheet math → AI visibility audit → AI synthesis → PDF.
- Pull a business list for a niche+city from a free source (library database, Google Maps, public directory).
- Compute per-zip-code competitor density, workforce capacity, and a review gap in a spreadsheet.
- Ask a web-enabled AI ("Gemini"/similar) to check whether the target business appears in conversational search results for that niche+city.
- Feed both outputs back into the AI with a single synthesis prompt to generate a 4-page report.
- Paste into a design tool (Canva) template and export as PDF.
Sell the PDF at $99–$349 depending on depth. Marginal cost per unit: ~$0.
Progress:
- Step 1: Source raw data (business list with name, address, zip, employee count, review count)
- Step 2: Compute the Arbitrage Matrix (density, capacity, review gap, revenue-at-stake)
- Step 3: Run the AI visibility audit (is the target business recommended by conversational AI?)
- Step 4: Bridge/fuse Step 2 + Step 3 data explicitly before final synthesis
- Step 5: Generate the 4-page report via a single synthesis prompt
- Step 6: Human fact-check pass (verify every number traces back to source data)
- Step 7: Package into a template and export
Step 1: Source Raw Data
Pull a list of businesses in one niche + one city. Minimum viable fields: company name, zip code, employee count (or size proxy), review count, star rating. Sources: library-provided business databases, manual Google Maps scrolling, any CSV export. If no employee count exists, default missing values to 1 to avoid divide-by-zero errors downstream.
Step 2: The Arbitrage Matrix
In a spreadsheet or via a decomposition prompt, group by zip code and compute:
- Competitor Density: count of businesses per zip
- Labor Capacity: sum of employee counts per zip
- Arbitrage Index (0–100): normalized inverse ratio of density to capacity — high score = many small, under-resourced competitors = market vulnerability
- Review Gap:
MAX(reviews in market) - AVG(reviews in this zone) - Revenue at Stake:
review_gap × assumed_customer_LTV(default: $85, adjust per industry)
Decompose this as its own isolated prompt/pass — do not let the model draft strategy prose yet. Force it to output only a clean table. This prevents hallucinated narrative from contaminating the numbers.
Step 3: AI Visibility Audit
Run a live web-search-enabled query asking an AI model: "who are the best [niche] in [city]?" Capture:
- Top 3 companies actually recommended
- Which directories/citations the model is pulling from (Yelp, Google Maps, Angi, etc.)
- Whether the target business appears — return an explicit binary status:
RECOMMENDEDorNOT MENTIONED
This is the emotional hook of the entire product: proving invisibility to modern AI-driven discovery, not just weak SEO.
Step 4: The Fusion Bridge (critical, often skipped)
Do not paste Step 2 and Step 3 outputs directly into a final generation prompt and hope the model reconciles them. Use an explicit intermediate prompt that:
- Labels each data block clearly (e.g., "DATA LAYER alpha" / "DATA LAYER beta")
- Forces the model to manually compute any cross-referenced math (e.g., review gap using the live competitor benchmark, not the stale table figure)
- Requires a short confirmation response before generating final copy — this catches misalignment early and cheaply
Step 5: Synthesis Prompt (single master pass)
Feed the fused data into one final prompt producing a 4-page structure:
- Title/Framing — why the old way of measuring visibility (SEO rankings) is insufficient now
- Visibility Dashboard — the NOT MENTIONED status, named rivals stealing the traffic, citation sources
- Data Table — the arbitrage matrix with revenue-at-stake column
- 90-Day Roadmap — one paragraph per top opportunity zone + one timeline summary (30/60/90-day milestones)
Include a self-reflection instruction inside the same prompt: have the model check its own output for internal consistency (do the dollar figures on page 3 match the claims on page 2 and page 4?) before presenting final text.
Step 6: Human Fact-Check
Read every number. Cross-reference every dollar figure, competitor name, and zip code against your source data. This is the one step that cannot be automated — it's what makes the product defensible and non-hallucinated.
Step 7: Package
Paste validated markdown into a 4-page template (title / dashboard / data table / roadmap). Export as PDF. Name file [City]-[Niche]-[ProductName].pdf.
Example 1: Input: Raw list of 12 commercial roofing companies in San Antonio with zip, employee count, review count. Target business: "Alamo Roofing & Construction" (78209, 38 reviews). Output: Arbitrage matrix ranking 78207 as highest opportunity zone (Index 100.0, only 7 employees, 11 avg reviews). Visibility audit returns NOT MENTIONED for the target, with Presidio/Dolan/Premier Roofing dominating AI recommendations. Fusion step computes review gap (462) and revenue-at-stake ($39,270/mo) for 78207. Final 4-page brief names specific 90-day tactics (infrared moisture audits, review-velocity SMS triggers) tied to the exact numbers.
Example 2: Input: A vague request to "build a lead-gen product for HVAC companies." Output: Clarify niche + city first (the workflow only works with a bounded geography and category), then apply the same 7-step sequence substituting HVAC-specific review benchmarks and a facility-manager-oriented pitch angle.
- Bound the scope before starting: always lock a specific city + specific niche + specific target business name before running any prompts. Generic requests produce generic (unsellable) output.
- Isolate math from narrative: run the arbitrage calculation as its own step, separate from strategy writing, so the model doesn't blend fabricated numbers into confident-sounding prose.
- Use an explicit LTV/assumption constant (e.g., $85 per customer) and state it visibly in the report — it makes the revenue-at-stake number feel calculated rather than invented, and lets you swap it per vertical.
- Always run a confirmation/fusion step between data-gathering prompts and the final generation prompt in any multi-turn workflow — context and numbers silently drift or get conflated otherwise.
- Price by depth, not effort: a 30-minute version and a 120-minute version of the same workflow can be priced very differently ($99 vs $349+) based on how many verification/historical-context passes are added, not how long it literally takes.
- Keep the human in the fact-check seat — this is the trust layer that separates a sellable diagnostic from AI slop.
- Skipping the fusion/bridge step: pasting two disconnected AI outputs into one final prompt often causes the model to average, invent, or misattribute numbers between them.
- Forgetting to lock a $LTV or benchmark constant before generating financial claims — results in inconsistent dollar figures across report sections.
- Not defaulting missing employee/review counts to a safe non-zero value, causing broken ratio math.
- Treating the AI visibility check as a one-time fact — competitive rankings and citations shift; if reselling this as a subscription or recurring service, re-run the audit step regularly rather than reusing stale results.
- Over-trusting AI-generated financial figures without cross-checking them against the original spreadsheet — always do the human audit pass before packaging.
- One-shotting complex reports: trying to get the full 4-page brief in a single prompt without the decomposition/audit/fusion steps first produces generic, unverifiable filler text.