Back to guides
/Linked API

LinkedIn Prospecting with AI: From ICP to an Approved Invitation

LinkedIn prospecting is finding the people who match your ideal customer profile, learning enough about each one to judge fit, and opening a conversation – usually with a connection request. Most of that work is research, and research is the part AI does well. This guide walks one real workflow from start to finish – who to look for, what to read, how to decide, what to send – run by an AI agent, with a short note for developers who want the same steps in code.

The short version. AI is useful for the research-heavy half of prospecting: building a list from your ideal customer profile, reading each person's profile and recent posts, judging fit, and drafting a first note. The decision to contact and the tone stay with you. On LinkedIn that can run two ways – an AI agent working in your own account through an MCP server, an agent-friendly CLI or a ready-made skill; or your own code through a REST API, Node or Python SDKs or a CLI. Either way it reads what your account can see, a person reviews the shortlist and the notes, and each invitation is sent only after approval, at a human pace within per-action limits.

Here is the whole workflow as one AI agent run on a LinkedIn account; the sections below take it apart step by step:

Your Agent
runs on your own LinkedIn account
Find heads, directors or VPs of Revenue Operations in the United Kingdom in Software Development, up to 25 people. Read each profile and their posts from the last 90 days, and check their company's employee count and industry. Exclude other titles, "former" or "ex-" titles, companies outside 50–500 employees or outside Software Development, and these competitors: [list]. Mark "strong fit" if a recent post mentions pipeline, forecast, CRM or data quality, and cite it; mark "unknown" if the company size is missing. For every fit, draft a connection note under 200 characters that uses "we help RevOps teams spot stale pipeline before forecast calls" at most once and never mentions profile views. Show me a table and send nothing until I approve.
Agentvia MCP Server
Used Linked API: search_people, fetch_person, fetch_company
  • 25 people: position "Revenue Operations", location United Kingdom, industry Software Development
  • current title, company link and up to five posts from the last 90 days
  • 8 excluded on title before any company check
  • employee count and industry for the current companies of the other 17

25 people checked: 4 strong fit, 6 fit, 2 unknown – their company pages show no employee count – and 13 excluded (8 on title, 4 on company size, 1 on industry). 10 notes drafted, each citing the post or the role. Nothing has been sent. Four of the rows:

PersonCompany (employees on LinkedIn)RuleEvidenceDraft note
Alex M., Head of Revenue OperationsExample Analytics, 180Strong fitA post three weeks ago on cleaning CRM data before forecast calls (linked)"Hi Alex – your post on cleaning CRM data before forecast calls hit home. We help RevOps teams spot stale pipeline before forecast calls. Happy to connect."
Priya S., Director of Revenue OperationsNorthwind Cloud, 320FitTitle, company size and industry match; no post in the last 90 days"Hi Priya – you lead Revenue Operations at Northwind Cloud. We help RevOps teams spot stale pipeline before forecast calls. Would be glad to connect."
Tom R., VP Revenue OperationsLedgerline, not shownUnknownThe company page shows no employee countHeld for your check
Sam K., Head of RevOpsTallyworks, 1,200ExcludedCompany outside 50–500 employees–

nothing goes out until you approve; then the agent sends the approved invitations at a human pace on your own account

Works withClaudeCodexChatGPTCursorOpenClaw
Example run – the people, companies and posts are invented. Works in Claude, ChatGPT, Cursor or Claude Code through the MCP server or the CLI.

How to prospect on LinkedIn, step by step

  1. Define who you are looking for. Title, seniority, industry, company size and region, written down as an ideal customer profile.
  2. Build the list. Run a people search with those filters – a free account filters by connection degree, location, current company, industry and more; Sales Navigator adds many more. See LinkedIn advanced search.
  3. Research each person. Their current role, their company and what they have posted lately – the reason to write now.
  4. Qualify. Separate fit (should they buy) from timing (is now right), and drop the rest – a lead qualification checklist helps.
  5. Make the first touch. A connection request, with a note only when you have something specific to say: a free account can add a note of up to 200 characters to three requests a month (LinkedIn Help). Examples by scenario are in what to write in a connection request.
  6. Follow up once they accept. Messages and follow-up timing are covered in LinkedIn cold outreach strategies.

