templates · MIT licensed · copy to clipboard

Working agents.
Copy. Paste. Ship.

Real code that runs. Six frameworks. Each under 50 lines. Set your API key, copy the snippet, ship in under five minutes.

curl quickstart.

No dependencies. Just bash + jq. Demonstrates enrich, find-email, find-decision-maker, signals, and the sales-deck bundle.

curl-quickstart.sh
#!/usr/bin/env bash
# AgentEnrich. Pure curl quickstart.

: "${AGENTENRICH_API_KEY:?Set AGENTENRICH_API_KEY first}"
BASE="${AGENTENRICH_BASE_URL:-https://api.agentenrich.com}"
H_AUTH="Authorization: Bearer ${AGENTENRICH_API_KEY}"
H_JSON="Content-Type: application/json"

# 1. Enrich a LinkedIn URL
curl -sS -X POST "${BASE}/v1/enrich" -H "${H_AUTH}" -H "${H_JSON}" \
  -d '{"kind":"linkedin","linkedinUrl":"https://www.linkedin.com/in/satyanadella"}' \
  | jq '{name: .person.fullName, title: .person.title}'

# 2. Find a verified email
curl -sS -X POST "${BASE}/v1/find-email" -H "${H_AUTH}" -H "${H_JSON}" \
  -d '{"kind":"linkedin","linkedinUrl":"https://www.linkedin.com/in/satyanadella"}' \
  | jq '{email, email_verified, mx_found}'

# 3. Find the head of growth at a company
curl -sS -X POST "${BASE}/v1/find-decision-maker" -H "${H_AUTH}" -H "${H_JSON}" \
  -d '{"company_domain":"stripe.com","role":"Head of Growth"}' \
  | jq '.results[] | {name: .fullName, title: .title}'

# 4. Live job-change feed
curl -sS "${BASE}/v1/signals?kind=job-change&limit=5" -H "${H_AUTH}" \
  | jq '.data[] | {who: .personName, new_role: .newRole, at: .companyName}'

# 5. Full account brief in one call
curl -sS -X POST "${BASE}/v1/bundles/sales-deck" -H "${H_AUTH}" -H "${H_JSON}" \
  -d '{"company_domain":"stripe.com","target_role":"VP Engineering"}' \
  | jq '{company: .company.name, dm: .decision_maker.fullName}'

Python quickstart.

No pip install needed. Builds a target account list, finds the VP Sales at each, verifies their email, prints CSV-ready outbound.

python-quickstart.py
import json, os, urllib.request

API_KEY = os.environ["AGENTENRICH_API_KEY"]
BASE = "https://api.agentenrich.com"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}

def call(path, body=None):
    data = json.dumps(body).encode() if body else None
    req = urllib.request.Request(f"{BASE}{path}", data=data, headers=HEADERS, method="POST")
    with urllib.request.urlopen(req) as r:
        return json.loads(r.read())

# Target accounts
domains = ["stripe.com", "plaid.com", "ramp.com"]

print("domain,name,title,email,verified")
for domain in domains:
    dm = call("/v1/find-decision-maker", {"company_domain": domain, "role": "VP of Sales"})
    if not dm.get("results"): continue
    person = dm["results"][0]
    email_info = call("/v1/find-email", {"kind": "linkedin", "linkedinUrl": person["linkedinUrl"]})
    print(f"{domain},{person.get('fullName')},{person.get('title')},{email_info.get('email')},{'yes' if email_info.get('email_verified') else 'no'}")

AI SDR agent with Claude.

Pulls funding signals, finds the VP of Sales at each, drafts personalized outreach. Needs npm i ai @ai-sdk/anthropic zod.

agent.ts
import { generateText, tool } from "ai";
import { anthropic } from "@ai-sdk/anthropic";
import { z } from "zod";

const AE = "https://api.agentenrich.com";
const H = { Authorization: `Bearer ${process.env.AGENTENRICH_API_KEY}`, "Content-Type": "application/json" };

const tools = {
  list_funding: tool({
    description: "Recent funding signals. Included on Pro+.",
    parameters: z.object({ limit: z.number().default(10) }),
    execute: async ({ limit }) => (await fetch(`${AE}/v1/signals?kind=funding&limit=${limit}`, { headers: H }).then(r => r.json())).data,
  }),
  find_dm: tool({
    description: "Top buyer at a company by role. 4cr per resolved.",
    parameters: z.object({ company_domain: z.string(), role: z.string() }),
    execute: async (a) => (await fetch(`${AE}/v1/find-decision-maker`, { method: "POST", headers: H, body: JSON.stringify(a) }).then(r => r.json())).results?.[0],
  }),
  prospect_package: tool({
    description: "Email, phone, peers, hooks. 12 credits.",
    parameters: z.object({ linkedinUrl: z.string() }),
    execute: async (a) => fetch(`${AE}/v1/prospect-package`, { method: "POST", headers: H, body: JSON.stringify(a) }).then(r => r.json()),
  }),
};

