MCP App Store
by KeenEthics
AgentSource icon

AgentSource

By Explorium.ai

Get New App Alerts

Overview

AgentSource brings live B2B data into ChatGPT for company research, market analysis, and data enrichment. It draws on Explorium's database of 150M+ companies and 800M+ professional contacts aggregated from 50+ sources, and returns full results directly in the conversation. Research companies. Look up a company by name or domain and pull firmographics, technology stack, web infrastructure, funding and acquisitions, workforce and hiring trends, employee ratings, corporate hierarchy, website changes, LinkedIn posts, and challenges, strategy and competitive landscape from public filings. Search the market. Describe a segment in plain language and filter by industry (LinkedIn, NAICS), employee count, revenue, company age, location, public or private status, technologies used, website keywords, buying-intent topics, and recent business events. Count how many companies or people match before pulling rows, with breakdowns by industry, size, revenue and geography. Find and profile people. Search professionals by job title, seniority, department, location, skills, experience and tenure, or look up a named person by email, LinkedIn URL, phone, or name and company. Add work history, education and verified business contact details. Track signals. See which companies raised funding, launched products, opened or closed offices, formed partnerships, cut costs, completed acquisitions, or grew or shrank departments, and which people changed roles or companies. Enrich your own lists. Paste companies or contacts and the app matches each row to the right record, flags duplicates, and appends the data you ask for. Who it's for. Analysts, founders, investors, strategy and RevOps teams, sales and marketing teams, and recruiters who need accurate company and people data inside their research workflow. Try prompts like: "Research stripe.com: funding, headcount trends and tech stack." "How many US fintech companies with 200 to 1,000 employees use Snowflake?" "Compare Gong, Chorus and Clari side by side." "Which of these companies raised funding in the last 90 days?" "Find VP-level engineering leaders at Series B SaaS companies in Germany." "Find companies similar to datadoghq.com." "Map the data engineering teams at these five competitors." "Clean and match this list of company names to domains." AgentSource is Explorium's B2B data API and MCP. Data is retrieved live at query time, not from a static export.

Tools

autocomplete

ChatGPT
Autocomplete standardized filter values from the Partner service before using them in fetch-entities or fetch-entities-statistics. WHAT TO DO: - Call with field (allowed enum only) and query; copy returned value strings into your next fetch (do not substitute raw user text for autocomplete-backed filters). Query rules (critical): - Pass exactly one concept per call: a single word or short phrase (≤100 characters). - Never pack comma-separated or space-joined lists (e.g. "defense, aviation, medical devices") into one query — that fails. - For multiple concepts, call autocomplete once per concept and merge the returned values. Never use for fields not explicitly listed (e.g., website_keywords). Prefer linkedin_category over google_category when both apply. Category Selection Strategy: When autocomplete returns multiple relevant categories, you MUST: - ✓ MUST include ALL applicable categories to maximize coverage - ✓ ALWAYS prioritize comprehensiveness over precision - ✗ ONLY exclude clearly unrelated categories - ✓ For broad queries → include more categories rather than fewer - VIOLATION: Limiting selection unnecessarily will reduce result quality Session Storage: - If session_id is provided, results will be stored for future reference - If not provided, a new session_id will be created and returned - Returns session_id in the response for future data retrieval Do NOT call autocomplete for: - company_country_code: List[str] — use valid ISO Alpha-2 country codes directly (e.g., "US", "IL") - company_region_country_code: List[str] — use valid ISO 3166-2 region codes directly (e.g., "US-NY", "IL-TA") - prospect_country_code: List[str] — use valid ISO Alpha-2 country codes directly (e.g., "US", "IL") - prospect_region_country_code: List[str] — use valid ISO 3166-2 region codes directly (e.g., "US-NY", "IL-TA") Hints: - Searching for SaaS? Use the keyword 'software'

enrich-business

