Unoffical Linkedin Client NPM Package (Developed with Puppeteer)
GPL-3.0 License
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.
mkdir linkedinAutomationProject
cd linkedinAutomationProject
npm init -y
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 |
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.
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.
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.