Chrome extension that automates LinkedIn connection requests and DM follow-ups.
Built for Web3 BD — works for any high-volume outreach workflow.
Disclaimer: For educational purposes only. Automated actions on LinkedIn violate their Terms of Service. Account restrictions are a real risk. Use at your own discretion.
| Feature | Details |
|---|---|
| Auto-Connect | Navigate to LinkedIn people search for any keyword, auto-send connection requests with personalised notes |
| Auto DM Reply | Scan inbox sidebar — reply to unread messages and dormant threads (≥7 days), skip recent ones |
| DOM Health Check | On-load audit of LinkedIn's current DOM selectors — surfaces a health score so you know when selectors break |
| Template Variables | {{firstName}}, {{lastName}}, {{company}}, {{title}} — auto-populated from profile data |
| Safety Controls | Configurable daily send limit + randomised min/max delay between actions |
LinkedIn obfuscates their DOM frequently. The extension uses three fallback strategies:
aria-label*="Connect"/aria-label*="Invite"— most stable- SVG icon
connect-small— catches redesigned buttons - Text content match
"Connect"— last resort
| Condition | Action |
|---|---|
| Blue dot (unread) present | Reply |
| No blue dot, last message ≥ 7 days | Reply |
| No blue dot, last message < 7 days | Skip |
All decisions made from the sidebar. Opens the conversation only to type and send.
- Clone this repo:
git clone https://github.com/nardovibecoding/linkedin-autosloth.git
- Open
chrome://extensions/in any Chromium browser (Chrome, Edge, Brave, Arc, Opera) - Enable Developer Mode (top right toggle)
- Click Load unpacked → select the repo folder
- Navigate to LinkedIn — the extension icon appears in your toolbar
Open the extension popup to set:
- Keywords — search terms for auto-connect (edit
popup/popup.htmlfor permanent buttons, or use the custom input) - Message templates — personalise with
{{firstName}},{{company}}, etc. - Daily limit — max connection requests per day
- Delay range — randomised wait between actions (min/max seconds)
LinkedinAutoSloth/
├── manifest.json # Chrome MV3 manifest — permissions, content scripts
├── background/
│ └── background.js # Service worker — message routing, state management
├── content/
│ ├── content.js # Core automation logic (1690 lines) — connect + DM engine
│ └── content.css # Injected styles for status overlays
├── popup/
│ ├── popup.html # Extension popup UI — controls, keyword buttons
│ ├── popup.js # Popup logic — settings, health check display
│ └── popup.css # Popup styles
└── icons/ # Extension icons (16/48/128px)
Popup UI (popup.js)
│
├── Start Connect → sends message to content script
│ │
│ ▼
│ content.js
│ ├── Navigate to LinkedIn search
│ ├── Find "Connect" buttons (3 fallbacks)
│ ├── Click → fill note with template vars
│ ├── Send → wait (random delay)
│ └── Repeat until daily limit
│
└── Start DM Reply → sends message to content script
│
▼
content.js
├── Scan inbox sidebar
├── Check unread / timestamp rules
├── Open qualifying convos
├── Type + send reply
└── Move to next conversation
- DOM stability — LinkedIn changes their frontend frequently. When things break, check the DOM Health score first. The
detectEnvironment()method audits all critical selectors. - Scope — This is a proof of concept, not a maintained product. Built as a vibe-coding exercise.
- Alternative — For more resilient automation, consider Playwright-based approaches that don't depend on content script injection.
AGPL-3.0 — see LICENSE