enrich_organization
Retrieve detailed company information including employee count, revenue, technologies, funding, and other business intelligence by providing a domain name.
Instructions
Enrich an organization's data with detailed company information, employee count, revenue, technologies used, funding, and more. Provide domain name.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Company domain (e.g., apollo.io) |
Implementation Reference
- src/index.ts:707-749 (handler)The handler function that implements the core logic for the 'enrich_organization' tool. It makes an API call to Apollo's /organizations/enrich endpoint using the provided domain and formats the returned organization data into a structured text response.private async enrichOrganization(args: any) { const response = await this.axiosInstance.post("/organizations/enrich", args); const org = response.data.organization; if (!org) { return { content: [ { type: "text", text: "No organization found with the provided domain.", }, ], }; } let result = `Organization Enrichment Results:\n\n`; result += `Name: ${org.name}\n`; result += `ID: ${org.id}\n`; result += `Domain: ${org.website_url || org.primary_domain || "N/A"}\n`; result += `Industry: ${org.industry || "N/A"}\n`; result += `Description: ${org.short_description || "N/A"}\n`; result += `Founded: ${org.founded_year || "N/A"}\n`; result += `Employees: ${org.estimated_num_employees || "N/A"}\n`; result += `Revenue: ${org.annual_revenue ? `$${org.annual_revenue}` : "N/A"}\n`; result += `Location: ${org.city ? `${org.city}, ${org.state || org.country}` : "N/A"}\n`; result += `Phone: ${org.phone || "N/A"}\n`; result += `LinkedIn: ${org.linkedin_url || "N/A"}\n`; result += `Facebook: ${org.facebook_url || "N/A"}\n`; result += `Twitter: ${org.twitter_url || "N/A"}\n\n`; if (org.technologies) { result += `Technologies Used: ${org.technologies.join(", ")}\n`; } return { content: [ { type: "text", text: result, }, ], }; }
- src/index.ts:260-269 (schema)The input schema definition for the 'enrich_organization' tool, specifying that a 'domain' string parameter is required.inputSchema: { type: "object", properties: { domain: { type: "string", description: "Company domain (e.g., apollo.io)", }, }, required: ["domain"], },
- src/index.ts:256-270 (registration)The tool registration entry in the getTools() method, which defines the name, description, and input schema advertised to MCP clients via listTools.{ name: "enrich_organization", description: "Enrich an organization's data with detailed company information, employee count, revenue, technologies used, funding, and more. Provide domain name.", inputSchema: { type: "object", properties: { domain: { type: "string", description: "Company domain (e.g., apollo.io)", }, }, required: ["domain"], }, },
- src/index.ts:68-69 (registration)The dispatch case in the CallToolRequestSchema handler that routes calls to the enrichOrganization method based on the tool name.case "enrich_organization": return await this.enrichOrganization(args);