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.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "lgf" with this command: npx skills add Catafal/lead-gen-factory

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": "ana.garcia@acme.com",
      "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)]'

# LinkedIn URLs only
lgf research --icp-text "..." --json 2>/dev/null | jq '[.leads[].linkedin | select(. != null)]'

Writing a Good ICP

Include:

  • Roles: job titles of your decision makers (e.g. "HR Director", "L&D Manager", "CPO")
  • Company size: employee range (e.g. "50-500 employees")
  • Industries: sectors (e.g. "SaaS", "fintech", "consulting")
  • Geography: countries or cities (e.g. "Spain", "Barcelona", "LATAM")
  • Signals (optional): growth stage, tech stack, hiring activity

Example ICP text:

HR Directors and People Ops leads at B2B SaaS companies in Spain with 50-500 employees.
Focus on companies with active hiring in engineering or sales. Avoid BPO and consulting firms.

All Available Commands

CommandPurpose
lgf researchFull pipeline: search → crawl → extract → score → CSV
lgf validate-icpParse and display an ICP without running the pipeline
lgf configShow effective configuration (API keys masked)
lgf config set KEY VALUEUpdate a setting in ~/.lgf/.env
lgf profile listList saved ICP profiles
lgf profile add <name>Save current ICP as a named profile
lgf doctorHealth check: API keys + live connectivity
lgf initFirst-time setup wizard

Score Interpretation

ScoreMeaning
8–10Strong ICP fit — prioritize these
6–7Moderate fit — worth reviewing
< 6Weak fit — pipeline default filter

Default min score is 7. Override with --min-score.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Research

Investment Analysis

Provides A-share market and stock analysis (index, individual stock trend, buy/sell view) via GF hiAgentChat API. Use when the user asks about 今日大盘、大盘走势、个股走势...

Registry SourceRecently Updated
Research

Competitive Intel Agent

Competitor monitoring, pricing analysis, market positioning, and SWOT generation. Use when you need to track competitor moves, benchmark pricing, analyze mar...

Registry SourceRecently Updated
Research

feishu paper manager

Design or implement a paper-management workflow built on a Feishu bot plus OpenClaw. Use when the user wants to ingest papers from Feishu messages, save PDFs...

Registry SourceRecently Updated