ChatGPT
Add detailed information to companies using Explorium business IDs from match-business or fetch-entities (entity_type businesses). Session Storage: - If session_id is provided, results will be stored for future reference - If not provided, a new session_id will be created and returned - Returns session_id in the response for future data retrieval WHAT TO DO: - Pass business_ids from match-business or from fetch-entities result rows - Choose enrichment types (firmographics, technographics, funding, etc.); combine several in one call when the user wants broad company intelligence - Use only enrichment-specific optional parameters published in the input schema - Cowork responses come back under enrichment_results as JSON strings per enrichment key. Capture raw JSON and parse each string instead of assuming row arrays. DATA AVAILABILITY: CRITICAL - Handle missing or unavailable data appropriately: - ✓ If enrichment returns empty/null fields → Present available data without apologizing - ✓ If specific enrichment unavailable → Suggest alternative enrichments that may help - ✗ DO NOT claim enrichment types not in the available list below - ✗ DO NOT suggest enriching data that requires file uploads or unavailable data sources - ✗ DO NOT frame missing data as Explorium limitations or deficiencies - ✓ Focus on what IS available rather than what is missing Available enrichment types: - firmographics: Basic company info (name, description, website, location, industry, size, revenue) - technographics: Complete technology stack used by the business - company-ratings: Employee satisfaction and company culture ratings - financial-metrics: Financial data for public companies (optional parameters.date; defaults to approximately 4 months ago if omitted) - funding-and-acquisitions: Funding history, investors, IPO, acquisitions - challenges: Business challenges and risks from SEC filings - competitive-landscape: Market position and competitors from SEC filings - strategic-insights: Strategic focus and value propositions from SEC filings - workforce-trends: Department composition and hiring trends - website-changes: Website content changes over time - website-keywords: Search for specific keywords on company websites (requires keywords parameter) - webstack: Website-specific technologies and web infrastructure components detected on company websites - company-hierarchies: Corporate hierarchy including parent company, ultimate parent, subsidiaries, and full organization tree (JSON format) - linkedin-posts: Company LinkedIn posts and engagement metrics - bombora-intent: Company-level buying intent from Bombora weekly data. Call autocomplete first with field=business_intent_topics; optional parameters.topics and parameters.min_score (>60) PRESENTATION - Show results in a complete "left-join style" markdown table with all available fields from the enrich responses. - NEVER mention internal table names or technical internals.

enrich-prospects

ChatGPT
Add contact details and profiles to people using Explorium prospect IDs from match-prospects or fetch-entities (entity_type prospects). Session Storage: - If session_id is provided, results will be stored for future reference - If not provided, a new session_id will be created and returned - Returns session_id in the response for future data retrieval WHAT TO DO: - Pass prospect_ids from match-prospects or from fetch-entities result rows - Choose enrichment types (contacts for emails/phones, profiles for work history); combine in one call when appropriate - Practical batch limit: 50 prospect IDs per call even if a schema snapshot suggests more - parameters.contact_types: Contacts enrichment only. Use ["email"] for email only, ["phone"] for phone only, or ["email", "phone"] for both/either. Omit or null to request both. Do not run contact enrichment for profile-only requests. - Cowork responses come back under enrichment_results as JSON strings per enrichment key. Capture raw JSON and parse each string instead of assuming row arrays. DATA AVAILABILITY: CRITICAL - Handle missing or unavailable data appropriately: - ✓ If enrichment returns empty/null contact fields → Present available data without apologizing - ✓ If emails/phones unavailable for some prospects → Focus on successfully enriched prospects - ✗ DO NOT claim enrichment types not in the available list below - ✗ DO NOT suggest enriching data that requires file uploads or unavailable data sources - ✗ DO NOT frame missing data as Explorium limitations or deficiencies - ✓ Explain that contact availability varies by prospect and data sources Available enrichment types: - contacts: Professional email (professional_email) and mobile phone (mobile_phone) - profiles: Full name, demographics, location, role details, work experience, education - linkedin-posts: Post content, engagement metrics, creation dates PRESENTATION - Show results in a complete "left-join style" markdown table with all available fields from the enrich responses. - NEVER mention internal table names or technical internals.

