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.
For one agent / one LinkedIn account.
- 1 LinkedIn session
- 100 actions / day per session
- Search, connect, lookup, MCP tools
- Email support
For agencies running outreach across multiple accounts.
- 5 LinkedIn sessions
- 500 actions / day per session
- Workspace-scoped API keys
- Priority support
For platforms reselling outreach as a service.
- 25 LinkedIn sessions
- 2,000 actions / day per session
- Webhook events
- Slack support channel
"Action" = a search-content, lookup-profile, or send-connection call. Quota is enforced per LinkedIn session in a 24h sliding window — LinkedIn rate-limits per account, so this matches their behavior. All cookies are AES-256-GCM encrypted at rest.
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.