Install
$ agentstack add skill-revgrowth1-claude-code-skills-local-enrich ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Local Business Owner Enrichment Pipeline
End-to-end pipeline: Google Maps search -> Owner identification -> Email discovery -> Campaign-ready segmentation. 97% cheaper than Clay with 81% email coverage. Includes lead scoring, MX host classification, and cost tracking.
Docs: https://{YOURDOCSURL}/
4-Stage Pipeline
|Stage|Script|What It Does| |---|---|---| |1|1_scrape_maps.py|Scrape Google Maps via Serper API for business listings| |2|2_find_owners.py|5-layer waterfall to identify business owners (LinkedIn, BlitzAPI, web scraping, Facebook, state registries, LLM)| |3|3_find_emails.py|Parallel email waterfalls for personal + generic emails (Prospeo, IcyPeas, BlitzAPI, LeadMagic verification)| |4|4_prepare_campaigns.py|Score leads (A/B/C tiers), classify email hosts via MX, segment into campaign-ready CSVs|
Execution
# Full pipeline — query + location
python3 ./run_pipeline.py --query "plumbers" --location "Dallas, TX"
# Bulk mode — query file (one per line, or query|location)
python3 ./run_pipeline.py --query-file queries.txt
# Nationwide ZIP code scraping (one query per US ZIP code)
python3 ./run_pipeline.py --query "Juice bar" --zip-file ./data/us_zipcodes.txt --max-results 20
# Resume interrupted ZIP scrape
python3 ./run_pipeline.py --query "Juice bar" --zip-file ./data/us_zipcodes.txt --resume
# Start from existing CSV (skip Maps scraping)
python3 ./run_pipeline.py --input existing.csv
# Run a single step
python3 ./run_pipeline.py --query "plumbers" --location "Dallas, TX" --step 1
# Resume interrupted pipeline
python3 ./run_pipeline.py --query "plumbers" --location "Dallas, TX" --resume
Key Options
|Flag|Default|Purpose| |---|---|---| |--zip-file|-|ZIP code mode: text file with one ZIP per line, generates one query per ZIP| |--max-results|100|Max Maps results per query (use 20 for ZIP mode)| |--max-workers|1|Thread pool size for steps 2-3| |--step 1\|2\|3\|4|all|Run only a specific step| |--resume|off|Resume from checkpoints (includes ZIP scrape checkpoint)| |--skip-verify|off|Skip LeadMagic email verification| |--cost-file|auto|Path to cost tracking JSON (auto-created in output dir)| |-o, --output-dir|auto|Custom output directory|
Output
Creates a dated directory under ./output/ containing:
|File|Contents| |---|---| |businesses.csv|Step 1 - scraped business listings| |businesses_with_owners.csv|Step 2 - listings + identified owners| |businesses_enriched.csv|Step 3 - full enrichment with emails (+ lead_score, lead_tier after Step 4)| |campaigns/|Step 4 - campaign-ready CSVs segmented by email host x lead tier| |campaigns/segment_summary.json|Step 4 - segment counts, tier/host distributions, sendable rate| |cost_tracking.json|API call counts and costs across all steps| |stats.json|Pipeline statistics|
Step 4: Campaign Preparation
Step 4 transforms enriched leads into campaign-ready CSVs. Three operations:
- Lead Scoring (0-100, A/B/C tiers): Owner confidence (40pts), email quality (35pts), data completeness (15pts), business signals (10pts). Tiers: A >= 70, B >= 40, C env var ->
~/.env.
|Key|Used In| |---|---| |SERPER_API_KEY|Steps 1, 2| |BLITZ_API_KEY|Steps 2, 3| |LLM_ENDPOINT, LLM_API_KEY, LLM_MODEL|Step 2 (owner extraction via LLM)| |PROSPEO_API_KEY|Step 3| |ICYPEAS_API_KEY, ICYPEAS_API_SECRET|Step 3| |LEADMAGIC_API_KEY|Step 3 (email verification)|
Important Notes
- ALWAYS verify emails before sending campaigns (don't use
--skip-verifyfor production lists) - ZIP mode uses
data/us_zipcodes.txt(40,781 US ZIP codes) for nationwide coverage. Use--max-results 20(most ZIPs have few results per vertical). Checkpoints every 100 queries, progress every 500. - Step 2 uses LLM analysis — configure
LLM_ENDPOINTfor owner extraction from web pages - Checkpoints save progress per step — safe to interrupt and resume
- The
texas_queries.txtfile contains example queries for trade service verticals
Script: ./run_pipeline.py
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Revgrowth1
- Source: Revgrowth1/claude-code-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.