Enrich Leads Workflow
Prerequisites
- Leads already scraped via
scrape_leads.py - Google Sheet populated in client's "Leads" folder
- Sheet contains at minimum: business_name, phone, website, address
Input Required
- Google Sheet URL: The sheet containing scraped leads
- Client Name: For referencing their BrandScript (optional)
- Niche: Type of business (cleaning, HVAC, med spa, etc.)
Phase 1: Load Existing Data
- Open the Google Sheet URL provided
- Read all rows with business data
- Identify which columns already exist
- Add new columns if not present:
gap_scoretierhas_bookinghas_chathas_lead_capturesocial_presenceloom_briefenriched(checkbox to track progress)
Phase 2: Website Analysis (Per Business)
For each row where enriched is not checked:
2.1 Visit Website
Navigate to the website URL and analyze:
Technical Checks:
- [ ] Page loads successfully (yes/no)
- [ ] Mobile responsive (resize window to test)
- [ ] SSL present (https://)
- [ ] Load time (fast < 3s / medium 3-6s / slow > 6s)
Lead Capture Checks:
- [ ] Has contact form
- [ ] Has online booking/scheduling widget
- [ ] Has chat widget (look for Drift, Intercom, Tidio, etc.)
- [ ] Has popup or lead magnet
- [ ] Has clear CTA above fold
- [ ] Phone number clickable on mobile
Content Checks:
- [ ] Has testimonials displayed
- [ ] Has Google reviews embedded
- [ ] Has service pages (not just homepage)
- [ ] Has about/team page
- [ ] Has blog (note last post date)
2.2 Capture Screenshot
Take screenshot of homepage for Loom reference.
Save to: /outputs/screenshots/[business-name-slug].png
Phase 3: Social Media Analysis (Per Business)
3.1 Facebook
Search for business on Facebook or check if FB link exists:
- Page exists? (yes/no)
- Follower count
- Last post date
- Posting frequency: daily / weekly / monthly / dormant (>30 days)
- Reviews enabled?
3.2 Instagram
Search for business on Instagram:
- Profile exists? (yes/no)
- Follower count
- Last post date
- Content quality: professional / amateur / none
3.3 Determine Social Presence
- Strong: Posts weekly+ on at least one platform
- Weak: Posts monthly or inconsistent
- None: No active social or dormant >60 days
Phase 4: Review Analysis (Per Business)
Check Google Business Profile (from Maps or search):
- Star rating (1-5)
- Total review count
- Owner response rate:
- Responds to most (>50%)
- Responds to some (10-50%)
- Rarely/never responds (
<10%)
Phase 5: Calculate Gap Score
Add points for each missing element:
| Gap | Points |
|---|---|
| No online booking | +20 |
| No chat widget | +15 |
| No lead capture form | +15 |
| No email capture/lead magnet | +10 |
| Slow/outdated website | +15 |
Dormant social (<1 post/month) | +10 |
Low review response rate (<10%) | +10 |
| No clear CTA on homepage | +5 |
Total possible: 100 points
Assign Tier
- A-Tier (70-100): High priority - multiple gaps, strong candidate
- B-Tier (40-69): Medium priority - some gaps, worth pursuing
- C-Tier (0-39): Low priority - already has systems in place
Phase 6: Generate Loom Brief
For A-Tier and B-Tier prospects, create a Loom Brief following StoryBrand:
## {{business_name}}
**HOOK** (personalize with something specific):
[Recent social post, promotion, or unique service they offer]
**THE PROBLEM** (empathy first):
- External: [What's visibly broken - no booking, slow response, etc.]
- Internal: [How this probably makes them feel - overwhelmed, leaving money on table]
- Stakes: [What they're losing - leads, revenue, time]
**3 GAPS TO MENTION**:
1. {{gap_1}} → [Impact: what this is costing them]
2. {{gap_2}} → [Impact: what this is costing them]
3. {{gap_3}} → [Impact: what this is costing them]
**THE PLAN** (simple 3 steps):
1. We audit your current lead flow
2. We build the automation (AI + CRM + follow-up)
3. You capture more leads without extra work
**SUCCESS PICTURE**:
[Paint what their business looks like after - more leads coming in overnight,
automatic follow-up, no more missed calls, etc.]
**SCREENSHOT**: screenshots/{{business-slug}}.png
Phase 7: Update Google Sheet
For each row processed, update:
gap_score: Calculated scoretier: A, B, or Chas_booking: Yes/Nohas_chat: Yes/Nohas_lead_capture: Yes/Nosocial_presence: Strong/Weak/Noneloom_brief: Generated brief (or link to file)enriched: Check the box
Phase 8: Generate Summary
After all rows processed, create summary:
# Lead Enrichment Summary
**Sheet**: [Google Sheet URL]
**Date**: [Current date]
**Total Leads**: [count]
## Tier Breakdown
- A-Tier (Ready for Loom): [count]
- B-Tier (Consider for Loom): [count]
- C-Tier (Skip for now): [count]
## Top 10 Prospects by Gap Score
| Business | Score | Top Gaps |
|----------|-------|----------|
| [name] | [score] | [gaps] |
...
## Common Gaps Found
- No online booking: [X]% of leads
- No chat widget: [X]% of leads
- Dormant social: [X]% of leads
- Low review response: [X]% of leads
## Recommended Actions
1. Record Looms for top [X] A-Tier prospects
2. Import to GHL with "Prospect - Cold" tag
3. Review B-Tier for second batch
Usage
Run this workflow after scrape_leads.py:
/enrich-leads
Then provide:
- Google Sheet URL from the scrape
- Client name (optional, for BrandScript reference)
- Niche type
Performance Notes
- Expect 2-3 minutes per lead for thorough analysis
- 25 leads ≈ 60-75 minutes
- Run in Planning Mode for best results
- Can pause and resume - check
enrichedcolumn to skip completed rows
Browser Allowlist Required
- Google Sheets (docs.google.com)
- Google Maps (maps.google.com)
- Facebook (facebook.com)
- Instagram (instagram.com)
- Yelp (yelp.com)
- Any business websites being analyzed