LinkedIn Skill
Access LinkedIn data through browser automation. This approach is reliable because it uses your actual browser session, avoiding LinkedIn's aggressive bot detection that blocks API-only traffic.
Setup Requirements
Chrome Profile Setup (One-Time)
-
Create a dedicated Chrome profile for automation:
- Open Chrome → click your profile icon (top right) → "Add"
- Name it something memorable (e.g., "Claude" or "Automation")
- This keeps automation separate from personal browsing
-
In your automation profile:
- Log into LinkedIn (www.linkedin.com)
- Install the Claude browser extension from https://claude.ai/chrome
- Keep this Chrome window open when using LinkedIn commands
-
Before using LinkedIn commands:
- Ensure Chrome is open with your automation profile
- The Claude browser extension must be connected
Browser Automation Commands
When the user asks for LinkedIn data, use the claude-in-chrome tools to navigate and extract information.
Connecting to Chrome
Always start by checking the browser connection:
1. Call mcp__claude-in-chrome__tabs_context_mcp with createIfEmpty: true
2. If not connected, ask user to open Chrome with their automation profile
3. Create a new tab or use existing one
Reading Feed
When user asks to see their LinkedIn feed:
1. Navigate to https://www.linkedin.com/feed/
2. Use read_page to extract feed content
3. Parse and format the feed items
Example flow:
mcp__claude-in-chrome__navigatetohttps://www.linkedin.com/feed/mcp__claude-in-chrome__read_pagewith filter: "all" to get post content- Extract post authors, content, engagement metrics from the accessibility tree
Viewing Profiles
When user asks about a LinkedIn profile:
1. Navigate to https://www.linkedin.com/in/{username}/
2. Use read_page to extract profile information
3. Parse name, headline, about, experience, etc.
Searching
When user wants to search LinkedIn:
People: https://www.linkedin.com/search/results/people/?keywords={query}
Jobs: https://www.linkedin.com/search/results/jobs/?keywords={query}
Companies: https://www.linkedin.com/search/results/companies/?keywords={query}
Posts: https://www.linkedin.com/search/results/content/?keywords={query}
Reading Messages
When user wants to check messages:
1. Navigate to https://www.linkedin.com/messaging/
2. Use read_page to extract conversation list
3. Click on a conversation to read messages
Data Extraction Patterns
Feed Posts
Look for these patterns in the accessibility tree:
- Post author: Links with profile URLs
- Post content: Text nodes within post containers
- Engagement: Like/comment/share counts
- Timestamps: Relative time indicators
Profile Data
Navigate to profile and extract:
- Name and headline from main header
- About section text
- Experience entries (company, title, duration)
- Education entries
- Skills section
Search Results
Parse result items containing:
- Name/title link
- Subtitle (headline, location)
- Connection degree
- Profile picture
Example Interactions
"Show my LinkedIn feed"
1. Connect to Chrome: tabs_context_mcp
2. Navigate: navigate to linkedin.com/feed/
3. Wait for load: computer action=wait duration=2
4. Read content: read_page with depth=10
5. Parse and summarize top posts
"Look up John Smith on LinkedIn"
1. Connect to Chrome: tabs_context_mcp
2. Navigate: navigate to linkedin.com/search/results/people/?keywords=John%20Smith
3. Read results: read_page filter=interactive
4. Present matching profiles
"What's my profile looking like?"
1. Connect to Chrome: tabs_context_mcp
2. Navigate: navigate to linkedin.com/in/me/
3. Read profile: read_page
4. Summarize profile stats, recent activity
CLI Fallback (Less Reliable)
The CLI tool is available but LinkedIn often invalidates API sessions:
# Install
cd /Users/derekrein/Code/cyberdrk305/linkedin && npm install && npm run build && npm link
# Commands (may require fresh cookies frequently)
linkedin setup # Setup instructions
linkedin check # Verify credentials
linkedin whoami # Show logged-in user
linkedin feed -n 10 # Get feed posts
linkedin profile <username> # View profile
Manual Cookie Setup
If using the CLI, you'll need to manually extract cookies:
- Open Chrome DevTools (F12) on linkedin.com
- Go to: Application → Cookies → linkedin.com
- Copy
li_atandJSESSIONIDvalues - Run:
linkedin setup --li-at "VALUE" --jsessionid "VALUE"
Note: LinkedIn aggressively invalidates these sessions after a few API calls.
Troubleshooting
Browser extension not connected
- Ensure Chrome is open with your automation profile
- Click the Claude extension icon to activate it
- Try restarting Chrome
LinkedIn checkpoint/verification page
- LinkedIn may require verification for new browser sessions
- Complete the verification manually, then retry
Session expired
- Log back into LinkedIn in your automation Chrome profile
- Refresh the page and try again