AI Email Sales Agent
Featured Stories Sales • Agent

AI Email Sales AgentAI Email Sales AgentAI Email Sales Agent

Your agent hunts prospects, researches each one, and fills your Gmail drafts with personalized outreach. You skim and hit send.

AgentHermes Agent
LevelIntermediate
Setup~1 hour

The architecture every serious team converged on: the agent researches and drafts, the human sends. Draft-only isn’t a limitation — it’s the design. It catches hallucinated “personalization” before a prospect sees it, keeps you compliant (CAN-SPAM, GDPR), and protects your domain reputation. This guide wires prospecting, verification, research, and a drafts-only Gmail connection into one morning routine.

Hermes Agent · Nous Research

Outreach quality compounds: Hermes tracks which hooks earn replies and patches its own outreach skill week over week — a learning loop no static template has. Its subagents parallelize per-prospect research, and drafts-only Gmail access keeps you the sender.

The Stack

MCPworkspace-mcp (gmail:drafts)
MCPApollo MCP
MCPHunter MCP (verify)
MCPexa-mcp-server (research)
Skilloutreach SKILL.md
ToolSheet-as-CRM
ChannelTelegram
01

Define who you sell to

Everything downstream inherits from this file. Be brutally specific — “companies that could use software” produces spam; a sharp ICP produces replies:

~/.hermes/skills/sales/outreach/SKILL.md
---
name: outreach
description: Research prospects and draft cold outreach in my voice
---

## ICP
- Boutique hotels & guesthouses, 10–80 rooms, DACH region
- Buyer: owner or GM. Signal: still taking bookings by phone/email

## Non-negotiable rules
- ONE verified personalization hook per email. Every factual claim
  must cite a source URL in the research notes — no source, no claim.
- Structure: Hook → Problem → CTA. Under 85 words. Plain text.
- No links in the first email. One CTA: a specific question.
- Write in my voice: direct, warm, zero buzzwords. Never say
  "I hope this finds you well", "synergy", "solution", "circle back".
- NEVER send. Create Gmail drafts only.

## Per prospect
1. Verify the email (Hunter) — skip catch-alls and role addresses.
2. Research: website, news, job posts. Find the ONE hook.
3. Draft. 4. Log to the CRM sheet (dedupe on email address).
Pro tip

The banned-phrases list is the highest-leverage section — it is measurably what makes the output not sound like AI.

02

Wire Gmail — drafts only

workspace-mcp supports permission tiers, and there is a tier that is exactly this use case: gmail:drafts. The agent can create drafts but structurally cannot send. Create a Google Cloud OAuth client (Desktop type), then:

~/.hermes/config.yaml
mcp_servers:
  gmail:
    command: "uvx"
    args: ["workspace-mcp", "--permissions", "gmail:drafts"]
    env:
      GOOGLE_OAUTH_CLIENT_ID: "${GOOGLE_OAUTH_CLIENT_ID}"
      GOOGLE_OAUTH_CLIENT_SECRET: "${GOOGLE_OAUTH_CLIENT_SECRET}"
Heads up

Two headless-server gotchas: (1) run the first OAuth consent on your laptop, then copy the token directory to the Pocketcorp; (2) publish your OAuth app (or set it Internal) — apps left in “Testing” status get their refresh tokens killed every 7 days, which looks like a random mid-week breakage.

03

Add prospecting and verification

Three MCPs cover the funnel — find, verify, research. All three have workable free tiers:

~/.hermes/config.yaml
mcp_servers:
  apollo:            # lead search by ICP — free plan includes MCP
    url: "https://mcp.apollo.io"
    auth: oauth
  hunter:            # email verification — 50 free/mo
    command: "npx"
    args: ["-y", "hunter-mcp"]
    env: { HUNTER_API_KEY: "${HUNTER_API_KEY}" }
  exa:               # company research / news
    command: "npx"
    args: ["-y", "exa-mcp-server"]
    env: { EXA_API_KEY: "${EXA_API_KEY}" }
Note

Verification before drafting is not optional: B2B contact data decays ~22% per year, and a bounce rate above 2% starts hurting your domain. Skipping unverifiable addresses is cheaper than sending to them.

04

Schedule the pipeline

One cron job runs the whole funnel every weekday morning, in a batch small enough to review over coffee:

in chat with Hermes
/cron add "0 7 * * 1-5" "Run the outreach skill: find 15 new
prospects matching the ICP (dedupe against the CRM sheet),
verify emails, research each one, draft outreach for the
qualified ones, log everything, then message me a digest:
count, 3 best hooks, anything skipped and why."
05

Your morning: skim and send

Agent

☕ 12 drafts ready. Best hooks: (1) Hotel Alpenblick just posted a front-desk job mentioning “phone bookings” — drafted around desk workload. (2) Gasthof Sonne got a renovation writeup in the local paper. (3) Pension Edelweiss still has a fax number on their contact page. Skipped 3: two catch-all domains, one already in the CRM.

You

Drop the fax one — too snarky. Rest look good.

Agent

Deleted that draft and noted the feedback: no hooks that could read as mocking. 11 drafts waiting in Gmail.

Heads up

Stay the sender. Manual sending from your normal Gmail at 10–25/day keeps you under every bulk-sender threshold and every automation trigger. If you ever scale past ~100/day, that is a different game: separate sending domain, warm-up weeks, SPF/DKIM/DMARC, sub-0.3% complaint rate.

06

Close the loop

Once replies exist, make them teach the agent. A weekly cron reviews the CRM sheet — which hooks got replies, which subject lines died — and Hermes patches its own outreach skill via skill_manage. This is the learning loop doing sales ops: your reply rate in week six should embarrass week one.

What you end up with

A drafts folder that fills itself every morning with researched, verified, genuinely personalized outreach — logged in a CRM sheet, improving weekly from real reply data. You remain the human who hits send.

Deploy your PocketcorpHermes Agent comes pre-installed. €12/month.

More stories to build