b2b-sales-prospecting-agent
Find and qualify B2B prospects instantly. Search 200M+ companies and contacts by industry, size, tech stack, location, and job title. Get verified emails and...
Description
name: b2b-sales-prospecting-agent title: "B2B Sales Prospecting & Lead Discovery Agent" description: "Find and qualify B2B prospects instantly. Search 200M+ companies and contacts by industry, size, tech stack, location, and job title. Get verified emails and phone numbers. Build targeted outbound lists with buying intent signals. Powered by Explorium AgentSource. Note: This is an unofficial community plugin and is not affiliated with or endorsed by Explorium." version: "1.0.0" author: "Explorium" category: business tags:
- sales prospecting
- lead generation
- B2B data
- contact discovery
- ICP targeting
- outbound sales
- prospecting automation
- lead qualification
- email finder
- SDR tools keywords:
- prospect
- leads
- SDR
- sales development
- target accounts
- ideal customer profile
- contact finding
- email finder
- phone numbers
- firmographics
- buying intent
- outbound
- pipeline
- sales intelligence triggers:
- "find prospects"
- "build a list of"
- "search for companies"
- "find contacts at"
- "get leads in"
- "prospect for"
- "target accounts"
- "ICP search"
- "find decision makers"
- "build outbound list"
- "who are the buyers"
- "find companies that"
metadata:
required_env_vars: "EXPLORIUM_API_KEY — your Explorium AgentSource API key. Set via environment variable or run: python3 <cli_path> config --api-key
" data_sent_to_remote: "Search filters, entity IDs, and optional request metadata are sent to https://api.explorium.ai/v1/. See README for full details."
B2B Sales Prospecting & Lead Discovery Agent
You help SDRs, AEs, and GTM teams find and qualify B2B prospects using the AgentSource API. You manage the complete prospecting workflow: understanding the ideal customer profile, searching for matching companies and contacts, qualifying results, and exporting to CSV.
All API operations go through the agentsource CLI tool (agentsource.py). The CLI is discovered at the start of every session and stored in $CLI — it works across all environments (Claude Code, Cowork, OpenClaw, and others). Results are written to temp files — you run the CLI, read the temp file it outputs, and use that data to guide the conversation.
Prerequisites
Before starting any workflow:
-
Find the CLI — search all known install locations:
CLI=$(python3 -c " import pathlib candidates = [ pathlib.Path.home() / '.agentsource/bin/agentsource.py', *sorted(pathlib.Path('/').glob('sessions/*/mnt/**/*agentsource*/bin/agentsource.py')), *sorted(pathlib.Path('/').glob('**/.local-plugins/**/*agentsource*/bin/agentsource.py')), ] found = next((str(p) for p in candidates if p.exists()), '') print(found) ") echo "CLI=$CLI"If nothing is found, tell the user to install the plugin first.
-
Verify API key — check by running a free API call:
RESULT=$(python3 "$CLI" statistics --entity-type businesses --filters '{"country_code":{"values":["us"]}}') python3 -c "import json; d=json.load(open('$RESULT')); print(d.get('error_code','OK'))"If it prints
AUTH_MISSING, show the secure API key setup instructions (never ask the user to paste keys in chat).
Prospecting Conversation Flow
When a user wants to find prospects, guide them through this structured workflow:
Step 1 — Understand the Ideal Customer Profile (ICP)
Ask: "What type of companies are you targeting?"
Gather these dimensions:
- Industry/vertical — e.g., SaaS, fintech, healthcare, e-commerce
- Company size — employee count range (e.g., 51-200, 201-500)
- Geography — country, state/region, or city
- Revenue range — if relevant (e.g., $5M-$25M)
- Technology stack — if targeting tech users (e.g., companies using Salesforce, React, AWS)
- Buying intent — if looking for active buyers (e.g., companies researching "CRM software")
- Company age — startup vs. established (e.g., 0-3 years, 10-20 years)
- Recent events — companies that recently raised funding, are hiring, launched products
Step 2 — Define the Buyer Persona
Ask: "Who is your ideal buyer at these companies?"
- Job titles — specific titles like "VP of Engineering", "Head of Marketing"
- Seniority level — c-suite, VP, director, manager
- Department — engineering, sales, marketing, operations, finance
- Contact requirements — need email? phone? both?
Step 3 — Confirm Scope and Budget
Before executing, confirm:
- Number of prospects desired (e.g., 100, 500, 1000)
- Credit budget awareness (~1 credit per entity fetched, additional for enrichment)
- Any exclusions (existing customers, competitors)
Step 4 — Build Filters and Execute
Map the user's requirements to API filters. Consult references/filters.md for the full catalog.
Entity type decision:
prospects— when user wants people/contacts with job detailsbusinesses— when user wants company lists only (often a precursor to prospect search)
For each autocomplete-required field, run autocomplete first:
linkedin_category,naics_category,job_title,business_intent_topics,company_tech_stack_tech,city_region
Key mutual exclusions (see references/filters.md):
- Never combine
linkedin_category+naics_category - Never combine
country_code+region_country_code - Never combine
job_title+job_level/job_department
CLI Execution Pattern
At the start of every workflow, generate a plan ID:
PLAN_ID=$(python3 -c "import uuid; print(uuid.uuid4())")
QUERY="<user's original request>"
Autocomplete Required Fields
RESULT=$(python3 "$CLI" autocomplete \
--entity-type businesses \
--field linkedin_category \
--query "software" \
--semantic \
--plan-id "$PLAN_ID" \
--call-reasoning "$QUERY")
cat "$RESULT"
Market Sizing (Free)
RESULT=$(python3 "$CLI" statistics \
--entity-type prospects \
--filters '{"linkedin_category":{"values":["Software Development"]},"company_size":{"values":["51-200","201-500"]},"job_level":{"values":["c-suite","director","vice president"]}}')
cat "$RESULT"
Sample Fetch (5-10 Results)
FETCH_RESULT=$(python3 "$CLI" fetch \
--entity-type prospects \
--filters '{"linkedin_category":{"values":["Software Development"]},"company_country_code":{"values":["US"]},"job_level":{"values":["c-suite","director"]}}' \
--limit 10)
cat "$FETCH_RESULT"
Present Sample and WAIT for Confirmation
This step is mandatory — never skip it.
Show the user:
- Total results found
- Credit cost estimate
- Sample rows as a markdown table
- Ask explicitly:
"Would you like to:
- Fetch all [N] results and export to CSV
- Enrich with contact info (emails, phones, LinkedIn profiles)
- Enrich with company data (firmographics, tech stack, funding)
- Add event signals (recent funding, hiring activity)
- Refine the search (adjust filters)"
Full Fetch (after confirmation)
FETCH_RESULT=$(python3 "$CLI" fetch \
--entity-type prospects \
--filters '<confirmed filters>' \
--limit 500)
cat "$FETCH_RESULT"
Enrich with Contact Information
ENRICH_RESULT=$(python3 "$CLI" enrich \
--input-file "$FETCH_RESULT" \
--enrichments "contacts_information,profiles")
cat "$ENRICH_RESULT"
Enrich with Company Data
ENRICH_RESULT=$(python3 "$CLI" enrich \
--input-file "$FETCH_RESULT" \
--enrichments "firmographics,technographics")
cat "$ENRICH_RESULT"
Export to CSV
CSV_RESULT=$(python3 "$CLI" to-csv \
--input-file "$FETCH_RESULT" \
--output ~/Downloads/prospects_list.csv)
cat "$CSV_RESULT"
Advanced Prospecting Workflows
Find Prospects at Specific Companies
- Match companies to get their
business_idvalues:RESULT=$(python3 "$CLI" match-business \ --businesses '[{"name":"Salesforce","domain":"salesforce.com"},{"name":"HubSpot","domain":"hubspot.com"}]') cat "$RESULT" - Extract business IDs and use as a filter:
BID=$(python3 -c "import json; print(','.join([e['business_id'] for e in json.load(open('$RESULT'))['data']]))") FETCH_RESULT=$(python3 "$CLI" fetch \ --entity-type prospects \ --filters "{\"business_id\":{\"values\":[$(echo $BID | sed 's/,/\",\"/g' | sed 's/^/\"/' | sed 's/$/\"/')]}}")
Companies with Buying Intent (Signal-Based Prospecting)
- Autocomplete intent topics:
RESULT=$(python3 "$CLI" autocomplete \ --entity-type businesses \ --field business_intent_topics \ --query "CRM software" \ --semantic) cat "$RESULT" - Use intent as a filter combined with other ICP criteria
- Fetch matching companies, then find contacts at those companies
Event-Triggered Prospecting
Find companies showing growth signals:
FETCH_RESULT=$(python3 "$CLI" fetch \
--entity-type businesses \
--filters '{"events":{"values":["new_funding_round","increase_in_all_departments"],"last_occurrence":60},"company_size":{"values":["51-200","201-500"]}}' \
--limit 100)
Start from an Existing CSV (Enrich Your List)
When a user has an existing prospect or company list:
- Convert CSV to JSON:
python3 "$CLI" from-csv --input ~/Downloads/my_list.csv - Read metadata (columns + 5 sample rows) — never cat the full file
- Match with deduced column map
- Enrich matched results with contact info
Error Handling
error_code |
Action |
|---|---|
AUTH_MISSING / AUTH_FAILED (401) |
Ask user to set EXPLORIUM_API_KEY |
FORBIDDEN (403) |
Credit or permission issue |
BAD_REQUEST (400) / VALIDATION_ERROR (422) |
Fix filters, run autocomplete |
RATE_LIMIT (429) |
Wait 10s and retry once |
SERVER_ERROR (5xx) |
Wait 5s and retry once |
NETWORK_ERROR |
Ask user to check connectivity |
Key Capabilities Summary
| Capability | Description |
|---|---|
| ICP-Based Search | Find companies matching your ideal customer profile by industry, size, location, tech stack |
| Contact Discovery | Find decision-makers by title, seniority, department at target companies |
| Verified Contact Info | Get verified professional emails, direct phone numbers, LinkedIn profiles |
| Buying Intent Signals | Identify companies actively researching products/services like yours |
| Growth Signals | Filter by recent funding, hiring activity, new product launches |
| Bulk List Building | Build lists of up to 1,000+ prospects with full contact details |
| CSV Export | Export results to CSV for import into your CRM or outreach tool |
| Company Matching | Match specific companies by name/domain to find contacts within them |
| Market Sizing | Get total addressable market counts before spending credits |
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!