Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ranork/auto-linkedin
Unoffical Linkedin Client NPM Package (Developed with Puppeteer)
https://github.com/ranork/auto-linkedin
linkedin nodejs npm npm-package puppeteer webscraping
Last synced: 3 months ago
JSON representation
Unoffical Linkedin Client NPM Package (Developed with Puppeteer)
- Host: GitHub
- URL: https://github.com/ranork/auto-linkedin
- Owner: Ranork
- License: gpl-3.0
- Created: 2024-05-14T16:48:14.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-09-23T15:06:50.000Z (3 months ago)
- Last Synced: 2024-10-10T20:01:54.598Z (3 months ago)
- Topics: linkedin, nodejs, npm, npm-package, puppeteer, webscraping
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/auto-linkedin
- Size: 217 KB
- Stars: 19
- Watchers: 1
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![Auto Linkedin](https://github.com/Ranork/Auto-Linkedin/blob/main/logo.png?raw=true)
# Auto LinkedIn
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](https://github.com/Ranork/Auto-Linkedin/wiki) for details.
Check out the [desktop app](https://github.com/Ranork/Auto-Linkedin-App)
## Important Note
Use at your own discretion. Do not spam people with this. We discourage any stalkerware, bulk or automated messaging usage.## Features
- Sign in functionalities
- Search user profiles with keywords, network distance etc.
- Sending messages and getting history
- Sending connection requests
- Visit profiles
- Company invitations## Installation
### Prerequisites
- Make sure you have Node.js and npm installed. [Node.js Installation](https://nodejs.org/)
- Puppeteer library is used, which requires Chrome browser for automation.### Installation Steps
1. Create a new directory
```bash
mkdir linkedinAutomationProject
cd linkedinAutomationProject
```2. Install NPM
```bash
npm init -y
```3. Install package:
```bash
npm install auto-linkedin
```## Methods and objects
| Class | Method | Explanation | Publish Version |
|-----------------|--------------------|----------------------------------|-----------------|
| Linkedin | login | Authentication for linkedin | 1.0.0 |
| Linkedin | close | Close the client and browser | 1.3.1 |
| Linkedin | searchPeople | Find people from search | 1.0.0 |
| Linkedin | getLastConnections | Find latest connected people | 1.1.3 |
| Linkedin | getMyProfile | Get self profile details | 1.3.4 |
| Linkedin | getMyCompany | Get owned company | 1.1.3 |
| Linkedin | 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 |## Usage
1. Create a linkedin client and login:
```js
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
```js
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.
```2. Search for users with keyword and 2. network distance (200 limit):
```js
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.3. Send connection request with a note:
```js
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)
//....
```## Contact
For any questions or feedback about the project, please contact us through GitHub or [email protected]
## Contributions
If you would like to contribute, please feel free to submit a pull request. We welcome any contributions!
## License
This project is licensed under the GNU General Public License v3.0. See the `LICENSE` file for more information.