For recruiting agents

Email + LinkedIn API for AI recruiting agents

Source candidates from LinkedIn, message them with personalized outreach, follow up over email when a connection accepts. Reply detection, multi-account quotas, and intent signals built in.

The problem

AI recruiting agents work the same loop a human recruiter does:

  1. Find candidates that match a role (search, filter on signals like job changes or engagement on relevant content)
  2. Send a personalized LinkedIn invite or InMail-style message
  3. Wait for the connection to accept
  4. Follow up — usually with email if you have it, otherwise another LinkedIn DM
  5. Hand off to a human recruiter the moment the candidate replies positively

Building this from scratch means: a LinkedIn scraper, an automation tool, an email API, a reply detection system, a sequence engine, multi-account quota management. Different vendor stack and same coordination headaches as cold sales — except recruiters care about the LinkedIn signal more.

What MyAgentMail gives recruiting agents specifically

  • Job-change watchlist signals — track named individuals for role/company changes. Fires a webhook when a candidate moves to a new company. Most useful trigger for recruiting outreach there is.
  • Engagement signals — watch a target company's LinkedIn page or a target person's profile for new engagers. People who comment on a Series B announcement are warm leads for that company's competitors.
  • Keyword signals — watch LinkedIn for posts matching a firing rule like "open to senior backend role". Past 24h / week / month filtering for retroactive sourcing.
  • Multi-account routing — connect 3 LinkedIn accounts, daily action ceiling triples. Auto-distribute polling across them so a single account never burns out.
  • Cadence enginelinkedin_invite → wait → linkedin_message → wait → email_followup with branch conditions so the agent only emails after the connection accepts.
  • Reply detection — when the candidate replies, fires cadence.lead.replied and exits the sequence. Hand-off to a human happens cleanly.

Sketch

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

// Watch a target for engagers — anyone who likes/comments on
// posts from this person is potentially open to roles in that space.
const signal = await mam.linkedin.signals.create({
  kind: "engagement",
  name: "Engagers on @vc-partner",
  target: "https://linkedin.com/in/some-vc",
  cadence: "every_6h",
  intentDescription: "Notify on senior IC engineers who engage. Filter out current employees of <our-target-company>.",
  filterMinIntent: "medium",
  webhookUrl: "https://our-app.com/hooks/linkedin",
});

// On webhook fire, agent reaches out:
async function handleEngagement(payload) {
  const candidate = payload.engager;
  // Personalize the invite using the post they engaged with as context.
  const note = `Hi ${candidate.firstName}, saw your comment on the post about ${payload.post.excerpt.slice(0, 50)}. We're hiring senior engineers building similar — open to a chat?`;
  
  await mam.linkedin.connections.send({
    profileUrl: candidate.profileUrl,
    message: note,
  });
  
  // Enroll into a follow-up cadence — invite, wait 5d for accept,
  // then DM, then email if we have it.
  await mam.cadences.enroll(cadenceId, [{ ...candidate }]);
}

What this saves you vs. existing tools

The recruiting tooling market is mature but expensive: HireEZ, LinkedIn Recruiter, Gem, Reachout. They're great for human recruiters in a UI; less great for AI agents that want to call an API.

Where MyAgentMail differs:

  • Programmatic-first. CLI, MCP server, typed SDK, paired markdown docs at /docs-md/<group>/<op>. You don't click; you call.
  • Real LinkedIn account control. Recruiter-only tools work in their own UI. With MyAgentMail your agent's actions look identical to manual LinkedIn use because they ARE on a real LinkedIn account you control.
  • Email integrated. After the connection accepts, you can fall back to email without leaving the platform.
  • Open to your own data. Push notes into your ATS, query your CRM during personalization, store the conversation history wherever you want.

Edge cases worth knowing

  • LinkedIn Recruiter accounts — we don't currently support Recruiter-Lite or Recruiter Corporate features (InMail credits, Recruiter search filters). The agent uses the connected account's standard LinkedIn permissions. Most recruiting outreach works fine on Premium accounts; Recruiter is overkill for cold outreach anyway.
  • Compliance — recruiting outreach is GDPR/regulated in many jurisdictions. We give you the infrastructure; the compliance sits with you. The CLI's browser-pairing auth means the customer's LinkedIn cookies never touch our servers in plaintext (AES-256-GCM at rest), which helps with the security narrative for enterprise.
  • Volume per account — LinkedIn caps roughly 100 invitations/week per account regardless of tier. Connect more accounts to scale. Agency tier supports up to 60 sessions.

Pricing

LinkedIn add-on starts at $29/month (Solo: 2 sessions, 100 actions/day, 3 signals). Team is $99 for 15 sessions, Agency is $299 for 60 — recruiting often benefits from running multiple accounts in parallel to multiply weekly invite caps. Email module $5/month gets you a real follow-up inbox. 7-day free trial on both. See /pricing.

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.