LinkedIn tools
Read LinkedIn people, company pages and posts from Claude, ChatGPT or Cursor: each tool's parameters, what it returns and what it costs.
Read public LinkedIn profiles, company pages, posts and the people commenting on them. Use linkedin_get_profile to check a person before you reach out, linkedin_get_company_posts to follow what a company publishes, linkedin_search_posts to find what is being said about a topic, and linkedin_get_comments to pull the people who commented on a post, each with a profile URL.
Each call costs what the data provider charges for it, and each tool below gives its cost. LinkedIn shows a logged-out reader up to 10 comments on a post and never who reacted, so that is the limit of what comes back. If LinkedIn has no way to answer a question, there is no tool for it.
For a comparison of LinkedIn MCP servers, see the best LinkedIn MCP servers.
To connect these tools to your agent, see the LinkedIn MCP page.
| Tool | What it does | Cost |
|---|---|---|
linkedin_get_profile | Get a LinkedIn profile | From 1 credit |
linkedin_get_company | Get a company page | From 1 credit |
linkedin_get_company_posts | Get a company's posts | From 1 credit |
linkedin_get_post | Get a LinkedIn post | From 1 credit |
linkedin_get_comments | Get a post's commenters | From 1 credit |
linkedin_search_posts | Search LinkedIn posts | From 1 credit |
Get a LinkedIn profile
linkedin_get_profileOne LinkedIn person: their about text, location, followers, companies and latest posts.
Checking a person before outreach, reading how they describe themselves.
- A company page, use
linkedin_get_company. - An email address, use
leads_get_email. - A person's full employment record, use
leads_get_person.
One record. The profile's handle, name, bio, followers, location, experience[] (the companies and schools on the profile, with dates but no titles), recent_posts[] (their latest posts, for linkedin_get_comments) and related (similar profiles), with other profile fields where LinkedIn fills them. null or empty = the platform does not publish it.
1 credit. Cached 24 hours.
Parameters
| Parameter | Default and notes |
|---|---|
handle | The account's handle, with or without the @. |
url | The full URL of a LinkedIn profile. |
Give one of url or handle (the part after /in/).
It also takes the common parameters max_credits and dry_run.
{
"url": "https://www.linkedin.com/in/williamhgates"
}Get a company page
linkedin_get_companyOne LinkedIn company page: headcount, industry, location and website.
Sizing a company from its own page, confirming an industry and a headcount band before outreach.
- A company's own posts, use
linkedin_get_company_posts. - A richer firmographic record, use
leads_get_company. - A person, use
linkedin_get_profile.
One record. The page's handle, name, bio, followers, website, location, industry, employees (LinkedIn's own headcount), founded, company_type, topics (its specialties), people (the few employees the page shows, with profile URLs and usually no title) and related (similar pages), with other profile fields where LinkedIn fills them. null or empty = the platform does not publish it. kind is company. running_ads and ad_library_id are always null here: the page does not say whether the company advertises; ads_get_advertiser_ads with platform linkedin and the company name does.
1 credit. Cached 24 hours.
Parameters
| Parameter | Default and notes |
|---|---|
handle | The account's handle, with or without the @. |
url | The full URL of a LinkedIn company page. |
Give one of handle (the company slug) or url.
It also takes the common parameters max_credits and dry_run.
{
"handle": "shopify"
}Get a company's posts
linkedin_get_company_postsThe posts on one LinkedIn company page, newest first.
Watching what a competitor publishes, judging cadence and engagement.
- Posts by topic across LinkedIn, use
linkedin_search_posts. - One post in full, use
linkedin_get_post.
A list. Each row has posts with author, created_at, text (cut at 2000 characters) and transcript. The listing carries no engagement, views or media, so those are null; linkedin_get_post has likes, comments and media for one post. created_at is approximate: the platform shows an age such as "3 weeks ago", so it is exact only to that unit.
1 credit per page. Cached 6 hours.
Parameters
| Parameter | Default and notes |
|---|---|
handle | The account's handle, with or without the @. |
url | The full URL of a LinkedIn company page. |
Give one of handle (the company slug) or url.
It also takes the common parameters cursor, max_credits and dry_run.
{
"handle": "shopify"
}Get a LinkedIn post
linkedin_get_postOne LinkedIn post with its text, its author, its engagement and its first commenters.
A row from a search is worth the detail, or you have a URL and nothing else.
- The commenters as rows to page or export, use
linkedin_get_comments. - A company's whole feed, use
linkedin_get_company_posts.
One record with Each row has the one post, with author and author_followers, created_at, text (cut at 2000 characters), likes, comments, shares, saves, views, media, duration_s, links, transcript and top_comments[]. top_comments are up to 10 commenters with their profile URLs, the same people linkedin_get_comments returns as rows. null or empty = the platform does not publish it. media is video only for a video stream; a photo, a document carousel or a GIF reads image.
1 credit. Cached 6 hours.
Parameters
| Parameter | Default and notes |
|---|---|
url | Required. The full URL of a LinkedIn post. |
It also takes the common parameters max_credits and dry_run.
{
"url": "https://www.linkedin.com/posts/aagupta_what-you-need-to-know-ai-agents-activity-7354600338621906944-RvXR"
}Get a post's commenters
linkedin_get_commentsThe comments LinkedIn shows on one post, each with the commenter's profile URL.
Pulling the people who engaged with a post: a competitor's launch, a thought leader in your category, your own post. Each author_url goes straight into linkedin_get_profile or leads_get_person.
- Every comment on a busy post (LinkedIn shows up to 10 to a logged-out reader, so a post with 200 comments returns 10).
- Reactions, which LinkedIn does not show at all.
- Many posts at once, use
linkedin_search_posts, whose rows carry the same commenters intop_comments.
A list. Each row has one comment each: author (the profile's slug, the part after /in/ or /company/), author_url (on www.linkedin.com), text (cut at 2000 characters). LinkedIn gives no time, likes or replies for a comment, so those are null. meta.cursor is always null: there is no next page.
1 credit. Cached 6 hours.
Parameters
| Parameter | Default and notes |
|---|---|
url | Required. The full URL of a LinkedIn post. |
It also takes the common parameters cursor, max_credits and dry_run.
{
"url": "https://www.linkedin.com/posts/aagupta_what-you-need-to-know-ai-agents-activity-7354600338621906944-RvXR"
}Search LinkedIn posts
linkedin_search_postsLinkedIn posts matching a keyword, ranked by LinkedIn's own search.
"what is being said about X on LinkedIn", finding the people posting about a category.
- One company's posts, use
linkedin_get_company_posts. - Finding people to contact, use
leads_search_people.
A list, ranked. Each row has posts with author and author_followers, created_at, text (cut at 2000 characters), likes, comments, shares, saves, views, media, duration_s, links, transcript and top_comments[]. top_comments are up to 10 commenters per post with their profile URLs, so one page names the people engaging with a topic; transcript is what a video post says. media is video only for a video stream; a photo, a document carousel or a GIF reads image. null or empty = the platform does not publish it. created_at is approximate: the platform shows an age such as "3 weeks ago", so it is exact only to that unit.
1 credit per page. Cached 6 hours.
Parameters
| Parameter | Default and notes |
|---|---|
query | Required. What to search LinkedIn posts for. |
since | One of day, week, month, year, all. How far back to search. Default month. |
It also takes the common parameters cursor, max_credits and dry_run.
{
"query": "rfp automation",
"since": "week"
}