You have access to `linkedin-cli`, an unofficial LinkedIn CLI tool. Use it to read information from the user's LinkedIn account.
Scanned 9/12/2026
Install to Claude Code
npx -y skills add aibot88/sec_skill_store --skill markes76-claude-code-gui-linkedin-cli-docs --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Markes76 Claude Code Gui Linkedin Cli Docs?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/aibot88-markes76-claude-code-gui-linkedin-cli-docs)More formats (shields.io, HTML) on the badges page.
# linkedin-cli skill
You have access to `linkedin-cli`, an unofficial LinkedIn CLI tool. Use it to read information from the user's LinkedIn account.
## Prerequisites
The user must be authenticated. Check first with:
```bash
linkedin status --json
```
If not authenticated, instruct them to run `linkedin login`.
## Golden Rule
**Always use `--json` when fetching data for processing.** Plain output is for humans; `--json` gives you clean structured data you can parse, filter, and analyze.
---
## Commands Reference
### Authentication
```bash
linkedin login # Open browser for manual LinkedIn login
linkedin status --json # Check session validity + current user info
linkedin logout # Clear saved session
```
### Profile
```bash
linkedin profile --json # Your full profile
linkedin profile https://www.linkedin.com/in/johndoe --json # Another person's profile
```
**Output fields:** `firstName`, `lastName`, `headline`, `summary`, `locationName`, `industryName`, `publicIdentifier`, `entityUrn`
### Connections
```bash
linkedin connections --json # List connections (default 25)
linkedin connections --count --json # Just the total count
linkedin connections --search "John" --json # Filter by name
linkedin connections --recent --json # Most recently connected
linkedin connections --limit 100 --json # Up to 100 connections
```
**Output fields (array):** `entityUrn`, `firstName`, `lastName`, `headline`, `publicIdentifier`, `connectedAt` (epoch ms)
### Feed & Posts
```bash
linkedin feed --json # Recent feed (default 20)
linkedin feed --mine --json # Only your posts
linkedin feed --mine --stats --json # Your posts with engagement stats
linkedin feed --limit 50 --json # More items
linkedin posts <post-url> --json # Specific post with comments
```
**Feed item fields:** `entityUrn`, `actor` (name, description), `commentary.text.text`, `socialDetail.totalSocialActivityCounts` (numLikes, numComments, numShares), `createdAt`
### Messages
```bash
linkedin messages --json # Recent conversations
linkedin messages --unread --json # Unread only
linkedin messages --search "keyword" --json # Search messages
linkedin messages --limit 50 --json # More conversations
```
**Conversation fields:** `entityUrn`, `participants`, `lastActivityAt`, `read`, `events`
### Notifications
```bash
linkedin notifications --json # Recent notifications
linkedin notifications --unread --json # Unread only
```
**Fields:** `entityUrn`, `publishedAt`, `read`, `headline.text`, `subtext.text`
### Network
```bash
linkedin network invitations --json # Received connection requests
linkedin network invitations --sent --json # Sent requests
linkedin network suggestions --json # People you may know
```
### Analytics
```bash
linkedin analytics --json # Post performance last 30 days
linkedin analytics --post <post-url> --json # Specific post analytics
linkedin analytics --followers --json # Follower growth/demographics
```
**Fields:** `totalImpressions`, `uniqueImpressions`, `totalEngagements`, `engagementRate`, `totalClicks`, `totalReactions`, `totalComments`, `totalReposts`
### Search
```bash
linkedin search people "AI engineer" --json # Search people
linkedin search companies "cybersecurity" --json # Search companies
linkedin search jobs "product manager" --json # Search jobs
linkedin search posts "enterprise AI" --json # Search content/posts
linkedin search people "designer" --limit 25 --json # More results
```
**Result fields:** `entityUrn`, `title.text`, `primarySubtitle.text`, `secondarySubtitle.text`, `navigationUrl`, `publicIdentifier`
### Jobs
```bash
linkedin jobs saved --json # Your saved jobs
linkedin jobs applied --json # Jobs you applied to
linkedin jobs recommended --json # Recommended for you
```
**Fields:** `entityUrn`, `title`, `companyName`, `locationName`, `listedAt`
---
## Global Flags
| Flag | Description |
|------|-------------|
| `--json` | Structured JSON output (always use for data) |
| `--no-color` | Disable color (useful in CI/pipes) |
| `--limit <n>` | Max results (varies by command) |
---
## Natural Language → Command Mapping
| User asks | Command to run |
|-----------|----------------|
| "How many connections do I have?" | `linkedin connections --count --json` |
| "Show me my recent posts with engagement" | `linkedin feed --mine --stats --json` |
| "Find AI engineers in my network" | `linkedin search people "AI engineer" --json` |
| "What are my unread messages?" | `linkedin messages --unread --json` |
| "Show my post analytics for last month" | `linkedin analytics --json` |
| "Who are my most recent connections?" | `linkedin connections --recent --limit 10 --json` |
| "What jobs have I applied to?" | `linkedin jobs applied --json` |
| "What pending connection requests do I have?" | `linkedin network invitations --json` |
| "Search for cybersecurity companies" | `linkedin search companies "cybersecurity" --json` |
| "What does my LinkedIn profile say?" | `linkedin profile --json` |
| "Show me John Smith's profile" | `linkedin search people "John Smith" --limit 5 --json` (then use the publicIdentifier to fetch: `linkedin profile https://www.linkedin.com/in/<id> --json`) |
| "What notifications haven't I read?" | `linkedin notifications --unread --json` |
| "What are my saved jobs?" | `linkedin jobs saved --json` |
| "Are there any job recommendations for me?" | `linkedin jobs recommended --json` |
| "Show me posts about AI on my feed" | `linkedin feed --json` then filter by keyword |
| "What's the engagement on my posts?" | `linkedin feed --mine --stats --json` |
---
## Combining Commands for Complex Queries
### Example: Find a specific connection and view their profile
```bash
# 1. Find by name
linkedin connections --search "Jane Doe" --json
# 2. Use publicIdentifier from result to fetch profile
linkedin profile https://www.linkedin.com/in/janedoe --json
```
### Example: Audit your post performance
```bash
# Get all your posts with stats
linkedin feed --mine --stats --limit 50 --json | jq '[.[] | {text: .commentary.text.text, likes: .socialDetail.totalSocialActivityCounts.numLikes, comments: .socialDetail.totalSocialActivityCounts.numComments}] | sort_by(-.likes)'
```
### Example: Export connections to CSV (using jq)
```bash
linkedin connections --limit 500 --json | jq -r '.[] | [.firstName, .lastName, .headline, .publicIdentifier] | @csv'
```
### Example: Find unread messages from a specific person
```bash
linkedin messages --unread --json | jq '.[] | select(.participants[].participantType.member.firstName.text == "Alice")'
```
---
## Error Handling
| Error | Meaning | Action |
|-------|---------|--------|
| `Auth error: No session found` | Not logged in | Run `linkedin login` |
| `Session expired` | Cookie expired | Run `linkedin login` again |
| `Rate limited (429)` | Too many requests | Wait 60s before retrying |
| `Access forbidden (403)` | Blocked request | Wait and retry, or re-login |
---
## Important Notes
1. This is an **unofficial tool** using undocumented LinkedIn APIs. API responses may change.
2. LinkedIn rate-limits aggressively. Add delays between bulk requests.
3. The tool is **read-only** — no writes, no posts, no messages sent.
4. Session cookies expire periodically. If commands fail with auth errors, re-run `linkedin login`.
5. Use `--limit` to control request volume and avoid rate limits.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!