fetch-businesses-events

ChatGPT
Retrieves business-related events from the Explorium API in bulk. If you're looking for events related to role changes, you should use the prospects events tool instead. BEFORE CALLING THIS TOOL: - You MUST ask the user to confirm they want event details before calling fetch-businesses-events when the prior fetch-entities call used filters.events (skip only if they explicitly asked for event details in the same message). - Wrong: call fetch-businesses-events immediately after fetch-entities returns businesses with matching event signals. - Right: present the matching businesses, ask "Do you want me to fetch the detailed event records for these companies?", and call this tool only after the user confirms. Use Cases: - Get detailed event information after filtering businesses using the events filter in fetch-entities - Research a company's complete event history with specific event types and timestamps - Analyze timing and details of funding rounds, partnerships, office changes, etc. Workflow: 1. Use fetch-entities with events filter, or match-business, to get business IDs 2. Ask the user whether to run this tool (skip if they already asked in the same message) Note: For events related to role changes or people movements, use the prospects events tool instead. WHAT TO DO: - Pass business_ids from match-business or fetch-entities (entity_type businesses), at most 20 per call - You MUST ask the user before calling this tool when the prior fetch used filters.events (skip only if they explicitly asked for event details in the same message) - Choose event types and time range EMPTY RESULTS HANDLING: If query returns zero events: - ✗ DO NOT simply state "no events found" or "no data available" - ✓ Proactively suggest expanding the search period - ✓ Provide constructive guidance: "No events found in this time period. To capture more activity, consider expanding your date range. For example, extending the search to [suggest broader period] may reveal relevant events." - ✓ Frame positively as an opportunity to refine the search Default Timeframe: - If the user asks for recent events or does not supply a timeframe, the default start date is 3 months ago - This default is automatically applied when timestamp_from is not specified - Include timestamp_from only when the user explicitly asks for a specific time period Session ID: - Optional. Reuse it across calls for the same request; if omitted, a new session_id is generated and returned - Results are not stored; call the tool again to get the events PRESENTATION - Show results in a complete "left-join style" markdown table with all available fields returned by the API. - NEVER mention internal table names or technical internals.

fetch-entities

