Automation & Ops linkedinsales-navigatorlead-generationsales-automationsqlitelinkedin-cliicp-qualificationscheduled-invites

LinkedIn Growth — Automated LinkedIn Networking Pipeline

Turn a LinkedIn or Sales Navigator search into an automated lead pipeline: import, qualify against your ICP, store locally, then send connection invites on a controlled schedule.

FollowSkills review · FSRS-2.0
Use with care
47/ 100 5-point scale 2.4 / 5
1 2 3 4 5 6
1Trust10 / 25 · 2.0/5

Main risks are largely visible: local SQLite storage, read-only SQL enforced to SELECT, error states with manual reset; no malware or credential theft found. Clear deductions: the skill auto-sends bulk connection invites and auto-retries from other accounts after refusals (max_connect_attempts='all'), which inherently evades LinkedIn's rate/restriction mechanisms — real account-ban and ToS risk; SKILL.md explicitly instructs the agent to hide the scheduler's internal tick frequency from the user, a deliberate transparency cut; real outbound actions have limits and active windows but lack a one-time explicit user confirmation and rollback for the whole pipeline. Fits the 'main risks visible but confirmation/recovery incomplete' anchor.

2Reliability10 / 20 · 2.5/5

High internal consistency: state machine, schema, error classification (alreadyPending, limitExceeded, requestNotAllowed disambiguation), and interruption-recovery logic are detailed and coherent; doctor self-check and explicit failure paths are pluses. But static review finds no executable test evidence (CI only syntax-checks and smoke-tests the root CLI, never this skill's scripts/ key paths), and behavior depends on external linkedin-cli — unverifiable statically, so not above the 10 anchor.

3Adaptability8 / 15 · 2.7/5

Triggers, vocabulary, status-question decision tree, and the qualification JSON contract are well defined; non-fit boundary (import never sends invites) is declared. Deductions: core function depends entirely on LinkedIn/linkedapi.io and Sales Navigator, which are poorly reachable from mainland China networks, with no Chinese-language support declared; LinkedIn's own tolerance for automation further limits the usable environment.

4Convention10 / 15 · 3.3/5

Good layering: SKILL.md manual + README + slash commands + config files + qualification prompt; install/dependency notes are complete, MIT license explicit, data locations documented. Deductions: no changelog (skill version 0.1.0, private, no CHANGELOG), maintenance responsibility and update path only implied, and the SKILL.md text appears truncated at the Scheduler section; unverified publisher means attribution rests solely on the repo's own claims.

5Effectiveness6 / 15 · 2.0/5

The value claim is concrete (manual LinkedIn outreach is genuinely costly), the pipeline yields a directly queryable leads database and CSV export, and transparent qualification reporting adds marginal value. Deductions: static review cannot verify that key outputs (searches, invite sends) actually work; effectiveness hinges on third-party linkedin-cli stability and the persistence of LinkedIn's policies; cost/benefit proportionality is unevidenced, so above the 7 anchor is unreachable.

6Verifiability3 / 10 · 1.5/5

Auditable primary material exists: full schema, defaults file, explicit state transitions and error-classification rules, plus repository CI workflows. However, CI covers only syntax and a smoke test of the root installer — none of this skill's key paths; there are no test suites, no third-party execution evidence, and no cross-source corroboration, keeping it below the 5 anchor.

Evidence confidence:Low Reviewed Sep 10, 2026 Reviewed revision e5e642e2bbbd
Before you use it
  • Automated bulk connection invites plus cross-account retry may violate LinkedIn's Terms of Service, with real risk of account restriction or ban; users bear this risk.
  • SKILL.md instructs the agent to conceal the scheduler's internal tick details — transparency is deliberately reduced; users should demand a full explanation of background behavior.
  • Core function depends entirely on overseas services (LinkedIn/linkedapi.io), likely unreachable from mainland China networks, with no Chinese-language support.
  • Static review executed nothing: no tests or CI coverage target this skill's scripts/, so key-path reliability is unproven.
  • Publisher identity is unverified by FollowSkills; attribution and maintenance commitments rest solely on the repository's own claims.
See the full review method →

What does this skill do, and when should you use it?

linkedin-growth is a skill in the Linked-API/linkedin-skills repository that converts LinkedIn search results into a managed networking pipeline via linkedin-cli. It runs in two phases: Phase A, triggered by the user, imports leads from a search URL or filters, has an AI sub-agent qualify each candidate against a user-defined ICP, stores results in a local SQLite database, and round-robin assigns leads across one or more LinkedIn accounts. Phase B runs on an OS-native background scheduler, sending invites at a controlled pace during each account's active hours and withdrawing stale pending requests. Cross-account retry policies and natural-language status queries round it out — built for sales teams growing their LinkedIn network at scale.

Runs import.mjs prepare, which calls linkedin-cli to execute a LinkedIn or Sales Navigator search (nv capped at 2500, st at 1000), dedupes against existing rows, and writes a candidates JSON file. The AI reads the candidates and judges each against the ICP stored in the database's settings table, writing a results file; import.mjs commit inserts qualified leads with round-robin owner_account assignment. A background scheduler (launchd/systemd-user/cron/schtasks) wakes per account: it sends one invite when the daily quota and minimum interval (default 15 minutes) allow, and independently processes up to pending_batch_size stale pending leads — withdrawing those past max_pending_days and applying the global max_connect_attempts retry policy (reassign to an untried account, else mark exhausted). Users query counts, conversions, and errors via status.mjs, lead.mjs, and the read-only query.mjs.

  1. A B2B or export salesperson with a Sales Navigator search URL who says 'import up to 500 leads from this search into a list called North America SaaS VPs of Sales' — the AI interviews them for the ICP, then qualifies and stores the batch
  2. Multi-account operators who want invites spread across several LinkedIn accounts with per-account daily caps (e.g. 35/day) and pacing (max one connect every 15 minutes) to reduce restriction risk
  3. A sales lead asking natural-language questions like 'how many pending on kiril?', 'which lists convert best?', or 'which requests have been pending over 10 days?'
  4. Team managers who pause an account ('pause kiril') so the scheduler and imports skip it, then resume later
  5. Users wanting automatic retries: set max_connect_attempts to 2 or all so declined or withdrawn leads get tried from other accounts before being marked exhausted

What are this skill's strengths and limitations?

Pros
  • Complete two-phase pipeline: import, AI qualification, storage, scheduled invites, and stale-request withdrawal in one skill
  • Multi-account support: round-robin lead assignment, cross-account retry policy, and per-account daily limits, active hours, and minimum intervals
  • All state persisted in a local SQLite database with per-operation writes — interruptions resume cleanly with nothing to roll back
  • Thoughtful rate-limit handling: distinguishes account-level gating from per-lead failure and disambiguates requestNotAllowed by streak vs isolated pattern
  • doctor script diagnoses the environment with per-check remediations; the ICP is user-owned and stored in the database, never hardcoded
  • MIT-licensed and maintained by Linked API, with an npx one-command installer and CI-friendly JSON output
Limitations
  • Hard dependency on the paid Linked API service and linkedin-cli (exit code 3 specifically signals a required subscription/plan)
  • Phase B performs real writes to real LinkedIn accounts; restriction risk is borne by the user and only mitigated through pacing controls
  • Misconfiguration (e.g. too-short intervals) in scheduled invites and withdrawals could endanger account safety
  • No test suite, star count, or adoption evidence in the source; the same person imported via both nv and st searches becomes two rows, which mixed-use teams must watch
  • Import caps of 2500 (Sales Nav) / 1000 (standard search) and reliance on LinkedIn page structure mean LinkedIn changes can break workflows
  • Default guidance is to run qualification sub-agents on a cheap model; nuanced ICPs may require manually raising the model tier

How do you install this skill?

1) Install the collection (recommended): run npx @linkedapi/skills, or non-interactively npx @linkedapi/skills add linkedin-growth --yes (optionally with --agent claude-code --scope project). 2) Manual fallback: copy the linkedin-growth folder into your agent's skills directory (e.g. .claude/skills/linkedin-growth/ or ~/.claude/skills/), then inside it run npm install --omit=dev and node scripts/doctor.mjs. Prerequisites: Node.js ≥ 20, the globally installed @linkedapi/linkedin-cli, and Linked API Token + Identification Token from app.linkedapi.io configured via linkedin setup.

