Self-hosted · one install script · runs on your server

Your own cold-email infrastructure. Nothing shared between domains.

Pulse gives every customer domain its own MX host, IP, DKIM selector and certificate, so a spam filter can never link one sender to the next. It talks to PlusVibe, Smartlead and Instantly, and it fixes its own problems before they cost you a campaign.

0
records shared between domains
1
command to install
24/7
Sentinel on watch
domainown ip · own ptrrecipient
getnova.iodkim s=q9x2v · own mx185.42.17.11m3.relay-north.nettrylumen.comdkim s=h4k8d · own mx91.214.6.40pdx-07.edge-carri…brand.iodkim s=k7f2q · own mx45.88.201.7n2.mailpath-east.…Inbox3 senders · 0 links v=spf1 ip4:185.42.17.11 -all One certificate per domain
It talks to your sending tool

Two-way with PlusVibe, Smartlead and Instantly. Not a CSV export.

Pulse pushes new mailboxes straight into your sequencer, then keeps steering them. When a mailbox’s reputation dips, Pulse lowers its daily limit or pauses it in the sequencer itself — and restores it once the numbers recover.

  • One-click push of whole domains of mailboxes, with warm-up switched on and sensible limits.
  • Controls warm-up and daily limits from Pulse, per mailbox or per domain.
  • Adaptive throttling: bounce or complaint rate climbs, the sequencer slows down — automatically.
  • Auto-pause and restore so one bad list never burns a domain you spent weeks warming.
Pulse
48 mailboxes ready
sam@trylumen.com reputation ↓
Recovered after 3 days
PlusVibe logoSmartlead logoInstantly logo
Imported, warm-up on
Daily limit 40 → 15
Limit restored to 40
Mailbox health → sequencer daily limitadaptive
It repairs itself

Problems get found, fixed and checked again — usually before you notice.

Sentinel and the health guard watch everything that quietly breaks cold email: DNS records, blacklists, certificates, failed jobs, bounce rates. When something drifts, they repair it and verify the fix. Hover to pause the loop.

Sentinel
Incident 1 / 5

DKIM record missing on brand.io

  1. 1DetectDNS audit: no TXT at k7f2q._domainkey.brand.io
  2. 2DiagnoseRecord was deleted at the DNS provider, keys are intact
  3. 3RepairRe-published the DKIM key through the Cloudflare API
  4. 4VerifyResolved from 3 public resolvers — signatures pass
Re-publishes DNS
Missing SPF, DKIM, DMARC or MX? Pushed back through the provider’s API.
Re-checks blacklists
Listed IPs are pulled from rotation and re-checked until clean.
Renews certificates
No expired TLS on SMTP or webmail, ever.
Retries failed jobs
With back-off, so a registrar hiccup doesn’t stall onboarding.
Throttles or pauses
Rising bounces slow a mailbox down before they burn the domain.
Rotates IPs
Moves a domain to a clean IP, SPF updated first, no gap in authentication.
Zero fingerprint

Two domains on Pulse look like two different companies.

Shared infrastructure gives spam filters an easy shortcut: burn one sender, burn everyone on the same MX, selector or certificate. Pulse removes every shared value a filter could link on.

  • Own MX host and literal-IP SPF per domain — no shared include.
  • Random DKIM selector and its own DMARC rua address.
  • Own TLS certificate per domain. No multi-domain SANs that list your other customers.
  • Neutral carrier hostnames per IP for PTR and EHLO — nothing that says “Pulse”.
  • Header scrubbing: Message-ID rewritten, internal Received lines removed.
  • DNS spread across providers and accounts, so nameservers don’t cluster you either.
dig — two tenants, side by side
getnova.io
MXmx.getnova.io
SPFv=spf1 ip4:185.42.17.11 -all
DKIMq9x2v._domainkey
DMARCp=none; rua=dmarc@getnova.io
PTRm3.relay-north.net
brand.io
MXmx.brand.io
SPFv=spf1 ip4:45.88.201.7 -all
DKIMk7f2q._domainkey
DMARCp=none; rua=reports@brand.io
PTRn2.mailpath-east.net
100unique
Built-in fingerprint audit

One click compares every domain against every other one — MX, SPF, selectors, certificates, PTR, nameservers — and names anything that overlaps.

