ClawKit Logo
ClawKitReliability Toolkit
Back to Registry
Official Verified

lgf

Run B2B lead research with lgf (Lead Gen Factory). Use when asked to find leads, prospect companies, research ICPs, find decision makers, or generate a lead list for any B2B target profile.

skill-install — Terminal

Install via CLI (Recommended)

clawhub install openclaw/skills/skills/catafal/lead-gen-factory
Or

lgf — Lead Gen Factory

A CLI pipeline that takes a free-text ICP (Ideal Customer Profile) and returns a scored, deduplicated list of B2B leads as both CSV and structured JSON.

Prerequisites

Install lgf once (requires Python 3.12+):

# From the repo root
pip install -e .

# Or via pipx for isolated install
pipx install git+https://github.com/Catafal/lead-gen-factory.git

Verify installation:

lgf doctor

Required API keys (set in ~/.lgf/.env):

  • TAVILY_API_KEY — web search
  • OPENROUTER_API_KEY — LLM scoring + extraction

Core Command

lgf research --icp-text "<your ICP>" --json 2>/dev/null

The --json flag outputs a structured JSON envelope to stdout — perfect for AI agents to capture and process without touching the filesystem. All human-facing progress output goes to stderr (suppressed with 2>/dev/null).


Usage Patterns

1. Quick inline ICP (most common)

lgf research --icp-text "HR Directors at SaaS companies in Spain, 50-500 employees" --json 2>/dev/null

2. ICP from file (for complex profiles)

lgf research --icp icp_examples/skillia_spain.md --json 2>/dev/null

3. Narrow with a focus constraint

lgf research --icp-text "Tech companies in Madrid" --focus "only companies hiring L&D managers" --json 2>/dev/null

4. Filter by minimum ICP score

lgf research --icp-text "..." --min-score 8 --json 2>/dev/null

5. Dry-run — see search queries only (no crawling, no LLM calls)

lgf research --icp-text "..." --dry-run

6. Check current config

lgf config

JSON Output Schema

When --json is used, the envelope printed to stdout has this structure:

{
  "leads": [
    {
      "business": "Acme Corp",
      "first": "Ana",
      "last": "García",
      "email": "[email protected]",
      "linkedin": "https://linkedin.com/in/anagarcia",
      "website": "https://acme.com",
      "phone": null,
      "date": "2026-03-09",
      "place_of_work": "Acme Corp, Madrid",
      "icp_fit_score": 9,
      "icp_fit_reason": "HR Director at 120-person SaaS, exact ICP match",
      "source_url": "https://acme.com/team"
    }
  ],
  "count": 1,
  "output_file": "leads_20260309.csv",
  "icp": {
    "target_roles": ["HR Director", "People Director"],
    "company_size_min": 50,
    "company_size_max": 500,
    "industries": ["SaaS", "Tech"],
    "geographies": ["Spain"],
    "min_fit_score": 7
  }
}

Useful jq extractions

# All emails
lgf research --icp-text "..." --json 2>/dev/null | jq '.leads[].email'

# Count of leads found
lgf research --icp-text "..." --json 2>/dev/null | jq '.count'

# First lead's company + score
lgf research --icp-text "..." --json 2>/dev/null | jq '.leads[0] | {business, icp_fit_score}'

# Filter leads scoring 9+
lgf research --icp-text "..." --json 2>/dev/null | jq '[.leads[] | select(.icp_fit_score >= 9)]'

Metadata

Author@catafal
Stars4044
Views0
Updated2026-04-12
View Author Profile
AI Skill Finder

Not sure this is the right skill?

Describe what you want to build — we'll match you to the best skill from 16,000+ options.

Find the right skill
Add to Configuration

Paste this into your clawhub.json to enable this plugin.

{
  "plugins": {
    "official-catafal-lead-gen-factory": {
      "enabled": true,
      "auto_update": true
    }
  }
}
Safety NoteClawKit audits metadata but not runtime behavior. Use with caution.