{
  "schemaVersion": "1.0",
  "item": {
    "slug": "linkedin-skill",
    "name": "LinkedIn Skill",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/vprudnikoff/linkedin-skill",
    "canonicalUrl": "https://clawhub.ai/vprudnikoff/linkedin-skill",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/linkedin-skill",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=linkedin-skill",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/linkedin-skill"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/linkedin-skill",
    "agentPageUrl": "https://openagent3.xyz/skills/linkedin-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/linkedin-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/linkedin-skill/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "LinkedIn Skill",
        "body": "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.\n\nEach 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.\n\nIf linkedin is not available, install it:\n\nnpm install -g @linkedapi/linkedin-cli"
      },
      {
        "title": "Authentication",
        "body": "If a command fails with exit code 2 (authentication error), ask the user to set up their account:\n\nGo to app.linkedapi.io and sign up or log in\nConnect their LinkedIn account\nCopy the Linked API Token and Identification Token from the dashboard\n\nOnce the user provides the tokens, run:\n\nlinkedin setup --linked-api-token=TOKEN --identification-token=TOKEN"
      },
      {
        "title": "Global Flags",
        "body": "Always use --json and -q for machine-readable output:\n\nlinkedin <command> --json -q\n\nFlagDescription--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"
      },
      {
        "title": "Output Format",
        "body": "Success:\n\n{\"success\": true, \"data\": {\"name\": \"John Doe\", \"headline\": \"Engineer\"}}\n\nError:\n\n{\"success\": false, \"error\": {\"type\": \"personNotFound\", \"message\": \"Person not found\"}}\n\nExit code 0 means the API call succeeded – always check the success field for the action outcome. Non-zero exit codes indicate infrastructure errors:\n\nExit CodeMeaning0Success (check success field – action may have returned an error like \"person not found\")1General/unexpected error2Missing or invalid tokens3Subscription/plan required4LinkedIn account issue5Invalid arguments6Rate limited7Network error8Workflow timeout (workflowId returned for recovery)"
      },
      {
        "title": "Fetch a Person Profile",
        "body": "linkedin person fetch <url> [flags] --json -q\n\nOptional flags to include additional data:\n\n--experience – work history\n--education – education history\n--skills – skills list\n--languages – languages\n--posts – recent posts (with --posts-limit N, --posts-since TIMESTAMP)\n--comments – recent comments (with --comments-limit N, --comments-since TIMESTAMP)\n--reactions – recent reactions (with --reactions-limit N, --reactions-since TIMESTAMP)\n\nOnly request additional data when needed – each flag increases execution time.\n\n# Basic profile\nlinkedin person fetch https://www.linkedin.com/in/username --json -q\n\n# With experience and education\nlinkedin person fetch https://www.linkedin.com/in/username --experience --education --json -q\n\n# With last 5 posts\nlinkedin person fetch https://www.linkedin.com/in/username --posts --posts-limit 5 --json -q"
      },
      {
        "title": "Search People",
        "body": "linkedin person search [flags] --json -q\n\nFlagDescription--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\n\nlinkedin person search --term \"product manager\" --locations \"San Francisco\" --json -q\nlinkedin person search --current-companies \"Google\" --position \"Engineer\" --limit 20 --json -q"
      },
      {
        "title": "Fetch a Company",
        "body": "linkedin company fetch <url> [flags] --json -q\n\nOptional flags:\n\n--employees – include employees\n--dms – include decision makers\n--posts – include company posts\n\nEmployee filters (require --employees):\n\nFlagDescription--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\n\nFlagDescription--dms-limitMax decision makers to retrieve (requires --dms)--posts-limitMax posts to retrieve (requires --posts)--posts-sincePosts since ISO timestamp (requires --posts)\n\n# Basic company info\nlinkedin company fetch https://www.linkedin.com/company/name --json -q\n\n# With employees filtered by position\nlinkedin company fetch https://www.linkedin.com/company/name --employees --employees-position \"Engineer\" --json -q\n\n# With decision makers and posts\nlinkedin company fetch https://www.linkedin.com/company/name --dms --posts --posts-limit 10 --json -q"
      },
      {
        "title": "Search Companies",
        "body": "linkedin company search [flags] --json -q\n\nFlagDescription--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\n\nlinkedin company search --term \"fintech\" --sizes \"11-50,51-200\" --json -q"
      },
      {
        "title": "Send a Message",
        "body": "linkedin message send <person-url> '<text>' --json -q\n\nText up to 1900 characters. Wrap the message in single quotes to avoid shell interpretation issues.\n\nlinkedin message send https://www.linkedin.com/in/username 'Hey, loved your latest post!' --json -q"
      },
      {
        "title": "Get Conversation",
        "body": "linkedin message get <person-url> [--since TIMESTAMP] --json -q\n\nThe first call for a conversation triggers a background sync and may take longer. Subsequent calls are faster.\n\nlinkedin message get https://www.linkedin.com/in/username --json -q\nlinkedin message get https://www.linkedin.com/in/username --since 2024-01-15T10:30:00Z --json -q"
      },
      {
        "title": "Connection Management",
        "body": "Check connection status\n\nlinkedin connection status <url> --json -q\n\nSend connection request\n\nlinkedin connection send <url> [--note 'text'] [--email user@example.com] --json -q\n\nList connections\n\nlinkedin connection list [flags] --json -q\n\nFlagDescription--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\n\nlinkedin connection list --limit 50 --json -q\nlinkedin connection list --current-companies \"Google\" --position \"Engineer\" --json -q\nlinkedin connection list --since 2024-01-01T00:00:00Z --json -q\n\nList pending outgoing requests\n\nlinkedin connection pending --json -q\n\nWithdraw a pending request\n\nlinkedin connection withdraw <url> [--no-unfollow] --json -q\n\nBy default, withdrawing also unfollows the person. Use --no-unfollow to keep following.\n\nRemove a connection\n\nlinkedin connection remove <url> --json -q"
      },
      {
        "title": "Posts",
        "body": "Fetch a post\n\nlinkedin post fetch <url> [flags] --json -q\n\nFlagDescription--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)\n\nlinkedin post fetch https://www.linkedin.com/posts/username_activity-123 --json -q\n\n# With comments sorted by most recent, including replies\nlinkedin post fetch https://www.linkedin.com/posts/username_activity-123 \\\n  --comments --comments-sort mostRecent --comments-replies --json -q\n\nCreate a post\n\nlinkedin post create '<text>' [flags] --json -q\n\nFlagDescription--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.\n\nAttachment limits: up to 9 images, or 1 video, or 1 document. Cannot mix types.\n\nlinkedin post create 'Excited to share our latest update!' --json -q\n\n# With a document\nlinkedin post create 'Our Q4 report' \\\n  --attachments \"https://example.com/report.pdf:document:Q4 Report\" --json -q\n\n# Post as a company\nlinkedin post create 'Company announcement' \\\n  --company-url https://www.linkedin.com/company/name --json -q\n\nReact to a post\n\nlinkedin post react <url> --type <reaction> [--company-url <url>] --json -q\n\nReaction types: like, love, support, celebrate, insightful, funny.\n\nlinkedin post react https://www.linkedin.com/posts/username_activity-123 --type like --json -q\n\n# React on behalf of a company\nlinkedin post react https://www.linkedin.com/posts/username_activity-123 --type celebrate \\\n  --company-url https://www.linkedin.com/company/name --json -q\n\nComment on a post\n\nlinkedin post comment <url> '<text>' [--company-url <url>] --json -q\n\nText up to 1000 characters.\n\nlinkedin post comment https://www.linkedin.com/posts/username_activity-123 'Great insights!' --json -q\n\n# Comment on behalf of a company\nlinkedin post comment https://www.linkedin.com/posts/username_activity-123 'Well said!' \\\n  --company-url https://www.linkedin.com/company/name --json -q"
      },
      {
        "title": "Statistics",
        "body": "# Social Selling Index\nlinkedin stats ssi --json -q\n\n# Performance analytics (profile views, post impressions, search appearances)\nlinkedin stats performance --json -q\n\n# API usage for a date range\nlinkedin stats usage --start 2024-01-01T00:00:00Z --end 2024-01-31T00:00:00Z --json -q"
      },
      {
        "title": "Sales Navigator",
        "body": "Requires a LinkedIn Sales Navigator subscription. Uses hashed URLs for person/company lookups.\n\nFetch person\n\nlinkedin navigator person fetch <hashed-url> --json -q\n\nSearch people\n\nlinkedin navigator person search [flags] --json -q\n\nFlagDescription--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\n\nlinkedin navigator person search --term \"VP Marketing\" --locations \"United States\" --json -q\nlinkedin navigator person search --years-of-experience \"moreThanTen\" --position \"CEO\" --json -q\n\nFetch company\n\nlinkedin navigator company fetch <hashed-url> [flags] --json -q\n\nOptional flags:\n\n--employees – include employees\n--dms – include decision makers\n\nEmployee filters (require --employees):\n\nFlagDescription--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)\n\nlinkedin navigator company fetch https://www.linkedin.com/sales/company/97ural --employees --dms --json -q\nlinkedin navigator company fetch https://www.linkedin.com/sales/company/97ural \\\n  --employees --employees-positions \"Engineer,Designer\" --employees-locations \"Europe\" --json -q\n\nSearch companies\n\nlinkedin navigator company search [flags] --json -q\n\nFlagDescription--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+\n\nlinkedin navigator company search --term \"fintech\" --sizes \"11-50,51-200\" --json -q\nlinkedin navigator company search --revenue-min 10 --revenue-max 100 --locations \"United States\" --json -q\n\nSend InMail\n\nlinkedin navigator message send <person-url> '<text>' --subject '<subject>' --json -q\n\nText up to 1900 characters. Subject up to 80 characters.\n\nlinkedin navigator message send https://www.linkedin.com/in/username \\\n  'Would love to chat about API integrations' --subject 'Partnership Opportunity' --json -q\n\nGet Sales Navigator conversation\n\nlinkedin navigator message get <person-url> [--since TIMESTAMP] --json -q"
      },
      {
        "title": "Custom Workflows",
        "body": "Execute a custom workflow definition from a file, stdin, or inline:\n\n# From file\nlinkedin workflow run --file workflow.json --json -q\n\n# From stdin\ncat workflow.json | linkedin workflow run --json -q\n\n# Inline\necho '{\"actions\":[...]}' | linkedin workflow run --json -q\n\nCheck workflow status or wait for completion:\n\nlinkedin workflow status <id> --json -q\nlinkedin workflow status <id> --wait --json -q\n\nSee Building Workflows for the workflow JSON schema."
      },
      {
        "title": "Account Management",
        "body": "linkedin account list                            # List accounts (* = active)\nlinkedin account switch \"Name\"                   # Switch active account\nlinkedin account rename \"Name\" --name \"New Name\" # Rename account\nlinkedin reset                                   # Remove active account\nlinkedin reset --all                             # Remove all accounts"
      },
      {
        "title": "Important Behavior",
        "body": "Sequential execution. All operations for an account run one at a time. Multiple requests queue up.\nNot instant. A real browser navigates LinkedIn – expect 30 seconds to several minutes per operation.\nTimestamps in UTC. All dates and times are in UTC.\nSingle quotes for text arguments. Use single quotes around message text, post text, and comments to avoid shell interpretation issues with special characters.\nAction limits. Per-account limits are configurable on the platform. A limitExceeded error means the limit was reached.\nURL normalization. All LinkedIn URLs in responses are normalized to https://www.linkedin.com/... format without trailing slashes.\nNull fields. Fields that are unavailable are returned as null or [], not omitted."
      }
    ],
    "body": "LinkedIn Skill\n\nYou 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.\n\nEach 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.\n\nIf linkedin is not available, install it:\n\nnpm install -g @linkedapi/linkedin-cli\n\nAuthentication\n\nIf a command fails with exit code 2 (authentication error), ask the user to set up their account:\n\nGo to app.linkedapi.io and sign up or log in\nConnect their LinkedIn account\nCopy the Linked API Token and Identification Token from the dashboard\n\nOnce the user provides the tokens, run:\n\nlinkedin setup --linked-api-token=TOKEN --identification-token=TOKEN\n\nGlobal Flags\n\nAlways use --json and -q for machine-readable output:\n\nlinkedin <command> --json -q\n\nFlag\tDescription\n--json\tStructured JSON output\n--quiet / -q\tSuppress stderr progress messages\n--fields name,url,...\tSelect specific fields in output\n--no-color\tDisable colors\n--account \"Name\"\tUse a specific account for this command\nOutput Format\n\nSuccess:\n\n{\"success\": true, \"data\": {\"name\": \"John Doe\", \"headline\": \"Engineer\"}}\n\n\nError:\n\n{\"success\": false, \"error\": {\"type\": \"personNotFound\", \"message\": \"Person not found\"}}\n\n\nExit code 0 means the API call succeeded – always check the success field for the action outcome. Non-zero exit codes indicate infrastructure errors:\n\nExit Code\tMeaning\n0\tSuccess (check success field – action may have returned an error like \"person not found\")\n1\tGeneral/unexpected error\n2\tMissing or invalid tokens\n3\tSubscription/plan required\n4\tLinkedIn account issue\n5\tInvalid arguments\n6\tRate limited\n7\tNetwork error\n8\tWorkflow timeout (workflowId returned for recovery)\nCommands\nFetch a Person Profile\nlinkedin person fetch <url> [flags] --json -q\n\n\nOptional flags to include additional data:\n\n--experience – work history\n--education – education history\n--skills – skills list\n--languages – languages\n--posts – recent posts (with --posts-limit N, --posts-since TIMESTAMP)\n--comments – recent comments (with --comments-limit N, --comments-since TIMESTAMP)\n--reactions – recent reactions (with --reactions-limit N, --reactions-since TIMESTAMP)\n\nOnly request additional data when needed – each flag increases execution time.\n\n# Basic profile\nlinkedin person fetch https://www.linkedin.com/in/username --json -q\n\n# With experience and education\nlinkedin person fetch https://www.linkedin.com/in/username --experience --education --json -q\n\n# With last 5 posts\nlinkedin person fetch https://www.linkedin.com/in/username --posts --posts-limit 5 --json -q\n\nSearch People\nlinkedin person search [flags] --json -q\n\nFlag\tDescription\n--term\tSearch keyword or phrase\n--limit\tMax results\n--first-name\tFilter by first name\n--last-name\tFilter by last name\n--position\tFilter by job position\n--locations\tComma-separated locations\n--industries\tComma-separated industries\n--current-companies\tComma-separated current company names\n--previous-companies\tComma-separated previous company names\n--schools\tComma-separated school names\nlinkedin person search --term \"product manager\" --locations \"San Francisco\" --json -q\nlinkedin person search --current-companies \"Google\" --position \"Engineer\" --limit 20 --json -q\n\nFetch a Company\nlinkedin company fetch <url> [flags] --json -q\n\n\nOptional flags:\n\n--employees – include employees\n--dms – include decision makers\n--posts – include company posts\n\nEmployee filters (require --employees):\n\nFlag\tDescription\n--employees-limit\tMax employees to retrieve\n--employees-first-name\tFilter by first name\n--employees-last-name\tFilter by last name\n--employees-position\tFilter by position\n--employees-locations\tComma-separated locations\n--employees-industries\tComma-separated industries\n--employees-schools\tComma-separated school names\nFlag\tDescription\n--dms-limit\tMax decision makers to retrieve (requires --dms)\n--posts-limit\tMax posts to retrieve (requires --posts)\n--posts-since\tPosts since ISO timestamp (requires --posts)\n# Basic company info\nlinkedin company fetch https://www.linkedin.com/company/name --json -q\n\n# With employees filtered by position\nlinkedin company fetch https://www.linkedin.com/company/name --employees --employees-position \"Engineer\" --json -q\n\n# With decision makers and posts\nlinkedin company fetch https://www.linkedin.com/company/name --dms --posts --posts-limit 10 --json -q\n\nSearch Companies\nlinkedin company search [flags] --json -q\n\nFlag\tDescription\n--term\tSearch keyword\n--limit\tMax results\n--sizes\tComma-separated sizes: 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+\n--locations\tComma-separated locations\n--industries\tComma-separated industries\nlinkedin company search --term \"fintech\" --sizes \"11-50,51-200\" --json -q\n\nSend a Message\nlinkedin message send <person-url> '<text>' --json -q\n\n\nText up to 1900 characters. Wrap the message in single quotes to avoid shell interpretation issues.\n\nlinkedin message send https://www.linkedin.com/in/username 'Hey, loved your latest post!' --json -q\n\nGet Conversation\nlinkedin message get <person-url> [--since TIMESTAMP] --json -q\n\n\nThe first call for a conversation triggers a background sync and may take longer. Subsequent calls are faster.\n\nlinkedin message get https://www.linkedin.com/in/username --json -q\nlinkedin message get https://www.linkedin.com/in/username --since 2024-01-15T10:30:00Z --json -q\n\nConnection Management\nCheck connection status\nlinkedin connection status <url> --json -q\n\nSend connection request\nlinkedin connection send <url> [--note 'text'] [--email user@example.com] --json -q\n\nList connections\nlinkedin connection list [flags] --json -q\n\nFlag\tDescription\n--limit\tMax connections to return\n--since\tOnly connections made since ISO timestamp (only works when no filter flags are used)\n--first-name\tFilter by first name\n--last-name\tFilter by last name\n--position\tFilter by job position\n--locations\tComma-separated locations\n--industries\tComma-separated industries\n--current-companies\tComma-separated current company names\n--previous-companies\tComma-separated previous company names\n--schools\tComma-separated school names\nlinkedin connection list --limit 50 --json -q\nlinkedin connection list --current-companies \"Google\" --position \"Engineer\" --json -q\nlinkedin connection list --since 2024-01-01T00:00:00Z --json -q\n\nList pending outgoing requests\nlinkedin connection pending --json -q\n\nWithdraw a pending request\nlinkedin connection withdraw <url> [--no-unfollow] --json -q\n\n\nBy default, withdrawing also unfollows the person. Use --no-unfollow to keep following.\n\nRemove a connection\nlinkedin connection remove <url> --json -q\n\nPosts\nFetch a post\nlinkedin post fetch <url> [flags] --json -q\n\nFlag\tDescription\n--comments\tInclude comments\n--reactions\tInclude reactions\n--comments-limit\tMax comments to retrieve (requires --comments)\n--comments-sort\tSort order: mostRelevant or mostRecent (requires --comments)\n--comments-replies\tInclude replies to comments (requires --comments)\n--reactions-limit\tMax reactions to retrieve (requires --reactions)\nlinkedin post fetch https://www.linkedin.com/posts/username_activity-123 --json -q\n\n# With comments sorted by most recent, including replies\nlinkedin post fetch https://www.linkedin.com/posts/username_activity-123 \\\n  --comments --comments-sort mostRecent --comments-replies --json -q\n\nCreate a post\nlinkedin post create '<text>' [flags] --json -q\n\nFlag\tDescription\n--company-url\tPost on behalf of a company page (requires admin access)\n--attachments\tAttachment as url:type or url:type:name. Types: image, video, document. Can be specified multiple times.\n\nAttachment limits: up to 9 images, or 1 video, or 1 document. Cannot mix types.\n\nlinkedin post create 'Excited to share our latest update!' --json -q\n\n# With a document\nlinkedin post create 'Our Q4 report' \\\n  --attachments \"https://example.com/report.pdf:document:Q4 Report\" --json -q\n\n# Post as a company\nlinkedin post create 'Company announcement' \\\n  --company-url https://www.linkedin.com/company/name --json -q\n\nReact to a post\nlinkedin post react <url> --type <reaction> [--company-url <url>] --json -q\n\n\nReaction types: like, love, support, celebrate, insightful, funny.\n\nlinkedin post react https://www.linkedin.com/posts/username_activity-123 --type like --json -q\n\n# React on behalf of a company\nlinkedin post react https://www.linkedin.com/posts/username_activity-123 --type celebrate \\\n  --company-url https://www.linkedin.com/company/name --json -q\n\nComment on a post\nlinkedin post comment <url> '<text>' [--company-url <url>] --json -q\n\n\nText up to 1000 characters.\n\nlinkedin post comment https://www.linkedin.com/posts/username_activity-123 'Great insights!' --json -q\n\n# Comment on behalf of a company\nlinkedin post comment https://www.linkedin.com/posts/username_activity-123 'Well said!' \\\n  --company-url https://www.linkedin.com/company/name --json -q\n\nStatistics\n# Social Selling Index\nlinkedin stats ssi --json -q\n\n# Performance analytics (profile views, post impressions, search appearances)\nlinkedin stats performance --json -q\n\n# API usage for a date range\nlinkedin stats usage --start 2024-01-01T00:00:00Z --end 2024-01-31T00:00:00Z --json -q\n\nSales Navigator\n\nRequires a LinkedIn Sales Navigator subscription. Uses hashed URLs for person/company lookups.\n\nFetch person\nlinkedin navigator person fetch <hashed-url> --json -q\n\nSearch people\nlinkedin navigator person search [flags] --json -q\n\nFlag\tDescription\n--term\tSearch keyword or phrase\n--limit\tMax results\n--first-name\tFilter by first name\n--last-name\tFilter by last name\n--position\tFilter by job position\n--locations\tComma-separated locations\n--industries\tComma-separated industries\n--current-companies\tComma-separated current company names\n--previous-companies\tComma-separated previous company names\n--schools\tComma-separated school names\n--years-of-experience\tComma-separated ranges: lessThanOne, oneToTwo, threeToFive, sixToTen, moreThanTen\nlinkedin navigator person search --term \"VP Marketing\" --locations \"United States\" --json -q\nlinkedin navigator person search --years-of-experience \"moreThanTen\" --position \"CEO\" --json -q\n\nFetch company\nlinkedin navigator company fetch <hashed-url> [flags] --json -q\n\n\nOptional flags:\n\n--employees – include employees\n--dms – include decision makers\n\nEmployee filters (require --employees):\n\nFlag\tDescription\n--employees-limit\tMax employees to retrieve\n--employees-first-name\tFilter by first name\n--employees-last-name\tFilter by last name\n--employees-positions\tComma-separated positions\n--employees-locations\tComma-separated locations\n--employees-industries\tComma-separated industries\n--employees-schools\tComma-separated school names\n--employees-years-of-experience\tComma-separated experience ranges\n--dms-limit\tMax decision makers to retrieve (requires --dms)\nlinkedin navigator company fetch https://www.linkedin.com/sales/company/97ural --employees --dms --json -q\nlinkedin navigator company fetch https://www.linkedin.com/sales/company/97ural \\\n  --employees --employees-positions \"Engineer,Designer\" --employees-locations \"Europe\" --json -q\n\nSearch companies\nlinkedin navigator company search [flags] --json -q\n\nFlag\tDescription\n--term\tSearch keyword\n--limit\tMax results\n--sizes\tComma-separated sizes: 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+\n--locations\tComma-separated locations\n--industries\tComma-separated industries\n--revenue-min\tMin annual revenue in M USD: 0, 0.5, 1, 2.5, 5, 10, 20, 50, 100, 500, 1000\n--revenue-max\tMax annual revenue in M USD: 0.5, 1, 2.5, 5, 10, 20, 50, 100, 500, 1000, 1000+\nlinkedin navigator company search --term \"fintech\" --sizes \"11-50,51-200\" --json -q\nlinkedin navigator company search --revenue-min 10 --revenue-max 100 --locations \"United States\" --json -q\n\nSend InMail\nlinkedin navigator message send <person-url> '<text>' --subject '<subject>' --json -q\n\n\nText up to 1900 characters. Subject up to 80 characters.\n\nlinkedin navigator message send https://www.linkedin.com/in/username \\\n  'Would love to chat about API integrations' --subject 'Partnership Opportunity' --json -q\n\nGet Sales Navigator conversation\nlinkedin navigator message get <person-url> [--since TIMESTAMP] --json -q\n\nCustom Workflows\n\nExecute a custom workflow definition from a file, stdin, or inline:\n\n# From file\nlinkedin workflow run --file workflow.json --json -q\n\n# From stdin\ncat workflow.json | linkedin workflow run --json -q\n\n# Inline\necho '{\"actions\":[...]}' | linkedin workflow run --json -q\n\n\nCheck workflow status or wait for completion:\n\nlinkedin workflow status <id> --json -q\nlinkedin workflow status <id> --wait --json -q\n\n\nSee Building Workflows for the workflow JSON schema.\n\nAccount Management\nlinkedin account list                            # List accounts (* = active)\nlinkedin account switch \"Name\"                   # Switch active account\nlinkedin account rename \"Name\" --name \"New Name\" # Rename account\nlinkedin reset                                   # Remove active account\nlinkedin reset --all                             # Remove all accounts\n\nImportant Behavior\nSequential execution. All operations for an account run one at a time. Multiple requests queue up.\nNot instant. A real browser navigates LinkedIn – expect 30 seconds to several minutes per operation.\nTimestamps in UTC. All dates and times are in UTC.\nSingle quotes for text arguments. Use single quotes around message text, post text, and comments to avoid shell interpretation issues with special characters.\nAction limits. Per-account limits are configurable on the platform. A limitExceeded error means the limit was reached.\nURL normalization. All LinkedIn URLs in responses are normalized to https://www.linkedin.com/... format without trailing slashes.\nNull fields. Fields that are unavailable are returned as null or [], not omitted."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/vprudnikoff/linkedin-skill",
    "publisherUrl": "https://clawhub.ai/vprudnikoff/linkedin-skill",
    "owner": "vprudnikoff",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/linkedin-skill",
    "downloadUrl": "https://openagent3.xyz/downloads/linkedin-skill",
    "agentUrl": "https://openagent3.xyz/skills/linkedin-skill/agent",
    "manifestUrl": "https://openagent3.xyz/skills/linkedin-skill/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/linkedin-skill/agent.md"
  }
}