ChatGPT
Find companies and/or prospects using any combination of filters. Session Storage: - If session_id is provided, results will be stored for future reference - If not provided, a new session_id will be created and returned - Returns session_id in the response for future data retrieval WHAT TO DO: - Set entity_type, filters, required page_size (max 500; recommend 50 when the user does not specify a count), and next_cursor (null for page one). Use max_per_company only for prospects when the user specifies a per-company limit; keep all of these stable when chaining next_cursor pages. Each run uses full mode; cursor pagination is defined under PAGINATION below (aligned with fetchPaginatedData). - Whenever the user is asking to find companies who need or are showing intent/interest/relevancy for a certain product or service, use the business_intent_topics filter. - ALWAYS use autocomplete for the following filters: linkedin_category, naics_category, job_title, interests, skills, business_intent_topics, company_tech_stack_tech. - CRITICAL: Standardized values from autocomplete MUST be used in the subsequent fetch call. DO NOT use raw user input for these filters under any circumstances. - PERSISTENCE: Ensure standardized values are preserved and used even if other tools (like match) are called between autocomplete and fetch. ENTITY_TYPE SELECTION (REQUIRED): - Use "prospects" - When request involves people/individuals in ANY way - Use "businesses" - When request is ONLY about companies with NO people KEY: Any people-related request = use "prospects" directly LOCATION FILTERS: - company_country_code / company_region_country_code filter the company's HQ location. - prospect_country_code / prospect_region_country_code filter where the person is based. - If entity_type is prospects and the user mentions a location without making clear whether it applies to the person or the company, ask before fetching: "Before I search, when you say "in <location>", do you mean: - Prospects who are physically based there - Prospects working at companies headquartered there - Both: prospects who are physically based there and work at companies headquartered there" - Do not ask when the wording is clear, such as "companies in Germany" (company HQ) or "prospects based in New York" (prospect location). - Only call this tool after the user confirms which location filter to use. PROSPECT CONTACT INFO (EMAIL / PHONE): - Availability only, not contact values: "email" = email available; "phone" = phone available; "email_or_phone" = at least one; "email_and_phone" = both. Profile only: omit contact filters, including deprecated filters. - Ask before prospect fetch unless the prompt/current dataset specifies a preference. Never ask for business-only searches. MUST show all four options verbatim, in order; never omit or merge "Email or phone (or Both)": "Before I search, would you like to include contact details in your results? - Emails only - Phones only - Email or phone (or Both) - No, only prospect profile" - Set filters.has_contact_details.value, in option order: email, phone, email_or_phone, or omit the filter. Email does not exclude prospects with phones. - Apply explicit preferences directly (phone/mobile only → phone). Map clear free text/"Something else"; ask if ambiguous. Retain the preference until the dataset or preference changes. - Profile only: no contact enrichment. - For requested contacts, run enrich-prospects with enrichments: ["contacts"] and fetched prospect_ids in the same session_id; use enriched results downstream. EVENT DETAILS: - filters.events only selects businesses with that signal—it does not add event detail fields to fetch results. - If the fetch used filters.events and the user did not already ask for event details in the same message, you MUST ask after presenting results and before fetch-*-events: "Would you like me to retrieve event details for these results? - Yes, get event details - No thanks, keep results as-is" - Wrong…

fetch-entities-statistics

ChatGPT
Fetch aggregated insights into businesses or prospects by industry, revenue, employee count, job department, and geographic distribution. Session Storage: - If session_id is provided, results will be stored for future reference - If not provided, a new session_id will be created and returned - Returns session_id in the response for future data retrieval WHAT TO DO: - Set entity_type and filters to match your discovery intent. Aggregations cover all rows matching the filters, not only the first page of fetch-entities. Aggregations reflect all rows that match your filters, not just the first page of a fetch. CRITICAL RULES: - Use "prospects" - When request involves prospects in ANY way - Use "businesses" - When request is ONLY about companies with NO prospects Autocomplete-Required Filters (standardized values MUST be obtained from autocomplete tool FIRST): - linkedin_category: LinkedIn industry categories - company_tech_stack_tech: Specific technologies - naics_category: NAICS industry codes - job_title: Job titles - business_intent_topics: Intent topic strings MANDATORY RULE: If you use ANY of these filters, you MUST call autocomplete FIRST. NO EXCEPTIONS. NO SHORTCUTS. Exception: If autocomplete returns empty results after broadening your query once, skip that filter entirely. Direct-Use Filters (use standard codes directly, no autocomplete needed): - country_code, company_country_code → use ISO Alpha-2 codes (e.g., "US", "IL") - region_country_code, company_region_country_code → use ISO 3166-2 codes (e.g., "US-CA", "IL-TA") Tip: - To get statistics or breakdowns by state/region, use the company_region_country_code or prospect_region_country_code filter with ISO 3166-2 codes (e.g., "US-NY"). Returns: Aggregated statistics based on the selected entity type and filters.

fetch-prospects-events

