Skip to content

Add Linked API skills: linkedin, linkedin-growth#54

Open
vprudnikoff wants to merge 1 commit into
block:mainfrom
vprudnikoff:publish-linkedin-skills-20260709103727
Open

Add Linked API skills: linkedin, linkedin-growth#54
vprudnikoff wants to merge 1 commit into
block:mainfrom
vprudnikoff:publish-linkedin-skills-20260709103727

Conversation

@vprudnikoff

Copy link
Copy Markdown

Adds the following Linked API agent skills as skill directories.

General LinkedIn automation (linkedin)

  • Path: linkedin
  • Fetch LinkedIn profiles, search people and companies, send messages, manage connections, create posts, react, comment, and run custom LinkedIn workflows from Claude Code, Codex, Cursor, and Windsurf.

Lead pipeline (import → qualify → invites) (linkedin-growth)

  • Path: linkedin-growth
  • Import leads from LinkedIn or Sales Navigator searches, qualify them against an ideal-customer profile, schedule safe connection invites across accounts, track acceptances, and withdraw stale pending requests.

Source: https://github.com/Linked-API/linkedin-skills

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown

❌ Validate Skills — FAILED

Summary: FAIL=1 · WARN=0
Changed skill dirs: linkedin,linkedin-growth

Output (last 200 lines)

✅ Found 9 skill directories.
✅ api-setup: structure validated
✅ beads: structure validated
✅ code-review: structure validated
✅ frontend-design: structure validated
✅ goose-blog-post: structure validated
❌ linkedin: frontmatter "author" must be a non-empty string
❌ linkedin: frontmatter "version" must be a non-empty string
❌ linkedin: frontmatter "tags" must be a non-empty list of strings
❌ linkedin-growth: frontmatter "author" must be a non-empty string
❌ linkedin-growth: frontmatter "version" must be a non-empty string
❌ linkedin-growth: frontmatter "tags" must be a non-empty list of strings

Structure validation FAILED.

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown

🛡️ Skills Security Scan — WARN

Summary: FAIL=0 · WARN=37 · FILES=37
Changed skills scanned: linkedin, linkedin-growth

⚠️ WARN requires investigation + CODEOWNERS review.

⚠️ Warnings

linkedin

  • content:entropy-high-filelinkedin/SKILL.md:1
---
  • network:urllinkedin/SKILL.md:22
