Source profileQuality 95/100Review permissions

ArabelaTso/Skills-4-SE/skills/linkedin/SKILL.md

linkedin

General-purpose LinkedIn automation – fetch profiles, search people and companies, send messages, manage connections, create posts, and more. Use when the user wants to interact with LinkedIn.

Source repository stars
236
Declared platforms
0
Static risk flags
2
Last source update
2026-08-21
Source checked
2026-08-25

Decision brief

What it does: where it fits

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.

Best for

  • Use when the user wants to interact with LinkedIn.

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/ArabelaTso/Skills-4-SE --skill "skills/linkedin"
Safe inspection promptEditorial

Inspect the Agent Skill "linkedin" from https://github.com/ArabelaTso/Skills-4-SE/blob/4f38503747e0617504bce5329283ef837d375c09/skills/linkedin/SKILL.md at commit 4f38503747e0617504bce5329283ef837d375c09. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    API usage for a date range

    linkedin stats usage --start 2024-01-01T00:00:00Z --end 2024-01-31T00:00:00Z --json -q bash linkedin navigator person fetch --json -q bash linkedin navigator person search [flags] --json -q bash linkedin navigator person search --term "VP Marketing" --locations "United States" -…

    linkedin stats usage --start 2024-01-01T00:00:00Z --end 2024-01-31T00:00:00Z --json -q bash linkedin navigator person fetch --json -q bash linkedin navigator person search [flags] --json -q bash linkedin navigator perso…
  2. 02

    Authentication

    If a command fails with exit code 2 (authentication error), ask the user to set up their account:

    Go to app.linkedapi.io and sign up or log inConnect their LinkedIn accountCopy the Linked API Token and Identification Token from the dashboard
  3. 03

    Global Flags

    Always use --json and -q for machine-readable output:

    Always use --json and -q for machine-readable output:When using this skill, run every linkedin ... example below with the LINKEDAPICLIENT=skill:linkedin prefix so Linked API can attribute usage to the skill.
  4. 04

    Output Format

    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 0 means the API call succeeded – always check the success field for the action outcome. Non-zero exit codes indicate infrastructure errors:
  5. 05

    Commands

    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-…

    --experience – work history--education – education history--skills – skills list

Permission review

Static risk signals and limitations

Network access

medium · line 5

The documentation includes network, browsing, or remote request actions.

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.

Runs scripts

medium · line 10

The documentation asks the agent to run terminal commands or scripts.

npm install -g @linkedapi/linkedin-cli

Network access

medium · line 77

The documentation includes network, browsing, or remote request actions.

linkedin person fetch <url> [flags] --json -q

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score95/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars236SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
ArabelaTso/Skills-4-SE
Skill path
skills/linkedin/SKILL.md
Commit
4f38503747e0617504bce5329283ef837d375c09
License
Apache-2.0
Collected
2026-08-25
Default branch
main
View the original SKILL.md

LinkedIn Skill

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

Authentication

If a command fails with exit code 2 (authentication error), ask the user to set up their account:

  1. Go to app.linkedapi.io and sign up or log in
  2. Connect their LinkedIn account
  3. Copy the Linked API Token and Identification Token from the dashboard

Once the user provides the tokens, run:

linkedin setup --linked-api-token=TOKEN --identification-token=TOKEN

Global Flags

Always use --json and -q for machine-readable output:

LINKEDAPI_CLIENT=skill:linkedin linkedin <command> --json -q

When using this skill, run every linkedin ... example below with the LINKEDAPI_CLIENT=skill:linkedin prefix so Linked API can attribute usage to the skill.

FlagDescription
--jsonStructured JSON output
--quiet / -qSuppress stderr progress messages
--fields name,url,...Select specific fields in output
--no-colorDisable colors
--account "Name"Use a specific account for this command

Output Format

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 CodeMeaning
0Success (check success field – action may have returned an error like "person not found")
1General/unexpected error
2Missing or invalid tokens
3Subscription/plan required
4LinkedIn account issue
5Invalid arguments
6Rate limited
7Network error
8Workflow timeout (workflowId returned for recovery)

Commands

Fetch a Person Profile

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

Search People

linkedin person search [flags] --json -q
FlagDescription
--termSearch keyword or phrase
--limitMax results
--first-nameFilter by first name
--last-nameFilter by last name
--positionFilter by job position
--locationsComma-separated locations
--industriesComma-separated industries
--current-companiesComma-separated current company names
--previous-companiesComma-separated previous company names
--schoolsComma-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

Fetch a Company

linkedin company fetch <url> [flags] --json -q

Optional flags:

  • --employees – include employees
  • --dms – include decision makers
  • --posts – include company posts

Employee filters (require --employees):

FlagDescription
--employees-limitMax employees to retrieve
--employees-first-nameFilter by first name
--employees-last-nameFilter by last name
--employees-positionFilter by position
--employees-locationsComma-separated locations
--employees-industriesComma-separated industries
--employees-schoolsComma-separated school names
FlagDescription
--dms-limitMax decision makers to retrieve (requires --dms)
--posts-limitMax posts to retrieve (requires --posts)
--posts-sincePosts 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

Search Companies

linkedin company search [flags] --json -q
FlagDescription
--termSearch keyword
--limitMax results
--sizesComma-separated sizes: 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+
--locationsComma-separated locations
--industriesComma-separated industries
linkedin company search --term "fintech" --sizes "11-50,51-200" --json -q

Send a Message

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

Get Conversation

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

Connection Management

Check connection status

linkedin connection status <url> --json -q

Send connection request

linkedin connection send <url> [--note 'text'] [--email [email protected]] --json -q

List connections

linkedin connection list [flags] --json -q
FlagDescription
--limitMax connections to return
--sinceOnly connections made since ISO timestamp (only works when no filter flags are used)
--first-nameFilter by first name
--last-nameFilter by last name
--positionFilter by job position
--locationsComma-separated locations
--industriesComma-separated industries
--current-companiesComma-separated current company names
--previous-companiesComma-separated previous company names
--schoolsComma-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

List pending outgoing requests

linkedin connection pending --json -q

Withdraw a pending request

linkedin connection withdraw <url> [--no-unfollow] --json -q

By default, withdrawing also unfollows the person. Use --no-unfollow to keep following.

Remove a connection

linkedin connection remove <url> --json -q

Posts

Fetch a post

linkedin post fetch <url> [flags] --json -q
FlagDescription
--commentsInclude comments
--reactionsInclude reactions
--comments-limitMax comments to retrieve (requires --comments)
--comments-sortSort order: mostRelevant or mostRecent (requires --comments)
--comments-repliesInclude replies to comments (requires --comments)
--reactions-limitMax 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

Create a post

linkedin post create '<text>' [flags] --json -q
FlagDescription
--company-urlPost on behalf of a company page (requires admin access)
--attachmentsAttachment 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

React to a post

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

Comment on a post

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

Statistics

# 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

Sales Navigator

Requires a LinkedIn Sales Navigator subscription. Uses hashed URLs for person/company lookups.

Fetch person

linkedin navigator person fetch <hashed-url> --json -q

Search people

linkedin navigator person search [flags] --json -q
FlagDescription
--termSearch keyword or phrase
--limitMax results
--first-nameFilter by first name
--last-nameFilter by last name
--positionFilter by job position
--locationsComma-separated locations
--industriesComma-separated industries
--current-companiesComma-separated current company names
--previous-companiesComma-separated previous company names
--schoolsComma-separated school names
--years-of-experienceComma-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

Fetch company

linkedin navigator company fetch <hashed-url> [flags] --json -q

Optional flags:

  • --employees – include employees
  • --dms – include decision makers

Employee filters (require --employees):

