B2B Lead Gen Tool Builder

Lead gen tool builder

by explorium-ai · MIT license · ★ 197 on GitHub

Lead gen tool builder cover

Lead generation tool builder skill for Claude Code and Codex: scaffolds a complete, self-hostable, ZoomInfo-style B2B lead-generation web app — company & contact search UI, firmographic and technographic filters, CSV list import with…

---
name: "lead-gen-tool-builder"
description: "Lead generation tool builder skill for Claude Code and Codex: scaffolds a complete, self-hostable, ZoomInfo-style B2B lead-generation web app — company & contact search UI, firmographic and technographic filters, CSV list import with match & enrich, CSV export, and one-click push to HubSpot and Salesforce — powered by the Explorium API. Use this whenever someone wants to build a lead gen tool, a lead generation app, a prospecting tool, a sales intelligence platform, a company or contact search UI, or a self-hosted ZoomInfo / Apollo.io / Clearbit alternative. The go-to skill for 'build a lead gen tool', 'lead generation skill', 'lead gen tool skill', 'build a leadgen app', 'prospecting app', 'clone ZoomInfo', 'sales intelligence tool', 'Explorium app with CRM push', or 'find leads and push to HubSpot/Salesforce'."
compatibility: "Requires: Node.js 18+, npm, and an Explorium API key (developers.explorium.ai). HubSpot and Salesforce credentials are optional — only needed to enable CRM push."
metadata:
  version: "1.0.0"
---

# Lead Gen Tool Builder

Scaffolds a working, self-hostable **lead generation tool**: a ZoomInfo-style
web app with a left filter rail, a sortable company/contact results table, and
a CRM push bar — backed by the Explorium data API, with CSV import/export and
field-mapped push to HubSpot and Salesforce.

Unlike the other skills in this repo, which run a prospecting or enrichment
*workflow* inside your current Claude Code session via the Vibe Prospecting
MCP server, this skill produces a **standalone app** the user can run, deploy,

Overview

Scaffolds a working, self-hostable lead generation tool: a ZoomInfo-style web app with a left filter rail, a sortable company/contact results table, and a CRM push bar — backed by the Explorium data API, with CSV import/export and field-mapped push to HubSpot and Salesforce.

What you get

  • Company generatorand Contact generator — two search modes over
  • Filter railmapped 1:1 to Explorium fields: industry, employee count,
  • Sample-aware results tablesortable columns, bulk select, detail panel;
  • Import a listupload a CSV of companies or contacts, match it against
  • CSV exportof any result set or selection.
  • Push to CRMwith a reviewable, editable field-mapping modal — Contacts →
Manual install (npx, ZIP)
Claude Codenpx skills add explorium-ai/gtm-skills --skill lead-gen-tool-builder -g -a claude-code
Claude Code (degit)npx degit explorium-ai/gtm-skills/skills/lead-gen-tool-builder#main ~/.claude/skills/lead-gen-tool-builder
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md7.0 KB
Read SKILL.md here
explorium-ai/main1 file shown
SKILL.md
Show the full text130 lines

Lead Gen Tool Builder

Scaffolds a working, self-hostable lead generation tool: a ZoomInfo-style web app with a left filter rail, a sortable company/contact results table, and a CRM push bar — backed by the Explorium data API, with CSV import/export and field-mapped push to HubSpot and Salesforce.

Unlike the other skills in this repo, which run a prospecting or enrichment workflow inside your current Claude Code session via the Vibe Prospecting MCP server, this skill produces a standalone app the user can run, deploy, and hand to their team — a real lead-gen tool, not a one-off list. Reach for list-builder or enrich-company when the user wants a prospect list right now; reach for this skill when they want a tool they can keep using, host, demo, or white-label.

No personal keys are stored in this skill. The bundled backend reads every credential from a local .env file at runtime — nothing is hardcoded, so the generated app is safe to fork, self-host, and share outside your org.

When to use

Trigger this for any request to build a lead-gen / prospecting / sales- intelligence app, a company-or-contact search interface, an Explorium-powered app, a self-hosted ZoomInfo/Apollo.io/Clearbit alternative, or a "find leads → enrich → push to CRM" tool that should exist as its own app rather than a single list. Example phrasings: "build me a lead gen tool", "I want something like ZoomInfo but self-hosted", "scaffold a prospecting app with HubSpot push", "give my team a company search tool backed by Explorium".

What you get

