Skip to main content

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

  1. Open the Google Sheet URL provided
  2. Read all rows with business data
  3. Identify which columns already exist
  4. Add new columns if not present:
    • gap_score
    • tier
    • has_booking
    • has_chat
    • has_lead_capture
    • social_presence
    • loom_brief
    • enriched (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:

GapPoints
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 score
  • tier: A, B, or C
  • has_booking: Yes/No
  • has_chat: Yes/No
  • has_lead_capture: Yes/No
  • social_presence: Strong/Weak/None
  • loom_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:

  1. Google Sheet URL from the scrape
  2. Client name (optional, for BrandScript reference)
  3. 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 enriched column 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