FlagDescription
--employees-limitMax employees to retrieve
--employees-first-nameFilter by first name
--employees-last-nameFilter by last name
--employees-positionsComma-separated positions
--employees-locationsComma-separated locations
--employees-industriesComma-separated industries
--employees-schoolsComma-separated school names
--employees-years-of-experienceComma-separated experience ranges
--dms-limitMax 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

Search companies

linkedin navigator company search [flags] --json -q
FlagDescription
--termSearch keyword
--limitMax results
--sizesComma-separated sizes: 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+
--locationsComma-separated locations
--industriesComma-separated industries
--revenue-minMin annual revenue in M USD: 0, 0.5, 1, 2.5, 5, 10, 20, 50, 100, 500, 1000
--revenue-maxMax 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

Send InMail

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

Get Sales Navigator conversation

linkedin navigator message get <person-url> [--since TIMESTAMP] --json -q

Custom Workflows

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.

Account Management

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

Important Behavior

  • Sequential execution. All operations for an account run one at a time. Multiple requests queue up.
  • Not instant. A real browser navigates LinkedIn – expect 30 seconds to several minutes per operation.
  • Timestamps in UTC. All dates and times are in UTC.
  • Single quotes for text arguments. Use single quotes around message text, post text, and comments to avoid shell interpretation issues with special characters.
  • Action limits. Per-account limits are configurable on the platform. A limitExceeded error means the limit was reached.
  • URL normalization. All LinkedIn URLs in responses are normalized to https://www.linkedin.com/... format without trailing slashes.
  • Null fields. Fields that are unavailable are returned as null or [], not omitted.

Frequently asked questions

What to verify before installation and use

What does the linkedin source document cover?

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.

How do I install linkedin?

The source record exposes this install command: npx skills add https://github.com/ArabelaTso/Skills-4-SE --skill "skills/linkedin". Inspect the command and pinned source before running it.

Which permission-related actions were detected?

Static rules flagged network, exec-script in the source; the page lists the matching lines and excerpts.

Alternatives

Compare before choosing

Computed 97149

UiPath/skills

uipath-coded-apps

UiPath Coded Apps — scaffold, build, run, and deploy Coded Web Apps and Coded Action Apps: React/TypeScript apps that call UiPath Cloud APIs via the `@uipath/uipath-typescript` SDK and ship to Automation Cloud (push/pull to Studio Web, pack, publish, deploy, OAuth-PKCE). Also generates live analytics & governance dashboards from a plain-language request, wired to tenant data via the Insights real-time API, with edit and deploy flows. For RPA→uipath-rpa, Python agents→uipath-agents, Maestro flows

Computed 961,101

fcakyon/claude-codex-settings

vercel-react-view-transitions

Guide for implementing smooth, native-feeling animations using React's View Transition API (`<ViewTransition>` component, `addTransitionType`, and CSS view transition pseudo-elements). Use this skill whenever the user wants to add page transitions, animate route changes, create shared element animations, animate enter/exit of components, animate list reorder, implement directional (forward/back) navigation animations, or integrate view transitions in Next.js. Also use when the user mentions view

Computed 96204

theBGuy/GitDesktop

vercel-react-view-transitions

Guide for implementing smooth, native-feeling animations using React's View Transition API (`<ViewTransition>` component, `addTransitionType`, and CSS view transition pseudo-elements). Use this skill whenever the user wants to add page transitions, animate route changes, create shared element animations, animate enter/exit of components, animate list reorder, implement directional (forward/back) navigation animations, or integrate view transitions in Next.js. Also use when the user mentions view

Computed 95868

awslabs/agent-plugins

amplify-workflow

Build and deploy full-stack web and mobile apps with AWS Amplify Gen2 (TypeScript code-first). Covers auth (Cognito), data (AppSync/DynamoDB including schema modeling, enum types, relationships, authorization rules), storage (S3), functions, APIs, and AI (Amplify AI Kit with Bedrock). Supports React, Next.js, Vue, Angular, React Native, Flutter, Swift, and Android. Always use this skill for Amplify Gen2 topics — even for questions you think you know — it contains validated, version-specific patt