How do you use this skill?

1) Run node scripts/doctor.mjs -- in the skill directory until ok:true (doctor walks you through account registration and DB init). 2) Answer two setup questions: invite pace (default one connect every 15 minutes) and retry policy (default no retry). 3) After registering at least one account, run node scripts/schedule.mjs install to enable the background scheduler. 4) Trigger an import by saying e.g. 'Import the first 200 leads from this Sales Navigator search into a list called VP of Sales TOP 100' — the AI confirms the count and ICP, then runs Phase A's prepare→qualify→commit. Phase B then runs automatically in the background during each account's active hours; ask status questions anytime ('how many pending on kiril?') or say 'pause/resume an account'.

How does this skill compare with similar options?

The repository's other skill, linkedin, is general-purpose LinkedIn automation (profile fetches, search, messaging, posting), while linkedin-growth focuses specifically on the two-phase lead pipeline — the two are complementary and share the same linkedin-cli and Linked API backend.

FAQ

Besides installing this free open-source skill, what does it cost?
Operation requires the Linked API service — you must register at app.linkedapi.io and obtain tokens; linkedin-cli exit code 3 specifically signals a required subscription or plan. Pricing must be confirmed on the Linked API site.
What permissions and local setup are needed?
Node.js ≥ 20, the globally installed @linkedapi/linkedin-cli, Linked API and Identification tokens, and local filesystem write access (SQLite database and logs). The npx @linkedapi/skills installer detects and helps set up these prerequisites.
Will I lose data if the machine sleeps or a run is killed?
Each scheduler wake-up performs at most one operation and writes it to the database immediately; there is no batch to resume or roll back. The next wake-up continues from current DB state, and daily quotas are recomputed against the local calendar day.
Who does the lead qualification, and is it controllable?
An AI sub-agent judges each candidate against an ICP that you define and that is saved to the database. Every lead stores its reasoning, reviewable via lead.mjs show or query.mjs; the ICP always comes from your answers, never a hardcoded template.

More skills from this repository

All from Linked-API/linkedin-skills

Related skills