n8n-nodes-apivault-linkedin-profile 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +5 -0
- package/README.md +14 -0
- package/dist/credentials/ApifyApi.credentials.d.ts +9 -0
- package/dist/credentials/ApifyApi.credentials.js +28 -0
- package/dist/credentials/ApifyApi.credentials.js.map +1 -0
- package/dist/nodes/LinkedinProfile/LinkedinProfile.node.d.ts +5 -0
- package/dist/nodes/LinkedinProfile/LinkedinProfile.node.js +195 -0
- package/dist/nodes/LinkedinProfile/LinkedinProfile.node.js.map +1 -0
- package/dist/nodes/LinkedinProfile/linkedinprofile.svg +1 -0
- package/index.js +1 -0
- package/package.json +48 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Apivault
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction... THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.
|
package/README.md
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# n8n-nodes-apivault-linkedin-profile
|
|
2
|
+
|
|
3
|
+
n8n community node for **LinkedIn Profile Scraper**.
|
|
4
|
+
|
|
5
|
+
Extract public LinkedIn profiles at scale. No login, no cookies, no browser. Get name, bio, location, followers, website, industry. Choose fields to extract. Batch up to 20 concurrent. JSON output for CRM, lead gen, recruiting. $0.0012 per profile ($1.2 per 1,000).
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
n8n: Settings → Community Nodes → Install → `n8n-nodes-apivault-linkedin-profile`
|
|
9
|
+
|
|
10
|
+
## Credential
|
|
11
|
+
Add an **Apify API** credential with your Apify token (Apify Console → Settings → Integrations). Free account includes monthly credits.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
Backed by the Apify Actor [`apivault_labs/linkedin-profile-scraper`](https://apify.com/apivault_labs/linkedin-profile-scraper).
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare class ApifyApi implements ICredentialType {
|
|
3
|
+
name: string;
|
|
4
|
+
displayName: string;
|
|
5
|
+
documentationUrl: string;
|
|
6
|
+
properties: INodeProperties[];
|
|
7
|
+
authenticate: IAuthenticateGeneric;
|
|
8
|
+
test: ICredentialTestRequest;
|
|
9
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApifyApi = void 0;
|
|
4
|
+
class ApifyApi {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.name = 'apifyApi';
|
|
7
|
+
this.displayName = 'Apify API';
|
|
8
|
+
this.documentationUrl = 'https://docs.apify.com/platform/integrations/api';
|
|
9
|
+
this.properties = [
|
|
10
|
+
{
|
|
11
|
+
displayName: 'API Token',
|
|
12
|
+
name: 'apiToken',
|
|
13
|
+
type: 'string',
|
|
14
|
+
typeOptions: { password: true },
|
|
15
|
+
default: '',
|
|
16
|
+
required: true,
|
|
17
|
+
description: 'Your personal Apify API token (Apify Console -> Settings -> Integrations).',
|
|
18
|
+
},
|
|
19
|
+
];
|
|
20
|
+
this.authenticate = {
|
|
21
|
+
type: 'generic',
|
|
22
|
+
properties: { headers: { Authorization: '=Bearer {{$credentials.apiToken}}' } },
|
|
23
|
+
};
|
|
24
|
+
this.test = { request: { baseURL: 'https://api.apify.com/v2', url: '/users/me' } };
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.ApifyApi = ApifyApi;
|
|
28
|
+
//# sourceMappingURL=ApifyApi.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApifyApi.credentials.js","sourceRoot":"","sources":["../../credentials/ApifyApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,QAAQ;IAArB;QACC,SAAI,GAAG,UAAU,CAAC;QAClB,gBAAW,GAAG,WAAW,CAAC;QAC1B,qBAAgB,GAAG,kDAAkD,CAAC;QACtE,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,4EAA4E;aACzF;SACD,CAAC;QACF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,mCAAmC,EAAE,EAAE;SAC/E,CAAC;QACF,SAAI,GAA2B,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,0BAA0B,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC;IACvG,CAAC;CAAA;AApBD,4BAoBC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class LinkedinProfile implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LinkedinProfile = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const ACTOR_ID = 'apivault_labs~linkedin-profile-scraper';
|
|
6
|
+
class LinkedinProfile {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.description = {
|
|
9
|
+
displayName: 'LinkedIn Profile Scraper',
|
|
10
|
+
name: 'linkedinProfile',
|
|
11
|
+
icon: 'file:linkedinprofile.svg',
|
|
12
|
+
group: ['transform'],
|
|
13
|
+
version: 1,
|
|
14
|
+
description: 'Extract public LinkedIn profiles at scale. No login, no cookies, no browser. Get name, bio, location, followers, website, industry. Choose fields to extract. Batch up to 20 concurrent. JSON output for CRM, lead gen, recruiting. $0.0012 per profile ($1.2 per 1,000).',
|
|
15
|
+
defaults: { name: 'LinkedIn Profile Scraper' },
|
|
16
|
+
inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
17
|
+
outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
18
|
+
usableAsTool: true,
|
|
19
|
+
credentials: [{ name: 'apifyApi', required: true }],
|
|
20
|
+
properties: [
|
|
21
|
+
{
|
|
22
|
+
"displayName": "LinkedIn Profile URLs",
|
|
23
|
+
"name": "profileUrls",
|
|
24
|
+
"description": "List of LinkedIn profile URLs to scrape (comma or new-line separated)",
|
|
25
|
+
"type": "string",
|
|
26
|
+
"default": "",
|
|
27
|
+
"required": true
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"displayName": "Username / Handle",
|
|
31
|
+
"name": "extractUsername",
|
|
32
|
+
"description": "Extract username or handle",
|
|
33
|
+
"type": "boolean",
|
|
34
|
+
"default": true
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"displayName": "Full Name",
|
|
38
|
+
"name": "extractFullName",
|
|
39
|
+
"description": "Extract full name",
|
|
40
|
+
"type": "boolean",
|
|
41
|
+
"default": true
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"displayName": "Bio / Description",
|
|
45
|
+
"name": "extractBio",
|
|
46
|
+
"description": "Extract bio, headline, or description",
|
|
47
|
+
"type": "boolean",
|
|
48
|
+
"default": true
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"displayName": "Location",
|
|
52
|
+
"name": "extractLocation",
|
|
53
|
+
"description": "Extract location",
|
|
54
|
+
"type": "boolean",
|
|
55
|
+
"default": true
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"displayName": "Follower Count",
|
|
59
|
+
"name": "extractFollowers",
|
|
60
|
+
"description": "Extract follower count",
|
|
61
|
+
"type": "boolean",
|
|
62
|
+
"default": true
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"displayName": "Following Count",
|
|
66
|
+
"name": "extractFollowing",
|
|
67
|
+
"description": "Extract following / connection count",
|
|
68
|
+
"type": "boolean",
|
|
69
|
+
"default": true
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"displayName": "Number of Posts",
|
|
73
|
+
"name": "extractPosts",
|
|
74
|
+
"description": "Extract post count",
|
|
75
|
+
"type": "boolean",
|
|
76
|
+
"default": true
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"displayName": "Profile URL",
|
|
80
|
+
"name": "extractProfileUrl",
|
|
81
|
+
"description": "Include profile URL in output",
|
|
82
|
+
"type": "boolean",
|
|
83
|
+
"default": true
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"displayName": "Email",
|
|
87
|
+
"name": "extractEmail",
|
|
88
|
+
"description": "Extract email (if publicly visible)",
|
|
89
|
+
"type": "boolean",
|
|
90
|
+
"default": false
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"displayName": "Phone Number",
|
|
94
|
+
"name": "extractPhone",
|
|
95
|
+
"description": "Extract phone number (if publicly visible)",
|
|
96
|
+
"type": "boolean",
|
|
97
|
+
"default": false
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"displayName": "Website",
|
|
101
|
+
"name": "extractWebsite",
|
|
102
|
+
"description": "Extract website URL (if publicly visible)",
|
|
103
|
+
"type": "boolean",
|
|
104
|
+
"default": false
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"displayName": "Category / Industry",
|
|
108
|
+
"name": "extractCategory",
|
|
109
|
+
"description": "Extract category or industry",
|
|
110
|
+
"type": "boolean",
|
|
111
|
+
"default": false
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"displayName": "Other Public Metadata",
|
|
115
|
+
"name": "extractMetadata",
|
|
116
|
+
"description": "Extract any other public metadata",
|
|
117
|
+
"type": "boolean",
|
|
118
|
+
"default": false
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"displayName": "Max Concurrency",
|
|
122
|
+
"name": "maxConcurrency",
|
|
123
|
+
"description": "Number of parallel requests (recommended: 5-10)",
|
|
124
|
+
"type": "number",
|
|
125
|
+
"default": 5,
|
|
126
|
+
"typeOptions": {
|
|
127
|
+
"minValue": 1,
|
|
128
|
+
"maxValue": 20
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"displayName": "Timeout per profile (seconds)",
|
|
133
|
+
"name": "timeout",
|
|
134
|
+
"description": "Max wait time per profile",
|
|
135
|
+
"type": "number",
|
|
136
|
+
"default": 90,
|
|
137
|
+
"typeOptions": {
|
|
138
|
+
"minValue": 30,
|
|
139
|
+
"maxValue": 300
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
],
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
async execute() {
|
|
146
|
+
const items = this.getInputData();
|
|
147
|
+
const returnData = [];
|
|
148
|
+
for (let i = 0; i < items.length; i++) {
|
|
149
|
+
try {
|
|
150
|
+
const body = {};
|
|
151
|
+
{
|
|
152
|
+
const _v = this.getNodeParameter("profileUrls", i, '');
|
|
153
|
+
const _a = _v.split(/[,\n]/).map(s => s.trim()).filter(s => s.length > 0);
|
|
154
|
+
if (_a.length)
|
|
155
|
+
body["profileUrls"] = _a;
|
|
156
|
+
}
|
|
157
|
+
body["extractUsername"] = this.getNodeParameter("extractUsername", i);
|
|
158
|
+
body["extractFullName"] = this.getNodeParameter("extractFullName", i);
|
|
159
|
+
body["extractBio"] = this.getNodeParameter("extractBio", i);
|
|
160
|
+
body["extractLocation"] = this.getNodeParameter("extractLocation", i);
|
|
161
|
+
body["extractFollowers"] = this.getNodeParameter("extractFollowers", i);
|
|
162
|
+
body["extractFollowing"] = this.getNodeParameter("extractFollowing", i);
|
|
163
|
+
body["extractPosts"] = this.getNodeParameter("extractPosts", i);
|
|
164
|
+
body["extractProfileUrl"] = this.getNodeParameter("extractProfileUrl", i);
|
|
165
|
+
body["extractEmail"] = this.getNodeParameter("extractEmail", i);
|
|
166
|
+
body["extractPhone"] = this.getNodeParameter("extractPhone", i);
|
|
167
|
+
body["extractWebsite"] = this.getNodeParameter("extractWebsite", i);
|
|
168
|
+
body["extractCategory"] = this.getNodeParameter("extractCategory", i);
|
|
169
|
+
body["extractMetadata"] = this.getNodeParameter("extractMetadata", i);
|
|
170
|
+
body["maxConcurrency"] = this.getNodeParameter("maxConcurrency", i);
|
|
171
|
+
body["timeout"] = this.getNodeParameter("timeout", i);
|
|
172
|
+
const options = {
|
|
173
|
+
method: 'POST',
|
|
174
|
+
url: `https://api.apify.com/v2/acts/${ACTOR_ID}/run-sync-get-dataset-items`,
|
|
175
|
+
body,
|
|
176
|
+
json: true,
|
|
177
|
+
};
|
|
178
|
+
const response = await this.helpers.requestWithAuthentication.call(this, 'apifyApi', options);
|
|
179
|
+
const results = Array.isArray(response) ? response : [response];
|
|
180
|
+
for (const result of results)
|
|
181
|
+
returnData.push({ json: result, pairedItem: { item: i } });
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
if (this.continueOnFail()) {
|
|
185
|
+
returnData.push({ json: { error: error.message }, pairedItem: { item: i } });
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, { itemIndex: i });
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return [returnData];
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
exports.LinkedinProfile = LinkedinProfile;
|
|
195
|
+
//# sourceMappingURL=LinkedinProfile.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkedinProfile.node.js","sourceRoot":"","sources":["../../../nodes/LinkedinProfile/LinkedinProfile.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" width="64" height="64"><rect width="64" height="64" rx="12" fill="#4f46e5"/><text x="32" y="40" font-family="Arial" font-size="28" font-weight="700" fill="#fff" text-anchor="middle">L</text></svg>
|
package/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = {};
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "n8n-nodes-apivault-linkedin-profile",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "n8n community node for LinkedIn Profile Scraper — backed by the Apify Actor apivault_labs/linkedin-profile-scraper. No login. Pay-as-you-go via Apify.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"homepage": "https://apify.com/apivault_labs/linkedin-profile-scraper",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"n8n-community-node-package",
|
|
9
|
+
"n8n",
|
|
10
|
+
"linkedin-profile",
|
|
11
|
+
"apify",
|
|
12
|
+
"no-code",
|
|
13
|
+
"automation"
|
|
14
|
+
],
|
|
15
|
+
"author": {
|
|
16
|
+
"name": "apivault_labs"
|
|
17
|
+
},
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "https://github.com/apivault-labs/n8n-nodes-apivault-linkedin-profile.git"
|
|
21
|
+
},
|
|
22
|
+
"main": "index.js",
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "tsc && copyfiles \"nodes/**/*.svg\" dist",
|
|
25
|
+
"dev": "tsc --watch"
|
|
26
|
+
},
|
|
27
|
+
"files": [
|
|
28
|
+
"dist"
|
|
29
|
+
],
|
|
30
|
+
"n8n": {
|
|
31
|
+
"n8nNodesApiVersion": 1,
|
|
32
|
+
"credentials": [
|
|
33
|
+
"dist/credentials/ApifyApi.credentials.js"
|
|
34
|
+
],
|
|
35
|
+
"nodes": [
|
|
36
|
+
"dist/nodes/LinkedinProfile/LinkedinProfile.node.js"
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@types/node": "^20.10.0",
|
|
41
|
+
"copyfiles": "^2.4.1",
|
|
42
|
+
"n8n-workflow": "*",
|
|
43
|
+
"typescript": "^5.4.0"
|
|
44
|
+
},
|
|
45
|
+
"peerDependencies": {
|
|
46
|
+
"n8n-workflow": "*"
|
|
47
|
+
}
|
|
48
|
+
}
|