Back to Skills
antigravityDocument Processing

linkedin-cli

Use when automating LinkedIn via CLI: fetch profiles, search people/companies, send messages, manage connections, create posts, and Sales Navigator.

Documentation

When to Use

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.

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

When to Use

Use this skill when you need to orchestrate LinkedIn actions from scripts or an AI agent instead of clicking through the web UI:

  • Building outreach, research, or recruiting workflows that rely on LinkedIn data and messaging.
  • Enriching leads or accounts by fetching people and company profiles in bulk.
  • Coordinating multi-step Sales Navigator or workflow runs where JSON output and exit codes are required.

Always respect LinkedIn’s terms of service, local regulations, and your organisation’s compliance policies when using automation against real accounts.

Global Flags

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

linkedin <command> --json -q
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

| Flag | Description