n8n-nodes-apivault-tech-stack-lookup 0.1.0 → 0.2.1

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/README.md CHANGED
@@ -1,51 +1,65 @@
1
- # Tech Stack Lookup for n8n
2
-
3
- Use **Tech Stack Lookup** directly in n8n through the hosted
4
- [`apivault_labs/tech-stack-lookup` Apify Actor](https://apify.com/apivault_labs/tech-stack-lookup).
5
-
6
- The package is a thin workflow connector. It contains no private scraper implementation,
7
- embedded credentials or datasets. Runs use your own Apify API token and return every
8
- Dataset row as a separate n8n item. The node can also be used as an AI tool.
9
-
10
- ## Setup
11
-
12
- Install `n8n-nodes-apivault-tech-stack-lookup` as an n8n community node, create an **Apify API** credential,
13
- and paste your token from Apify Console → Settings → Integrations.
14
-
15
- ## Inputs
16
-
17
- - `mode` — 🔀 Lookup mode
18
- - `domains` — 🌐 Domains to check
19
- - `monitorName` — 🔔 Monitor name
20
- - `verifyLive` — 🌐 Verify technologies live
21
- - `technologyPreset` — ⚡ Popular technology preset
22
- - `opportunityPreset` — 🎯 Sales opportunity preset
23
- - `technologies` — ✅ Technologies to include
24
- - `matchMode` — 🔗 Match logic
25
- - `excludeTechnologies` — 🚫 Technologies to exclude
26
- - `category` — 🧩 Technology category
27
- - `country` — 🌍 Countries (ISO-2)
28
- - `vertical` — 🏷️ Industry / vertical
29
- - `hasEmail` — 📧 Only websites with email
30
- - `hasPhone` — 📞 Only websites with phone
31
- - `newWithinDays` — 🆕 First indexed within days
32
- - `lastIndexedWithinDays` — 🔄 Re-indexed within days
33
- - `lastFoundWithinDays` — ✅ Last confirmed within days
34
- - `sortBy` — 📊 Sort results by
35
- - `sortDesc` — ⬇️ Highest values first
36
- - `dedupeByDomain` — 🧹 Remove duplicate domains
37
- - `countOnly` — 🔢 Preview audience size only
38
- - `maxItems` — 📦 Maximum websites
39
- - `offset` — ➡️ Offset (skip first N)
40
- - `columns` — 🗂️ Output columns
41
-
42
- Advanced users can send newly added or uncommon Actor fields through
43
- **Additional Actor Input (JSON)** without waiting for a package update.
44
-
45
- ## Security
46
-
47
- The Apify token is stored by n8n credentials and sent only to `api.apify.com`.
1
+ # n8n-nodes-apivault-tech-stack-lookup
2
+
3
+ An [n8n](https://n8n.io) community node for **BuiltWith Alternative — Tech Stack Leads & Lookup (60M)**, powered by the [`apivault_labs/tech-stack-lookup` Apify Actor](https://apify.com/apivault_labs/tech-stack-lookup).
4
+
5
+ Technology leads and tech stack lookup across 60M+ websites. BuiltWith alternative to find websites by technology, check domains, discover Shopify and Klaviyo leads, build lookalike audiences and monitor stack changes. AI/MCP-ready output for B2B sales.
6
+
7
+ The node is a thin connector: collection, analysis, retries and billing run in the hosted Actor. It contains no private scraper implementation or embedded credentials.
8
+
9
+ ## Installation
10
+
11
+ 1. Open **Settings → Community Nodes** in your n8n instance.
12
+ 2. Select **Install**.
13
+ 3. Enter `n8n-nodes-apivault-tech-stack-lookup` and confirm.
14
+
15
+ ## Credentials
16
+
17
+ Create an **Apify API** credential in n8n and paste your personal token from [Apify Console → Integrations](https://console.apify.com/account/integrations). The token is sent to Apify as a bearer credential and is never bundled with this package.
18
+
19
+ ## Usage
20
+
21
+ Add **BuiltWith Alternative — Tech Stack Leads & Lookup (60M)** to a workflow, fill the public Actor inputs below, and execute the node. Every Dataset result becomes one n8n item, so it can flow into Sheets, databases, CRMs, alerts or your own code. The node respects n8n's **Continue On Fail** behavior.
22
+
23
+ ## Ready-to-import workflow
24
+
25
+ Import [`examples/quickstart-workflow.json`](examples/quickstart-workflow.json), select your Apify API credential in the Actor node, replace the sample business inputs and run it. The workflow returns destination-ready rows without exposing Actor internals.
26
+
27
+ | Input | Type | Description |
28
+ |---|---|---|
29
+ | `mode` | `string` | find requires technologies, technologyPreset or opportunityPreset; detect requires domains; lookalike requires seed domains; monitor requires domains and a stable monitorName; cata |
30
+ | `domains` | `array` | Required when mode is detect, lookalike or monitor; ignored otherwise. Accepts hostnames or URLs. Unknown domains are skipped without a result charge. |
31
+ | `technologyPreset` | `string` | Used only when mode=find. Optional shortcut combined with custom Technologies. |
32
+ | `opportunityPreset` | `string` | Used only when mode=find. Returns matching leads, missing technology, opportunity score and suggested pitch. |
33
+ | `technologies` | `array` | Used only when mode=find. Enter complete product names such as Klaviyo, Stripe, Shopify Plus, HubSpot or Cloudflare. AI agents should prefer technologyPreset for one popular techno |
34
+ | `matchMode` | `string` | Used only when mode=find. any = at least one technology (OR); all = every technology (AND). |
35
+ | `excludeTechnologies` | `array` | Used only when mode=find. Exclude sites using any listed technology; e.g. Klaviyo leads without Yotpo. |
36
+ | `category` | `string` | Used only when mode=find. Limit matching to one stack layer; any is recommended because a product may appear in multiple layers. |
37
+ | `country` | `array` | One or more ISO-2 country codes, e.g. US, DE, GB. Type each code and press Enter. Empty — no country filter. |
38
+ | `vertical` | `string` | Keep only sites in this industry, e.g. Fashion, Technology, Health, or Food. Leave empty to include every industry. |
39
+ | `hasEmail` | `boolean` | Keep only sites where the Emails field is not empty. |
40
+ | `hasPhone` | `boolean` | Keep only sites where the Telephones field is not empty. |
41
+ | `newWithinDays` | `integer` | Return websites first added to the index within the last N days. Use 7 for a weekly new-lead feed. Set 0 to disable. |
42
+ | `lastIndexedWithinDays` | `integer` | Keep websites whose record was indexed within the last N days. Useful for recently refreshed data. Set 0 to disable. |
43
+ | `lastFoundWithinDays` | `integer` | Keep websites last observed within the previous N days. Use this to prefer recently confirmed leads. Set 0 to disable. |
44
+ | `sortBy` | `string` | Order rows by this column before applying the limit, so you get the top leads instead of an arbitrary slice. Empty — no ordering. |
45
+ | `sortDesc` | `boolean` | Highest values first (recommended for scores/traffic/revenue). |
46
+ | `dedupeByDomain` | `boolean` | Return each normalized Root Domain only once across all data segments. Recommended for lead exports. |
47
+ | `outputPreset` | `string` | essential is recommended for AI and most lead exports; contacts returns contact fields; tech_stack returns technology fields; opportunity returns sales-gap fields; full returns all |
48
+ | `countOnly` | `boolean` | Preview stored in COUNT_SUMMARY without per-result charges. Actor start and platform usage may still apply. Counts matching segment rows; the same domain may occur in multiple segm |
49
+ | `maxItems` | `integer` | Upper limit across all data segments. AI/MCP calls should normally request 5–50 rows; bulk exports can request up to 250000 and paginate with offset. |
50
+ | `offset` | `integer` | Skip the first N matching rows, then return the next batch. Use it to export more than one run allows: run 1 with Offset 0, run 2 with Offset = the rows you already got, and so on. |
51
+ | `columns` | `array` | Optional exact field list. When provided, it overrides Output detail. Leave empty to use outputPreset; each website remains one result row. |
52
+
53
+ ## Pricing
54
+
55
+ The package is free. Actor runs are billed by Apify using the pricing shown on the [Actor page](https://apify.com/apivault_labs/tech-stack-lookup); platform usage may also apply.
56
+
57
+ ## Resources
58
+
59
+ - [Actor and live input schema](https://apify.com/apivault_labs/tech-stack-lookup)
60
+ - [Source repository](https://github.com/apivault-labs/n8n-nodes-apivault-tech-stack-lookup)
61
+ - [n8n community-node documentation](https://docs.n8n.io/integrations/community-nodes/)
48
62
 
49
63
  ## License
50
64
 
51
- MIT. Actor usage is billed separately on Apify.
65
+ MIT. The hosted Actor is a separate paid service governed by Apify terms.
@@ -6,20 +6,20 @@ const ACTOR_ID = 'apivault_labs~tech-stack-lookup';
6
6
  class TechStackLookup {
7
7
  constructor() {
8
8
  this.description = {
9
- displayName: "Tech Stack Lookup",
10
- name: "techStackLookup",
9
+ displayName: 'BuiltWith Alternative — Tech Stack Leads & Lookup (60M)',
10
+ name: 'techStackLookup',
11
11
  icon: 'file:techstacklookup.svg',
12
12
  group: ['transform'],
13
13
  version: 1,
14
- description: "BuiltWith alternative and tech stack lookup across 60M+ websites. Find Shopify and Klaviyo leads, stack gaps, lookalike companies and technology monitoring alerts. Export contacts, opportunity scores and migration signals for B2B sales.",
15
- defaults: { name: "Tech Stack Lookup" },
14
+ description: 'Technology leads and tech stack lookup across 60M+ websites. BuiltWith alternative to find websites by technology, check domains, discover Shopify and Klaviyo leads, build lookalike audiences and monitor stack changes. AI/MCP-ready output for B2B sales.',
15
+ defaults: { name: 'BuiltWith Alternative — Tech Stack Leads & Lookup (60M)' },
16
16
  inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
17
17
  outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
18
18
  usableAsTool: true,
19
19
  credentials: [{ name: 'apifyApi', required: true }],
20
20
  properties: [
21
21
  {
22
- "displayName": "🔀 Lookup mode",
22
+ "displayName": "🔀 What do you want to do?",
23
23
  "name": "mode",
24
24
  "description": "find requires technologies, technologyPreset or opportunityPreset; detect requires domains; lookalike requires seed domains; monitor requires domains and a stable monitorName; catalog needs no other input.",
25
25
  "type": "options",
@@ -48,33 +48,16 @@ class TechStackLookup {
48
48
  "default": "find"
49
49
  },
50
50
  {
51
- "displayName": "🌐 Domains to check",
51
+ "displayName": "🌐 Domains (Detect / Lookalike / Monitor only)",
52
52
  "name": "domains",
53
- "description": "Required for detect, lookalike and monitor. Accepts hostnames or URLs. Unknown domains are skipped, so a successful run can return an empty dataset. Enter one value per line or separate values with commas.",
53
+ "description": "Required when mode is detect, lookalike or monitor; ignored otherwise. Accepts hostnames or URLs. Unknown domains are skipped without a result charge. (comma or new-line separated)",
54
54
  "type": "string",
55
- "typeOptions": {
56
- "rows": 3
57
- },
58
55
  "default": ""
59
56
  },
60
- {
61
- "displayName": "🔔 Monitor name",
62
- "name": "monitorName",
63
- "description": "Used in Monitor mode. Reuse the same name and domain list on scheduled runs to compare the current profile with the saved baseline.",
64
- "type": "string",
65
- "default": "my-tech-monitor"
66
- },
67
- {
68
- "displayName": "🌐 Verify technologies live",
69
- "name": "verifyLive",
70
- "description": "Detect common technologies from the current public homepage and return confidence/evidence alongside the stored profile. Detect mode only; capped at 100 domains per run.",
71
- "type": "boolean",
72
- "default": false
73
- },
74
57
  {
75
58
  "displayName": "⚡ Popular technology preset",
76
59
  "name": "technologyPreset",
77
- "description": "Optional shortcut for a commonly requested technology. It is combined with custom Technologies below.",
60
+ "description": "Used only when mode=find. Optional shortcut combined with custom Technologies.",
78
61
  "type": "options",
79
62
  "options": [
80
63
  {
@@ -143,7 +126,7 @@ class TechStackLookup {
143
126
  {
144
127
  "displayName": "🎯 Sales opportunity preset",
145
128
  "name": "opportunityPreset",
146
- "description": "Optional ready-made stack-gap campaign. It automatically adds the required and missing technologies and produces an opportunity score plus suggested pitch.",
129
+ "description": "Used only when mode=find. Returns matching leads, missing technology, opportunity score and suggested pitch.",
147
130
  "type": "options",
148
131
  "options": [
149
132
  {
@@ -176,17 +159,14 @@ class TechStackLookup {
176
159
  {
177
160
  "displayName": "✅ Technologies to include",
178
161
  "name": "technologies",
179
- "description": "Used in Find websites mode. Type each technology and press Enter. Examples: Klaviyo, Stripe, Shopify Plus, HubSpot, Cloudflare, PayPal, Mailchimp, Attentive, Yotpo, Gorgias. Use complete product names for precise results. Enter one value per line or separate values with commas.",
162
+ "description": "Used only when mode=find. Enter complete product names such as Klaviyo, Stripe, Shopify Plus, HubSpot or Cloudflare. AI agents should prefer technologyPreset for one popular technology and technologies for custom or multiple values. (comma or new-line separated)",
180
163
  "type": "string",
181
- "typeOptions": {
182
- "rows": 3
183
- },
184
- "default": "Klaviyo"
164
+ "default": ""
185
165
  },
186
166
  {
187
167
  "displayName": "🔗 Match logic",
188
168
  "name": "matchMode",
189
- "description": "How to combine the technologies above. 'Any' = uses at least one of them (OR). 'All' = uses every one of them (AND, e.g. Shopify + Klaviyo).",
169
+ "description": "Used only when mode=find. any = at least one technology (OR); all = every technology (AND).",
190
170
  "type": "options",
191
171
  "options": [
192
172
  {
@@ -203,17 +183,14 @@ class TechStackLookup {
203
183
  {
204
184
  "displayName": "🚫 Technologies to exclude",
205
185
  "name": "excludeTechnologies",
206
- "description": "Sites using ANY of these are removed from the results. Example: find Klaviyo users that do NOT use Yotpo. Type each one and press Enter. Enter one value per line or separate values with commas.",
186
+ "description": "Used only when mode=find. Exclude sites using any listed technology; e.g. Klaviyo leads without Yotpo. (comma or new-line separated)",
207
187
  "type": "string",
208
- "typeOptions": {
209
- "rows": 3
210
- },
211
188
  "default": ""
212
189
  },
213
190
  {
214
191
  "displayName": "🧩 Technology category",
215
192
  "name": "category",
216
- "description": "Which part of the stack to search in. 'Any layer' searches all of them (recommended — a tool can appear in more than one, e.g. HubSpot as CRM and marketing).",
193
+ "description": "Used only when mode=find. Limit matching to one stack layer; any is recommended because a product may appear in multiple layers.",
217
194
  "type": "options",
218
195
  "options": [
219
196
  {
@@ -254,11 +231,8 @@ class TechStackLookup {
254
231
  {
255
232
  "displayName": "🌍 Countries (ISO-2)",
256
233
  "name": "country",
257
- "description": "One or more ISO-2 country codes, e.g. US, DE, GB. Type each code and press Enter. Empty — no country filter. Enter one value per line or separate values with commas.",
234
+ "description": "One or more ISO-2 country codes, e.g. US, DE, GB. Type each code and press Enter. Empty — no country filter. (comma or new-line separated)",
258
235
  "type": "string",
259
- "typeOptions": {
260
- "rows": 3
261
- },
262
236
  "default": ""
263
237
  },
264
238
  {
@@ -386,6 +360,35 @@ class TechStackLookup {
386
360
  "type": "boolean",
387
361
  "default": true
388
362
  },
363
+ {
364
+ "displayName": "📋 Output detail",
365
+ "name": "outputPreset",
366
+ "description": "essential is recommended for AI and most lead exports; contacts returns contact fields; tech_stack returns technology fields; opportunity returns sales-gap fields; full returns all source and derived fields. Ignored when columns is provided.",
367
+ "type": "options",
368
+ "options": [
369
+ {
370
+ "name": "Recommended — essential lead fields",
371
+ "value": "essential"
372
+ },
373
+ {
374
+ "name": "Contacts only",
375
+ "value": "contacts"
376
+ },
377
+ {
378
+ "name": "Technology stack",
379
+ "value": "tech_stack"
380
+ },
381
+ {
382
+ "name": "Sales opportunity",
383
+ "value": "opportunity"
384
+ },
385
+ {
386
+ "name": "Full export — all fields",
387
+ "value": "full"
388
+ }
389
+ ],
390
+ "default": "essential"
391
+ },
389
392
  {
390
393
  "displayName": "🔢 Preview audience size only",
391
394
  "name": "countOnly",
@@ -394,9 +397,9 @@ class TechStackLookup {
394
397
  "default": false
395
398
  },
396
399
  {
397
- "displayName": "📦 Maximum websites",
400
+ "displayName": "📦 Maximum websites (5–50 for AI)",
398
401
  "name": "maxItems",
399
- "description": "Upper limit on returned rows per run (across all platforms combined). Max 250000. Need more than one run's worth? There is no total cap — use Offset to page through unlimited results across runs.",
402
+ "description": "Upper limit across all data segments. AI/MCP calls should normally request 5–50 rows; bulk exports can request up to 250000 and paginate with offset.",
400
403
  "type": "number",
401
404
  "default": 50,
402
405
  "typeOptions": {
@@ -415,76 +418,52 @@ class TechStackLookup {
415
418
  }
416
419
  },
417
420
  {
418
- "displayName": "🗂️ Output columns",
421
+ "displayName": "🗂️ Custom output columns (optional)",
419
422
  "name": "columns",
420
- "description": "Choose the fields to export. Leave empty for all 59 available fields. Each website is returned as one result row. Enter one value per line or separate values with commas.",
423
+ "description": "Optional exact field list. When provided, it overrides Output detail. Leave empty to use outputPreset; each website remains one result row. (comma or new-line separated)",
421
424
  "type": "string",
422
- "typeOptions": {
423
- "rows": 3
424
- },
425
425
  "default": ""
426
- },
427
- {
428
- "displayName": "Additional Actor Input (JSON)",
429
- "name": "additionalInput",
430
- "description": "Optional advanced fields to merge into the Actor input. Explicit fields above take precedence.",
431
- "type": "json",
432
- "default": "{}"
433
426
  }
434
427
  ],
435
428
  };
436
429
  }
437
430
  async execute() {
431
+ var _b;
438
432
  const items = this.getInputData();
439
433
  const returnData = [];
440
434
  for (let i = 0; i < items.length; i++) {
441
435
  try {
442
436
  const body = {};
443
- const extra = this.getNodeParameter('additionalInput', i, '{}');
444
- if (extra) {
445
- try {
446
- Object.assign(body, typeof extra === 'string' ? JSON.parse(extra) : extra);
447
- }
448
- catch {
449
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Additional Actor Input must be valid JSON', { itemIndex: i });
450
- }
451
- }
452
437
  body["mode"] = this.getNodeParameter("mode", i);
453
438
  {
454
- const value = this.getNodeParameter("domains", i, '');
455
- const values = value.split(/[,\n]/).map((entry) => entry.trim()).filter(Boolean);
456
- if (values.length)
457
- body["domains"] = values;
439
+ const _v = this.getNodeParameter("domains", i, '');
440
+ const _a = _v.split(/[,\n]/).map(s => s.trim()).filter(s => s.length > 0);
441
+ if (_a.length)
442
+ body["domains"] = _a;
458
443
  }
459
- body["monitorName"] = this.getNodeParameter("monitorName", i);
460
- body["verifyLive"] = this.getNodeParameter("verifyLive", i);
461
444
  body["technologyPreset"] = this.getNodeParameter("technologyPreset", i);
462
445
  body["opportunityPreset"] = this.getNodeParameter("opportunityPreset", i);
463
446
  {
464
- const value = this.getNodeParameter("technologies", i, '');
465
- const values = value.split(/[,\n]/).map((entry) => entry.trim()).filter(Boolean);
466
- if (values.length)
467
- body["technologies"] = values;
447
+ const _v = this.getNodeParameter("technologies", i, '');
448
+ const _a = _v.split(/[,\n]/).map(s => s.trim()).filter(s => s.length > 0);
449
+ if (_a.length)
450
+ body["technologies"] = _a;
468
451
  }
469
452
  body["matchMode"] = this.getNodeParameter("matchMode", i);
470
453
  {
471
- const value = this.getNodeParameter("excludeTechnologies", i, '');
472
- const values = value.split(/[,\n]/).map((entry) => entry.trim()).filter(Boolean);
473
- if (values.length)
474
- body["excludeTechnologies"] = values;
454
+ const _v = this.getNodeParameter("excludeTechnologies", i, '');
455
+ const _a = _v.split(/[,\n]/).map(s => s.trim()).filter(s => s.length > 0);
456
+ if (_a.length)
457
+ body["excludeTechnologies"] = _a;
475
458
  }
476
459
  body["category"] = this.getNodeParameter("category", i);
477
460
  {
478
- const value = this.getNodeParameter("country", i, '');
479
- const values = value.split(/[,\n]/).map((entry) => entry.trim()).filter(Boolean);
480
- if (values.length)
481
- body["country"] = values;
482
- }
483
- {
484
- const value = this.getNodeParameter("vertical", i, '');
485
- if (value.trim())
486
- body["vertical"] = value.trim();
461
+ const _v = this.getNodeParameter("country", i, '');
462
+ const _a = _v.split(/[,\n]/).map(s => s.trim()).filter(s => s.length > 0);
463
+ if (_a.length)
464
+ body["country"] = _a;
487
465
  }
466
+ body["vertical"] = this.getNodeParameter("vertical", i);
488
467
  body["hasEmail"] = this.getNodeParameter("hasEmail", i);
489
468
  body["hasPhone"] = this.getNodeParameter("hasPhone", i);
490
469
  body["newWithinDays"] = this.getNodeParameter("newWithinDays", i);
@@ -493,25 +472,47 @@ class TechStackLookup {
493
472
  body["sortBy"] = this.getNodeParameter("sortBy", i);
494
473
  body["sortDesc"] = this.getNodeParameter("sortDesc", i);
495
474
  body["dedupeByDomain"] = this.getNodeParameter("dedupeByDomain", i);
475
+ body["outputPreset"] = this.getNodeParameter("outputPreset", i);
496
476
  body["countOnly"] = this.getNodeParameter("countOnly", i);
497
477
  body["maxItems"] = this.getNodeParameter("maxItems", i);
498
478
  body["offset"] = this.getNodeParameter("offset", i);
499
479
  {
500
- const value = this.getNodeParameter("columns", i, '');
501
- const values = value.split(/[,\n]/).map((entry) => entry.trim()).filter(Boolean);
502
- if (values.length)
503
- body["columns"] = values;
480
+ const _v = this.getNodeParameter("columns", i, '');
481
+ const _a = _v.split(/[,\n]/).map(s => s.trim()).filter(s => s.length > 0);
482
+ if (_a.length)
483
+ body["columns"] = _a;
504
484
  }
505
485
  const options = {
506
486
  method: 'POST',
507
- url: `https://api.apify.com/v2/acts/${ACTOR_ID}/run-sync-get-dataset-items`,
487
+ url: `https://api.apify.com/v2/acts/${ACTOR_ID}/runs`,
508
488
  body,
509
489
  json: true,
510
490
  };
511
- const response = await this.helpers.requestWithAuthentication.call(this, 'apifyApi', options);
512
- const results = Array.isArray(response) ? response : [response];
513
- for (const result of results)
514
- returnData.push({ json: result, pairedItem: { item: i } });
491
+ const started = await this.helpers.requestWithAuthentication.call(this, 'apifyApi', options);
492
+ const runId = (_b = started === null || started === void 0 ? void 0 : started.data) === null || _b === void 0 ? void 0 : _b.id;
493
+ if (!runId)
494
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Apify did not return a run ID', { itemIndex: i });
495
+ let run = started.data;
496
+ const deadline = Date.now() + 60 * 60 * 1000;
497
+ while (!['SUCCEEDED', 'FAILED', 'ABORTED', 'TIMED-OUT'].includes(run.status)) {
498
+ if (Date.now() >= deadline)
499
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Waiting timed out; check the existing run in Apify before retrying', { itemIndex: i });
500
+ const polled = await this.helpers.requestWithAuthentication.call(this, 'apifyApi', { method: 'GET', url: `https://api.apify.com/v2/actor-runs/${runId}?waitForFinish=20`, json: true });
501
+ run = polled.data;
502
+ }
503
+ if (run.status !== 'SUCCEEDED')
504
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Apify run ended with status ' + run.status, { itemIndex: i });
505
+ let offset = 0;
506
+ while (true) {
507
+ const page = await this.helpers.requestWithAuthentication.call(this, 'apifyApi', { method: 'GET', url: `https://api.apify.com/v2/datasets/${run.defaultDatasetId}/items?clean=1&limit=1000&offset=${offset}`, json: true });
508
+ if (!Array.isArray(page))
509
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Unexpected Dataset response', { itemIndex: i });
510
+ for (const result of page)
511
+ returnData.push({ json: result, pairedItem: { item: i } });
512
+ offset += page.length;
513
+ if (page.length < 1000)
514
+ break;
515
+ }
515
516
  }
516
517
  catch (error) {
517
518
  if (this.continueOnFail()) {
@@ -1 +1 @@
1
- {"version":3,"file":"TechStackLookup.node.js","sourceRoot":"","sources":["../../../nodes/TechStackLookup/TechStackLookup.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TechStackLookup.node.js","sourceRoot":"","sources":["../../../nodes/TechStackLookup/TechStackLookup.node.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><rect width="64" height="64" rx="14" fill="#6e45e2"/><path d="M18 20h28v7H18zm0 12h20v7H18zm0 12h28v7H18z" fill="#fff"/></svg>
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">B</text></svg>
@@ -0,0 +1,96 @@
1
+ {
2
+ "id": "4ad37d1c-1550-5fdf-9878-091c3553ca5b",
3
+ "name": "Tech Stack → Service opportunity",
4
+ "nodes": [
5
+ {
6
+ "parameters": {},
7
+ "id": "728eb81d-957c-5207-9b1d-30628fd31791",
8
+ "name": "When clicking Execute workflow",
9
+ "type": "n8n-nodes-base.manualTrigger",
10
+ "typeVersion": 1,
11
+ "position": [
12
+ 0,
13
+ 120
14
+ ]
15
+ },
16
+ {
17
+ "parameters": {
18
+ "content": "## Setup\n1. Select your Apify API credential.\n2. Enter technologies used by your ideal customers.\n3. The final node adds a service angle for CRM or outreach.",
19
+ "height": 260,
20
+ "width": 440
21
+ },
22
+ "id": "e01f5ce8-dc20-544d-8655-91f3e6373b9e",
23
+ "name": "How to use this workflow",
24
+ "type": "n8n-nodes-base.stickyNote",
25
+ "typeVersion": 1,
26
+ "position": [
27
+ -40,
28
+ -220
29
+ ]
30
+ },
31
+ {
32
+ "parameters": {
33
+ "mode": "find",
34
+ "technologies": "Shopify,WordPress",
35
+ "matchMode": "any",
36
+ "hasEmail": true,
37
+ "dedupeByDomain": true,
38
+ "outputPreset": "opportunity",
39
+ "maxItems": 200
40
+ },
41
+ "id": "47d37326-0bbe-504b-b7a4-4e2859c4050d",
42
+ "name": "Find websites by technology with Apify",
43
+ "type": "n8n-nodes-apivault-tech-stack-lookup.techStackLookup",
44
+ "typeVersion": 1,
45
+ "position": [
46
+ 260,
47
+ 120
48
+ ]
49
+ },
50
+ {
51
+ "parameters": {
52
+ "mode": "runOnceForEachItem",
53
+ "jsCode": "const j = $json; const raw = [j.Technologies, j.technologies, j['CMS Platform'], j['Ecommerce Platform']].flat().filter(Boolean).join(' ').toLowerCase(); let service = 'website optimization'; if (raw.includes('shopify')) service = 'Shopify conversion optimization'; else if (raw.includes('wordpress')) service = 'WordPress speed and maintenance'; else if (raw.includes('wix')) service = 'website migration or redesign'; return { json: { ...j, recommendedService: service, pitchAngle: `Offer ${service} based on the public technology profile.` } };"
54
+ },
55
+ "id": "c1ac714f-e99f-52c8-9f25-f2546f2e36a3",
56
+ "name": "Recommend service angle",
57
+ "type": "n8n-nodes-base.code",
58
+ "typeVersion": 2,
59
+ "position": [
60
+ 560,
61
+ 120
62
+ ]
63
+ }
64
+ ],
65
+ "connections": {
66
+ "When clicking Execute workflow": {
67
+ "main": [
68
+ [
69
+ {
70
+ "node": "Find websites by technology with Apify",
71
+ "type": "main",
72
+ "index": 0
73
+ }
74
+ ]
75
+ ]
76
+ },
77
+ "Find websites by technology with Apify": {
78
+ "main": [
79
+ [
80
+ {
81
+ "node": "Recommend service angle",
82
+ "type": "main",
83
+ "index": 0
84
+ }
85
+ ]
86
+ ]
87
+ }
88
+ },
89
+ "pinData": {},
90
+ "settings": {
91
+ "executionOrder": "v1"
92
+ },
93
+ "active": false,
94
+ "versionId": "8e56c837-f6a1-554b-8fe2-d18ecbf2c70f",
95
+ "tags": []
96
+ }
package/package.json CHANGED
@@ -1,25 +1,25 @@
1
1
  {
2
2
  "name": "n8n-nodes-apivault-tech-stack-lookup",
3
- "version": "0.1.0",
4
- "description": "n8n community node for Tech Stack Lookup, backed by the apivault_labs/tech-stack-lookup Apify Actor.",
3
+ "version": "0.2.1",
4
+ "description": "n8n community node for BuiltWith Alternative — Tech Stack Leads & Lookup (60M) — backed by the Apify Actor apivault_labs/tech-stack-lookup. No login. Pay-as-you-go via Apify.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://apify.com/apivault_labs/tech-stack-lookup",
7
7
  "keywords": [
8
8
  "n8n-community-node-package",
9
9
  "n8n",
10
+ "tech-stack-lookup",
10
11
  "apify",
12
+ "no-code",
11
13
  "automation",
12
- "lead-generation",
13
- "tech",
14
- "stack",
15
- "lookup"
14
+ "data-analysis",
15
+ "workflow-automation"
16
16
  ],
17
17
  "author": {
18
18
  "name": "apivault_labs"
19
19
  },
20
20
  "repository": {
21
21
  "type": "git",
22
- "url": "https://github.com/apivault-labs/apify-funnels.git"
22
+ "url": "https://github.com/apivault-labs/n8n-nodes-apivault-tech-stack-lookup.git"
23
23
  },
24
24
  "main": "index.js",
25
25
  "scripts": {
@@ -28,7 +28,8 @@
28
28
  "prepublishOnly": "npm run build"
29
29
  },
30
30
  "files": [
31
- "dist"
31
+ "dist",
32
+ "examples"
32
33
  ],
33
34
  "n8n": {
34
35
  "n8nNodesApiVersion": 1,
@@ -48,4 +49,4 @@
48
49
  "peerDependencies": {
49
50
  "n8n-workflow": "*"
50
51
  }
51
- }
52
+ }