LinkedIn automation for AI agents: search, invite, message and read replies from one prompt
Tell your agent who to find. It searches LinkedIn, enriches every match and starts personalized LinkedIn and email outreach, through one key and one balance.
$ Set up https://www.routergrowth.com/SKILL.md, then find 50 B2B SaaS founders in Europe, enrich them, and start a personalized LinkedIn and email sequence.
On this page
Most LinkedIn automation tools are a browser extension or a cloud seat with a campaign builder: you load a list, write a sequence, and the tool clicks for you. That model assumes a person sets everything up in a dashboard. An AI agent needs the opposite. It needs LinkedIn as a set of calls it can make while it works: search people, read a profile, send a connection request, send a message, read the replies.
That is what this guide covers. You connect your own LinkedIn account once, and Claude, ChatGPT or Codex gets those five actions as tools, through an MCP server or a plain API, next to the enrichment and email calls that finish the workflow.
What can an AI agent do on LinkedIn?
Six calls cover the loop, all from the account you connected.
| Call | What it does |
|---|---|
| linkedin.account | connects your account through a hosted sign-in page, then reports its status |
| linkedin.search | finds people by keywords, location, company, industry and connection degree (classic search, or Sales Navigator when the account has it) |
| linkedin.profile | reads one profile as your account sees it, including whether an invitation was accepted |
| linkedin.invite | sends a connection request with an optional personalized note |
| linkedin.message | messages a connection, replies in a thread, or sends an InMail |
| linkedin.messages | lists conversations, newest first, with unread counts and full threads |
You stay the sender of record. The calls run through a connection provider (Unipile) rather than LinkedIn's official partner API, and someone already connected or already invited comes back as a miss, never as a duplicate send.
How do you connect LinkedIn to Claude or ChatGPT over MCP?
In two steps.
- Give the agent the tools. Add the RouterGrowth MCP server (
api.routergrowth.com/mcp) as a connector in Claude or any MCP client, or point a coding agent athttps://www.routergrowth.com/SKILL.md. The MCP quickstart has the exact steps. - Connect the account. Ask the agent to connect LinkedIn. It runs
linkedin.account, which returns a hosted sign-in link. You open it once and sign in there. Your password never touches RouterGrowth or the agent.
Connecting and checking status are free. A connected account then rents a seat billed monthly while it is active, and searches, invitations, messages and inbox reads are priced per call. The current prices are in the table at the end of this page.
What does a 50-lead run look like?
One prompt:
Find 50 B2B SaaS founders in Europe. Enrich them, then start a
personalized LinkedIn and email sequence.
And the run behind it, modelled at default limits:
| Step | Call | Outcome |
|---|---|---|
| 1 | linkedin.search | 50 matching profiles |
| 2 | linkedin.profile | role and connection context for each match |
| 3 | person.enrich | 50 enriched people |
| 4 | contact.find | 43 work emails (a miss is not billed) |
| 5 | linkedin.invite | 43 personalized invitations queued |
| 6 | email.send | 43 personalized emails queued |
| 7 | linkedin.messages | replies read as they arrive |
The agent sees the price of each step before it runs it. The whole run costs a few dollars, most of it the email lookups, against a stack that normally means four subscriptions:
| Tool | Typical entry plan, per year |
|---|---|
| Lead database | $708 |
| Enrichment platform | $588 |
| LinkedIn automation | $948 |
| Email outreach | $444 |
Those figures are illustrative entry-level annual plans from public category pricing in September 2026; exact vendor plans vary. The larger cost is the seams: a profile without an email, an invite without an acceptance check and a reply in another inbox all become reconciliation work. Here one run carries a person from search to message, and the email half is the same waterfall enrichment and lead enrichment calls used everywhere else.
How do you keep a LinkedIn account safe with an agent sending?
This is the part most LinkedIn automation gets wrong, and the reason an agent should not be allowed to fire invitations as fast as it can call a tool.
- Sends are paced for you. RouterGrowth enforces a minimum gap between two sends from the same account and a daily ceiling that starts low while the connection is new and rises as it ages. A send inside the gap or over the ceiling comes back as a blocked run with a retry time; nothing is sent and nothing is charged. The rule is documented under send pacing.
- LinkedIn's own limits still apply. An invitation note is 200 characters, 300 on a Premium account, and a free account gets about five noted invitations a month before it has to send without a note.
- New people get an invitation first. The agent can message existing connections, reply in a thread, or use InMail when the account supports it. For anyone else it sends a connection request and messages after acceptance, which
linkedin.profileconfirms. - A person approves the copy. The LinkedIn outbound skill drafts, then stops at a gate before anything goes out.
Who to invite matters as much as how. The warmest list is rarely a title filter: it is people who just engaged with the problem, which is the method in LinkedIn lead generation from competitor post comments.
What does each call cost?#
Prices below are the starting price per successful call. /v1/inspect returns the exact figure before the run and reserves it against your balance; failures and unbilled no-matches release the hold in full.
| Capability | What it returns | From | Providers |
|---|---|---|---|
| linkedin.account | Connect a LinkedIn account for outbound: returns a hosted sign-in link the account holder opens once (the password never touches RouterGrowth), then reports the connection status. Without a name it reports the account already connected instead of minting a link. Run again with the name to confirm or to get a reconnect link. Free to run; a connected account rents a seat billed monthly. | $0 | |
| linkedin.search | Search people from your connected LinkedIn account (classic search, or Sales Navigator when the account has it): keywords, location, company, industry, connection degree. Returns provider ids ready for linkedin.invite. | $0.001 | |
| linkedin.profile | One LinkedIn profile as your connected account sees it: name, headline, location, current role, connection degree (1 means the invitation was accepted), open-profile flag. Use it to check acceptance before messaging. | $0.001 | |
| linkedin.invite | Send a LinkedIn invitation (a connection request) from your connected account, with an optional personalized note (200 characters, 300 on a Premium account; a free account gets about 5 noted invitations a month, then send without a note). Already connected, already invited, or an invitation LinkedIn will not let you resend yet (withdrawn in the last few weeks) comes back as a miss for that person, never as a duplicate send. | $0.006 | |
| linkedin.message | Message a connection from your account, reply in an existing thread, or send an InMail to someone you are not connected to. InMail credits belong to one LinkedIn product: inmail:true draws on the Premium credits, api recruiter or sales_navigator sends through that seat and its credits. linkedin.accounts with inmail_credits:true shows each balance before you send. You are the sender of record. | $0.006 | |
| linkedin.messages | Conversations on your connected account, newest first, with unread counts; pass chat_id to read one thread. Poll it after invitations and messages to catch replies. | $0.001 | |
| person.enrich | Full professional profile from a public LinkedIn profile URL or a work email: name, headline, about, location and the complete role history. | $0.005 | |
| contact.find | Find a professional email from a person and company. | $0.014 | |
| email.send | Send an email from one of your inboxes, or reply within a thread, with file attachments when needed (a deck, a PDF: by public https url, or inline as base64). You are the sender of record: consent and unsubscribe handling are yours. | $0.003 | |
One prepaid balance covers every row. Capabilities marked coming soon are listed but not yet executable.
FAQ#
Does RouterGrowth need my LinkedIn password?
No. linkedin.account returns a hosted sign-in page from the connection provider. The password never touches RouterGrowth. You remain the sender of record.
Is there a LinkedIn MCP server for Claude, ChatGPT and Cursor?
Yes. The RouterGrowth MCP server at api.routergrowth.com/mcp exposes linkedin.search, linkedin.profile, linkedin.invite, linkedin.message and linkedin.messages through its discover, inspect and run tools, from the LinkedIn account you connected, next to enrichment and email on the same connection.
What does the connected LinkedIn account cost?
Connecting and checking status are free. A connected account is billed monthly while active, charged to the same RouterGrowth wallet. Searches, invitations, messages and inbox reads are then priced per call; inspect shows the exact figure before any run.
Can my agent message anyone?
It can message existing connections, reply in a thread, or use InMail when the account supports it. For new people, send a connection request first and message after acceptance. LinkedIn's own limits still apply.
Can I run LinkedIn and email together?
Yes. The agent can find and enrich a person once, then use linkedin.invite or linkedin.message and email.send in the same workflow. Replies remain available through linkedin.messages and the email inbox.
Which API lets me send LinkedIn connection requests and messages from my own account?
linkedin.invite sends a connection request with a note and linkedin.message sends a message, reply or InMail, both from the account you connected with linkedin.account. They go through a connection provider (Unipile) rather than LinkedIn's official partner API, you stay the sender of record, and already-connected or already-invited come back as a miss rather than a duplicate send.
How can an AI agent read my LinkedIn inbox and reply to messages?
linkedin.messages returns the conversations on your connected account, newest first, with unread counts and full threads by chat id. The agent polls it after invitations and messages, drafts a reply, and sends it with linkedin.message once a human approves, inside the daily caps.
How do I find a decision maker's phone number from their LinkedIn profile with an API?
Not by scraping the profile. contact.phone takes a work email or a LinkedIn profile URL and returns a mobile number from licensed providers, charged only when a number is found. Pair it with person.enrich for the role history and contact.find for the email.
Run this today
Sign up, get $1 of credit, and the first call in this guide costs a fraction of a cent. One key, one balance, price shown before every call.
Get started →Keep reading
Cold email infrastructure: domains, DNS, inboxes and warm-up from one API
The whole sending stack as API calls: domain, DNS, authentication, inbox, send, and the replies coming back.
Lead generation · 9 minLinkedIn lead generation: turn competitor commenters into a qualified lead list
200 competitor commenters in, 54 decision makers with a current work email out, and a person reads 36 profiles instead of 200. The comment is the trigger, never the opener.
Comparisons · 9 minClay alternatives: 7 tools compared for 2026, with pricing
Seven tools that replace the part of Clay a team actually uses, what each costs today, and when Clay is still the right answer.




Install the skill once and Claude Code, Codex, Cursor and the rest discover these capabilities, check the price, then run them.
Install the agent skill →Reading this as an agent? This guide as markdown: /use-cases/linkedin-automation-for-ai-agents.md · every guide: /use-cases/llms.txt · RSS