SiteSmith Outreach

Initializing outreach ops...

Saved:
Quick select:
Business Contact Location Trade Website Templates Stage Last Touch Owner Note Bucket

Tier Definitions

Priority
Pre-verified leads from the cohort scoring model. These 26 accounts were hand-selected based on multi-dimensional fit: trade, location, review volume, and verified website gap. Not a score range — they are the best leads in the batch. Contact within 24 hours of email send. Do not let these go stale — Priority leads that age past 7 days of "sent" without a follow-up call are a direct miss.
Hot
High-intent leads (typically score 65-80) with strong Google presence and consistent review velocity. These businesses have proven market demand and an obvious website gap. The first 3-touch email sequence targets hot leads as the primary send wave. Expect 8-15% reply rate. Work every hot reply same day — they close fast or go cold.
Warm
Moderate intent (score 50-65) with a good business profile but softer urgency signals. These are the volume layer of the batch. Send after hot is exhausted or in parallel as sequence fill. Expect 3-7% reply rates. Warm leads benefit most from the voicemail touch — many won't reply to email but will return a professional call.
Cold
Lower intent score (<50) or weaker ICP match. Include only in bulk volume sends. Do not burn priority call time on cold leads before working through hot and warm. Cold tier does produce occasional surprises — someone with a low score but a 5-star rating and no website is a hidden opportunity.
Unknown
Tier was not assigned by cohort scoring (lead not in ship-targets CSV). Use the "Auto-grade" button in the main CRM to assign tier based on intent score + website gap signal. Or assign manually via the status dropdown per lead.

Outreach Eligible

A lead is outreach-eligible when all four conditions are met: (1) email is verified — personal email preferred, info@ and contact@ addresses have 3-5x lower reply rates; (2) business is a local service trade with an active Google Maps presence; (3) at least 10 Google reviews exist, signaling an established operator who pays for services; (4) website gap is confirmed — either no website or only a Facebook page. Leads with a real website can still be outreach-eligible if the site is clearly low-quality, but require a differentiated pitch angle.

Render Status

StatusMeaning
RenderedPreview site fully built and deployed to Cloudflare Pages. Safe to include in outreach email. Always verify the preview URL loads before hitting send.
PendingPreview site queued for build or build failed. Do NOT include in any outreach — broken preview links kill reply rates.

Status Progression

A lead can only move forward in rank, never backward (enforced by STATUS_RANK system). Manual override allowed if a lead is incorrectly marked.

Not Sent → Pulled → Sent → Replied → Meeting Booked → Meeting Had → Closed
↘ no response → re-engage after 60 days

CRM Next-Level Builds

Build 1 — Instantly Real-Time Sync (Highest ROI, $0 added cost)

Architecture is fully designed. Cloudflare KV stores status per lead. A _worker.js Pages Function receives Instantly webhooks (email_opened, reply_received, email_bounced) and updates KV. Dashboard fetches /api/status on load and applies overrides. Result: zero manual "Mark Sent" work — statuses update automatically as leads engage. Setup: ~6 hrs one-time. Prerequisite: KV namespace created + webhook secret configured.

Build 2 — Last-Activity Smart Queue (High Value, 1-2 hrs)

Extend the assignee filter to surface a daily "Follow-Up Queue" view: all leads in status=sent OR replied, sorted by days-since-last-activity descending. Pinned to top of CRM as a banner. Each morning: open the queue, call top 10. Inspired by HubSpot's "No Activity in 30 Days" and Gong's deal-risk signals. Pure localStorage, no new infrastructure.

Build 3 — AI Predictive Re-Scoring (Medium Value, ~$2/1k leads)

Nightly Claude Haiku job reads each lead's data + current status + notes + website_status and outputs a 0-100 fit score + recommended tier + 1-sentence pitch angle. Replaces static cohort scoring with dynamic re-scoring that improves as more deals close. Cost: ~$0.002/lead × 1,000 = $2/run. Build trigger: after 10+ closed deals so the model has real outcome data to learn from.

Build 4 — Reply Bucket Badge (Highest Velocity ROI, ~3 hrs)

When reply-draft-bot classifies a reply, the bucket (🔥 HOT / ✅ INTERESTED / ⚡ OBJECTION / ❌ WRONG PERSON) appears as a colored badge on the lead row — visible without opening Gmail. Eliminates tab-switching to triage reply urgency. You know at a glance whether to call back in the next 10 minutes (HOT) or send a follow-up (OBJECTION). Also powers a one-click "Needs Response" filter. Requires Part 2 reply automation deployed (bucket field stored in KV alongside status). Build time: ~3 hrs.

Build 5 — One-Click Call Prep Card (High Value, ~2 hrs)

A button on each lead row opens a 30-second call brief: owner name, trade, city, current website grade (no site / Facebook / real), Google rating + review count, preview URL (tap to open), reply bucket if available, and all saved notes. Everything needed for a confident opener before dialing — no tab switching. Higher close rate via personalized, confident cold call openers. Pure localStorage + manifest data, zero new infrastructure.

Build 6 — 48-Hour At-Risk Queue (Free Revenue, ~3 hrs)

Persistent banner above the CRM table surfacing three bleeding-revenue categories: (a) Status = Sent, ≥48 hrs elapsed, no reply logged; (b) Status = Replied, ≥24 hrs elapsed, not yet Call Connected or later; (c) Status = Call Connected, ≥48 hrs elapsed, not Closed or Booked. Sorted by time-at-risk descending. Each morning: work the top 5 in 20 minutes. This is the free-revenue view — reactivating warm leads costs $0 vs. finding new cold ones. Pure localStorage + timestamp reads, no new infrastructure.