const { text } = await generateText({
  model: anthropic("claude-sonnet-4-6"), tools, maxSteps: 8,
  system: "You are an AI SDR. Find 3 recently funded B2B companies, get the VP Sales at each, run prospect_package, draft personalized outreach. Output JSON.",
  prompt: "Run the loop.",
});
console.log(text);

Multi-step research agent.

Given a competitor domain, maps their leadership, finds lookalike companies, drills into the top one. Needs npm i langchain @langchain/anthropic @langchain/core zod.

research-agent.ts
import { ChatAnthropic } from "@langchain/anthropic";
import { tool } from "@langchain/core/tools";
import { createReactAgent } from "langchain/agents";
import { z } from "zod";

const AE = "https://api.agentenrich.com";
const H = { Authorization: `Bearer ${process.env.AGENTENRICH_API_KEY}`, "Content-Type": "application/json" };

const competitiveIntel = tool(
  async ({ competitor_domain }) => JSON.stringify(await (await fetch(`${AE}/v1/bundles/competitive-intel`, { method: "POST", headers: H, body: JSON.stringify({ competitor_domain }) })).json()),
  { name: "competitive_intel", description: "Leadership + recent moves + tech + lookalike TAM. 25 cr.", schema: z.object({ competitor_domain: z.string() }) }
);

const salesDeck = tool(
  async (a) => JSON.stringify(await (await fetch(`${AE}/v1/bundles/sales-deck`, { method: "POST", headers: H, body: JSON.stringify(a) })).json()),
  { name: "sales_deck", description: "Full account brief. 25 cr.", schema: z.object({ company_domain: z.string(), target_role: z.string() }) }
);

const agent = await createReactAgent({
  llm: new ChatAnthropic({ model: "claude-sonnet-4-6" }),
  tools: [competitiveIntel, salesDeck],
});

const out = await agent.invoke({ input: "Competitor is segment.com. Find the best lookalike and brief me on it." });
console.log(out);

Multi-agent recruiting crew.

Sourcer finds 10 lookalike candidates. Outreach agent writes personalized intros. Needs pip install crewai requests.

recruiting_crew.py
import json, os, requests
from crewai import Agent, Task, Crew
from crewai.tools import tool

AE = "https://api.agentenrich.com"
H = {"Authorization": f"Bearer {os.environ['AGENTENRICH_API_KEY']}", "Content-Type": "application/json"}

@tool("Find similar candidates")
def find_similar(linkedin_url: str) -> str:
    r = requests.post(f"{AE}/v1/find-similar-people", headers=H, json={"linkedinUrl": linkedin_url, "limit": 10}).json()
    return json.dumps(r.get("similar_people", []))

@tool("Get prospect package")
def prospect_pack(linkedin_url: str) -> str:
    return json.dumps(requests.post(f"{AE}/v1/prospect-package", headers=H, json={"linkedinUrl": linkedin_url}).json())

sourcer = Agent(role="Talent sourcer", goal="Find 10 candidates similar to seed", backstory="Veteran sourcer", tools=[find_similar])
outreach = Agent(role="Outreach copywriter", goal="Draft personalized intros", backstory="Writes like a human", tools=[prospect_pack])

seed = "https://www.linkedin.com/in/some-engineer"
source_task = Task(description=f"Find 10 candidates similar to {seed}", expected_output="JSON list", agent=sourcer)
write_task = Task(description="For each: prospect_pack + 4-line intro email referencing their work", expected_output="JSON list", agent=outreach, context=[source_task])

result = Crew(agents=[sourcer, outreach], tasks=[source_task, write_task]).kickoff()
print(result)

MCP server, 30-second install.

Paste this into your MCP config. Restart Claude Desktop. Your agent gets 12 enrichment tools instantly.

claude_desktop_config.json
{
  "mcpServers": {
    "agentenrich": {
      "command": "npx",
      "args": ["-y", "@agentenrich/mcp"],
      "env": { "AGENTENRICH_API_KEY": "ae_live_PASTE_YOUR_KEY_HERE" }
    }
  }
}

On Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%\Claude\claude_desktop_config.json

Built something with us?
We'll give you 5,000 free credits.

Email [email protected] with a working agent template that uses AgentEnrich. We'll feature it on this page, credit you in the docs, and drop 5,000 credits in your account. That's $100 of API usage on us.

Frameworks we'd love to add: Mastra, Pydantic AI, n8n, Pipedream, Make, Zapier, Inngest, Composio, Cline, Continue, Aider.

Pick a template. Ship today.

Get a key