Under the hood
Built on KumoMTA.

The Rust MTA made for high-volume senders does the delivery: per-provider traffic shaping, real queues, automatic back-off when a mailbox provider pushes back. Pulse configures it so you never touch a Lua policy file.

Rustper-domain DKIMliteral-IP SPFTLS 1.3traffic shapingMCP
Reps
Claude repsMCP server tools
Dashboard
Next.js app routerAPI + webhooks v1
Delivery
KumoMTA rust mta
Mailboxes
Stalwart IMAP · JMAP · submission
Jobs + data
Postgres stateRedis cacheBullMQ queues
Edge + runtime
Caddy on-demand TLSDocker compose
dkim
rsa-2048 · random selector per domain
spf
ip4: literal · no shared include
tls
one cert per hostname · on-demand
egress
per-tenant ip pools · neutral ptr
Sending engine

Volume when it’s safe. Restraint when it isn’t.

KumoMTA for delivery, Stalwart for mailboxes, and a policy layer that knows the difference between Gmail, Outlook and a Proofpoint gateway.

IP pools and one-click rotation

Group IPs into pools per tenant. Rotating a domain to a new IP adds the new address to SPF first, waits for it to resolve, then switches — so authentication never has a gap.

warm-up · day 1 → 21cap

Warm-up caps per mailbox

Each mailbox ramps on its own schedule, with a hard daily ceiling.

Adaptive throttling

Deferrals and 4xx responses slow a provider down on their own; the rate climbs back when it’s clean.

Per-provider shaping

Connections and hourly rates tuned per mailbox provider.

GmailOutlookYahooiCloud

SEG detection

Spots secure email gateways from MX records and routes around what they punish.

ProofpointMimecastBarracuda

Blocked recipient providers

Skip whole providers for a tenant — no sends to the gateways you don’t want to touch.

Auto-pause on bounces and complaints

Thresholds per domain pause sending before a bad list does lasting damage.

Suppressions

Unsubscribes, hard bounces and complaints are suppressed across every mailbox in the tenant.

Real mailboxes

Stalwart serves IMAP, JMAP and submission for every mailbox, so replies land somewhere real.

Deliverability monitoring

Know the moment something slips.

Blacklists, DMARC reports, Google Postmaster Tools, Microsoft SNDS and certificates in one view, with thresholds that page you in Slack or Telegram instead of in a client call.

Blacklist checks

Every IP and domain against the zones that matter, daily and on demand.

DMARC reports

Aggregate reports parsed per domain: who sends as you, and whether it passes.

Threshold alerts

Formatted Slack messages and Telegram alerts, not log dumps.

bounce ratediskCPURAMfailed jobsintegrations

Notification center

Every alert, fix and handover in one inbox inside Pulse, read or unread.

Domains, DNS and mailboxes

From an empty cart to 200 warm-ready mailboxes in one sitting.

Buy the domains, let Pulse write every DNS record, create the mailboxes with believable personas and push them to your sequencer.

Buy domains

Search and register from inside Pulse, then onboard in the same flow.

Namecheap logoDynadot logoPorkbun logoCloudflare logo

DNS on autopilot

Managed onboarding writes every record through the provider’s API. Prefer to do it yourself? Manual mode shows exactly what to add, and checks it.

Cloudflare logoPorkbun logodeSEC logoNamecheap logoGoDaddy logo

Webmail per domain

Every domain gets webmail.<domain> on its own certificate, so your team can read replies without a client.

Bulk mailboxes with AI personas

Create dozens of mailboxes at once. The persona creator writes names, titles and signatures that fit the brand, using the model you already pay for.

Claude logoOpenAI logoGemini logo
Lena Hartmann
Head of Partnerships
lena@getnova.io
Marcus Bell
Growth Lead
marcus@trylumen.com
Priya Desai
Founder
priya@brand.io

One click to your sequencer

Push to PlusVibe, Smartlead or Instantly with warm-up on — or export a CSV for anything else.

PlusVibe logoSmartlead logoInstantly logo CSV
Sequencer add-ons · licensed

Or skip the third-party sequencer entirely.

Switch on the add-ons and Pulse sends your campaigns itself, from the same infrastructure that already knows each mailbox’s health.

Add-on

