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
$ npx -y skills add sigcli/sigcli --skill linkedin --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/linkedin
Context preview
The summary Claude sees to decide when to auto-load this skill.
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
SKILL.md
linkedin.SKILL.mdname: linkedin
description: '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.'
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
| Script | Purpose | Auth | | --------------------------- | -------------------- | -------- | | `linkedin_me.py` | Current user profile | Required | | `linkedin_profile.py` | User profile by name | Required | | `linkedin_feed.py` | Home feed posts | Required | | `linkedin_search_jobs.py` | Search job listings | Required | | `linkedin_search_posts.py` | Search posts | Required | | `linkedin_search_people.py` | Search people | Required | | `linkedin_job.py` | Job posting details | Required |
Write Operations
| Script | Purpose | Auth | | --------------------- | ----------------------- | -------- | | `linkedin_post.py` | Create a post | Required | | `linkedin_like.py` | Like/unlike a post | Required | | `linkedin_comment.py` | Comment on a post | Required | | `linkedin_connect.py` | Send connection request | Required | | `linkedin_follow.py` | Follow/unfollow a user | Required |
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:f
Read more
name: linkedin description: '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.'
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
| Script | Purpose | Auth | | --------------------------- | -------------------- | -------- | | `linkedin_me.py` | Current user profile | Required | | `linkedin_profile.py` | User profile by name | Required | | `linkedin_feed.py` | Home feed posts | Required | | `linkedin_search_jobs.py` | Search job listings | Required | | `linkedin_search_posts.py` | Search posts | Required | | `linkedin_search_people.py` | Search people | Required | | `linkedin_job.py` | Job posting details | Required |
Write Operations
| Script | Purpose | Auth | | --------------------- | ----------------------- | -------- | | `linkedin_post.py` | Create a post | Required | | `linkedin_like.py` | Like/unlike a post | Required | | `linkedin_comment.py` | Comment on a post | Required | | `linkedin_connect.py` | Send connection request | Required | | `linkedin_follow.py` | Follow/unfollow a user | Required |
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:f
Sign in your way. AI works on your behalf. AI agents need access to your work systems — Jira, wikis, calendars, internal APIs. But passing credentials through shell history, environment variables, and agent context windows is a security nightmare.

