LINKEDIN MODULE — NEW

LinkedIn outreach for AI agents

Login (with PIN and mobile-app verification), search posts by keyword, look up profiles, send connection requests — all programmatically. Same SDK and MCP server as MyAgentMail email, so your agent does multi-channel outreach with one client.

Add-on subscription. Existing email plans stay email-only by default.

Three primitives. One API key.

Everything you need to build a "find people posting about X, reach out before anyone else does" flow.

Sign in with verification

Email + password login. We handle LinkedIn's PIN challenge (email/SMS) and mobile-app approval flow. You get a session token back. No browser automation, no cookie-pasting.

Keyword post search

Find anyone posting about your keyword in the last 24h. Returns author, profile URL, post URL, time-ago, and a text excerpt.

Send connection requests

Personalized note up to 300 chars. Pass a profile URL, slug, or profileId. Returns LinkedIn's invite acknowledgment so your agent knows it landed.

From zero to first connection request in 5 lines

TypeScript SDK shown. Same surface from MCP tools (Claude Desktop, Cursor, Windsurf).

import { MyAgentMail } from "myagentmail";

const mam = new MyAgentMail({ apiKey: process.env.MYAGENTMAIL_KEY! });

// 1. Sign in once. Stores li_at + JSESSIONID encrypted at rest.
const login = await mam.linkedin.sessions.create({ email, password });
if ("challenge" in login && login.challenge) {
  await mam.linkedin.sessions.verify({
    challengeId: login.challengeId, pin: "123456",
  });
}
const { sessionId } = login as any;

// 2. Find people posting about your keyword in the last 24h.
const { posts } = await mam.linkedin.search.content({
  sessionId, keyword: "AI agents", datePosted: "past-24h", count: 10,
});

// 3. For each post, send a personalized connection request.
for (const p of posts) {
  await mam.linkedin.connections.send({
    sessionId,
    target: p.authorProfileUrl,
    message: `Hey ${p.authorName.split(" ")[0]} — saw your post about ${p.excerpt.slice(0,60)}…`,
  });
}

Pricing

Add-on subscription, billed alongside your MyAgentMail email plan. One Stripe customer.

SOLO
$29/mo

For one agent running outreach across a couple of accounts.

  • 2 connected LinkedIn accounts
  • 100 actions / day per account
  • Search posts, look up profiles, send connections
  • Intent-signal monitoring with webhooks
  • Email support
Start with Solo
Most popular
TEAM
$99/mo

For agencies running outreach across multiple accounts.

  • 15 connected LinkedIn accounts
  • 500 actions / day per account
  • Workspace-scoped API keys
  • Intent-signal monitoring with webhooks
  • Priority support
Start with Team
AGENCY
$299/mo

For agencies and SaaS resellers — one isolated workspace per client.

  • 60 connected LinkedIn accounts
  • 60 isolated workspaces
  • 2,000 actions / day per account
  • Higher-frequency intent signals
  • Slack support channel
Start with Agency

One action is a single LinkedIn API call — a connection request, profile lookup, post search, or an intent-signal poll. Quota is enforced per connected account in a 24h sliding window, matching LinkedIn's own per-account rate limits. Cookies are AES-256-GCM encrypted at rest.

Workspaces scale with your LinkedIn accounts — Solo 2, Team 15, Agency 60. Each workspace gets isolated LinkedIn sessions, cadences, and intent signals. A signal in workspace A never polls through a session attached to workspace B — enforced at the router level, not by convention. Built for the customer reselling outreach to their customers. Need more than 60? Contact us for a custom plan.

A note on responsible use

The LinkedIn module operates on your or your customer's LinkedIn account using their credentials. LinkedIn's User Agreement governs that account; the LinkedIn module has its own Terms of Service separate from MyAgentMail's general terms. By subscribing you agree to use the API only for outreach you have a legitimate basis to make — no spam, no scraping at industrial scale, no reselling raw data.