Auto LinkedIn is a project that provides automation for LinkedIn using Node.js and Puppeteer. This project helps you save time by automating various tasks on LinkedIn.
Check out the the wiki for details.
Check out the desktop app
Use at your own discretion. Do not spam people with this. We discourage any stalkerware, bulk or automated messaging usage.
- Sign in functionalities
- Search user profiles with keywords, network distance etc.
- Sending messages and getting history
- Sending connection requests
- Visit profiles
- Company invitations
- Make sure you have Node.js and npm installed. Node.js Installation
- Puppeteer library is used, which requires Chrome browser for automation.
- Create a new directory
mkdir linkedinAutomationProject
cd linkedinAutomationProject
- Install NPM
npm init -y
- Install package:
npm install auto-linkedin
Class | Method | Explanation | Publish Version |
---|---|---|---|
login | Authentication for linkedin | 1.0.0 | |
close | Close the client and browser | 1.3.1 | |
searchPeople | Find people from search | 1.0.0 | |
getLastConnections | Find latest connected people | 1.1.3 | |
getMyProfile | Get self profile details | 1.3.4 | |
getMyCompany | Get owned company | 1.1.3 | |
getBrowser | Get client's puppeteer browser | 1.3.1 | |
LinkedinProfile | getProfile | Get profile from url or id | 1.2.0 |
LinkedinProfile | sendMessage | Send message to a profile | 1.3.0 |
LinkedinProfile | getMessageHistory | Get history of messages | 1.3.0 |
LinkedinProfile | visitProfile | Visit user's profile for a while | 1.1.0 |
LinkedinProfile | connectionRequest | Send connection request | 1.1.0 |
LinkedinCompany | fetchDetails | Fetch details of owned company | 1.1.3 |
LinkedinCompany | sendInvite | Send invitation to a user | 1.1.3 |
- Create a linkedin client and login:
const { LinkedIn } = require('auto-linkedin')
const client = new LinkedIn()
await client.login(process.env.USERNAME, process.env.PASSWORD)
//-- Console
// [TASK] Login
// New Browser created.
// Login completed.
Follow the console even though there is an extra instruction.
Usage with ES6
import { LinkedIn } from 'auto-linkedin'
const client = new LinkedIn()
await client.login(process.env.USERNAME, process.env.PASSWORD)
//-- Console
// [TASK] Login
// New Browser created.
// Login completed.
- Search for users with keyword and 2. network distance (200 limit):
const profiles = await client.searchPeople({
keywords: 'venture capital',
network: ['S']
}, 200)
// profiles = [LinkedinProfile, LinkedinProfile, ...]
//-- Console
// [TASK] Search People: 200 ({"keywords":"venture capital","network":["S"]})
// Page: 1/30 -> 10
// Page: 2/30 -> 10
// Page: 3/30 -> 10
// Page: 4/30 -> 10
// ....
// Search complete: 200
You can use profile methods or access properties like name, url, title etc.
- Send connection request with a note:
for (let p of profiles) {
await p.connectionRequest(client, 'Hi! Please accept my request')
}
//-- Console
// [TASK] Conection request: Test User - test-user
// Connection request send to Test User (test-user)
//....
For any questions or feedback about the project, please contact us through GitHub or [email protected]
If you would like to contribute, please feel free to submit a pull request. We welcome any contributions!
This project is licensed under the GNU General Public License v3.0. See the LICENSE
file for more information.