Steps 2 to 4 are where the hours go, and where an AI agent helps most – the worked example below runs them on one search.

What AI should and should not do in prospecting

Delegate to AIKeep with a person
Building a candidate list from your ICPDeciding who to contact
Reading profiles and recent postsThe final tone of a note
Writing a fit rationale with sourcesAnything after the first touch
Drafting a first notePricing and timing conversations

The reason for the split is practical: an agent that sends unreviewed messages at volume costs you replies, reputation and, eventually, account health. Research and drafting are where AI saves real time; judgement is where it should hand back.

The worked example: from ICP to an approved invitation

The run above is illustrative – the company, the offer and the sample output are invented to show the workflow, and no live invitation was sent while writing it. Here is what each step does.

The seller and the offer. A RevOps analytics product that flags stale pipeline. The one offer sentence the note may use, at most once: "we help RevOps teams spot stale pipeline before forecast calls".

The ideal customer profile.

  • Title: head, director or VP of Revenue Operations.
  • Location: United Kingdom.
  • Industry: Software Development.
  • Company size: 50–500 employees.

The workflow, step by step.

  1. Find candidates. People search with the position, location and industry filters, capped at 25 results. The standard people search used here has no company-size filter, so size is checked later. To start from people already showing interest – profile viewers, post engagers – see LinkedIn buying signals.
  2. Gather evidence. For each candidate, fetch the profile with up to five posts from the last 90 days. Then fetch their current company from the company link on the profile, which returns employee count and industry. Every fact keeps the link it came from – the profile, the company page or the post.
  3. Qualify with explicit rules.
    • Exclude – the title is not a head, director or VP of Revenue Operations; it includes "former" or "ex-"; the company is outside 50–500 employees or not in Software Development; or the company is on your competitor list.
    • Fit – passes every ICP check.
    • Strong fit – fit, plus a post in the last 90 days that mentions pipeline, forecast, CRM or data quality. The rationale links that post.
    • Unknown – the company could not be fetched or reports no employee count. It goes to review flagged, never approved automatically.
  4. Draft a note. At most 200 characters – LinkedIn's limit for free accounts (300 with Premium). It refers to the cited post or the role, uses the offer sentence at most once, and avoids flattery, invented familiarity and "I saw you viewed my profile". Free accounts can add a note to only a few invitations a month (LinkedIn Help), so on a free account most of a 25-person list goes without one: once the cap is reached, invitations with a note fail with that reason, and you either send without a note or use Premium.
  5. Review. A person reads each rationale and draft, then approves, edits or drops it. Edits are recorded.
  6. Send the approved invitations and record the result. Each send ends as sent, already pending, already connected, or failed with the reason – for example a note over the length limit, a person who requires their email address, or a free account that has used up its personalized notes.

Each person's row keeps the whole trail – the links behind the rationale, the rule, the draft, your review decision and the send outcome.

Checking the output. Before you trust the workflow, spot-check it:

  • does each cited source actually say what the rationale claims?
  • reject any fit or intent claim that is not backed by a link;
  • note what reviewers changed – repeated edits mean the rules or the template need work;
  • track research and review time per person.

Sales value is judged later, by you, through qualified replies and meetings.

Run it with an AI agent

The run at the top of this guide is one plain-language instruction. Connect an assistant such as Claude to your LinkedIn account through the MCP server, the agent-friendly CLI or a ready-made skill – setup is covered in giving an AI agent access to LinkedIn. The agent then uses tools such as search_people, fetch_person, fetch_company and send_connection_request. Its behaviour depends on how you set it up, so treat the instruction as a starting point.

The pause before sending is part of your instruction, not a built-in approval queue – keep it explicit in the prompt. Once you have read the table, approving is one more message:

Your Agent
runs on your own LinkedIn account
Send the invitations for the 10 drafts – I edited Priya's note and dropped Marco. Keep the two unknown rows on hold.
Agentvia MCP Server
Used Linked API: send_connection_request
  • one at a time, at a human pace