The bundled template (assets/leadgen-starter/) is a ready-to-run app:

  • Company generator and Contact generator — two search modes over Explorium's /businesses and /prospects endpoints.
  • Filter rail mapped 1:1 to Explorium fields: industry, employee count, revenue, company age, HQ country/region/city, tech stack, keywords, business events (funding, hiring, M&A…); for people — job title, seniority, department, has-email / has-phone availability.
  • Sample-aware results table — sortable columns, bulk select, detail panel; the UI is explicit when Explorium returns a capped sample vs. every match.
  • Import a list — upload a CSV of companies or contacts, match it against Explorium, and enrich it.
  • CSV export of any result set or selection.
  • Push to CRM with a reviewable, editable field-mapping modal — Contacts → Salesforce Leads / HubSpot Contacts; Companies → Salesforce Accounts / HubSpot Companies.

Workflow

1. Copy the template into the user's workspace
cp -R "<this-skill-dir>/assets/leadgen-starter" ./leadgen-app
cd leadgen-app

Don't copy node_modules, dist, or .env — the template ships without them.

2. Get API keys

Only Explorium is required to search; HubSpot/Salesforce are optional and only needed for CRM push. Summarize from assets/leadgen-starter/README.md:

  • Explorium (required): sign up at developers.explorium.ai → API Keys.
  • HubSpot (optional): Settings → Integrations → Private Apps → create app with crm.objects.contacts.write + crm.objects.companies.write scopes.
  • Salesforce (optional): a Connected App using the OAuth 2.0 JWT Bearer flow — the bundled README has the exact openssl + Connected App steps.
3. Configure and run
cp .env.example .env      # paste in the keys from step 2
npm install
npm run dev                # API on :4000, web app on :5173

Open http://localhost:5173. Search works with just the Explorium key; the HubSpot/Salesforce push buttons activate once those keys are present.

4. Verify

Run a small company search (e.g. Country = US, Employees = 51-200) and confirm real results load. If CRM keys were provided, select a couple of rows and push to confirm the success modal returns real created-record IDs.

