For cold outreach

Build your own cold outreach system on MyAgentMail

Cold email + LinkedIn outreach infrastructure for indie hackers and small teams. Provisioned inboxes, real LinkedIn sessions, intent signals, server-side cadence engine. Drop-in alternative to Lemlist, Apollo, Instantly — with full data ownership.

The problem

Cold outreach SaaS — Lemlist, Apollo, Instantly, Smartlead — bundles the parts you actually need (sending infrastructure, deliverability, cadence engine, LinkedIn outreach) with parts you don't (their UI, their AI templates, their CRM lock-in). Pricing scales by seats and contacts even if you're a one-person operation.

If you can write a simple agent or script, building your own outreach system gives you:

  • Full data ownership. Leads, replies, send history live in your DB, not theirs.
  • Per-customer isolation if you're reselling — Lemlist doesn't do multi-tenant; we do.
  • No vendor lock-in. Swap channels, scale, or migrate without rebuilding.
  • AI-agent-native architecture. Your agent reads docs, calls the API, ships an integration in an afternoon — vs. clicking through Lemlist's UI to configure each campaign by hand.

What MyAgentMail gives you

The infrastructure layer, not the UI:

  • Email: provisioned inboxes ([email protected]), send via REST or SMTP, receive via webhook or IMAP, real threading, bounce + complaint tracking, per-inbox auto-pause on abuse signals.
  • LinkedIn: real LinkedIn account sessions you connect, send invitations, DMs, post engagement signals. Multi-account quota multiplication — connect a second account, daily action ceiling doubles.
  • Cadence engine: define email → wait → linkedin_invite → wait → linkedin_message → wait → email once, enroll a lead, we fire steps server-side with branch conditions and business-hours guard.
  • Reply detection + cadence exit: when a lead replies on either channel, the runtime exits their sequence automatically and fires cadence.lead.replied webhook.
  • Open + click tracking on email so cadence engine can branch on engagement (gate on message.clicked, not message.opened — opens are noisy in 2026).

Sketch — minimal cold outreach loop

import { MyAgentMail } from "myagentmail";
const mam = new MyAgentMail({ apiKey: process.env.MYAGENTMAIL_KEY });

// You bring the leads (your scraping / list / DB / signals).
const leads = [
  { email: "[email protected]", linkedin: "linkedin.com/in/jane", firstName: "Jane" },
  // ...
];

// Define your sequence once. Re-use across enrollments.
const cadence = await mam.cadences.create({
  name: "Founders cold outreach Q2",
  inboxId: "ibx_...",
  sessionId: "sess_...",
  dailySendCap: 25,
  exitOnReply: true,
  steps: [
    { kind: "linkedin_connect", message: "Hi {{firstName}}, saw your work at {{company}}..." },
    { kind: "wait", days: 3 },
    { kind: "email", condition: "no_reply_to_prev", subject: "Quick question about {{company}}", body: "..." },
    { kind: "wait", days: 4 },
    { kind: "linkedin_message", condition: "after_accept", message: "..." },
  ],
});

// Enroll. The runtime takes it from here — fires steps in order,
// exits on reply, fires cadence.* webhooks for your handler.
await mam.cadences.enroll(cadence.id, leads);

// Listen for engagement on your webhook handler:
// - cadence.step.fired
// - cadence.lead.replied   (lead engaged → exit)
// - message.opened / message.clicked (engagement signal)

What you save vs. building each piece yourself

Piece DIY cost
SMTP/SES/SendGrid + custom-domain setup + DKIM Days
Inbound webhook + parsing + threading state Week
LinkedIn automation that survives anti-bot Months (or 1 banned account)
Cadence runtime with branch conditions + business hours Week
Per-account rate limiting + abuse prevention Days
Bounce/complaint pipeline + auto-pause logic Week

Total DIY: ~6-8 weeks of engineering. MyAgentMail: a 7-day free trial and an afternoon to ship a working sequence.

Pricing

$5/month email + $29/month LinkedIn add-on (Solo tier — 2 sessions, 100 actions/day per session, 3 intent signals). Need more accounts? Team is $99/mo for 15 sessions; Agency is $299/mo for 60. Both have a 7-day free trial; you can build and run a real sequence before paying. See /pricing.

For comparison, Lemlist's Multi-channel Expert tier is $99/user/month and you still don't own your data.

Common questions

"What about deliverability?" ZeptoMail backbone for outbound; SES as backup. Per-inbox auto-pause if your bounce rate or complaint rate spikes (we don't let one customer's spam ruin our IP reputation). For high-volume cold senders, Postmark has marginally better deliverability — but you trade away receive, LinkedIn, and the cadence engine.

"Will my LinkedIn account get banned?" Anti-bot risk is real. We minimize it by polling at industry-standard cadences (every-6h with ±10% jitter for system signals — matches Unipile's published guidance), routing auth through residential proxies geo-matched to the user's country, and capping daily actions per session. Connect a second LinkedIn account to multiply headroom and reduce per-account risk. More on the polling design.

"Can I export everything?" Yes. Every send, receive, and event is in our messages table, addressable via the API. Soft-deletion only — nothing is wiped from under you.

Related

Done-for-you
Want us to build this for you?

14-day productized build. $10K flat, optional maintenance at $2K/month. We tune the firing rules, the drafter prompts, and the cadence to your ICP.

See the build offer →

Other use cases

Last reviewed 2026-05-02.