9 invitations handled: 7 sent with a note, 1 already pending from an earlier invitation, 1 failed – this person requires their email address. The two unknown rows are still on hold. Four of them:

PersonNoteOutcome
Alex M.As draftedSent
Priya S.Your editSent
Chris D.As draftedAlready pending – sent earlier
Nina W.As draftedFailed – requires an email address; provide it or skip

the edit is recorded next to the draft, so you can see later which notes reviewers changed

Works withClaudeCodexChatGPTCursorOpenClaw
Example run. Assumes LinkedIn Premium: a free account can add a note to only a few invitations a month, and past that cap invitations with a note fail – send them without one. Works in Claude, ChatGPT, Cursor or Claude Code through the MCP server or the CLI.

Or orchestrate it in code

Developers can build the same contract into their own tools. In the Node and Python SDKs it takes four methods: searchPeople with the position, location and industry filters; fetchPerson with retrievePosts and a 90-day since; fetchCompany for the employee count and industry; and sendConnectionRequest for the approved rows only. Qualification and drafting can stay plain rules, so the reference path needs no LLM – keep a review file between drafting and sending either way. Every call is asynchronous – execute starts the work and returns a workflow ID, result waits for it – and failures such as alreadyPending, emailRequired or noteLimitExceeded come back in errors, not as exceptions. The same steps run from the CLI.

Which tool does which part

Part of the jobFits bestWhen another route is better
Research and drafting from sources you supplyA general AI assistant such as ChatGPT or ClaudeIt needs a LinkedIn tool for live data – on its own it works from what you paste in
Account-visible LinkedIn research and the approved first touchLinked API, run by an agent or from codeWhen your motion is a fixed multi-step sequence you would rather manage in a UI
Email and phone sourcingA verified contact-data providerLinked API returns neither
Managed follow-up after the first touchAn established CRM or sequencerWhen follow-ups need multichannel timing, templates and a shared team inbox

Guardrails: review, pace and limits

Two kinds of control keep this safe, and they are not the same thing:

  • Review and approval are yours. The pause before sending lives in your agent instruction or your code, as above.
  • Action caps are the platform's. Linked API enforces per-action limits by category – profile views, connection requests, messages, search queries – over daily, weekly or monthly periods, and you can set your own (limits API).

Keep the pace human, stay inside LinkedIn's practical limits, and treat invitations as one touch in a wider plan – more in automating connection requests. Before you message instead of invite, check the connection degree.

What this does not do

  • It does not find email addresses or phone numbers.
  • It works only with what your connected account can see on LinkedIn.
  • It does not replace a sequencer's multi-step follow-up – see LinkedIn automation tools for that category.
  • Drafts need a human eye before they go out.
  • It finds buyers, not partners – see how to research potential channel partners that already serve them.

Frequently Asked Questions (FAQ)

Yes, the research-heavy part: building a list from your ICP, reading profiles and recent posts, judging fit and drafting a first note. The decision to contact and the tone of the message are best kept with a person.

Give the assistant LinkedIn actions: ChatGPT and Claude connect through the MCP server; coding agents such as Claude Code, Cursor and Codex can also use the agent-friendly CLI or a ready-made skill. Then describe the workflow in plain language – who to find, what to check, how to draft – and tell it to stop for your approval before sending anything.

Any automation carries some risk. What keeps it in check is how it runs: on your own account, in a dedicated cloud browser, at a human pace, within per-action limits you configure, with a person approving each invitation.

No. The workflow above uses standard LinkedIn search and profiles. If your account has a Sales Navigator seat, the Plus plan adds Sales Navigator actions.

Send unreviewed messages at volume. An agent can research and draft at scale; whether and how to contact someone stays a human decision.

Build it in, or hand it to an agent

Use it both ways. Build the workflow into your own tools with the REST API, the Node and Python SDKs or the CLI. Or have an AI agent run it out of the box through the MCP server, the agent-friendly CLI or a ready-made skill. Plans start at $49 a seat a month billed annually – see pricing.