本文へ移動
cccskills
無料GitHub で公開

linkedin

Interact with LinkedIn — view your profile, browse other profiles, read the feed, search jobs/posts/people, get job details, create posts, like/unlike posts, comment, send connection requests, and follow/unfollow users. Use this skill whenever the user mentions LinkedIn, wants to search for jobs or people, read their LinkedIn feed, view a profile, get job details, create a post, like or comment on content, send a connection request, or follow someone. Also trigger when the user pastes a LinkedIn URL (e.g. linkedin.com/in/..., linkedin.com/jobs/view/...) or mentions LinkedIn networking.

インストール方法を見る

含まれるファイル(27)

  • SKILL.md12.1 KB
  • references/provider-config.yaml709 B
  • scripts/linkedin_client.py8.2 KB
  • scripts/linkedin_comment.py1.8 KB
  • scripts/linkedin_connect.py1.6 KB
  • scripts/linkedin_feed.py1.6 KB
  • scripts/linkedin_follow.py1.6 KB
  • scripts/linkedin_job.py2.3 KB
  • scripts/linkedin_like.py1.6 KB
  • scripts/linkedin_me.py1.7 KB
  • scripts/linkedin_post.py1.9 KB
  • scripts/linkedin_profile.py1.7 KB
  • scripts/linkedin_search_jobs.py4.0 KB
  • scripts/linkedin_search_people.py2.9 KB
  • scripts/linkedin_search_posts.py2.2 KB
  • tests/test_linkedin_comment.py1.9 KB
  • tests/test_linkedin_connect.py1.9 KB
  • tests/test_linkedin_feed.py2.8 KB
  • tests/test_linkedin_follow.py2.1 KB
  • tests/test_linkedin_job.py2.3 KB
  • tests/test_linkedin_like.py1.6 KB
  • tests/test_linkedin_me.py2.6 KB
  • tests/test_linkedin_post.py1.8 KB
  • tests/test_linkedin_profile.py3.1 KB
  • tests/test_linkedin_search_jobs.py3.0 KB
  • tests/test_linkedin_search_people.py3.4 KB
  • tests/test_linkedin_search_posts.py2.4 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

LinkedIn

View profiles, browse the feed, search jobs/posts/people, get job details, create posts, like/unlike, comment, send connections, and follow/unfollow on LinkedIn.

Skill Directory

<SKILL_DIR> is the directory containing this SKILL.md file. Determine it ONCE at the start and reuse it.

Setup (run FIRST — every time, before any operation)

You MUST complete this setup before running any script. Do NOT skip this step.

sig status linkedin 2>&1

Check the JSON output fields configured and valid:

  • configured: false → run Provider Setup below. Do NOT proceed without completing it.
  • valid: false (but configured: true) → run sig login linkedin, then re-check.
  • valid: true → detect proxy (see below), then execute the user's request.

Provider Setup

  1. Read <SKILL_DIR>/references/provider-config.yaml
  2. Append the provider block to ~/.sig/config.yaml under providers:
  3. Ask the user: "Do you need a proxy to access this site?" — if yes, add networkProxy: <url> under the provider in config.yaml
  4. Run sig login linkedin (with --network-proxy <url> if proxy was specified)
  5. Verify: run sig status linkedin again — must show valid: true before proceeding

Proxy Detection (after provider is valid)

grep -A15 "^\s*linkedin:" ~/.sig/config.yaml | grep networkProxy | awk '{print $2}'

