npx skills add https://github.com/openclaw/skills
kevinbadi/ai-os-skills · Archived
linkedin-connect
Send LinkedIn connection requests with personalized messages via browser automation. Uses pre-scraped leads from linkedin_leads table (populated by Apify during onboarding). Trigger when asked to send LinkedIn connections or run LinkedIn outreach.
Installation
npx skills add kevinbadi/ai-os-skills --skill linkedin-connect
Stronger alternatives
This repository is archived — consider an actively maintained alternative.
Post text and optional image content to LinkedIn via browser automation. Use when creating Link…
5 installsScrape users who liked specific Instagram posts using Apify actor WxPRaG9gfg5KZ4gY1 (datadoping…
5 installsSend Facebook Messenger DMs as a personal account to business pages via Playwright + facebook.c…
5 installsEnd-to-end longform video cloning pipeline. Downloads YouTube video, transcribes, generates Hey…
4 installsSimilar popular skills
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
Resolve LinkedIn profile URLs from name + company with strict identity validation to avoid fals…
25.3K installsOptimize LinkedIn profile for searchability, recruiter visibility, and engagement
9.1K installsAutomate LinkedIn marketing, lead generation, content publishing, and professional networking
4.4K installsWhen the user wants to create LinkedIn post copy or optimize for LinkedIn. Also use when the us…
3.2K installsAudit LinkedIn Ads measurement, Insight Tag and conversions, professional audiences, lead gener…
3.1K installsB2B LinkedIn ghostwriting — hooks, post structures, and copywriting frameworks for conversion-f…
2.3K installsAlso in this package
Other skills from kevinbadi/ai-os-skills · top by installs.
npx skills add kevinbadi/ai-os-skills
More details
Agent compatibility
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
Also listed on
Alternate registries and mirrors of this skill.
Repository health
main
Package contents
Files included with this skill beyond the listing page.
-
skill md
SKILL.md6,212 B -
docs
SUMMARY.md271 B
History
- First seen on skills.sh
- First recorded snapshot · 4 installs
SKILL.md
LinkedIn Connect
Send personalized LinkedIn connection requests to pre-scraped leads from your database.
How It Works
- Onboarding → Apify scrapes LinkedIn profiles based on your targeting →
linkedin_leadstable - This skill → Reads from
linkedin_leads→ Sends connection requests via browser automation - Tracking → Marks leads as
connection_sent = TRUE→ Won't contact twice
Prerequisites
- Chrome with CDP running (auto-starts via Clawdbot)
- Logged into LinkedIn (cookies at
cookies/linkedin-*.json) DATABASE_URLenv var pointing to your Insforge DB- Leads in
linkedin_leadstable (populated by initial scrape or linkedin-profile-scraper skill)
Quick Usage (Recommended)
Send connections to pre-scraped leads
# Send to 20 uncontacted leads from DB
node skills/linkedin-connect/scripts/batch-connect.js --limit 20
# Filter by campaign (e.g. leads from a specific scrape)
node skills/linkedin-connect/scripts/batch-connect.js --campaign "onboarding_initial" --limit 20
# Custom message template
node skills/linkedin-connect/scripts/batch-connect.js --limit 20 \
--message "Hey {{firstName}}, saw your work at {{company}} — would love to connect!"
# Dry run (preview which leads would be contacted)
node skills/linkedin-connect/scripts/batch-connect.js --limit 20 --dry-run
Message Templates
| Variable | Source |
|---|---|
{{firstName}} |
First name from DB |
{{lastName}} |
Last name from DB |
{{fullName}} |
Full name |
{{company}} |
current_company from DB |
{{headline}} |
headline from DB |
{{title}} |
current_title from DB |
CLI Options
| Flag | Default | Description |
|---|---|---|
--limit |
20 | Max connection requests per run |
--campaign |
— | Filter leads by campaign_name |
--message |
Default template | Message with {{variables}} |
--delay-min |
8 | Min seconds between requests |
--delay-max |
15 | Max seconds between requests |
--dry-run |
false | Preview leads, don't send |
--cdp-port |
18800 | Chrome CDP port |
Safety
- Cap at 20-25/day — LinkedIn flags aggressive behavior
- Random delays between requests (8-15s default)
- Real browser automation, not API calls
- Automatically detects weekly invitation limit and stops
- Leads marked
connection_sent = TRUEwon't be contacted again
Database Schema
Reads from linkedin_leads table:
SELECT * FROM linkedin_leads
WHERE connection_sent = FALSE
ORDER BY created_at DESC
LIMIT 20;
Updates after each request:
UPDATE linkedin_leads
SET connection_sent = TRUE, connection_sent_at = NOW()
WHERE id = $1;
Output
{"sent": 15, "skipped": 2, "errors": 0, "hitWeeklyLimit": false}
sent— Connection requests successfully sentskipped— Leads skipped (already connected, no connect button, etc.)errors— Failed attemptshitWeeklyLimit— LinkedIn's weekly limit reached, stop processing
Cron Schedule (Recommended)
Run daily with 20 leads max:
0 10 * * * node skills/linkedin-connect/scripts/batch-connect.js --limit 20
Alternative: Single Profile
For one-off connections (not recommended for scale):
node skills/linkedin-connect/scripts/linkedin-connect.js \
--url "https://www.linkedin.com/in/someone/" \
--message "Hey, would love to connect!"
Flow Diagram
┌─────────────────────────────────────────────────────────────────┐
│ ONBOARDING │
│ User fills out LinkedIn targeting (titles, keywords, location) │
└──────────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ INITIAL SCRAPE (Apify) │
│ harvestapi~linkedin-profile-search → linkedin_leads table │
└──────────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ LINKEDIN CONNECT (This Skill) │
│ batch-connect.js reads from DB → sends connection requests │
│ Marks connection_sent = TRUE after each │
└──────────────────────────┬──────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ LINKEDIN MESSAGE AGENT (Optional) │
│ Monitors accepted connections → sends follow-up DMs │
└─────────────────────────────────────────────────────────────────┘