A complete workflow featuring a custom Chrome Extension, automated LinkedIn interactions, and full backend integration.
This repository contains a complete LinkedIn automation ecosystem built using:
- Chrome Extension (Manifest V3)
- Automated browser interaction
- Custom backend API
- Database integration
The system is capable of:
✔️ Opening LinkedIn profiles automatically
✔️ Extracting profile data using DOM parsing
✔️ Sending data to a backend via REST API
✔️ Automating reactions and comments on feed posts
✔️ Rendering UI with validation inside extension popup
✔️ Fully configurable automation settings
- Custom popup UI
- Manifest V3 compliant
- Background scripts
- Content scripts
- Cross-page automation
- Input validation
- Inter-script messaging
-
Automatically opens multiple profile links
-
Extracts:
- Name
- About
- Bio
- Location
- Followers
- Connections
- Profile URL
-
Sends structured JSON to backend
-
Handles dynamic DOM layouts
- Opens LinkedIn Feed
- Scrolls intelligently to load multiple posts
- Detects real post containers (not ads)
- Randomized selection of posts
- Auto-likes primary posts (not comment likes)
- Auto-comments using editable input field
- Highlights interacted posts with custom borders
- Smooth scrolling with timed delays
- Node.js + Express
- Sequelize ORM
- SQLite / MySQL database
- API for storing and retrieving profile records
- Validation layer
- Structured responses
- Easy to deploy
📦 Project Root
│
├── 📁 linkedin-auto-reaction
│ ├── content.js
│ ├── manifest.json
│ ├── popup.html
│ └── popup.js
│
└── 📁 LinkedIn-Data-Extractor
│
├── 📁 linkedin-backend
│ ├── 📁 models
│ │ ├── index.js
│ │ └── profile.js
│ │
│ ├── db.sqlite
│ ├── package.json
│ ├── package-lock.json
│ └── server.js
│
└── 📁 linkedin-extension
├── background.js
├── contentScript.js
├── manifest.json
├── popup.html
├── popup.js
└── style.css
- JavaScript (ES6+)
- Chrome Extensions (Manifest v3)
- DOM automation
- Async operations with Promises
- Messaging API (runtime + tabs)
- CSS-based visual cues
- Node.js
- Express.js
- Sequelize ORM
- SQLite / MySQL
- CORS
- Body-parser
{
"name": "John Doe",
"url": "https://linkedin.com/in/johndoe",
"about": "Tech leader",
"bio": "Building scalable systems",
"location": "USA",
"followers": 20000,
"connections": 500
}- The user clicks the extension popup button
- The extension opens multiple LinkedIn profile URLs automatically
- Each page loads → content script injects
- The script extracts profile data from the DOM
- Data is structured and sent to backend API
- The tab is closed, and the next profile opens
- All events are logged clearly in the console
- User enters:
- Reaction count
- Comment count
- Button becomes enabled
- Extension automatically navigates to LinkedIn Feed
- Intelligent scrolling loads a batch of posts
- Posts are filtered to ensure:
- Not sponsored
- Have like + comment buttons
- Random posts are selected
- Script performs:
- 👍 Auto-Like on real posts
- 💬 Auto-Comment (“CFBR”)
- Final success alert is shown
- Full logs visible in DevTools