If this outputs a URL, prefix ALL python3 commands with HTTPS_PROXY=<url> HTTP_PROXY=<url>. If using socks5, convert to socks5h for python (e.g. socks5://... → socks5h://...). If empty, no proxy needed.

Running Scripts

All scripts require setup to be completed first (see above).

Scripts Reference

All scripts are in this skill's scripts/ directory. Run via Bash tool.

Read Operations

ScriptPurposeAuth
linkedin_me.pyCurrent user profileRequired
linkedin_profile.pyUser profile by nameRequired
linkedin_feed.pyHome feed postsRequired
linkedin_search_jobs.pySearch job listingsRequired
linkedin_search_posts.pySearch postsRequired
linkedin_search_people.pySearch peopleRequired
linkedin_job.pyJob posting detailsRequired

Write Operations

ScriptPurposeAuth
linkedin_post.pyCreate a postRequired
linkedin_like.pyLike/unlike a postRequired
linkedin_comment.pyComment on a postRequired
linkedin_connect.pySend connection requestRequired
linkedin_follow.pyFollow/unfollow a userRequired

linkedin_me.py

--cookie COOKIE      LinkedIn session cookie (optional, uses SIG_LINKEDIN_COOKIE)

linkedin_profile.py

--username TEXT       LinkedIn username or profile URL (required)
--cookie COOKIE      LinkedIn session cookie (optional)

linkedin_feed.py

--limit N            Max posts (default: 10)
--cookie COOKIE      LinkedIn session cookie (optional)

linkedin_search_jobs.py

--query TEXT          Job search keywords (required)
--location TEXT       Location filter (optional)
--limit N            Max results (default: 10)
--start N            Offset for pagination (default: 0)
--experience TEXT     Experience level codes (comma-sep: 1=intern,2=entry,3=assoc,4=mid,5=dir,6=exec)
--job-type TEXT       Job type codes (F=full,P=part,C=contract,T=temp,V=volunteer,I=intern)
--date-posted TEXT    Date filter (r86400=24h, r604800=week, r2592000=month)
--remote TEXT         Workplace type (1=onsite, 2=remote, 3=hybrid)
--cookie COOKIE      LinkedIn session cookie (optional)

linkedin_search_posts.py

--query TEXT          Search keywords (required)
--limit N            Max results (default: 10)
--cookie COOKIE      LinkedIn session cookie (optional)

linkedin_search_people.py

--query TEXT          Search keywords (required)
--limit N            Max results (default: 10)
--start N            Offset for pagination (default: 0)
--cookie COOKIE      LinkedIn session cookie (optional)

linkedin_job.py

--id TEXT             Job ID or LinkedIn job URL (required)
--cookie COOKIE      LinkedIn session cookie (optional)

linkedin_post.py

--cookie COOKIE      LinkedIn session cookie (required)
--text TEXT           Post text content (required)

linkedin_like.py

--cookie COOKIE      LinkedIn session cookie (required)
--urn TEXT            Post URN, e.g. urn:li:activity:1234567890 (required)
--undo               Unlike instead of like

linkedin_comment.py

--cookie COOKIE      LinkedIn session cookie (required)
--urn TEXT            Post URN to comment on (required)
--text TEXT           Comment text (required)

linkedin_connect.py

--cookie COOKIE      LinkedIn session cookie (required)
--urn TEXT            Profile URN, e.g. urn:li:fsd_profile:ACoAA... (required)
--message TEXT        Custom connection message (optional)

linkedin_follow.py

--cookie COOKIE      LinkedIn session cookie (required)
--urn TEXT            User URN, e.g. urn:li:fsd_profile:ACoAA... (required)
--undo               Unfollow instead of follow

Safety

LinkedIn is a professional network. Actions taken here are visible to your professional contacts and can affect your reputation. Always confirm with the user before executing write operations:

  • Creating posts — confirm the text content before publishing
  • Sending connection requests — confirm the target person and optional message
  • Commenting on posts — confirm the comment text before posting
  • Liking/unliking — these are reversible (--undo), but still confirm first
  • Following/unfollowing — these are reversible (--undo), but still confirm first

Key Concepts

Profile identifiers — linkedin_profile.py accepts a LinkedIn username (janedoe), a full profile URL (https://www.linkedin.com/in/janedoe), or an @-prefixed handle. URLs are resolved automatically.

Job identifiers — linkedin_job.py accepts a numeric job ID (12345678) or a full LinkedIn job URL (https://www.linkedin.com/jobs/view/12345678). The ID is extracted automatically.

URNs — Write operations (like, comment, connect, follow) use LinkedIn URN identifiers. Post URNs look like urn:li:activity:7100000000000000001. Profile URNs look like urn:li:fsd_profile:ACoAAA123456. You can find these in the output of read operations.

Voyager API — All operations use LinkedIn's internal Voyager API (/voyager/api/), which is the same API the LinkedIn website uses. Authentication is via JSESSIONID CSRF token and li_at session cookie.

Post search — linkedin_search_posts.py parses RSC-embedded HTML from the search results page rather than a JSON API. Results may be less structured than other endpoints.

Known Limitations

  • Rate limiting — LinkedIn aggressively rate-limits API calls. The client retries once on HTTP 429 with the Retry-After delay, but sustained heavy usage may result in temporary blocks.
  • Search post parsing — Post search relies on HTML scraping of RSC payloads, which may break if LinkedIn changes their frontend markup.
  • No pagination for feed — The feed endpoint returns a single page of results up to the limit.
  • Connection requests — Require the target's profile URN, not their username. Use linkedin_search_people.py or linkedin_profile.py to find URNs first.
  • Session expiry — LinkedIn sessions typically last 30 days but may expire sooner if LinkedIn detects unusual activity.
  • No media uploads — linkedin_post.py creates text-only posts. Image/video posts are not supported.

Error Handling

ErrorCauseFix
AUTH_REQUIREDNo cookie or missing JSESSIONIDAuto-run sig login (no user prompt needed), retry
AUTH_EXPIREDSession cookie expired (401)Auto-run sig login (no user prompt needed), retry
NOT_FOUNDProfile or resource not foundCheck the username or ID is correct
HTTP_429Rate limited by LinkedInWait and retry; reduce request frequency
HTTP_403Forbidden or restrictedCheck account status; may need re-login

Workflow Examples

View your own profile

  1. sig run linkedin -- bash -c 'python3 scripts/linkedin_me.py --cookie "$SIG_LINKEDIN_COOKIE"'

Look up someone's profile

  1. sig run linkedin -- bash -c 'python3 scripts/linkedin_profile.py --cookie "$SIG_LINKEDIN_COOKIE" --username janedoe'
  2. Or with URL: sig run linkedin -- bash -c 'python3 scripts/linkedin_profile.py --cookie "$SIG_LINKEDIN_COOKIE" --username "https://www.linkedin.com/in/janedoe"'

Browse your feed

  1. sig run linkedin -- bash -c 'python3 scripts/linkedin_feed.py --cookie "$SIG_LINKEDIN_COOKIE" --limit 5'

Search for jobs

  1. sig run linkedin -- bash -c 'python3 scripts/linkedin_search_jobs.py --cookie "$SIG_LINKEDIN_COOKIE" --query "python developer" --location "San Francisco" --limit 10'
  2. With filters: sig run linkedin -- bash -c 'python3 scripts/linkedin_search_jobs.py --cookie "$SIG_LINKEDIN_COOKIE" --query "data engineer" --remote 2 --experience 4'

Search for posts

  1. sig run linkedin -- bash -c 'python3 scripts/linkedin_search_posts.py --cookie "$SIG_LINKEDIN_COOKIE" --query "machine learning" --limit 5'

Search for people

  1. sig run linkedin -- bash -c 'python3 scripts/linkedin_search_people.py --cookie "$SIG_LINKEDIN_COOKIE" --query "software engineer at google" --limit 10'

Get job details

  1. sig run linkedin -- bash -c 'python3 scripts/linkedin_job.py --cookie "$SIG_LINKEDIN_COOKIE" --id 12345678'
  2. Or with URL: sig run linkedin -- bash -c 'python3 scripts/linkedin_job.py --cookie "$SIG_LINKEDIN_COOKIE" --id "https://www.linkedin.com/jobs/view/12345678"'

Create a post

  1. sig run linkedin -- bash -c 'python3 scripts/linkedin_post.py --cookie "$SIG_LINKEDIN_COOKIE" --text "Excited to share my latest project!"'

Like a post

  1. sig run linkedin -- bash -c 'python3 scripts/linkedin_like.py --cookie "$SIG_LINKEDIN_COOKIE" --urn "urn:li:activity:7100000000000000001"'

Unlike a post

  1. sig run linkedin -- bash -c 'python3 scripts/linkedin_like.py --cookie "$SIG_LINKEDIN_COOKIE" --urn "urn:li:activity:7100000000000000001" --undo'

Comment on a post

  1. sig run linkedin -- bash -c 'python3 scripts/linkedin_comment.py --cookie "$SIG_LINKEDIN_COOKIE" --urn "urn:li:activity:7100000000000000001" --text "Great insight!"'

Send a connection request

  1. sig run linkedin -- bash -c 'python3 scripts/linkedin_connect.py --cookie "$SIG_LINKEDIN_COOKIE" --urn "urn:li:fsd_profile:ACoAAA123456"'
  2. With message: sig run linkedin -- bash -c 'python3 scripts/linkedin_connect.py --cookie "$SIG_LINKEDIN_COOKIE" --urn "urn:li:fsd_profile:ACoAAA123456" --message "Hi, I enjoyed your talk!"'

Follow a user

  1. sig run linkedin -- bash -c 'python3 scripts/linkedin_follow.py --cookie "$SIG_LINKEDIN_COOKIE" --urn "urn:li:fsd_profile:ACoAAA123456"'

Unfollow a user

  1. sig run linkedin -- bash -c 'python3 scripts/linkedin_follow.py --cookie "$SIG_LINKEDIN_COOKIE" --urn "urn:li:fsd_profile:ACoAAA123456" --undo'

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

bilibili

無料

Interact with Bilibili (B站) — browse trending videos, view video details, read comments, search videos and users, view user profiles, like, coin, and favorite videos. Use this skill whenever the user mentions Bilibili, B站, wants to browse Bilibili content, search Bilibili videos, read Bilibili comments, look up Bilibili users, or interact with Bilibili content. Also trigger when the user pastes a Bilibili URL (e.g. bilibili.com/video/BV...) or mentions a BV ID.

日本語の概要は準備中です。原文の説明を表示しています。

sigcli/sigcli2932026年9月28日 更新

douyin

無料

Provide authenticated cookies for Douyin (抖音/TikTok China) — two providers: douyin (www.douyin.com for scraping) and douyin-live (live.douyin.com for livestream). Use this skill whenever the user needs Douyin cookies for scraping tools like DouYin_Spider, or needs to authenticate with Douyin services. Trigger when the user mentions 抖音, Douyin, TikTok China, douyin cookies, or wants to use tools that require Douyin login cookies.

日本語の概要は準備中です。原文の説明を表示しています。

sigcli/sigcli2932026年9月28日 更新

Interact with Hacker News (news.ycombinator.com) — browse top, new, and best stories, read item details and comment threads, look up user profiles, and search posts via Algolia. Use this skill whenever the user mentions Hacker News, HN, YCombinator news, ycombinator.com, news.ycombinator.com, wants to browse tech news, read HN discussions, search HN posts, or look up HN users. Also trigger when the user pastes an HN URL (e.g. news.ycombinator.com/item?id=12345). Keywords: Hacker News, HN, YC, ycombinator, tech news, Show HN, Ask HN, HN front page.

日本語の概要は準備中です。原文の説明を表示しています。

sigcli/sigcli2932026年9月28日 更新

msteams

無料

Interact with Microsoft Teams — send and read messages, search conversations, look up people, check calendar, get meeting transcripts, and manage chats. Use this skill whenever the user mentions Teams, MS Teams, Microsoft Teams, wants to send a message, read chat history, search conversations, look up a colleague, check their calendar, find meeting recordings or transcripts, see direct reports or manager, or do anything involving Teams communication. Also trigger when the user asks about scheduling, org chart, people search, or wants to message someone.

日本語の概要は準備中です。原文の説明を表示しています。

sigcli/sigcli2932026年9月28日 更新

outlook

無料

Interact with Outlook email — read inbox, send emails, search messages, reply/forward, manage folders, download attachments. Use this skill whenever the user mentions email, Outlook, inbox, mail, send email, check email, unread messages, email search, attachments, reply to email, forward email, 邮件, 收件箱, or wants to read, send, search, reply to, forward, or manage emails.

日本語の概要は準備中です。原文の説明を表示しています。

sigcli/sigcli2932026年9月28日 更新

reddit

無料

Interact with Reddit — browse subreddits, read posts and comments, search content, view user profiles, post comments, vote, save posts, subscribe to subreddits. Use this skill whenever the user mentions Reddit, r/, subreddit, wants to browse Reddit posts, read Reddit discussions, search Reddit, look up Reddit users, or interact with Reddit content. Also trigger when the user pastes a Reddit URL (e.g. reddit.com/r/programming/...) or mentions a subreddit name.

日本語の概要は準備中です。原文の説明を表示しています。

sigcli/sigcli2932026年9月28日 更新

sigcli のスキルをすべて見る

このスキルの問題を報告する