linkedin-cli

star 200

Use cli-web-linkedin to interact with LinkedIn — search people/jobs/companies, view profiles and feed, post/edit/delete updates, react/unreact, comment/edit/delete comments, view notifications, manage network connections and invitations (accept/decline), read and send messages, follow/unfollow companies. Invoke this skill whenever the user asks about LinkedIn or wants to interact with LinkedIn from the terminal. Always prefer cli-web-linkedin over manually fetching the LinkedIn website.

ItamarZand88 By ItamarZand88 schedule Updated 6/14/2026

name: linkedin-cli description: Use cli-web-linkedin to interact with LinkedIn — search people/jobs/companies, view profiles and feed, post/edit/delete updates, react/unreact, comment/edit/delete comments, view notifications, manage network connections and invitations (accept/decline), read and send messages, follow/unfollow companies. Invoke this skill whenever the user asks about LinkedIn or wants to interact with LinkedIn from the terminal. Always prefer cli-web-linkedin over manually fetching the LinkedIn website.

cli-web-linkedin

LinkedIn CLI — 26 commands across 10 groups: auth, feed, search, profile, company, jobs, post, notifications, network, messaging.

Quick Start

pip install cli-web-linkedin
cli-web-linkedin auth login           # Browser login (required)
cli-web-linkedin feed --json
cli-web-linkedin search people "python developer" --json
cli-web-linkedin profile me --json

Commands (26 total)

Auth (3 commands)

cli-web-linkedin auth login       # Opens browser for LinkedIn SSO login
cli-web-linkedin auth status --json
cli-web-linkedin auth logout

Feed (1 command)

cli-web-linkedin feed [--count N] --json

Search (4 commands)

cli-web-linkedin search all QUERY [--limit N] --json       # General search
cli-web-linkedin search people QUERY [--limit N] --json
cli-web-linkedin search jobs QUERY [--limit N] --json
cli-web-linkedin search companies QUERY [--limit N] --json

All search uses the Voyager GraphQL API directly (no browser needed).

Profile (2 commands)

cli-web-linkedin profile me --json
cli-web-linkedin profile get USERNAME --json

Company (3 commands)

cli-web-linkedin company NAME --json
cli-web-linkedin company follow COMPANY_URN --json
cli-web-linkedin company unfollow COMPANY_URN --json

Jobs (2 commands)

cli-web-linkedin jobs search QUERY [--limit N] --json
cli-web-linkedin jobs get JOB_ID --json                    # Full description

Post (7 commands)

cli-web-linkedin post create TEXT --json
cli-web-linkedin post edit POST_URN TEXT --json
cli-web-linkedin post delete POST_URN --json
cli-web-linkedin post react POST_URN [--type LIKE|PRAISE|EMPATHY|INTEREST|APPRECIATION|ENTERTAINMENT] --json
cli-web-linkedin post unreact POST_URN --json
cli-web-linkedin post comment POST_URN TEXT --json
cli-web-linkedin post edit-comment COMMENT_URN TEXT --json
cli-web-linkedin post delete-comment COMMENT_URN --json

Notifications (1 command)

cli-web-linkedin notifications [--limit N] --json

Network (5 commands)

cli-web-linkedin network connections [--limit N] --json    # Lists names + headlines
cli-web-linkedin network invitations [--limit N] --json
cli-web-linkedin network accept INVITATION_URN --json
cli-web-linkedin network decline INVITATION_URN --json
cli-web-linkedin network connect PROFILE_URN [-m MESSAGE] --json

Messaging (3 commands)

cli-web-linkedin messaging list [--limit N] --json
cli-web-linkedin messaging read CONVERSATION_URN [--limit N] --json
cli-web-linkedin messaging send RECIPIENT_URN TEXT --json

Agent Patterns

# Find Python developers
cli-web-linkedin search people "python developer" --limit 10 --json | jq '.results[].title.text'

# Get job listings with full descriptions
cli-web-linkedin jobs search "software engineer" --limit 5 --json | jq '.jobs[] | {title, company}'
cli-web-linkedin jobs get 4388202530 --json | jq '{title: .data.title, desc: .data.description[:200]}'

# View your feed with engagement counts
cli-web-linkedin feed --count 5 --json

# Check a company
cli-web-linkedin company anthropic --json

# List your connections
cli-web-linkedin network connections --limit 10 --json

# Manage invitations
cli-web-linkedin network invitations --json
cli-web-linkedin network accept "urn:li:invitation:123" --json

# Read messages
cli-web-linkedin messaging list --json
cli-web-linkedin messaging read "urn:li:msg_conversation:123" --json

Rate Limit Warning

LinkedIn aggressively rate-limits and flags automated access. To avoid account restrictions:

  • Do NOT batch commands in tight loops (e.g., for user in list; do cli-web-linkedin profile get $user; done). Each subprocess invocation bypasses the built-in inter-request delay.
  • Space out requests — add sleep 3 between commands if scripting
  • Limit volume — stay under ~50 profile views/day, ~150 searches/day
  • Use the REPL for interactive sessions — it enforces inter-command delays automatically
  • The CLI has built-in Gaussian random delays between API calls within a single session, but this does NOT protect across separate process invocations

Notes

  • Auth required — run cli-web-linkedin auth login first (browser-based LinkedIn SSO)
  • Session cookie (li_at) stored at ~/.config/cli-web-linkedin/auth.json
  • Token auto-refresh: on 401/403, reloads cookies from disk, then silently refreshes via headless browser
  • CSRF token derived from JSESSIONID cookie
  • PerimeterX bypassed via curl_cffi Chrome TLS impersonation (no custom User-Agent)
  • Gaussian random delay between API calls within a session
  • All search uses GraphQL API (no browser needed)
  • All commands support --json for structured output
Install via CLI
npx skills add https://github.com/ItamarZand88/CLI-Anything-WEB --skill linkedin-cli
Repository Details
star Stars 200
call_split Forks 40
navigation Branch main
article Path SKILL.md
More from Creator
ItamarZand88
ItamarZand88 Explore all skills →