lead-gen
Lead Generation Skill for Gaudon Silicone
Generate targeted prospect lists of construction industry companies (contractors, distributors, supply stores) with verified contact information. Outputs a formatted Excel spreadsheet ready for sales outreach.
Prerequisites
- Python 3 with
google-genaiandopenpyxlinstalled - Gemini API key stored in
references/credentials.md - Internet access for Google Search grounding
Command Routing
| User Says | Count | Region | Category |
|---|---|---|---|
| "find 50 leads in Texas" | 50 | Texas | all |
| "find glazing companies in CA" | 25 | California | glazing |
| "lead gen distributors nationwide" | 25 | US (all) | distributors |
| "find 100 roofing contractors in Florida" | 100 | Florida | roofing |
| "find leads" (bare) | 25 | US (all) | all |
Defaults: count=25, region="United States", category="all" Max: 100 leads per session
Workflow (4 Phases)
Phase 1: Parse User Request
Extract from the user's message:
- count: Number of leads (default 25, max 100)
- region: US state, city, or "United States" for nationwide
- category: One of the 8 target profiles or "all"
Map common terms to categories:
- "glazing", "glass" -> glazing
- "distributors", "wholesale" -> distributors
- "waterproofing", "sealing" -> waterproofing
- "window", "door" -> window_door
- "roofing", "roof" -> roofing
- "general contractor", "GC" -> general_contractor
- "supply store", "hardware" -> supply_store
- "facade", "cladding", "EIFS" -> facade
Phase 2: Research via Gemini
Run the research script:
python3 ~/.agents/skills/lead-gen/scripts/research_leads.py \
--count <N> \
--region "<region>" \
--category "<category>" \
--output /tmp/gaudon-leads.json
The script:
- Reads target profiles from
references/target-profiles.md - Calls Gemini 2.5 Flash with Google Search grounding
- Sends category-specific prompts requesting structured company data
- Batches requests across categories if "all" is selected
- Returns JSON with leads array and metadata
If the script fails (API error, rate limit), fall back to manual research:
- Use WebSearch to find companies matching the target profiles
- Use WebFetch to extract contact details from company websites
- Manually build the JSON in the same format
Phase 3: Deduplicate & Score
The research script handles this automatically:
- Normalizes company names (strips LLC, Inc, Corp, etc.)
- Deduplicates by company name, domain, and phone
- Scores completeness 0-10:
- Has email: +3
- Has phone: +2
- Has contact person: +2
- Has website: +1
- Has address: +1
- Has category: +1
- Sorts by score descending
Phase 4: Generate Excel
python3 ~/.agents/skills/lead-gen/scripts/generate_leads_xlsx.py /tmp/gaudon-leads.json
Optionally recalculate formulas (requires LibreOffice installed):
python3 ~/.agents/skills/xlsx/recalc.py ~/Desktop/gaudon-leads-<region>-<date>.xlsx
Note: If LibreOffice is not installed, skip recalc. Formulas auto-calculate when opened in Excel or Google Sheets.
Output file: ~/Desktop/gaudon-leads-<region>-<date>.xlsx
Tell the user:
- Total leads found
- Breakdown by category
- Average completeness score
- File location
- Suggest next steps (review, filter by score, start outreach via gmail skill)
Safety Rules
- Public info only: Only collect publicly available business contact information
- No login scraping: Never scrape behind authentication walls
- Cap at 100: Maximum 100 leads per session to avoid API abuse
- No personal data: Focus on business contacts, not personal information
- Respect robots.txt: Do not bypass website access restrictions
Integration with Other Skills
- gmail: Use outreach templates from
references/outreach-templates.mdto draft cold emails - xlsx: Use recalc.py to verify formula integrity in generated spreadsheets
- gcal: Schedule follow-up reminders for outreach campaigns