Find local businesses without websites, generate website proposals, and send outreach emails. Use when: (1) Finding businesses without online presence via Google Maps/search, (2) Creating website proposals for small businesses, (3) Sending cold outreach emails with pricing packages, (4) Building lead lists for web design services.
Automated workflow for finding local businesses without websites and sending them professional website proposals.
# Find businesses in a specific niche/location
python scripts/find_businesses.py --location "New York" --industry "restaurants" --limit 50
# Generate proposal emails
python scripts/generate_proposals.py --input leads.csv --template assets/email-templates/proposal.md
# Send emails (requires SMTP config)
python scripts/send_emails.py --input proposals.csv --smtp-config ~/.openclaw/smtp.json
Use scripts/find_businesses.py to search for businesses:
python scripts/find_businesses.py \
--location "Los Angeles, CA" \
--industry "retail" \
--limit 100 \
--output leads.csv
Parameters:
--location: City/region to search--industry: Business category (restaurants, retail, services, etc.)--limit: Max results (start with 20-50 for testing)--output: CSV file for leadsOutput CSV format:
business_name,address,phone,email,industry,google_maps_url,has_website
Use scripts/generate_proposals.py to create personalized emails:
python scripts/generate_proposals.py \
--input leads.csv \
--template assets/email-templates/proposal.md \
--output proposals.csv
Email Template Variables:
{{business_name}} - Business name{{owner_name}} - Owner/contact name (if available){{location}} - Business location{{industry}} - Industry typeUse scripts/send_emails.py for email delivery:
python scripts/send_emails.py \
--input proposals.csv \
--smtp-config ~/.openclaw/smtp.json \
--rate-limit 50 \
--delay 60
SMTP Config Format (~/.openclaw/smtp.json):
{
"host": "smtp.gmail.com",
"port": 587,
"username": "[email protected]",
"password": "app-password",
"from_name": "Your Name"
}
CAN-SPAM Act (US) Requirements:
GDPR Considerations:
Best Practices:
| Script | Purpose | Input | Output |
|---|---|---|---|
find_businesses.py | Search for businesses | Location, industry | CSV with leads |
generate_proposals.py | Create email drafts | Leads CSV | Proposals CSV |
send_emails.py | Send outreach emails | Proposals CSV | Delivery log |
track_responses.py | Monitor replies | Email inbox | Response report |
Pre-built templates in assets/website-templates/:
restaurant/ - Restaurant/cafe templateretail/ - Retail store templateservices/ - Service provider templateprofessional/ - Professional services templateEach template includes:
Pre-built templates in assets/email-templates/:
proposal.md - Main proposal emailfollow-up-1.md - First follow-up (3 days)follow-up-2.md - Second follow-up (7 days)thank-you.md - After conversionEmail Sending:
Google Maps Scraping:
Tracking:
Common Issues:
scripts/setup_wizard.py - Interactive setup wizardscripts/find_businesses.py - Business discovery (manual/Selenium/API)scripts/generate_proposals.py - Personalized email generationscripts/send_emails.py - Campaign delivery with rate limitingassets/email-templates/proposal.md - Main proposal emailassets/email-templates/follow-up-1.md - First follow-upassets/website-templates/restaurant/index.html - Restaurant templateassets/website-templates/retail/index.html - Retail store templateassets/website-templates/services/index.html - Service provider templateREADME.md - Complete overviewQUICKSTART.md - Quick start guideBUSINESS_PLAN.md - Full business strategyreferences/compliance.md - CAN-SPAM, GDPR guidelinesreferences/manual-research.md - Manual research guideassets/sender-info.example.json - Sender info templateassets/sample-leads.csv - Sample lead data