dharshan6361

Lead Enrichment Agent — Testing skill for Claude Code

Testing community

Autonomous lead enrichment agent — crawls company websites with Playwright and extracts structured intelligence (overview, ICP, contacts, leadership) using Claude's tool-calling.

How to install Lead Enrichment Agent

This entry records only its repository, not the path inside it, so there is no exact command to give. Open dharshan6361/lead-enrichment-agent and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Lead Enrichment Agent does

Autonomous lead enrichment agent — crawls company websites with Playwright and extracts structured intelligence (overview, ICP, contacts, leadership) using Claude's tool-calling. Built for the SoftwareBrio AI Engineer Intern take-home assignment.

Alternatives in Testing

  • Darwin Skill — 达尔文.skill —— 一个让你的Skill无限进化的系统:评估→改进→测试→保留或回滚 Autoresearch-inspired autonomous skill optimization for Claude C 5.7k ★
  • OpenAgentsControl — AI agent framework for plan-first development workflows with approval-based execution 4.8k ★
  • Cc Sdd — Spec-driven development (SDD) for your team's workflow 3.1k ★

README

Autonomous Lead Enrichment Agent

A Python pipeline that takes a list of company domains, crawls their public web presence with a headless browser, cleans the content down to LLM-friendly text, and extracts structured company intelligence (overview, ICP, contacts, leadership, confidence score) using Claude's tool-calling for strict structured output.

How it works

domains  ──▶  crawler.py  ──▶  extractor.py  ──▶  llm_extract.py  ──▶  output.json
            (Playwright:      (BeautifulSoup:      (Anthropic tool-use,
             homepage +        strip scripts/nav,   strict JSON schema
             relevant           collapse to plain    via models.py)
             subpages)          text, cap length)
  1. src/crawler.py — Launches headless Chromium via Playwright, fetches the homepage, waits for JS-rendered content to settle, then discovers and fetches up to 5 same-site subpages matching common slugs (about, team, contact, pricing, etc). Handles timeouts, 404s, and bot blocks without crashing.
  2. src/extractor.py — Strips , , , , and other boilerplate, preserves mailto: and LinkedIn hrefs inline (so emails/profile links survive text extraction), and caps each page at ~6k characters to bound token spend.
  3. src/llm_extract.py — Sends the cleaned text to Claude with a single forced tool call (record_company_intelligence), so the response is always valid structured JSON matching the schema in src/models.py — no regex-parsing of free text.
  4. src/main.py — Orchestrates the batch run. Every domain is wrapped in its own try/except at multiple layers, so one failing site (timeout, block, malformed HTML, LLM error) never aborts the rest of the batch — it's recorded with data_confidence_score: 0.0 and an errors list instead.

Setup

git clone 
cd lead-enrichment-agent
python -m venv .venv && source .venv/bin/activ