ChatGPT
Retrieves prospect-related events from the Explorium API in bulk. BEFORE CALLING THIS TOOL: - You MUST ask the user to confirm they want event details before calling fetch-prospects-events when the prior fetch-entities call used event-related filters or when the user only asked for prospects with role/company-change signals (skip only if they explicitly asked for event details in the same message). - Wrong: call fetch-prospects-events immediately after fetch-entities returns prospects with matching event signals. - Right: present the matching prospects, ask "Do you want me to fetch the detailed event records for these prospects?", and call this tool only after the user confirms. WHAT TO DO: - Pass prospect_ids from match-prospects or fetch-entities (entity_type prospects), at most 20 per call - You MUST ask the user before calling this tool when they want role/company-change details (skip only if they explicitly asked for event details in the same message) - Choose event types and time range EMPTY RESULTS HANDLING: If query returns zero events: - ✗ DO NOT simply state "no events found" or "no data available" - ✓ Proactively suggest expanding the search period - ✓ Provide constructive guidance: "No events found in this time period. To capture more activity, consider expanding your date range. For example, extending the search to [suggest broader period] may reveal relevant events." - ✓ Frame positively as an opportunity to refine the search Default Timeframe: - If the user asks for recent events or does not supply a timeframe, the default start date is 3 months ago - This default is automatically applied when timestamp_from is not specified - Include timestamp_from only when the user explicitly asks for a specific time period Session ID: - Optional. Reuse it across calls for the same request; if omitted, a new session_id is generated and returned - Results are not stored; call the tool again to get the events Use this when querying for prospect-related events about businesses: Example workflow: Fetch entities (businesses) > Fetch entities (prospects) > Fetch prospects events PRESENTATION - Show results in a complete "left-join style" markdown table with all available fields returned by the API. - NEVER mention internal table names or technical internals.

match-business

ChatGPT
Get the Explorium business IDs from business name and/or domain in bulk. Session Storage: - If session_id is provided, results will be stored for future reference - If not provided, a new session_id will be created and returned - Returns session_id in the response for future data retrieval WHAT TO DO: - Send businesses_to_match: one entry per company; use name, domain, or both (both recommended for accuracy). - Limit: at most 50 businesses per call. Use Cases: You can provide either name OR domain for each business: - Using only name: {"name": "Google"} - Using only domain: {"domain": "microsoft.com"} - Using both (recommended for better accuracy): {"name": "Amazon", "domain": "amazon.com"} CRITICAL: For ANY question about a specific company, this tool provides: - Verified, structured B2B/B2C data - Accurate firmographics (size, revenue, industry) - Comprehensive company intelligence (technographics, funding, executives, etc.) - Real-time employee data and contact information - Consistent, high-quality data format Appropriate for questions involving: - Company information (size, revenue, industry, location) - Executive teams or employee data - Technology stack analysis - Funding history or investors - Company events or changes - Workforce trends and hiring - Contact information for company employees - Competitive analysis or market positioning - Present ALL matched businesses data in a complete left join style markdown table format - Show every field and piece of data available for each business - NEVER mention internal table names or technical details Do NOT use when: - You already called fetch-entities for businesses (response contains business IDs) - Looking for general industry trends without specific companies - Searching for news articles or press releases

match-prospects

ChatGPT
Match specific individuals to get their Explorium prospect IDs. Explorium is a B2B/B2C data company. Session Storage: - If session_id is provided, results will be stored for future reference - If not provided, a new session_id will be created and returned - Returns session_id in the response for future data retrieval WHAT TO DO: - Send prospects_to_match with email OR (`full_name` + `company_name`) per person (see schema). - Limit: at most 40 prospects per call. Use Cases: - Present ALL matched prospects data in a complete left join style markdown table format - Show every field and piece of data available for each prospect - NEVER mention internal table names or technical details Appropriate for questions involving: - "Who is [Name] at [Company]?" - "Get me [Person's] contact information" - "Tell me about [Specific Person]" - Professional background of named individuals - Contact details, work history, social profiles of specific people Requirements: Email OR (full name + company name) LOW MATCH RATE HANDLING: When many prospects are unmatched (prospect_id is null): - Frame the low match rate as an input data quality opportunity, NOT a platform limitation - Suggest improvements: adding LinkedIn URLs, replacing generic emails (contact@, info@) with personal business emails, verifying company names

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

Similar Apps