Autonomous lead generation that finds, researches, and qualifies prospects daily.
If skills/lead-hunter/scripts/config.json has "configured": false, run the onboarding interview before anything else. See references/onboarding.md for the full interview flow.
After onboarding, the config is written and the skill switches to hunt mode.
Read skills/lead-hunter/scripts/config.json for:
company - who you are and what you sellideal_customer - size, stage, geography, signalssources - where to find leads (industry-specific)output - where to put leads (asana, notion, csv, markdown)outreach - DM template and personalization rulesfilters - what to skipFor each source in config.sources:
web_fetch first (fastest, no deps)scripts/scrape.py which uses Crawl4AI with stealth modeweb_search with site: + freshness filterExtract from each source:
Apply config.filters and config.ideal_customer to keep only matching leads:
config.filters.skip_industriesAlso deduplicate against scripts/seen.json (persisted list of previously found companies).
For each qualifying company (max 5 per run to stay fast):
web_fetch their site - check team page, product, tech stackweb_search for LinkedIn company page - estimate headcountweb_search for founder/CEO LinkedIn - get name, background, LinkedIn URLScore each lead 1-10 based on:
For each lead scoring 6+, generate a personalized DM draft using config.outreach.template with:
config.company.value_prop)Depending on config.output.type:
asana:
node skills/asana-pat/scripts/asana.mjs create-task \
--workspace <workspace_id> \
--parent <parent_task_id> \
--assignee me \
--name "Lead: <Company> - <Round> <Amount>" \
--notes "<full research + DM draft>"
markdown:
Append to leads/YYYY-MM-DD.md with full details per lead.
csv:
Append row to leads/leads.csv with: date, company, round, amount, location, url, key_person, linkedin, score, dm_draft
notion: (future - document API integration needed)
scripts/seen.json for dedupmemory/YYYY-MM-DD.mdOutput structured summary:
## Lead Hunter Report - YYYY-MM-DD
- Sources scraped: X
- Articles found: X
- After filtering: X leads
- Researched: X
- Qualified (score 6+): X
### Top Leads
1. **Company** - Round $Amount | Score: X/10
Key person: Name (LinkedIn)
Signal: [why they're a fit]
The skill uses a tiered approach to handle anti-bot protection:
web_fetch - default, fastestscripts/scrape.py - Crawl4AI with stealth (handles most Cloudflare)web_search site: query - last resort, gets snippets not full pagesThe scrape script auto-manages a venv at scripts/.venv/. First run:
python3 skills/lead-hunter/scripts/scrape.py --check
This creates the venv, installs crawl4ai + playwright chromium. Subsequent runs are instant.
When the user picks an industry during onboarding, the skill suggests relevant lead sources. See references/sources.md for the industry-to-source mapping.
Users can add custom sources at any time by editing config.sources in config.json.
共 1 个版本