Skip to content
cccskills
FreePublished on GitHub

lead-enricher

Enriches inbound leads with firmographic and technographic data. Takes minimal lead info and enriches via WebSearch, Apollo, or ZoomInfo to produce a complete lead record with company size, revenue, tech stack, social profiles, and decision-maker details.

The English summary is being prepared. Showing the original description.

See how to install

Files included (2)

  • SKILL.md10.2 KB
  • skill.meta.json501 B

SKILL.md (original)

Review the instructions the agent will receive before you install.

Lead Enricher

Takes raw inbound lead data (often just a name and email) and enriches it into a complete lead record. Uses WebSearch for public data, checks tools.lead_enrichment config for Apollo or ZoomInfo API paths, and outputs a fully populated lead record ready for qualification and routing.

Prerequisites

  • agency.config.json populated (ICP, tools config)
  • WebSearch tool available
  • Inbound lead data: at minimum, email address or company name
  • Optional: Apollo.io API access (configured in tools.lead_enrichment)
  • Optional: ZoomInfo access (configured in tools.lead_enrichment)

Capabilities Used

  1. company-researcher -- deep company data extraction
  2. person-researcher -- contact-level enrichment
  3. linkedin-researcher -- LinkedIn profile data
  4. email-validator -- verify email deliverability
  5. crm-writer -- write enriched record back to CRM

Phase 0: Intake

Read agency.config.json:

  • icp.segments[] -- for ICP fit tagging during enrichment
  • tools.lead_enrichment -- check which enrichment tools are available:
    {
      "tools": {
        "lead_enrichment": {
          "primary": "apollo",
          "apollo_api_key": "env:APOLLO_API_KEY",
          "zerobounce_api_key": "env:ZEROBOUNCE_API_KEY",
          "fallback": "websearch"
        }
      }
    }
    
  • crm.tabs -- where to write enriched records
  • services[] -- for service-need matching during enrichment

Accept parameters:

  • lead -- (required) lead object with available fields
  • mode -- single | batch. Default: single
  • leads -- (required if mode = batch) array of lead objects
  • enrichment_depth -- basic | standard | deep. Default: standard
  • validate_email -- boolean, run email validation. Default: true
  • write_to_crm -- boolean, write enriched record to CRM. Default: true

Minimum lead input:

{
  "email": "priya@freshskin.co"
}

Or:

{
  "contact_name": "Priya Mehta",
  "company_name": "FreshSkin Co"
}

Phase 1: Email Domain Extraction

If only email provided:

  • Extract domain: freshskin.co
  • Derive company domain: check if freshskin.co resolves to a website
  • Flag freemail domains (gmail.com, yahoo.com, outlook.com) -- lower quality lead signal

If company name provided but no domain:

  • WebSearch: "{{company_name}}" website
  • Extract the primary domain

Phase 2: Contact Enrichment

Apollo Path (if tools.lead_enrichment.primary = "apollo")

Use Apollo People Match or People Search:

  • Input: email or name + company
  • Extract: full name, title, phone, LinkedIn URL, company details
  • Apollo returns: person match confidence, verified email, company firmographics

WebSearch Path (if Apollo unavailable or as supplement)

Run person-researcher with available data:

Name + Company search:

  • WebSearch: "{{contact_name}}" "{{company_name}}"
  • WebSearch: "{{contact_name}}" linkedin
  • WebSearch: "{{contact_name}}" {{company_domain}}

Extract:

  • Full name (verify spelling)
  • Current title and role
  • LinkedIn profile URL
  • Twitter/X handle
  • Other social profiles
  • Professional background summary
  • Recent activity (posts, interviews, conference appearances)

LinkedIn Enrichment

Run linkedin-researcher for:

  • Profile headline and summary
  • Current role details (start date, description)
  • Previous roles (career trajectory)
  • Education
  • Skills and endorsements
  • Connections count (proxy for network size)
  • Recent posts (content they care about)
  • Groups (interests and focus areas)

Compile:

CONTACT RECORD
---
Full name: [verified name]
Email: [email]
Email status: [valid/invalid/catch-all/unknown]
Title: [current title]
Phone: [if found]
LinkedIn: [URL]
Twitter: [handle]
Location: [city, country]
Seniority: [C-level/VP/Director/Manager/Individual]
Department: [Marketing/Ecommerce/Engineering/Operations/Executive]

