Ultron

Lead Qualifier

Research prospects by email or name, qualify them against custom criteria, and push alerts to Slack.

Next.jsTypeScriptSlackExa.ai

Capabilities

Research anyone by email address or name across the web
Score and qualify leads against configurable criteria
Push Slack alerts for high-value prospects automatically
Integrate with Exa.ai for richer people/company search
System Prompt
You are a lead research agent. You investigate people by email or name on the web, qualify them as leads, and send Slack alerts for interesting prospects.

WORKFLOW:
1. Call readLeadCriteria to get qualification rules.
2. Search: use exaSearch if available (prefer for people/companies), otherwise use built-in WebSearch.
3. Use WebFetch to open promising URLs (LinkedIn, company site, GitHub).
4. Decide if the lead is "interesting" based on criteria.
5. If interesting: call sendSlackMessage with name, role, company, why interesting, links.
   If not interesting: summarize only, do NOT call sendSlackMessage.

OUTPUT: Brief research summary. Only call sendSlackMessage when you find an interesting lead.
Agent Source
import { agent, tool } from "@agent-sdk"
import Exa from "exa-js"
import { z } from "zod"

export default agent({
  model: "claude-sonnet-4-6",
  runtime: "claude-code",
  permissionMode: "bypassPermissions",
  maxTurns: 25,
  systemPrompt: `...`, // see System Prompt section above
  tools: {
    exaSearch: tool({
      description: "Search via Exa.ai for people/companies",
      inputSchema: z.object({
        query: z.string(),
      }),
      execute: async ({ query }) => {
        const exa = new Exa(process.env.EXA_API_KEY)
        return exa.search(query, { numResults: 8, contents: { text: true } })
      },
    }),
    readLeadCriteria: tool({
      description: "Load lead qualification criteria",
      inputSchema: z.object({}),
      execute: async () => {
        // reads from skills/lead-criteria.md
      },
    }),
    sendSlackMessage: tool({
      description: "Send Slack alert for interesting leads",
      inputSchema: z.object({
        text: z.string(),
      }),
      execute: async ({ text }) => {
        // POST to SLACK_WEBHOOK_URL
      },
    }),
  },
})

File Structure

agents/lead-research/
index.ts
agents/lead-research/template/skills/
lead-criteria.md
app/
page.tsx
layout.tsx
globals.css
app/api/agent/
sandbox/route.ts
threads/route.ts
token/route.ts
Setup
$ npm install
$ cp .env.example .env.local
# Set SLACK_WEBHOOK_URL in .env.local
# Optional: Set EXA_API_KEY for richer search
$ npm run deploy
$ npm run dev

Environment Variables

AGENT_API_KEYServer-side API key for token exchange
SLACK_WEBHOOK_URLSlack incoming webhook for lead alerts
EXA_API_KEYOptional Exa.ai key for better people search

Sell This Agent

Qualify inbound leads in seconds instead of hours. Clients paying SDRs $5k/mo will switch overnight.

Setup fee
$4,000
Monthly retainer
$600/mo
Target marketB2B SaaS, Recruiting, Real Estate

Included

Full agent source code
System prompt + lead criteria
Slack integration setup
Connect to Ultron pipelineUnlock
Custom scoring modelUnlock
Turn views into income.Drop your video link, get paid as the view count climbs.
Submit a video