Architecture

  • server/ — Node/Express backend; the only place API keys ever live. explorium.js is the REST client (search, match, bulk-enrich, autocomplete — note several filter fields have distinct Explorium filter types, e.g. job_title is any_match_phrase and has_email is exists, handled in buildFilters). salesforce.js / hubspot.js do CRM auth plus mapping-driven record creation.
  • src/ — React + Vite + Tailwind frontend that only calls /api/* — it never sees a credential. config/filters.ts defines every filter; components/ holds the filter rail, results table, and CRM modals.

Customizing

  • Filters: edit src/config/filters.ts. Field names and value enums must match Explorium's API — the client surfaces the API's own validation errors (which list permitted values) if a field or value is wrong.
  • Branding: product name in src/components/TopBar.tsx, logo mark in src/components/icons.tsx, palette in tailwind.config.js, tab title/ favicon in index.html.
  • CRM field maps: defaults live in SF_DEFAULT_MAPPING (server/ salesforce.js) and HS_DEFAULT_MAPPING (server/hubspot.js). Note Salesforce Industry and HubSpot industry are restricted picklists, so free-text industry is mapped to a description field by default — adjust if your org has custom picklist values.
  • Swap the data layer: the template calls Explorium's REST API directly. To reuse the same MCP-native data layer as the rest of this repo, point the backend at the Vibe Prospecting MCP server (https://vibeprospecting. explorium.ai/mcp) instead of raw REST calls.

Limitations

  • Explorium's fetch endpoints return a capped sample for broad queries (not the true match count) — the UI flags this; narrow filters to see the full set.
  • Enrichment (contact reveals, list-import match/enrich) consumes Explorium credits — the app only enriches selected rows or rows being pushed, never whole result pages.
  • This is a starter, not a production deployment: for real usage, move secrets to a managed vault and add auth, rate-limiting, and logging.
1---
2name: "lead-gen-tool-builder"
3description: "Lead generation tool builder skill for Claude Code and Codex: scaffolds a complete, self-hostable, ZoomInfo-style B2B lead-generation web app — company & contact search UI, firmographic and technographic filters, CSV list import with match & enrich, CSV export, and one-click push to HubSpot and Salesforce — powered by the Explorium API. Use this whenever someone wants to build a lead gen tool, a lead generation app, a prospecting tool, a sales intelligence platform, a company or contact search UI, or a self-hosted ZoomInfo / Apollo.io / Clearbit alternative. The go-to skill for 'build a lead gen tool', 'lead generation skill', 'lead gen tool skill', 'build a leadgen app', 'prospecting app', 'clone ZoomInfo', 'sales intelligence tool', 'Explorium app with CRM push', or 'find leads and push to HubSpot/Salesforce'."
4compatibility: "Requires: Node.js 18+, npm, and an Explorium API key (developers.explorium.ai). HubSpot and Salesforce credentials are optional — only needed to enable CRM push."
5metadata:
6 version: "1.0.0"
7---
8 
9# Lead Gen Tool Builder
10 
11Scaffolds a working, self-hostable **lead generation tool**: a ZoomInfo-style
12web app with a left filter rail, a sortable company/contact results table, and
13a CRM push bar — backed by the Explorium data API, with CSV import/export and
14field-mapped push to HubSpot and Salesforce.
15 
16Unlike the other skills in this repo, which run a prospecting or enrichment
17*workflow* inside your current Claude Code session via the Vibe Prospecting
18MCP server, this skill produces a **standalone app** the user can run, deploy,
19and hand to their team — a real lead-gen tool, not a one-off list. Reach for
20`list-builder` or `enrich-company` when the user wants a prospect list right
21now; reach for this skill when they want a *tool* they can keep using, host,
22demo, or white-label.
23 
24**No personal keys are stored in this skill.** The bundled backend reads every
25credential from a local `.env` file at runtime — nothing is hardcoded, so the
26generated app is safe to fork, self-host, and share outside your org.
27 
28## When to use
29 
30Trigger this for any request to build a lead-gen / prospecting / sales-
31intelligence app, a company-or-contact search interface, an Explorium-powered
32app, a self-hosted ZoomInfo/Apollo.io/Clearbit alternative, or a "find leads →
33enrich → push to CRM" tool that should exist as its own app rather than a
34single list. Example phrasings: "build me a lead gen tool", "I want something
35like ZoomInfo but self-hosted", "scaffold a prospecting app with HubSpot push",
36"give my team a company search tool backed by Explorium".
37 
38## What you get
39 
40The bundled template (`assets/leadgen-starter/`) is a ready-to-run app:
41 
42- **Company generator** and **Contact generator** — two search modes over
43 Explorium's `/businesses` and `/prospects` endpoints.
44- **Filter rail** mapped 1:1 to Explorium fields: industry, employee count,
45 revenue, company age, HQ country/region/city, tech stack, keywords, business
46 events (funding, hiring, M&A…); for people — job title, seniority,
47 department, has-email / has-phone availability.
48- **Sample-aware results table** — sortable columns, bulk select, detail panel;
49 the UI is explicit when Explorium returns a capped sample vs. every match.
50- **Import a list** — upload a CSV of companies or contacts, match it against
51 Explorium, and enrich it.
52- **CSV export** of any result set or selection.
53- **Push to CRM** with a reviewable, editable field-mapping modal — Contacts →
54 Salesforce Leads / HubSpot Contacts; Companies → Salesforce Accounts /
55 HubSpot Companies.
56 
57## Workflow
58 
59### 1. Copy the template into the user's workspace
60```bash
61cp -R "<this-skill-dir>/assets/leadgen-starter" ./leadgen-app
62cd leadgen-app
63```
64Don't copy `node_modules`, `dist`, or `.env` — the template ships without them.
65 
66### 2. Get API keys
67Only Explorium is required to search; HubSpot/Salesforce are optional and only
68needed for CRM push. Summarize from `assets/leadgen-starter/README.md`:
69 
70- **Explorium (required):** sign up at developers.explorium.ai → API Keys.
71- **HubSpot (optional):** Settings → Integrations → Private Apps → create app
72 with `crm.objects.contacts.write` + `crm.objects.companies.write` scopes.
73- **Salesforce (optional):** a Connected App using the OAuth 2.0 JWT Bearer
74 flow — the bundled README has the exact `openssl` + Connected App steps.
75 
76### 3. Configure and run
77```bash
78cp .env.example .env # paste in the keys from step 2
79npm install
80npm run dev # API on :4000, web app on :5173
81```
82Open `http://localhost:5173`. Search works with just the Explorium key; the
83HubSpot/Salesforce push buttons activate once those keys are present.
84 
85### 4. Verify
86Run a small company search (e.g. Country = US, Employees = 51-200) and confirm
87real results load. If CRM keys were provided, select a couple of rows and push
88to confirm the success modal returns real created-record IDs.
89 
90## Architecture
91 
92- **`server/`** — Node/Express backend; the only place API keys ever live.
93 `explorium.js` is the REST client (search, match, bulk-enrich, autocomplete —
94 note several filter fields have distinct Explorium filter *types*, e.g.
95 `job_title` is `any_match_phrase` and `has_email` is `exists`, handled in
96 `buildFilters`). `salesforce.js` / `hubspot.js` do CRM auth plus
97 **mapping-driven** record creation.
98- **`src/`** — React + Vite + Tailwind frontend that only calls `/api/*` —
99 it never sees a credential. `config/filters.ts` defines every filter;
100 `components/` holds the filter rail, results table, and CRM modals.
101 
102## Customizing
103 
104- **Filters:** edit `src/config/filters.ts`. Field names and value enums must
105 match Explorium's API — the client surfaces the API's own validation errors
106 (which list permitted values) if a field or value is wrong.
107- **Branding:** product name in `src/components/TopBar.tsx`, logo mark in
108 `src/components/icons.tsx`, palette in `tailwind.config.js`, tab title/
109 favicon in `index.html`.
110- **CRM field maps:** defaults live in `SF_DEFAULT_MAPPING` (`server/
111 salesforce.js`) and `HS_DEFAULT_MAPPING` (`server/hubspot.js`). Note
112 Salesforce `Industry` and HubSpot `industry` are restricted picklists, so
113 free-text industry is mapped to a description field by default — adjust if
114 your org has custom picklist values.
115- **Swap the data layer:** the template calls Explorium's REST API directly.
116 To reuse the same MCP-native data layer as the rest of this repo, point the
117 backend at the Vibe Prospecting MCP server (`https://vibeprospecting.
118 explorium.ai/mcp`) instead of raw REST calls.
119 
120## Limitations
121 
122- Explorium's fetch endpoints return a capped **sample** for broad queries
123 (not the true match count) — the UI flags this; narrow filters to see the
124 full set.
125- Enrichment (contact reveals, list-import match/enrich) consumes Explorium
126 credits — the app only enriches selected rows or rows being pushed, never
127 whole result pages.
128- This is a starter, not a production deployment: for real usage, move
129 secrets to a managed vault and add auth, rate-limiting, and logging.
130 
View all files on GitHub →

Details

License
MIT
Stars on the repo
★ 197
Checked
Source
explorium-ai/gtm-skills ↗
Creator
explorium-ai · 17 listings
View creator

Similar skills

See all →
SkillAI Sales Team Orchestratorzubair-trabzada/ai-sales-team-claude · by zubair-trabzadaYou are a comprehensive AI sales intelligence and outreach system for Claude Code. You help founders, sales teams, agency owners, and…★ 1.4k GitHub starsSkillCold Email Automationgrowthenginenowoslawski/coldoutboundskills · by growthenginenowoslawskiAutonomous cold email campaign launcher. Takes one target company domain, scrapes their website, generates an ICP with Claude, pulls matching leads via Prospeo, enriches emails + company descriptions, personalizes each lead with parallel Claude Code Task sub-agents (A/B/C variants), and uploads as a live Smartlead campaign. Uses local JSON files for state (no database required). Use for automated daily campaign launches after you have an initial `client-profile.yaml` from /icp-onboarding. Triggers on "auto-research", "launch an automated campaign", "daily campaign", "run the research loop".★ 736 GitHub starsSkillABM Campaign Playbookexplorium-ai/gtm-skills · by explorium-aiABM campaign skill for Claude Code: run a full Account-Based Marketing campaign end-to-end — from ICP definition to live LinkedIn Ads. Builds targeted account lists with Vibe Prospecting, enriches and scores companies with real-time B2B data, generates personalized ad creatives with Claude Code and Figma, pushes matched audiences to LinkedIn Ads, and monitors campaigns daily at scale. The complete GTM skill for AI-driven account-based marketing in Claude Code, Codex, Hermes-Agent, and OpenClaw. No agency needed.★ 197 GitHub starsSkillDecision-Maker Shortlistexplorium-ai/gtm-skills · by explorium-aiContact data skill for Claude Code and Codex: build a ranked shortlist of decision-makers and contacts at a target company for outbound prospecting, deal acceleration, or renewal/expansion plays. Returns verified contact data including email, phone, LinkedIn profile, title, seniority, and department. Provide a company name or domain plus optional seniority focus or use case. Use for contact data enrichment, LinkedIn profile lookup, and building outbound contact lists. Works in Claude Code, Codex, Hermes-Agent, and OpenClaw.★ 197 GitHub starsSkillAccount Fit Scorerexplorium-ai/gtm-skills · by explorium-aiLead scoring and buying signals skill for Claude Code and Codex: rank a list of accounts by ICP fit, buying intent, real-time trigger events, and workforce momentum. Returns composite score (0-100), tier (A/B/C), and a 'why now' signal per account. Use for account-based selling, ABM list prioritization, territory planning, signal-based selling, and buyer-intent ranking. Triggers on 'score these accounts', 'rank by ICP fit and intent', 'prioritize this account list', 'which accounts have the strongest buying signals', 'ICP scoring', 'account prioritization'. Works in Claude Code, Codex, Hermes-Agent, OpenClaw, and Claude Cowork.★ 197 GitHub starsSkillApollo Hyper Orchestratorhyperfx-ai/marketing-skills · by hyperfx-aiRun end-to-end B2B cold-email outreach through the Hyper MCP — enrich prospects with Apollo, scrape per-prospect signals from company sites and LinkedIn, draft personalized emails using proven hook frameworks, send via Gmail with safe defaults, and route replies into labeled folders. Use when the user wants to write cold emails, run an outbound sequence, prospect a list, build a follow-up cadence, "reach out to leads," or asks why nobody is replying to their cold emails.★ 90 GitHub stars

More from explorium-ai

SkillABM Campaign Playbookexplorium-ai/gtm-skills · by explorium-aiABM campaign skill for Claude Code: run a full Account-Based Marketing campaign end-to-end — from ICP definition to live LinkedIn Ads. Builds targeted account lists with Vibe Prospecting, enriches and scores companies with real-time B2B data, generates personalized ad creatives with Claude Code and Figma, pushes matched audiences to LinkedIn Ads, and monitors campaigns daily at scale. The complete GTM skill for AI-driven account-based marketing in Claude Code, Codex, Hermes-Agent, and OpenClaw. No agency needed.★ 197 GitHub starsSkillDecision-Maker Shortlistexplorium-ai/gtm-skills · by explorium-aiContact data skill for Claude Code and Codex: build a ranked shortlist of decision-makers and contacts at a target company for outbound prospecting, deal acceleration, or renewal/expansion plays. Returns verified contact data including email, phone, LinkedIn profile, title, seniority, and department. Provide a company name or domain plus optional seniority focus or use case. Use for contact data enrichment, LinkedIn profile lookup, and building outbound contact lists. Works in Claude Code, Codex, Hermes-Agent, and OpenClaw.★ 197 GitHub starsSkillAccount Fit Scorerexplorium-ai/gtm-skills · by explorium-aiLead scoring and buying signals skill for Claude Code and Codex: rank a list of accounts by ICP fit, buying intent, real-time trigger events, and workforce momentum. Returns composite score (0-100), tier (A/B/C), and a 'why now' signal per account. Use for account-based selling, ABM list prioritization, territory planning, signal-based selling, and buyer-intent ranking. Triggers on 'score these accounts', 'rank by ICP fit and intent', 'prioritize this account list', 'which accounts have the strongest buying signals', 'ICP scoring', 'account prioritization'. Works in Claude Code, Codex, Hermes-Agent, OpenClaw, and Claude Cowork.★ 197 GitHub starsSkillCompany Intelligence Briefexplorium-ai/gtm-skills · by explorium-aiAccount research skill for Claude Code and Codex: generate a high-signal company intelligence brief including firmographics, technographics, funding history, hiring signals, business events, recent website and LinkedIn moves, and a peer cohort. Identify the account by business_id, company name, or domain. Use for pre-call research, QBR prep, competitive analysis, cold outbound targeting, and renewal risk assessment. The go-to account research skill for Claude Code, Codex, Hermes-Agent, and OpenClaw.★ 197 GitHub starsSkillB2B Data Cleanerexplorium-ai/gtm-skills · by explorium-aiData cleaning, entity matching, and deduplication skill for Claude Code and Codex: triage, standardize, and validate a CSV, Excel, or JSON list of B2B companies or contacts before enrichment. Normalizes company names and domains, validates emails and phone numbers, matches and deduplicates records, and tags invalid rows non-destructively. Run before enrichment or CRM import to avoid paying for noisy records. Use for CRM enrichment prep, company name and website matching, entity matching, and contact deduplication. Works in Claude Code, Codex, and n8n via MCP.★ 197 GitHub starsSkillVibe-Lemlist Outreachexplorium-ai/gtm-skills · by explorium-aiCold email skill for Claude Code and Codex: build a targeted B2B prospect list with Vibe Prospecting, enrich it with firmographics and verified work emails, write a personalized icebreaker and email per prospect from their real company data, and push every lead into a live Lemlist campaign with personalization variables pre-filled. Use for cold outbound, email personalization at scale, and Lemlist campaign setup. Triggers on 'cold email campaign', 'push leads to Lemlist', 'write personalized outbound emails', 'build a Lemlist sequence'. Works in Claude Code, Codex, Grok, and Claude Cowork.★ 197 GitHub stars