Phase 3: Company Enrichment

Apollo Path (if available)

Use Apollo Organization Enrich:

  • Input: domain
  • Extract: company name, industry, employee count, revenue range, tech stack, social profiles

WebSearch Path

Run company-researcher with the company domain:

Firmographic data:

  • Company legal name
  • Industry and sub-industry (SIC/NAICS if available)
  • Employee count (exact or range)
  • Revenue estimate (range)
  • Founded year
  • Headquarters location
  • Funding status (bootstrapped, seed, Series A/B/C, public)
  • Total funding raised

Digital presence:

  • Website URL and platform (Shopify, WooCommerce, custom, etc.)
  • Technology stack (via BuiltWith signals in search results)
  • Social profiles: LinkedIn company page, Instagram, Twitter, Facebook, YouTube
  • App store presence (if applicable)
  • Review sites (G2, Capterra, Trustpilot, Google Reviews)

Business signals:

  • Recent funding rounds
  • Job postings (roles, departments expanding)
  • Press mentions (last 6 months)
  • Partnership announcements
  • Product launches
  • Awards or recognition
  • Competitor landscape (who else is in their space)

Compile:

COMPANY RECORD
---
Company name: [legal name]
Domain: [primary domain]
Industry: [vertical]
Sub-industry: [niche]
Employee count: [range]
Revenue estimate: [range]
Founded: [year]
HQ: [city, country]
Funding: [status + total raised]
Platform: [ecommerce platform]
Tech stack: [key technologies detected]

Social profiles:
  LinkedIn: [URL]
  Instagram: [handle]
  Twitter: [handle]
  Facebook: [URL]
  YouTube: [URL]

Recent signals:
  Hiring: [roles if any]
  Funding: [recent round if any]
  Press: [notable mentions]
  Product: [recent launches]

Phase 4: Email Validation

If validate_email = true:

ZeroBounce Path (if configured)

  • Submit email to ZeroBounce API
  • Get: status (valid/invalid/catch-all/spamtrap/abuse/unknown), sub-status, domain info

Heuristic Path (if no API)

  • Check MX records for domain
  • Check if domain is active
  • Flag disposable email domains
  • Flag role-based emails (info@, hello@, support@)

Validation result:

Email validation:
  Address: [email]
  Status: [valid/invalid/risky/unknown]
  Type: [personal/role-based/freemail]
  Deliverability: [HIGH/MEDIUM/LOW]
  Risk flags: [catch-all, new domain, etc.]

Phase 5: ICP Tagging

Match enriched data against icp.segments[]:

For each segment, check:

  • Industry match
  • Company size match (employee range)
  • Revenue range match
  • Geography match
  • Platform match
  • Stage match (post-PMF, mid-market, enterprise)

Tag the lead:

ICP Assessment:
  Best segment match: [segment name]
  Fit score: [1-5]
  Matching criteria: [list of matches]
  Non-matching criteria: [list of misses]
  Fit verdict: STRONG_FIT / MODERATE_FIT / WEAK_FIT / NO_FIT

Phase 6: Service Need Detection

Based on enriched data, flag potential service needs:

  • Store development: Outdated store, non-Shopify platform, poor mobile experience
  • CRO: High traffic + low conversion signals, basic product pages
  • Catalog management: Large SKU count, poor product imagery
  • Performance marketing: Low traffic, no paid ads visible, competitor ads running
  • SEO: Low organic visibility, thin content, no blog
  • Email marketing: No email capture visible, no post-purchase flow
Detected needs:
  1. [Service] -- [signal that indicates this need] -- Confidence: [HIGH/MEDIUM/LOW]
  2. [Service] -- [signal] -- Confidence: [level]

Phase 7: Output

Return structured JSON:

{
  "enrichment_date": "2026-03-07",
  "enrichment_depth": "standard",
  "contact": {
    "full_name": "Priya Mehta",
    "email": "priya@freshskin.co",
    "email_valid": true,
    "email_type": "personal",
    "title": "Founder & CEO",
    "phone": "+91-98XXXXXXXX",
    "linkedin": "https://linkedin.com/in/priyamehta",
    "twitter": "@priyamehta",
    "location": "Mumbai, India",
    "seniority": "C-level",
    "department": "Executive"
  },
  "company": {
    "name": "FreshSkin Co",
    "domain": "freshskin.co",
    "industry": "Beauty & Skincare",
    "sub_industry": "D2C Skincare",
    "employee_count": "25-50",
    "revenue_estimate": "INR 5-10 Cr/year",
    "founded": 2022,
    "hq": "Mumbai, India",
    "funding": {"status": "Series A", "total_raised": "INR 8 Cr"},
    "platform": "Shopify",
    "tech_stack": ["Shopify", "Klaviyo", "Google Analytics"],
    "social": {
      "linkedin": "https://linkedin.com/company/freshskinco",
      "instagram": "@freshskinco",
      "twitter": "@freshskinco"
    },
    "recent_signals": {
      "hiring": ["Marketing Manager", "Content Creator"],
      "funding": "Series A closed Dec 2025",
      "product_launches": ["New serum line launched Jan 2026"]
    }
  },
  "icp_assessment": {
    "best_segment": "Post-PMF D2C India",
    "fit_score": 4,
    "fit_verdict": "STRONG_FIT",
    "matching": ["industry", "size", "geo", "platform", "stage"],
    "non_matching": []
  },
  "detected_needs": [
    {"service": "CRO", "signal": "Basic product pages, no trust elements", "confidence": "HIGH"},
    {"service": "Catalog Management", "signal": "50+ SKUs with inconsistent photography", "confidence": "MEDIUM"}
  ],
  "enrichment_sources": ["websearch", "linkedin", "zerobounce"],
  "data_completeness": "85%",
  "missing_fields": ["phone", "revenue_exact"],
  "generated_at": "2026-03-07T10:00:00Z"
}

Phase 8: CRM Write and Handoff

If write_to_crm = true:

  • Write enriched record to CRM via crm-writer
  • Set enrichment_status = "complete"
  • Set enrichment_date = today
  • Set icp_fit = fit verdict

Handoff options:

  • If auto_qualify flag set, trigger lead-qualifier with enriched data
  • If auto_route flag set, trigger lead-router after qualification
  • Otherwise, present enriched record for manual review

APPROVAL GATE: "Lead enriched. [Data completeness]% complete. Route to qualification?"

Example Usage

Trigger phrases:

  • "Enrich this lead: priya@freshskin.co"
  • "I got a new inbound lead, enrich them: [name] at [company]"
  • "Batch enrich this week's inbound leads"
  • "Look up everything about [person] at [company]"
  • "Fill in the missing data for [lead]"
  • "Enrich and qualify [lead name]"

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Analyze A/B test results for statistical significance with ship, extend, or kill recommendations

The English summary is being prepared. Showing the original description.

ekatasingh1107/b2b-gtm-skills2Updated Apr 12, 2026

Reallocate ad budget across campaigns and channels using ROAS and marginal return analysis

The English summary is being prepared. Showing the original description.

ekatasingh1107/b2b-gtm-skills2Updated Apr 12, 2026

Generate structured creative briefs for ad designers with brand-consistent direction

The English summary is being prepared. Showing the original description.

ekatasingh1107/b2b-gtm-skills2Updated Apr 12, 2026

Mine winning ad angles, hooks, and creative patterns from top-performing ads

The English summary is being prepared. Showing the original description.

ekatasingh1107/b2b-gtm-skills2Updated Apr 12, 2026

ad-spy

Free

Monitor competitor ads across Meta, Google, and LinkedIn with strategic analysis

The English summary is being prepared. Showing the original description.

ekatasingh1107/b2b-gtm-skills2Updated Apr 12, 2026

Interactive onboarding wizard that generates agency.config.json for any B2B agency. Asks structured questions about the agency, services, ICP, tools, outreach preferences, and CRM setup. Outputs a complete config file.

The English summary is being prepared. Showing the original description.

ekatasingh1107/b2b-gtm-skills2Updated Apr 12, 2026

See all skills by ekatasingh1107

Report a problem with this skill