Sequencer queue

  • Per-mailbox spacing so sends never come in bursts
  • Sending windows in each lead’s own timezone
  • Reply and bounce detection that stops the sequence
  • One-click unsubscribe, suppressed everywhere
Add-on

Campaigns

  • Multi-step sequences with spintax
  • A/B variants per step
  • Ramp-up and reusable schedule profiles
  • Subsequences for replies, opens and no-shows
  • ESP and SEG aware: Gmail, Outlook and gateways each get the right pace
Add-on

MCP campaigns

Let Claude or your own tools create campaigns, add leads and send through the MCP server or the API.

# in Claude
› Launch a 3-step campaign for the fintech list,
  mornings only, from the brand.io mailboxes
✓ create_campaign · 412 leads · starts 08:30 local
Reps

A sales team that researches, writes and never sleeps — unless you tell it to.

Reps are AI teammates that work your leads inside Pulse. SDR reps do the outreach, a team lead keeps them honest, and Sentinel looks after deliverability for the whole install.

Every rep shows what it is doing at a glance.
Whole install
zzZSentinelworkingAuditing DNS, IPs and blacklists
Tenant · acme-agency
zzZTeam leadneeds youFlagged a draft for you
zzZMayaworkingResearching acme.com
zzZOttoidleInbox zero
zzZJuneidleAll caught up
zzZRexpausedPaused — off for the weekend
SDR reps
Do the outreach
  • Research each lead’s website before writing a word
  • Write a personal sequence, not a mail-merge
  • Answer replies and hand warm leads over to you
  • Daily spend caps so the model bill never surprises you
One per tenant
The team lead
  • Watches every SDR rep in the tenant
  • Writes a daily brief the reps follow
  • Approves good drafts, flags weak ones
  • Can pause a rep that goes off-script
Built in
Sentinel

Audits DNS, IPs, blacklists, rates, certificates, Postmaster, SNDS, EmailGuard and PlusVibe data — and fixes what it finds.

Report onlyFix low-riskFix everything

You choose how much rope.

Set autonomy per rep, and change it any time.

Reviewlevel 1
Every message waits for your approval.
Auto-firstlevel 2
First emails send on their own; replies wait for you.
Autopilotlevel 3
Researches, writes, replies and hands over. You get the warm leads.
Live activitytenant: acme-agency
  1. Maya Researching acme.com — pricing page, 3 open roles, new CFO
  2. Sentinel Renewed the TLS certificate for mx.trylumen.com
  3. Otto Reading globex.io/blog to find an opener
  4. Sentinel Bounce rate 3.4% on getnova.io — throttled to 20/day
  5. Team lead Wrote today’s brief: lead with the case study
  6. Maya Queued step 2 for 38 leads in their morning
Plugins and integrations

Plays well with the tools you already pay for.

Plugins bring other products inside Pulse, so you stop switching tabs to answer one question.

EmailGuard

Inbox placement tests, spam tests and blacklist data, run and read without leaving Pulse.

PlusVibe Expert mode

Campaigns, sequences, leads and the unibox — managed from inside Pulse.

Claude plugin

See spend, budget and credits for the reps, and cap them before they run over.

Built for agencies

One install. Every client walled off.

Run all your clients on one server without them ever sharing an IP, a record or a reputation. Your data never leaves your machine.

100%
of your data on your server
1
click to update, from the dashboard

Multi-tenant by design

Each client is a tenant with its own domains, mailboxes, reps and IP pool.

API keys and webhooks

Per-tenant keys, signed webhooks for sends, replies, bounces and alerts.

MCP server

Run Pulse from Claude: create tenants, add domains, check blacklists, launch campaigns.

Audit log

Who changed what, when — people, API keys and reps alike.

Licensing with add-on switches

Turn the sequencer, campaigns and reps on per install as you need them.

Updates from the dashboard

New versions install from Settings. No SSH session at midnight.

Ready when you are

Own the infrastructure your pipeline depends on.

One install script on your own server. Pulse sets up the MTA, mailboxes, certificates and dashboard; you add domains and start sending.

# on a fresh Ubuntu server
$ cd pulse && sudo ./install.sh
→ docker compose up · kumomta · stalwart · caddy
→ dashboard ready on https://pulse.yourdomain.com
$