# Lead Gen

> Construction industry lead generation for Gaudon Silicone. Triggers on: "find leads", "lead gen", "construction leads", "find contractors", "find distributors", "prospect list", "sales leads", "find glazing companies". Uses Gemini API with Google Search grounding to find real companies with contact info, outputs professional Excel spreadsheets for sales outreach.

- Skill: `theaayushstha1/lead-gen` (Agent Skill, multi-file: 7 files)
- Install (CLI): `npx skillmds@latest add theaayushstha1/lead-gen`
- Raw SKILL.md: https://api.skillmd.com/api/skills/theaayushstha1/lead-gen/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- Author: theaayushstha1 (https://skillmd.com/u/theaayushstha1)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/theaayushstha1/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-genai` and `openpyxl` installed
- 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:

```bash
python3 ~/.agents/skills/lead-gen/scripts/research_leads.py \
  --count <N> \
  --region "<region>" \
  --category "<category>" \
  --output /tmp/gaudon-leads.json
```

The script:
1. Reads target profiles from `references/target-profiles.md`
2. Calls Gemini 2.5 Flash with Google Search grounding
3. Sends category-specific prompts requesting structured company data
4. Batches requests across categories if "all" is selected
5. 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

```bash
python3 ~/.agents/skills/lead-gen/scripts/generate_leads_xlsx.py /tmp/gaudon-leads.json
```

Optionally recalculate formulas (requires LibreOffice installed):

```bash
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

1. **Public info only**: Only collect publicly available business contact information
2. **No login scraping**: Never scrape behind authentication walls
3. **Cap at 100**: Maximum 100 leads per session to avoid API abuse
4. **No personal data**: Focus on business contacts, not personal information
5. **Respect robots.txt**: Do not bypass website access restrictions

## Integration with Other Skills

- **gmail**: Use outreach templates from `references/outreach-templates.md` to draft cold emails
- **xlsx**: Use recalc.py to verify formula integrity in generated spreadsheets
- **gcal**: Schedule follow-up reminders for outreach campaigns

