Explorium CLI
B2B data enrichment CLI. Match companies/prospects to IDs, enrich with firmographics, contacts, profiles, tech stack, funding, and more. Includes AI-powered company research with web search.
Setup (run once per session if needed)
Cowork VM (recommended)
If the repo is already cloned, run the setup script. It pulls latest code, installs the CLI, syncs this skill, and configures the API key:
cd /path/to/explorium-cli && ./setup-cowork.sh
If the repo is not yet cloned:
git clone https://github.com/haroExplorium/explorium-cli.git
cd explorium-cli && ./setup-cowork.sh
Standalone binary install
which explorium 2>/dev/null || ls ~/.local/bin/explorium 2>/dev/null
If not found, install with the one-liner:
curl -fsSL https://raw.githubusercontent.com/haroExplorium/explorium-cli/main/install.sh | bash
export PATH="$HOME/.local/bin:$PATH"
Configure API key
explorium config show
If output shows api_key: NOT SET (exit code 1), ask the user for their Explorium API key using AskUserQuestion, then:
explorium config init -k <API_KEY>
Global Options
Place BEFORE the subcommand:
-o, --output {json|table|csv} Output format (default: json)
--output-file PATH Write to file (clean output, no formatting)
Commands Reference
See commands-reference.md in this directory for the full command reference with all options.
Businesses
| Command | Purpose | Key Options |
|---------|---------|-------------|
| businesses match | Match companies to IDs | --name, --domain, --linkedin, -f FILE, --summary, --ids-only |
| businesses search | Search/filter businesses | --country, --size, --revenue, --industry, --tech, --total N |
| businesses enrich | Firmographics (single) | --id, --name, --domain, --min-confidence |
| businesses enrich-tech | Technology stack | Same ID resolution options |
| businesses enrich-financial | Financial indicators | Same ID resolution options |
| businesses enrich-funding | Funding & acquisitions | Same ID resolution options |
| businesses enrich-workforce | Workforce trends | Same ID resolution options |
| businesses enrich-traffic | Website traffic | Same ID resolution options |
| businesses enrich-social | LinkedIn posts | Same ID resolution options |
| businesses enrich-ratings | Employee ratings | Same ID resolution options |
| businesses enrich-keywords | Website keywords | Same ID resolution options + --keywords |
| businesses enrich-challenges | 10-K challenges | Same ID resolution options |
| businesses enrich-competitive | Competitive landscape | Same ID resolution options |
| businesses enrich-strategic | Strategic insights | Same ID resolution options |
| businesses enrich-website-changes | Website changes | Same ID resolution options |
| businesses enrich-webstack | Web technologies | Same ID resolution options |
| businesses enrich-hierarchy | Company hierarchy | Same ID resolution options |
| businesses enrich-intent | Bombora intent signals | Same ID resolution options |
| businesses bulk-enrich | Bulk firmographics | --ids, -f FILE, --match-file, --summary |
| businesses enrich-file | Match + enrich in one | -f FILE, --types, --summary |
| businesses lookalike | Similar companies | --id, --name, --domain |
| businesses autocomplete | Name/industry/tech suggestions | --query, --field {name,industry,tech} |
| businesses events list | List event types | --ids, --events |
| businesses events enroll | Subscribe to events | --ids, --events, --key |
| businesses events enrollments | List subscriptions | |
Prospects
| Command | Purpose | Key Options |
|---------|---------|-------------|
| prospects match | Match people to IDs | --first-name, --last-name, --company-name, --email, --linkedin, -f FILE, --summary, --ids-only |
| prospects search | Search prospects | --business-id, --company-name, -f FILE, --job-level, --department, --job-title, --country, --has-email, --has-phone, --total N, --max-per-company N, --summary |
| prospects enrich contacts | Emails & phones (single) | --id, --first-name, --last-name, --company-name, --email, --linkedin |
| prospects enrich social | LinkedIn posts | Same ID resolution options |
| prospects enrich profile | Professional profile | Same ID resolution options |
| prospects bulk-enrich | Bulk enrich (with -f FILE: preserves input columns with input_ prefix; with --ids: enrichment fields only) | --ids, -f FILE, --match-file, --types {contacts,profile,all}, --summary |
| prospects enrich-file | Match + enrich in one | -f FILE, --types {contacts,profile,all}, --summary |
| prospects autocomplete | Name/title/dept suggestions | --query, --field {name,job-title,department} |
| prospects statistics | Aggregated insights | --business-id, --group-by |
| prospects events list | List event types | --ids, --events |
| prospects events enroll | Subscribe to events | --ids, --events, --key |
| prospects events enrollments | List subscriptions | |
Research
AI-powered company research using Claude + web search. Requires ANTHROPIC_API_KEY environment variable.
| Command | Purpose | Key Options |
|---------|---------|-------------|
| research run | Research companies with AI + web search | -f FILE, --prompt, --threads, --max-searches, --no-polish, --verbose |
research run
Reads a CSV/JSON file, asks a question about each company using AI with web search, and outputs the original data with 3 new columns: research_answer, research_reasoning, research_confidence.
-f, --file FILENAME Input CSV or JSON file with company records [required]
-p, --prompt TEXT Research question to answer for each company [required]
-t, --threads INTEGER Max concurrent research tasks (default: 10)
--max-searches INTEGER Max web searches per company (default: 5)
--no-polish Skip prompt polishing with Sonnet
-v, --verbose Show detailed progress and polished prompt
How it works:
- Reads input file and auto-detects company name and domain columns
- Polishes the raw question into a precise research prompt using Claude Sonnet (skip with
--no-polish) - Fans out research across all companies concurrently (controlled by
--threads) - Each company is researched using Claude Haiku with web search tool
- Results are merged back into the original records
Example:
explorium research run -f companies.csv --prompt "Is this a B2B company?" -o csv --output-file researched.csv
Config & Webhooks
| Command | Purpose |
|---------|---------|
| config init -k KEY | Set API key |
| config show | Display config |
| config set KEY VALUE | Set config value |
| webhooks create --partner-id ID --url URL | Create webhook |
| webhooks get --partner-id ID | Get webhook |
| webhooks update --partner-id ID --url URL | Update webhook |
| webhooks delete --partner-id ID | Delete webhook |
CSV Column Mapping
The CLI auto-maps CSV columns (case-insensitive):
Businesses: name/company_name/company, domain/website/url, linkedin_url/linkedin
Prospects: full_name/name, first_name, last_name, email/email_address, linkedin/linkedin_url, company_name/company
Research: company_name/company/name/business_name (for company), domain/website/url (for domain)
LinkedIn URLs without https:// are auto-fixed.
Note: All -f/--file options accept CSVs with any number of columns. The CLI reads only the columns it needs and ignores the rest. You can pass the output of one command directly as input to the next without stripping columns.
Stdin Piping
All -f/--file options accept - to read from stdin, enabling command pipelines:
# Pipe match output into search, then into enrich
# bulk-enrich -f preserves input columns with input_ prefix
explorium businesses match -f companies.csv -o csv 2>/dev/null \
| explorium prospects search -f - --job-level cxo --total 10 -o csv 2>/dev/null \
| explorium prospects bulk-enrich -f - --types contacts -o csv \
> final_results.csv
Format (CSV vs JSON) is auto-detected from content. --summary output goes to stderr and won't corrupt piped data.
Workflows
Single company lookup
explorium businesses enrich --name "Acme Corp" -o table
Single prospect with contacts
explorium prospects enrich contacts --first-name John --last-name Doe --company-name "Acme Corp"
Discover valid filter values
# Find valid industry categories for --industry
explorium businesses autocomplete --query "software" --field industry
# Find valid technologies for --tech
explorium businesses autocomplete --query "React" --field tech
# Find valid job titles
explorium prospects autocomplete --query "founder" --field job-title
Search prospects by company name
# No need to resolve business_id manually -- --company-name does it internally
explorium prospects search --company-name "Salesforce" --job-level cxo --country US --total 50 --summary -o csv --output-file results.csv
Bulk: CSV in, enriched CSV out (recommended for files)
# One command: match + enrich, flat CSV output
explorium prospects enrich-file -f leads.csv --types all -o csv --summary --output-file enriched.csv
explorium businesses enrich-file -f companies.csv --types firmographics -o csv --summary --output-file enriched.csv
Pipeline: match then enrich separately
# Match first
explorium prospects match -f leads.csv -o csv --output-file matched.csv --summary
# Then enrich the matched file directly (reads prospect_id column)
explorium prospects bulk-enrich -f matched.csv --types all -o csv --output-file enriched.csv
Search and collect
# Get 200 SaaS companies in the US
explorium businesses search --country US --tech "Salesforce" --total 200 -o csv --output-file results.csv
Balanced search across companies
# Get up to 5 prospects per company (searches each company in parallel)
explorium prospects search -f biz_ids.csv --job-level cxo,vp --max-per-company 5 -o csv --output-file prospects.csv
Full pipeline: companies -> filter -> prospects -> contacts
# 1. Find target companies
explorium businesses search --country US --tech "Salesforce" --total 100 -o csv --output-file companies.csv
# 2. Match to get business IDs
explorium businesses match -f companies.csv --ids-only --output-file biz_ids.csv
# 3. Search prospects across those companies
explorium prospects search -f biz_ids.csv --job-level cxo,vp --has-email --total 200 -o csv --output-file prospects.csv
# 4. Enrich with contacts
explorium prospects bulk-enrich -f prospects.csv --types all -o csv --output-file enriched.csv
AI Research: answer questions about companies
# Research a list of companies with a custom question
explorium research run -f companies.csv --prompt "Does this company use Kubernetes?" -o csv --output-file researched.csv
# With more control
explorium research run -f companies.csv \
--prompt "What is this company's main product?" \
--threads 20 \
--max-searches 3 \
--verbose \
-o csv --output-file researched.csv
Event-Driven Marketing Leader Discovery
Goal: Find marketing leadership at companies actively posting about events
# Step 1: Match and enrich prospects (gets business_id)
explorium prospects enrich-file \
-f prospects.csv \
--types firmographics \
--summary \
-o csv --output-file matched_prospects.csv
# Step 2: Enrich companies with social posts
explorium businesses enrich-file \
-f matched_prospects.csv \
--types all \
--summary \
-o json --output-file companies_with_social.json
# Step 3: Filter for event posts
jq -r 'select(.social_posts != null) | select(.social_posts | tostring | test("(?i)(conference|webinar|event|summit)")) | .business_id' companies_with_social.json > event_companies.txt
echo "business_id" > event_companies.csv
cat event_companies.txt >> event_companies.csv
# Step 4: Find marketing leaders
explorium prospects search \
-f event_companies.csv \
--department "Marketing" \
--job-level "cxo,vp" \
--has-email \
--max-per-company 3 \
-o csv --output-file marketing_leaders.csv --summary
# Step 5: Enrich with contacts
explorium prospects enrich-file \
-f marketing_leaders.csv \
--types contacts \
--summary \
-o csv --output-file final_marketing_leaders.csv
Important Notes
- Match-based enrichment: All enrich commands accept
--name/--domain/--linkedininstead of--id-- the CLI resolves the ID automatically --min-confidence(default 0.8): Lower to 0.5-0.7 for fuzzy matchesenrich-fileis the fastest path for CSV workflows -- combines match + enrich in one command- CSV output flattens nested JSON automatically for spreadsheet use
--summaryshows matched/not-found/error counts on stderr--company-nameonprospects search: resolves company names to business IDs automatically (accepts comma-separated names)prospects search --summary: prints aggregate stats (countries, job levels, companies, email/phone counts) to stderr--fieldon autocomplete: discover valid values for--industry,--tech,--job-title,--department-f -reads from stdin on all file-accepting commands (auto-detects CSV vs JSON)- All batch operations retry on transient errors (429, 500-504, ConnectionError, Timeout) with exponential backoff. Failed batches are skipped and partial results are returned.
research runrequiresANTHROPIC_API_KEYenv var. Uses Sonnet for prompt polishing and Haiku + web search for per-company research.
Constraints
- Use ONLY Explorium CLI for all data operations
- DO NOT use Vibe Prospecting MCP for operations the CLI can handle
- Use
jq,cut,sort,echofor post-processing (system tools, allowed)
Scan to join WeChat group