The lead intelligence plan, revised
Version 2, rebuilt on your feedback: enrichment goes much deeper, sending moves to a subdomain you already own, no postal address required, and every outbound email carries a designed ZCC signature. Still plan-stage: nothing built, no lead touched, nothing sends without you.
- Enrichment depth. The shallow six-source pass is gone. It is now a seven-family signal map (60+ signals) plus a set of signals we added that were not in your brief, marked ADDED throughout. Depth is the moat; this section is most of the page.
- Sending identity. Locked to a dedicated subdomain,
outreach.zionclickcreate.com, with its own SPF/DKIM/DMARC and gentle warmup. No throwaway domain purchase (v1 got this wrong: a fresh domain has zero reputation and lands in spam more; the subdomain borrows trust from a domain that already sends legitimately). - No postal address. Not required at your volume, and none gets published. Credibility ships as a designed branded signature instead, with a footer slot where a CAN-SPAM address can drop in later if you ever scale into bulk volume (a $5/mo virtual mailbox at that point). No redesign needed.
- Branded email signature. New deliverable: a polished HTML signature (ZCC ">_" mark, teal, wordmark) auto-applied to every outbound email. Mock below in section 07.
- Your 32 prospects have zero email addresses on file. The engine hunts contacts first, then builds the deepest public-data profile any local studio has: identity, digital-maturity gaps, reputation with review-text mining, marketing spend, revenue proxies, decision-maker, and why-now triggers.
- Each profile synthesizes into five outputs: a revenue estimate band (labeled an estimate), a digital-maturity gap score that drives what to pitch, review-sourced pitch hooks, the best verified contact, and a why-now line.
- Band drives price: setup $100/$250/$500/$750+ with a $50-$100 monthly retainer, never zero monthly. One-line rationale on every recommendation.
- Outreach drafts from the profile and hooks, queues in batches, and only your one-tap approval sends. Subdomain sender, branded signature, throttled and warmed.
- Three build phases, each verified on a fake test lead before touching a real one. I need your GO plus three calls at the bottom.
32 prospects, cold and under-profiled
Live numbers from the zcc-clients database, read-only.
Mostly Memphis proper (21), plus Horn Lake, Southaven, West Memphis, Germantown, Cordova, Collierville, Bartlett. Top categories: nail salons, beauty supply, barbershops, tattoo, soul food, food trucks. Free-text categories get normalized to your existing vertical map so templates and benchmarks match correctly.
What gets added to the admin
| Mode | What it does | Where it lives |
|---|---|---|
| Research view | Per-lead intelligence page: profile, gap score, revenue band with evidence, recommended price, pitch hooks, drafted pitch, screenshots, one-tap actions | New page linked from every prospect card |
| Enrichment engine | Pulls the full signal map per lead, mines the text, writes the profile | Runs on CT236 (same pattern as your finder/scorer), results land in D1 |
| Pricing recommender | Band + gap score in, setup tier + monthly + one-line rationale out | Shared pricing config used by the admin and Stripe close (today hardcoded in two places that can drift) |
| Assisted outreach | Hook-personalized drafts, batch review, one-tap approve, throttled subdomain send with the branded signature, reply tracking | Extends your existing single draft path and Outreach tab, no second pipeline |
Seven families, sixty-plus signals, public and legal only
This is the moat. Everything below comes from public sources, respects ToS and robots, never logs into anything, and stores what prices the pitch rather than a dossier. Signals marked ADDED are ours, on top of your brief.
F1 Identity and structure
Who they legally are and how established.
- TN Secretary of State entity: type, formation date, officers, registered agent, active or delinquent status. DBA and fictitious-name filings.
- Memphis and Shelby County business licenses; professional licenses where the vertical requires one; health-department inspection scores for food businesses.
- ADDED MS and AR Secretary of State lookups for the 7 out-of-state leads (Horn Lake, Southaven, West Memphis).
- ADDED Delinquent or administratively dissolved entity status doubles as a why-now hook: they have paperwork problems and probably no one minding the digital side either.
F2 Digital-maturity gap THE QUOTE DRIVER
What they are missing is exactly what you sell. Scored 0 to 100.
- Website exists at all; domain age, expiry date, registrar and host (WHOIS/RDAP); DIY builder (Wix, Squarespace, GoDaddy) vs real build; SSL valid; stale footer copyright year.
- PageSpeed and mobile-friendliness scores; schema, meta and analytics presence; ranks for their own name and one money keyword.
- Google Business Profile: claimed, completeness, photo recency, posts.
- ADDED Facebook-page-as-only-website detection. A big slice of Memphis SMBs run entirely on a Facebook page; that is a stronger pitch signal than a bad website.
- ADDED Email professionalism: business runs on @gmail/@yahoo instead of a domain address, or owns a domain with no mail set up on it (MX check). A clean domain-email upsell to attach to every build.
- ADDED Wayback Machine history: they HAD a website that died. "Your old site at X went dark in 2024" is one of the strongest openers there is.
- ADDED NAP consistency: name, address and phone disagree across Google, Yelp and directories. A concrete, fixable local-SEO deficiency to name in the pitch.
F3 Reputation and demand THE REVENUE ESTIMATOR
How much business flows through, and what customers say.
- Review count, rating and VELOCITY (reviews per month, age-normalized) across Google, Yelp, Facebook, and vertical platforms (Booksy and StyleSeat for barbers and salons); owner response rate; last-review date.
- Review-TEXT mining: a cheap model pass extracts pitch hooks from what customers actually wrote: "no website," "couldn't find their hours," "hard to book," "DM'd and never heard back."
- ADDED Competitor delta: pull the top 3 same-category businesses within about 2 miles and diff them. "The shop four blocks over has 4x your reviews and online booking" is the line that closes a one-call sale.
- ADDED Unanswered negative reviews count, flagged when a 1-2 star sits public with no owner reply. Urgent, personal, and fixable by the retainer.
- ADDED Gone-quiet flag: no new review in 6+ months on a previously active profile signals decline or zero collection effort. Different pitch either way.
F4 Marketing spend
Are they already paying someone? Budget exists.
- Meta Ad Library: running FB/IG ads, and for how long. Google Ads presence on branded searches.
- Booking tool in use (Booksy, Square, Calendly, StyleSeat) or none; which tier where visible.
- Instagram public-page level: follower count, post cadence, link-in-bio stack (the link-in-bio page itself is public web and resolves their whole footprint: the OSINT resolver you flagged).
- ADDED Job postings on Indeed or similar: hiring means budget and growth, and growth businesses buy websites.
F5 Firmographic and revenue proxies
Bracket the money honestly.
- Employee count (team page, LinkedIn public page as a floor, job postings); number of locations; price tier from their own public menu or price list and Google $ signs; Google popular-times foot traffic.
- Census County Business Patterns by NAICS and ZIP plus SUSB revenue-per-employee to bracket revenue; Nonemployer Statistics (about $57k average receipts) for the solo operators most of this list will be.
F6 Decision-maker and contact
Who to talk to and where they actually answer.
- Owner name triangulated from SoS officers, GBP owner replies, IG bio, and signed review responses. Direct email and phone only from their own public surfaces.
- Best-responding channel per lead: email, phone, or a manual DM.
- ADDED Email verification before any send (MX and mailbox-level checks, no email actually sent). Keeps bounces near zero, which protects the new subdomain's reputation from day one.
- ADDED Contact confidence score, so you know at a glance whether the engine found a real inbox or is guessing.
F7 Why-now triggers
The reason this email arrived this week and not whenever.
- Domain expiring soon; business recently opened or GBP just created; a nearby competitor just launched a slick site; vertical seasonality (prom season for salons, summer for detailing, tax season, holidays for restaurants).
- ADDED Dead former website (from F2's Wayback check), delinquent entity status (F1), and a fresh unanswered negative review (F3) all promote into why-now lines automatically.
What every profile synthesizes into
| Output | Drives |
|---|---|
| Revenue estimate band + confidence + the signals behind it | The price tier |
| Digital-maturity gap score (0-100) + the specific gaps | What the pitch offers to fix |
| Pitch hooks (2-3, review-sourced, quoted from real customers) | The personal, non-robotic opener |
| Best contact + verified email + owner name | Where the pitch goes |
| Why-now line | The urgency, honestly earned |
Two engine-level additions of ours: a screenshot pass (their current site or Facebook page, captured on CT236) so the research view can show their web presence next to the auto-generated ZCC pitch site your platform already builds: the before/after that closes deals. And per-source freshness timestamps with a profile-completeness meter, so a stale or thin profile is visible instead of silently wrong.
Fences, unchanged and hard: public sources only, no login-walled scraping, no purchased data, robots and ToS respected, revenue is always an estimate labeled as such, and we store extracted signals plus short quotes, never bulk dumps. No tax records; they are not public anyway.
A band with evidence, never a fake filed number
Anchor
Estimated headcount × revenue-per-employee for their industry (Census micro-firm data, NAICS×ZIP adjusted). No headcount signal, then the industry per-firm average, held one band wide.
Level signals
Review velocity, price tier, foot-traffic pattern, location count. Can move the anchor one band.
Confidence
Years registered, ad activity, and profile completeness set confidence (high, medium, low). Under 2 years registered biases down and caps confidence.
| Band | Typical profile at this level |
|---|---|
| UNDER $100K | Solo operator, no team page, under 2 reviews a month, no ads, young registration |
| $100K TO $250K | 1 to 3 staff in a low revenue-per-head vertical (salon, barber, food truck) |
| $250K TO $1M | Headcount math lands here, or 2 locations, or strong review pace plus active ads |
| $1M PLUS | 3+ locations, or 10+ staff, or headcount math clears $1M |
Honest expectation: most of the current 32 land in the bottom two bands. That is exactly the volume-stacking market you described.
Setup flexes to ability to pay, the monthly compounds
Proposed tiers, yours to adjust. The floor rule is wired in: no recommendation ever comes out as a pure one-time with no retainer.
| Estimate band | Setup | Monthly | Read |
|---|---|---|---|
| UNDER $100K | $100 | $50/mo | Get in the door, own the domain, stack the chip |
| $100K TO $250K | $250 | $75/mo | The bread-and-butter Memphis close |
| $250K TO $1M | $500 | $75/mo | They can pay for the build, retainer stays easy to say yes to |
| $1M PLUS | $750+ | $100/mo | Custom scope, or route to your existing premium plan |
The gap score shapes the pitch contents at any price: a high-gap lead gets "you are invisible and here is the fix," a low-gap lead gets "your presence is fine but it books nothing." Every recommendation ships with a rationale built from actual signals:
"Registered 2021, solo shop, steady 2 reviews a month at price tier $$, Facebook page only, three reviews mention not finding hours. Band: $100k to $250k, medium confidence. Gap score 82. Recommend $250 setup + $75/mo."
The tier table lives in one shared config (D1), so the admin display and the Stripe payment link can never drift apart again. Your current starter and premium plans stay untouched as the fallback.
Drafted by the engine, sent only by you
Draft
Each pitch opens on a review-sourced hook or why-now trigger, names the specific gaps, and lands the calibrated price. Runs through your existing template + exemplar system, so your edits keep teaching it.
Batch review
Drafts queue in batches of 10 to 15 in the Outreach tab. You read, edit inline, kill what you don't like.
One-tap approve
Approving a batch is the only way anything sends. Hard gate in the code, default off, same invariant the platform already enforces.
Throttled send + tracking
5 to 10 an hour, business hours, spread out, every send wearing the branded signature. Replies flip the lead to replied and surface in the pipeline you already work.
Sending identity: outreach.zionclickcreate.com DECIDED
- A dedicated sending subdomain you already own. Its own SPF, DKIM and DMARC records in Cloudflare DNS (we control it), wired into the existing SMTP path. Root-domain mail is untouched and protected: if cold outreach ever dings reputation, the damage is fenced to the subdomain.
- No throwaway domain purchase. A fresh domain has zero history and spam-folders more, not less. The subdomain inherits the trust your real domain has been earning.
- Warmup: weeks 1-2 at 5-10 a day to friendly inboxes, weeks 3-4 at 15-25, then hold at 25-30 cold sends a day max. At 32 leads the whole book is 2 to 3 careful days once warmed. Postmaster Tools watched, bounces held under 2% (the pre-send email verification in F6 does most of that work).
- Craft: plain text body, 50 to 125 words, one specific observation about their business, subject 4 to 7 words, 3 touches max then stop. The existing AI-tell and em-dash blocklist stays on every draft.
- Channels: email is the automated lane. SMS is never automated (TCPA exposure runs $500 to $1,500 per text). Instagram DMs stay manual copy-paste, exactly like today.
- Compliance without an address: honest From name, working unsubscribe honored immediately and kept on a permanent suppression list, truthful subject lines. The footer template reserves a labeled slot so a postal address (a $5/mo virtual mailbox) can drop in later without touching the design, only needed if you ever scale into true bulk volume.
Credibility by design, on every send
Every outbound email (cold, inbound replies, confirmations) auto-carries a designed ZCC signature instead of a bare name. HTML built table-based so it renders in Gmail, Outlook and Apple Mail, with the mark hosted on zionclickcreate.com (already your CDN) plus alt-text fallback, and a plain-text mirror for text-only clients. Mock:
Exact wording, phone number, and tagline are yours to call (decision 3 below). The teal is your #17c7b4, the ">_" mark is your existing brand device. The reserved footer slot for a future postal address sits under the tagline, invisible until filled. Built once in Phase 3, applied by the send path automatically, never pasted by hand.
Small additions, nothing rebuilt
prospect_enrichment: one row per lead: revenue band + confidence + signals JSON, gap score + gaps JSON, pitch hooks JSON, why-now, owner name, verified contact + confidence, competitor delta, tech and domain facts, screenshot refs, per-source fetched-at timestamps.pricing_config: the tier table, one place, editable.outreach_batchesplus a batch id on the existing drafts table: the approval gate and audit trail (drafted → approved → sent → replied).suppression: opt-outs and bounces, permanent.
Additive migrations in the repo's existing numbered style. Every touched file gets a .bak first. Google Places content is refetched rather than warehoused (their terms); we store our derived numbers with timestamps. Screenshots live on CT236, served through the existing bridge.
Store what prices the pitch, not a dossier
- Business-level facts plus the owner's name and business contact info only. No personal-life data, no home addresses, no tax anything, no purchased data.
- Review text is kept only as extracted hooks and short quotes, never full dumps. Raw fetch payloads live briefly for debugging, then drop.
- Enrichment rows and screenshots for dismissed or closed-lost leads purge after 90 days. The suppression list is permanent, because compliance requires it.
- A RETENTION.md in the repo documents exactly what is stored and why.
Three phases, each verified before the next
Enrichment engine + research view
Contact discovery and verification first, then the seven signal families and the mining pass, then the per-lead research page. Verified end to end against a fake test prospect before any real lead is enriched.
Pricing recommender
Band + gap score to tier to rationale, shared config, shown in the research view and wired to the Stripe close.
Assisted outreach
Subdomain DNS + auth records, the branded signature, hook-driven drafts, batch approval gate, throttled sender, suppression. Warmup runs alongside.
Heavy work on CT236, admin on Cloudflare, CT260 orchestrates. Milestone ping after each phase. Everything reversible.