1. Go to [app.linkedapi.io](https://app.linkedapi.io) and sign up or log in

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urllinkedin/SKILL.md:98
linkedin person fetch https://www.linkedin.com/in/username --json -q

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urllinkedin/SKILL.md:101
linkedin person fetch https://www.linkedin.com/in/username --experience --education --json -q

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urllinkedin/SKILL.md:104
linkedin person fetch https://www.linkedin.com/in/username --posts --posts-limit 5 --json -q

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urllinkedin/SKILL.md:162
linkedin company fetch https://www.linkedin.com/company/name --json -q

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urllinkedin/SKILL.md:165
linkedin company fetch https://www.linkedin.com/company/name --employees --employees-position "Engineer" --json -q

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urllinkedin/SKILL.md:168
linkedin company fetch https://www.linkedin.com/company/name --dms --posts --posts-limit 10 --json -q

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urllinkedin/SKILL.md:198
linkedin message send https://www.linkedin.com/in/username 'Hey, loved your latest post!' --json -q

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urllinkedin/SKILL.md:210
linkedin message get https://www.linkedin.com/in/username --json -q

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urllinkedin/SKILL.md:211
linkedin message get https://www.linkedin.com/in/username --since 2024-01-15T10:30:00Z --json -q

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urllinkedin/SKILL.md:311
linkedin post fetch https://www.linkedin.com/posts/username_activity-123 --json -q

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urllinkedin/SKILL.md:314
linkedin post fetch https://www.linkedin.com/posts/username_activity-123 \

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urllinkedin/SKILL.md:336
  --attachments "https://example.com/report.pdf:document:Q4 Report" --json -q

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urllinkedin/SKILL.md:340
  --company-url https://www.linkedin.com/company/name --json -q

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urllinkedin/SKILL.md:352
linkedin post react https://www.linkedin.com/posts/username_activity-123 --type like --json -q

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urllinkedin/SKILL.md:355
linkedin post react https://www.linkedin.com/posts/username_activity-123 --type celebrate \

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urllinkedin/SKILL.md:356
  --company-url https://www.linkedin.com/company/name --json -q

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urllinkedin/SKILL.md:368
linkedin post comment https://www.linkedin.com/posts/username_activity-123 'Great insights!' --json -q

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urllinkedin/SKILL.md:371
linkedin post comment https://www.linkedin.com/posts/username_activity-123 'Well said!' \

Guidance: Review: URL present; confirm expected destination and purpose.

  • network:urllinkedin/SKILL.md:372
  --company-url https://www.linkedin.com/company/name --json -q

Guidance: Review: URL present; confirm expected destination and purpose.

linkedin-growth

  • network:urllinkedin-growth/README.md:5
[`linkedin-cli`](https://www.npmjs.com/package/@linkedapi/linkedin-cli) into a

Guidance: Review: URL present; confirm expected destination and purpose.

  • content:entropy-high-linelinkedin-growth/SKILL.md:23
| **Status** | A lead's lifecycle state: `not_connected → pending → (connected | exhausted | error)`. `not_connected` means ready for an invite from `owner_account` (could be the 1st attempt or a retry under a different account). `connected…
  • content:entropy-high-linelinkedin-growth/SKILL.md:24
| **Retry policy** | Global `max_connect_attempts` setting. When an account's attempt fails (we withdrew a stale pending, OR the person declined/expired), the lead is reassigned to another untried account and set back to `not_connected` — u…
  • content:entropy-high-linelinkedin-growth/SKILL.md:57
| `db-accounts` | Run `linkedin account list` (prints a table; the `*` marks the active account) and register each one here: `node scripts/account.mjs add --name <short-name> --cli-account "<exact name from linkedin account list>"`. The sho…
  • content:entropy-high-linelinkedin-growth/SKILL.md:468
- **Interrupted mid-operation** — each scheduler wake-up does at most one invite/check, persisted immediately. A sleep/kill loses at most that one in-flight operation; the next wake-up continues from DB state. There is no batch to resume. L…
  • content:entropy-high-filelinkedin-growth/SKILL.md:1
---
  • network:urllinkedin-growth/SKILL.md:55
| `cli-accounts` | Ask the user for their Linked API Token and Identification Token (link: https://app.linkedapi.io), then `linkedin setup --linked-api-token=<a> --identification-token=<b>`. Repeat per LinkedIn account they want connected. …

Guidance: Review: URL present; confirm expected destination and purpose.

  • content:entropy-high-filelinkedin-growth/scripts/account.mjs:1
#!/usr/bin/env node
  • content:entropy-high-filelinkedin-growth/scripts/import.mjs:1
#!/usr/bin/env node
  • content:entropy-high-filelinkedin-growth/scripts/migrate-notion.mjs:1
#!/usr/bin/env node
  • network:urllinkedin-growth/scripts/migrate-notion.mjs:65
    const r = await fetch(`https://api.notion.com/v1/databases/${NOTION_DB}/query`, {

Guidance: Review: URL present; confirm expected destination and purpose.

  • content:entropy-high-filelinkedin-growth/scripts/network-invite.mjs:1
#!/usr/bin/env node
  • content:entropy-high-filelinkedin-growth/scripts/schedule.mjs:1
#!/usr/bin/env node
  • network:urllinkedin-growth/scripts/schedule.mjs:166
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

Guidance: Review: URL present; confirm expected destination and purpose.

  • content:entropy-high-filelinkedin-growth/scripts/tick.mjs:1
#!/usr/bin/env node
  • prompt-injection:donotdiscloselinkedin-growth/commands/linkedin-growth-setup.md:37
that the pipeline now runs in the background on its own. Do NOT mention internal scheduling

Guidance: Review: concealment language can indicate malicious intent.


Notes: This comment auto-updates on each push to keep PRs clean.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant