一键导入
linkedin-cli
Use when automating LinkedIn via CLI: fetch profiles, search people/companies, send messages, manage connections, create posts, and Sales Navigator.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when automating LinkedIn via CLI: fetch profiles, search people/companies, send messages, manage connections, create posts, and Sales Navigator.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
This skill should be used for advanced LLM evaluation: LLM-as-judge systems, direct scoring, pairwise comparison, rubric calibration, evaluator bias mitigation, confidence scoring, and automated quality assessment.
Automated end-to-end UI testing and verification on an Android Emulator using ADB.
This skill should be used when modeling agent mental states with BDI concepts: beliefs, desires, intentions, RDF-to-belief transformations, rational agency traces, cognitive agents, BDI ontologies, and neuro-symbolic AI integration.
Build a premium cinematic landing page with mouse-scrub video hero and brand-driven narrative-arc sections. Use whenever the user provides a hero video plus a product / subject / brand and wants a landing page, promo site, product showcase, marketing page, or storytelling site. Works for any language and any subject. The signature effect is mouse-driven video scrubbing — the hero video lives across the entire page as a fixed backdrop, and moving the mouse left-right scrubs the video timeline so the subject responds to the cursor. Below the hero, 4-5 fully-opaque sections each carry their own brand identity (color, typography emphasis, layout pattern) and walk the viewer through a narrative arc (e.g. longing -> joy -> nostalgia -> contemplation -> action). Do NOT use for parallax frame-scrub landings where the page itself doesn't scroll (use parallax-landing-page instead) or for video editing / captioning workflows (use video-edit).
Convert frontend code (Vite, React, etc.) to a Stitch Design by chaining static HTML extraction, design system extraction, and file upload. **ALWAYS** use this skill when the user's intent is to move existing web apps or React components into Stitch (e.g., requests to "save", "migrate", or "upload"). You must use this skill even for simple "save" operations, as it is the only way to ensure the design system is extracted and assets are properly linked.
This skill should be used for diagnosing and mitigating context degradation: lost-in-middle failures, context poisoning, context clash, context confusion, attention-pattern issues, and agent performance degradation caused by accumulated or conflicting context.
| name | linkedin-cli |
| description | Use when automating LinkedIn via CLI: fetch profiles, search people/companies, send messages, manage connections, create posts, and Sales Navigator. |
| risk | safe |
| source | community |
| date_added | 2026-02-27 |
Use this skill when you need to automate LinkedIn tasks such as profile fetching, connection management, or post creation via CLI, especially when integrated into automated workflows.
You have access to linkedin – a CLI tool for LinkedIn automation. Use it to fetch profiles, search people and companies, send messages, manage connections, create posts, react, comment, and more.
Each command sends a request to Linked API, which runs a real cloud browser to perform the action on LinkedIn. Operations are not instant – expect 30 seconds to several minutes depending on complexity.
If linkedin is not available, install it:
npm install -g @linkedapi/linkedin-cli
If a command fails with exit code 2 (authentication error), ask the user to set up their account:
Once the user provides the tokens, run:
linkedin setup --linked-api-token=TOKEN --identification-token=TOKEN
Use this skill when you need to orchestrate LinkedIn actions from scripts or an AI agent instead of clicking through the web UI:
Always respect LinkedIn’s terms of service, local regulations, and your organisation’s compliance policies when using automation against real accounts.
Always use --json and -q for machine-readable output:
linkedin <command> --json -q
| Flag | Description |
|---|---|
--json | Structured JSON output |
--quiet / -q | Suppress stderr progress messages |
--fields name,url,... | Select specific fields in output |
--no-color | Disable colors |
--account "Name" | Use a specific account for this command |
Success:
{ "success": true, "data": { "name": "John Doe", "headline": "Engineer" } }
Error:
{
"success": false,
"error": { "type": "personNotFound", "message": "Person not found" }
}
Exit code 0 means the API call succeeded – always check the success field for the action outcome. Non-zero exit codes indicate infrastructure errors:
| Exit Code | Meaning |
|---|---|
| 0 | Success (check success field – action may have returned an error like "person not found") |
| 1 | General/unexpected error |
| 2 | Missing or invalid tokens |
| 3 | Subscription/plan required |
| 4 | LinkedIn account issue |
| 5 | Invalid arguments |
| 6 | Rate limited |
| 7 | Network error |
| 8 | Workflow timeout (workflowId returned for recovery) |
linkedin person fetch <url> [flags] --json -q
Optional flags to include additional data:
--experience – work history--education – education history--skills – skills list--languages – languages--posts – recent posts (with --posts-limit N, --posts-since TIMESTAMP)--comments – recent comments (with --comments-limit N, --comments-since TIMESTAMP)--reactions – recent reactions (with --reactions-limit N, --reactions-since TIMESTAMP)Only request additional data when needed – each flag increases execution time.
# Basic profile
linkedin person fetch https://www.linkedin.com/in/username --json -q
# With experience and education
linkedin person fetch https://www.linkedin.com/in/username --experience --education --json -q
# With last 5 posts
linkedin person fetch https://www.linkedin.com/in/username --posts --posts-limit 5 --json -q
linkedin person search [flags] --json -q
| Flag | Description |
|---|---|
--term | Search keyword or phrase |
--limit | Max results |
--first-name | Filter by first name |
--last-name | Filter by last name |
--position | Filter by job position |
--locations | Comma-separated locations |
--industries | Comma-separated industries |
--current-companies | Comma-separated current company names |
--previous-companies | Comma-separated previous company names |
--schools | Comma-separated school names |
linkedin person search --term "product manager" --locations "San Francisco" --json -q
linkedin person search --current-companies "Google" --position "Engineer" --limit 20 --json -q
linkedin company fetch <url> [flags] --json -q
Optional flags:
--employees – include employees--dms – include decision makers--posts – include company postsEmployee filters (require --employees):
| Flag | Description |
|---|---|
--employees-limit | Max employees to retrieve |
--employees-first-name | Filter by first name |
--employees-last-name | Filter by last name |
--employees-position | Filter by position |
--employees-locations | Comma-separated locations |
--employees-industries | Comma-separated industries |
--employees-schools | Comma-separated school names |
| Flag | Description |
|---|---|
--dms-limit | Max decision makers to retrieve (requires --dms) |
--posts-limit | Max posts to retrieve (requires --posts) |
--posts-since | Posts since ISO timestamp (requires --posts) |
# Basic company info
linkedin company fetch https://www.linkedin.com/company/name --json -q
# With employees filtered by position
linkedin company fetch https://www.linkedin.com/company/name --employees --employees-position "Engineer" --json -q
# With decision makers and posts
linkedin company fetch https://www.linkedin.com/company/name --dms --posts --posts-limit 10 --json -q
linkedin company search [flags] --json -q
| Flag | Description |
|---|---|
--term | Search keyword |
--limit | Max results |
--sizes | Comma-separated sizes: 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+ |
--locations | Comma-separated locations |
--industries | Comma-separated industries |
linkedin company search --term "fintech" --sizes "11-50,51-200" --json -q
linkedin message send <person-url> '<text>' --json -q
Text up to 1900 characters. Wrap the message in single quotes to avoid shell interpretation issues.
linkedin message send https://www.linkedin.com/in/username 'Hey, loved your latest post!' --json -q
linkedin message get <person-url> [--since TIMESTAMP] --json -q
The first call for a conversation triggers a background sync and may take longer. Subsequent calls are faster.
linkedin message get https://www.linkedin.com/in/username --json -q
linkedin message get https://www.linkedin.com/in/username --since 2024-01-15T10:30:00Z --json -q
linkedin connection status <url> --json -q
linkedin connection send <url> [--note 'text'] [--email user@example.com] --json -q
linkedin connection list [flags] --json -q
| Flag | Description |
|---|---|
--limit | Max connections to return |
--since | Only connections made since ISO timestamp (only works when no filter flags are used) |
--first-name | Filter by first name |
--last-name | Filter by last name |
--position | Filter by job position |
--locations | Comma-separated locations |
--industries | Comma-separated industries |
--current-companies | Comma-separated current company names |
--previous-companies | Comma-separated previous company names |
--schools | Comma-separated school names |
linkedin connection list --limit 50 --json -q
linkedin connection list --current-companies "Google" --position "Engineer" --json -q
linkedin connection list --since 2024-01-01T00:00:00Z --json -q
linkedin connection pending --json -q
linkedin connection withdraw <url> [--no-unfollow] --json -q
By default, withdrawing also unfollows the person. Use --no-unfollow to keep following.
linkedin connection remove <url> --json -q
linkedin post fetch <url> [flags] --json -q
| Flag | Description |
|---|---|
--comments | Include comments |
--reactions | Include reactions |
--comments-limit | Max comments to retrieve (requires --comments) |
--comments-sort | Sort order: mostRelevant or mostRecent (requires --comments) |
--comments-replies | Include replies to comments (requires --comments) |
--reactions-limit | Max reactions to retrieve (requires --reactions) |
linkedin post fetch https://www.linkedin.com/posts/username_activity-123 --json -q
# With comments sorted by most recent, including replies
linkedin post fetch https://www.linkedin.com/posts/username_activity-123 \
--comments --comments-sort mostRecent --comments-replies --json -q
linkedin post create '<text>' [flags] --json -q
| Flag | Description |
|---|---|
--company-url | Post on behalf of a company page (requires admin access) |
--attachments | Attachment as url:type or url:type:name. Types: image, video, document. Can be specified multiple times. |
Attachment limits: up to 9 images, or 1 video, or 1 document. Cannot mix types.
linkedin post create 'Excited to share our latest update!' --json -q
# With a document
linkedin post create 'Our Q4 report' \
--attachments "https://example.com/report.pdf:document:Q4 Report" --json -q
# Post as a company
linkedin post create 'Company announcement' \
--company-url https://www.linkedin.com/company/name --json -q
linkedin post react <url> --type <reaction> [--company-url <url>] --json -q
Reaction types: like, love, support, celebrate, insightful, funny.
linkedin post react https://www.linkedin.com/posts/username_activity-123 --type like --json -q
# React on behalf of a company
linkedin post react https://www.linkedin.com/posts/username_activity-123 --type celebrate \
--company-url https://www.linkedin.com/company/name --json -q
linkedin post comment <url> '<text>' [--company-url <url>] --json -q
Text up to 1000 characters.
linkedin post comment https://www.linkedin.com/posts/username_activity-123 'Great insights!' --json -q
# Comment on behalf of a company
linkedin post comment https://www.linkedin.com/posts/username_activity-123 'Well said!' \
--company-url https://www.linkedin.com/company/name --json -q
# Social Selling Index
linkedin stats ssi --json -q
# Performance analytics (profile views, post impressions, search appearances)
linkedin stats performance --json -q
# API usage for a date range
linkedin stats usage --start 2024-01-01T00:00:00Z --end 2024-01-31T00:00:00Z --json -q
Requires a LinkedIn Sales Navigator subscription. Uses hashed URLs for person/company lookups.
linkedin navigator person fetch <hashed-url> --json -q
linkedin navigator person search [flags] --json -q
| Flag | Description |
|---|---|
--term | Search keyword or phrase |
--limit | Max results |
--first-name | Filter by first name |
--last-name | Filter by last name |
--position | Filter by job position |
--locations | Comma-separated locations |
--industries | Comma-separated industries |
--current-companies | Comma-separated current company names |
--previous-companies | Comma-separated previous company names |
--schools | Comma-separated school names |
--years-of-experience | Comma-separated ranges: lessThanOne, oneToTwo, threeToFive, sixToTen, moreThanTen |
linkedin navigator person search --term "VP Marketing" --locations "United States" --json -q
linkedin navigator person search --years-of-experience "moreThanTen" --position "CEO" --json -q
linkedin navigator company fetch <hashed-url> [flags] --json -q
Optional flags:
--employees – include employees--dms – include decision makersEmployee filters (require --employees):
| Flag | Description |
|---|---|
--employees-limit | Max employees to retrieve |
--employees-first-name | Filter by first name |
--employees-last-name | Filter by last name |
--employees-positions | Comma-separated positions |
--employees-locations | Comma-separated locations |
--employees-industries | Comma-separated industries |
--employees-schools | Comma-separated school names |
--employees-years-of-experience | Comma-separated experience ranges |
--dms-limit | Max decision makers to retrieve (requires --dms) |
linkedin navigator company fetch https://www.linkedin.com/sales/company/97ural --employees --dms --json -q
linkedin navigator company fetch https://www.linkedin.com/sales/company/97ural \
--employees --employees-positions "Engineer,Designer" --employees-locations "Europe" --json -q
linkedin navigator company search [flags] --json -q
| Flag | Description |
|---|---|
--term | Search keyword |
--limit | Max results |
--sizes | Comma-separated sizes: 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+ |
--locations | Comma-separated locations |
--industries | Comma-separated industries |
--revenue-min | Min annual revenue in M USD: 0, 0.5, 1, 2.5, 5, 10, 20, 50, 100, 500, 1000 |
--revenue-max | Max annual revenue in M USD: 0.5, 1, 2.5, 5, 10, 20, 50, 100, 500, 1000, 1000+ |
linkedin navigator company search --term "fintech" --sizes "11-50,51-200" --json -q
linkedin navigator company search --revenue-min 10 --revenue-max 100 --locations "United States" --json -q
linkedin navigator message send <person-url> '<text>' --subject '<subject>' --json -q
Text up to 1900 characters. Subject up to 80 characters.
linkedin navigator message send https://www.linkedin.com/in/username \
'Would love to chat about API integrations' --subject 'Partnership Opportunity' --json -q
linkedin navigator message get <person-url> [--since TIMESTAMP] --json -q
Execute a custom workflow definition from a file, stdin, or inline:
# From file
linkedin workflow run --file workflow.json --json -q
# From stdin
cat workflow.json | linkedin workflow run --json -q
# Inline
echo '{"actions":[...]}' | linkedin workflow run --json -q
Check workflow status or wait for completion:
linkedin workflow status <id> --json -q
linkedin workflow status <id> --wait --json -q
See Building Workflows for the workflow JSON schema.
linkedin account list # List accounts (* = active)
linkedin account switch "Name" # Switch active account
linkedin account rename "Name" --name "New Name" # Rename account
linkedin reset # Remove active account
linkedin reset --all # Remove all accounts
limitExceeded error means the limit was reached.https://www.linkedin.com/... format without trailing slashes.null or [], not omitted.