Lead-gen
automation that
keeps your
account alive.

Human-approved
every action
Paced + jittered
never a burst
Self-hosted
your session
WALKTHROUGH

Watch the 2-minute
dashboard walkthrough.

MeridianMeridian

A live screen capture of the dashboard: import, build, approve, converse — and the auto-pause moment.

PLATFORM

Everything you need
to run safe outreach.

Find & import leads

Search LinkedIn by keyword or describe your ICP and let web-grounded research surface real people. A confidence scorer rejects wrong-person matches, and every lead is deduped by publicId.

Paced campaigns

Warm-up → connect → DM → AI reply. Every step is gated, capped, and jittered — message only after they accept.

Unified inbox & CRM

Realtime DM threads with labels, pipeline stages, private notes, and due-date reminders — wired straight into campaigns.

Control & insight

An approval queue with live policy-aware countdowns, plus analytics on acceptance, replies, and pipeline movement.

CAMPAIGN STEPS

Every step, paced
and approved.

Compose warm-ups, connection requests, DMs, and AI replies in a Kanban builder. Each step waits for your approval and fires under the rate limiter — never in a burst.

WARM-UP
WARM-UP

Build rapport before any ask

Rate-capped views, follows, and likes warm the relationship first — quiet social proof on real endpoints, never DM spam, never a burst.

Rate-capped
no spam
Before the ask
rapport first
CONNECT
CONNECT

A paced connection request

One connection request at a time, spaced with jitter and capped per day — invitations trickle out on human pacing, never as a batch.

Jittered
human pacing
0 bursts
by design
MESSAGE
MESSAGE

A human-approved DM

The message step only unlocks once they accept your request — then the DM waits in the approval queue until you review and approve it.

After accept
never before
You approve
or it waits
AI REPLY
AI REPLY

Goal-driven, then hands off

Drafts replies toward a goal, recognizes when the goal is met, and escalates to you when it's stuck — every reply still gated through approval.

Gated
every action
Hands off
when goal met
WORKFLOW

From list to booked meeting 
in four steps.

Import
01

Import

Search LinkedIn by keyword or describe your ICP. Confidence-scored candidates land in your list.

Build
02

Build

Compose a paced campaign in the Kanban builder: warm-up, connect, DM, AI reply.

Approve
03

Approve

Review every action in the queue. Edit a payload inline, approve, or skip — nothing fires unseen.

Converse
04

Converse

AI drafts a goal-driven reply, you approve it, and the conversation moves toward a booked meeting.

ARCHITECTURE

Runs inside LinkedIn,
talks to your server.

An in-page widget lets you push members into a list without leaving the feed. Outbound runs from an extension in your own authenticated session — never replayed from a server.

Meridian dashboard — runs from your session, talks to your server
IN-PAGE WIDGET

Capture from the feed

A shadow-DOM widget on feeds, profiles, and search pushes members into a list — deduped on the way in.

// extension → server
queue.enqueue({
type: 'CONNECTION_REQUEST',
gate: 'awaiting_approval'
})
REALTIME PUSH

Sub-second updates over a push stream — new messages, acceptances, and gate unlocks arrive in seconds, no polling.

SAFETY

Account safety isn't setting 
it's the architecture.

Multi-layer, human-in-the-loop defense: routing, rate-capping, detection, and a fail-safe pause. Bursts are structurally impossible — even when you batch-approve.

Dispatch-gated rate limits

Approve 100 actions and they still won't burst — rolling day/week caps decide how many actually fire.

Fail-safe auto-pause

One detection block freezes the whole account atomically and notifies you. Never a retry, never a push-through.

The LLM never sends on its own

Every AI reply flows through approval, caps, jitter, and business-hours pacing before it touches LinkedIn.

No passwords — cookies only
Encrypted at rest (AES-256-GCM)
Never auto-bypasses a challenge
Human-in-the-loop
Self-hosted
Live Action Feed
12:34:21connection_request → awaiting_approval
12:34:18dm_approved
12:34:15action_paced (+4m jitter)
12:34:12dm_dispatched (within daily cap)
12:34:09challenge_detected → account_paused
Self-hosted & in your control

Runs in your session.
Your server, your data.

terminal
# Bring up Postgres + Redis
$ docker compose up -d
# Boot the API + worker on your box
$ pnpm start
✓ Postgres + Redis healthy
✓ API + realtime gateway up
✓ Your data never leaves your infra
Keyword search
ICP import
Profile enrichment
Connection requests
DM sequences
AI replies
Approval queue
Keyword search
ICP import
Profile enrichment
Connection requests
DM sequences
AI replies
Approval queue
Keyword search
ICP import
Profile enrichment
Connection requests
DM sequences
AI replies
Approval queue
Realtime inbox
Pipeline stages
Labels
Reminders
Analytics
Auto-pause
Rate limiting
Realtime inbox
Pipeline stages
Labels
Reminders
Analytics
Auto-pause
Rate limiting
Realtime inbox
Pipeline stages
Labels
Reminders
Analytics
Auto-pause
Rate limiting
UNDER YOUR CONTROL

Paced, approved,
never bursting.

Every action waits for your call — capped, jittered, and human-approved before it touches LinkedIn.

38actions paced today
ACTIONTASKSTAGESTATUS
send-dm
#A1B2C3
DM draft ready for review
awaiting
awaiting you
connect-req
#D4E5F6
Connection request → paced with jitter
paced
paced
ai-reply
#G7H8I9
AI reply queued for your OK
awaiting
awaiting you
view-profile
#J0K1L2
Profile view (warm-up)
approved
approved
follow-up
#M3N4O5
Follow-up scheduled +2d
paced
paced
like-post
#P6Q7R8
Like a recent post
sent
sent
PRICING

Run it your way.

Self-hosted
Free

Your infra, your keys

  • Run on your own server
  • Bring your own LLM keys
  • Single account
  • Full source access
  • Community support
GET THE SOURCE
Pro
Managed

We host it for you

  • Managed hosting
  • Guided session setup
  • Priority support
  • Approval queue + analytics
  • Realtime inbox & CRM
GET STARTED
Enterprise
Custom

For teams at scale

  • Multi-account
  • SSO
  • Org-scoped isolation
  • Dedicated support
  • Custom contracts
CONTACT SALES

Outreach that respects
the account it runs on.

Self-hosted, human-approved, paced for longevity — not throughput. Connect your session and stay in control.