Install
openclaw skills install explorium-company-researchDeep-dive company research in seconds. Get comprehensive profiles with firmographics, technographics, funding history, executive team, competitors, workforce trends, and recent news. Ideal for account research, competitive intelligence, and due diligence. Powered by Explorium AgentSource. Note: This is an unofficial community plugin and is not affiliated with or endorsed by Explorium.
openclaw skills install explorium-company-researchYou help users perform deep company research using the AgentSource API. You provide comprehensive company profiles, competitive intelligence, technology stack analysis, funding history, workforce trends, and more. Ideal for account planning, pre-call prep, competitive analysis, investment due diligence, and market research.
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. Results are written to temp files — you run the CLI, read the temp file, and present structured insights to the user.
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 secure API key setup instructions (never ask the user to paste keys in chat).
When a user wants to research a company, guide them through this workflow:
Ask: "Which company would you like to research?"
Gather:
Then match the company:
PLAN_ID=$(python3 -c "import uuid; print(uuid.uuid4())")
QUERY="<user's original request>"
MATCH_RESULT=$(python3 "$CLI" match-business \
--businesses '[{"name":"<company>","domain":"<domain>"}]' \
--plan-id "$PLAN_ID" --call-reasoning "$QUERY")
cat "$MATCH_RESULT"
If multiple matches, present them and ask the user to confirm.
Ask: "What aspects are you most interested in?"
Offer these research modes:
Ask: "What's the purpose of this research?" (helps prioritize data)
Common contexts:
Based on the chosen depth, call appropriate enrichments. Consult references/enrichments.md.
MATCH_RESULT=$(python3 "$CLI" match-business \
--businesses '[{"name":"Stripe","domain":"stripe.com"}]' \
--plan-id "$PLAN_ID" --call-reasoning "$QUERY")
cat "$MATCH_RESULT"
ENRICH_RESULT=$(python3 "$CLI" enrich \
--input-file "$MATCH_RESULT" \
--enrichments "firmographics" \
--plan-id "$PLAN_ID" --call-reasoning "$QUERY")
cat "$ENRICH_RESULT"
Present a structured company profile:
# Call 1: Core data (max 3 enrichments per call)
ENRICH_1=$(python3 "$CLI" enrich \
--input-file "$MATCH_RESULT" \
--enrichments "firmographics,technographics,funding-and-acquisitions")
cat "$ENRICH_1"
# Call 2: Signals and trends
ENRICH_2=$(python3 "$CLI" enrich \
--input-file "$ENRICH_1" \
--enrichments "workforce-trends,linkedin-posts")
cat "$ENRICH_2"
ENRICH_RESULT=$(python3 "$CLI" enrich \
--input-file "$MATCH_RESULT" \
--enrichments "technographics,webstack")
cat "$ENRICH_RESULT"
Present organized by category:
ENRICH_RESULT=$(python3 "$CLI" enrich \
--input-file "$MATCH_RESULT" \
--enrichments "firmographics,funding-and-acquisitions")
cat "$ENRICH_RESULT"
For public companies, add financial metrics:
ENRICH_RESULT=$(python3 "$CLI" enrich \
--input-file "$MATCH_RESULT" \
--enrichments "financial-metrics" \
--date "2025-12-31")
cat "$ENRICH_RESULT"
ENRICH_RESULT=$(python3 "$CLI" enrich \
--input-file "$MATCH_RESULT" \
--enrichments "competitive-landscape,strategic-insights,challenges")
cat "$ENRICH_RESULT"
# First match the company, then search for executives
BID=$(python3 -c "import json; print(json.load(open('$MATCH_RESULT'))['data'][0]['business_id'])")
FETCH_RESULT=$(python3 "$CLI" fetch \
--entity-type prospects \
--filters "{\"business_id\":{\"values\":[\"$BID\"]},\"job_level\":{\"values\":[\"c-suite\",\"vice president\",\"director\"]}}" \
--limit 20)
cat "$FETCH_RESULT"
# Enrich with profiles
ENRICH_RESULT=$(python3 "$CLI" enrich \
--input-file "$FETCH_RESULT" \
--enrichments "profiles")
cat "$ENRICH_RESULT"
EVENTS_RESULT=$(python3 "$CLI" events \
--input-file "$MATCH_RESULT" \
--event-types "new_funding_round,new_product,new_partnership,new_office,hiring_in_engineering_department,increase_in_all_departments" \
--since "2025-06-01")
cat "$EVENTS_RESULT"
When users want to compare multiple companies:
MATCH_RESULT=$(python3 "$CLI" match-business \
--businesses '[
{"name":"Stripe","domain":"stripe.com"},
{"name":"Square","domain":"squareup.com"},
{"name":"Adyen","domain":"adyen.com"}
]')
ENRICH_RESULT=$(python3 "$CLI" enrich \
--input-file "$MATCH_RESULT" \
--enrichments "firmographics,technographics,funding-and-acquisitions")
cat "$ENRICH_RESULT"
Present as a comparison table:
| Dimension | Company A | Company B | Company C |
|---|---|---|---|
| Employees | ... | ... | ... |
| Revenue | ... | ... | ... |
| Tech Stack | ... | ... | ... |
| Total Funding | ... | ... | ... |
Find companies in a specific segment:
RESULT=$(python3 "$CLI" statistics \
--entity-type businesses \
--filters '{"linkedin_category":{"values":["Financial Services"]},"company_country_code":{"values":["US"]},"company_size":{"values":["51-200","201-500"]}}')
cat "$RESULT"
ENRICH_RESULT=$(python3 "$CLI" enrich \
--input-file "$MATCH_RESULT" \
--enrichments "company-hierarchies")
cat "$ENRICH_RESULT"
Always present research in a structured, easy-to-scan format:
## [Company Name] — Research Summary
**Basic Info**
- Industry: [industry]
- Headquarters: [location]
- Founded: [year]
- Employees: [count]
- Revenue: [range]
- Website: [url]
**Technology Stack**
[Organized by category]
**Funding History**
[Timeline of rounds with amounts and investors]
**Recent Activity**
[Events from last 90 days]
**Key Executives**
[Name, Title, Department]
After presenting research:
CSV_RESULT=$(python3 "$CLI" to-csv \
--input-file "$ENRICH_RESULT" \
--output ~/Downloads/company_research.csv)
cat "$CSV_RESULT"
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 |
| Capability | Description |
|---|---|
| Company Profiles | Comprehensive firmographics: size, revenue, industry, location, description |
| Technology Analysis | Full tech stack with categories — development, cloud, marketing, business tools |
| Funding Intelligence | Complete funding history with rounds, investors, valuations |
| Financial Metrics | Revenue, margins, market cap for public companies |
| Competitive Intel | Competitors, market positioning, strategic insights from SEC filings |
| Workforce Trends | Department breakdown, hiring velocity, growth signals |
| Event Monitoring | Recent funding, hiring, partnerships, product launches, M&A activity |
| Executive Discovery | Find and profile C-suite and senior leadership at any company |
| Multi-Company Compare | Side-by-side comparison of multiple companies |
| Corporate Hierarchy | Parent companies, subsidiaries, organizational structure |
| Website Intelligence | Website tech stack, content changes, keyword monitoring |
| LinkedIn Activity | Recent company posts and engagement metrics |