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 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
+ }