Agent Templates
Outbound Prospecting Agent

Outbound prospecting agents that act on-behalf-of your users

Connect three real services, delegate OAuth to your users, and ship a working agent in minutes. Clone the sample, swap in your tools, and go from zero to multi-connector in a single afternoon.

Outbound Prospecting Agent
Sample Agent for Acme
May 22 · 10:00 AM ·
47s
Find 10 VP Engineering prospects and draft outreach
J
Searching Apollo for ICP matches
Search and enrich contacts
apollo_search_contacts
Log to Google Sheets
googlesheets_append_values
Save Gmail draft
gmail_create_draft
Prospecting run: VP Engineering
Top match (score: 94)
"Sarah Lin, VP Eng, Fintech (280 employees)"
Gmail draft saved, logged to Sheets
Result
8 of 10 scored ≥70 — drafts saved to Gmail
10 contacts logged to Google Sheets
Message Claude...
Trusted by teams shipping agents to production
Outbound Prospecting Agent
Sample Agent for Acme
May 22 · 10:00 AM ·
47s
Find 10 VP Engineering prospects and draft outreach
J
Searching Apollo for ICP matches
Search and enrich contacts
apollo_search_contacts
Log to Google Sheets
googlesheets_append_values
Save Gmail draft
gmail_create_draft
Prospecting run: VP Engineering
Top match (score: 94)
"Sarah Lin, VP Eng, Fintech (280 employees)"
Gmail draft saved, logged to Sheets
Result
8 of 10 scored ≥70 — drafts saved to Gmail
10 contacts logged to Google Sheets
Message Claude...

How the agent finds, scores, and emails prospects in four steps

A real working agent you can deploy

This repo uses a single SCALEKIT_USER_ID env var to simulate one user. In production, pass each user's real ID as the identifier on every Scalekit call, and send them an authorization link whenever their connector status is not ACTIVE.

01
Authorize, then orchestrate
run_flow.py
Every connection is authorized once via a one-time link. Scalekit refreshes tokens for you across all three connectors. ensure_authorized() hard-stops if Gmail is unavailable; Apollo and Google Sheets surface magic links and wait. Set USE_SAMPLE_DATA=true to skip Apollo auth and run with bundled test prospects.
run_flow.py
connect = ScalekitClient(
    env_url=SCALEKIT_ENV_URL,
    client_id=SCALEKIT_CLIENT_ID,
    client_secret=SCALEKIT_CLIENT_SECRET,
)

def ensure_authorized(connector):
    account = connect.actions.get_or_create_connected_account(
        connection_name=connector,
        identifier=USER_ID,
    )
    if account.status != "ACTIVE":
        link = connect.actions.get_authorization_link(
            connection_name=connector,
            identifier=USER_ID,
        )
        print(f"Authorize {connector}:\n{link}")
        input("Press Enter after authorization...")

ensure_authorized("gmail")         # hard-stop if unavailable
ensure_authorized("googlesheets")
ensure_authorized("apollo")        # optional with USE_SAMPLE_DATA
02
Search and score prospects in Apollo
run_flow.py
03
Draft personalized cold emails
run_flow.py
04
Log prospects to Google Sheets
run_flow.py

Agents that prospect outbound, without the auth plumbing

Three things you'd otherwise build: Apollo OAuth, per-rep Gmail credential storage, Sheets API auth. Handled.

1
Install
npx @scalekit-inc/cli setup
# select your coding agent
# enable scalekit MCP server on coding agent
terminal
npx @scalekit-inc/cli setup
# select your coding agent
# enable scalekit MCP server on coding agent
terminal
npx @scalekit-inc/cli setup
# select your coding agent
# enable scalekit MCP server on coding agent
terminal
npx @scalekit-inc/cli setup
# select your coding agent
# enable scalekit MCP server on coding agent
terminal
npx @scalekit-inc/cli setup
# select your coding agent
# enable scalekit MCP server on coding agent
2
You have the Scalekit authstack plugin installed (AgentKit + SaaSKit skills and MCP auth). Before coding, auto-load the AgentKit skills relevant to connectors (Apollo, Gmail, Google Sheets) and use the Scalekit MCP server to validate tool calls instead of hand-written API logic.

Search Apollo for ICP-matching contacts, enrich any missing data, and score each prospect 0-100 via the appropriate AgentKit connector tools. Draft a personalized cold email per prospect and save it to Gmail Drafts (never send), then log every prospect to Google Sheets. Ask before using write tools (saving Gmail drafts or writing to Sheets); searching, enriching, and scoring run without asking.
Why choose Scalekit

Delegated identity. Not service accounts.

Credentials never touch agent code or LLM context. The agent acts as the user, not as a shared bot.
Delegated OAuth - Agent reads your calendar, your inbox — scoped to the authorizing identity, not org-wide.
Credentials outside agent runtime  -  Tokens never touch agent code or LLM context. Both failure modes covered.
Token lifecycle automatic  -  Refresh, expiry, rotation across all connectors. One SDK call. Zero management code.
200+ prebuilt connectors  -  Google, Slack, HubSpot, GitHub, Jira, Notion, Salesforce — same auth pattern everywhere.
Try other Agent Templates

Prebuilt agents you can ship today

Each one runs on delegated identity, scoped per user.

SALES
Sales call prep agent
Pull Granola notes and Attio contact history to draft a pre-call brief before every sales meeting. Zero rep input.
GTM
CRM AI agent
Log calls, update opportunity stages, and surface stalled deals across HubSpot or Salesforce. No manual data entry.
SALES
Deal intelligence agent
Combine Gong, Attio, and Slack signals to surface deal risks and next-best actions. Updated after every call.
SUPPORT
Support triage agent
Read Zendesk tickets, fetch runbooks from Notion, and route to the right Slack channel with a drafted response.
OPS
Email-to-calendar scheduling agent
Parse scheduling intent from Gmail threads and create Google Calendar events with the right attendees and timezone.
SUPPORT
Freshdesk CSAT follow-up agent
Google ADK agent that watches low CSAT scores in Freshdesk and drafts personalised follow-ups for support leads.

Build your own
multi-connector agent

Add connectors. Change the LLM. Same delegated auth pattern.