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.
- Sign in functionalities
- Search user profiles with keywords, network distance etc.
- Sending connection requests
- Visit profiles
- Company invitations
- (Work In Progress) Sending messages
- 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 | |
searchPeople | Find people from search | 1.0.0 | |
getLastConnections | Find latest connected people | 1.1.3 | |
getMyCompany | Get owned company | 1.1.3 | |
LinkedinProfile | getProfile | Get profile from url or id | 1.2.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 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.
- 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 emir@akatron.net
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.