@bubblelab/bubble-core 0.1.24 → 0.1.25

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.
Files changed (56) hide show
  1. package/dist/bubble-bundle.d.ts +73 -73
  2. package/dist/bubbles/service-bubble/agi-inc.d.ts +4 -4
  3. package/dist/bubbles/service-bubble/ai-agent.d.ts +12 -12
  4. package/dist/bubbles/service-bubble/airtable.d.ts +138 -138
  5. package/dist/bubbles/service-bubble/apify/apify.d.ts +4 -4
  6. package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +9 -9
  7. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +405 -405
  8. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +432 -432
  9. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts.map +1 -1
  10. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.js +15 -9
  11. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.js.map +1 -1
  12. package/dist/bubbles/service-bubble/eleven-labs.d.ts +8 -8
  13. package/dist/bubbles/service-bubble/firecrawl.d.ts +332 -332
  14. package/dist/bubbles/service-bubble/followupboss.d.ts +277 -277
  15. package/dist/bubbles/service-bubble/github.d.ts +132 -132
  16. package/dist/bubbles/service-bubble/gmail.d.ts +478 -478
  17. package/dist/bubbles/service-bubble/google-calendar.d.ts +112 -112
  18. package/dist/bubbles/service-bubble/google-drive.d.ts +38 -38
  19. package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts +8 -8
  20. package/dist/bubbles/service-bubble/hello-world.d.ts +2 -2
  21. package/dist/bubbles/service-bubble/http.d.ts +16 -16
  22. package/dist/bubbles/service-bubble/insforge-db.d.ts +6 -6
  23. package/dist/bubbles/service-bubble/notion/notion.d.ts +1098 -1098
  24. package/dist/bubbles/service-bubble/postgresql.d.ts +6 -6
  25. package/dist/bubbles/service-bubble/resend.d.ts +12 -12
  26. package/dist/bubbles/service-bubble/slack/slack.d.ts +184 -184
  27. package/dist/bubbles/service-bubble/storage.d.ts +20 -20
  28. package/dist/bubbles/service-bubble/telegram.d.ts +1420 -1420
  29. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +8 -8
  30. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +139 -139
  31. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts.map +1 -1
  32. package/dist/bubbles/tool-bubble/company-enrichment-tool.js +27 -6
  33. package/dist/bubbles/tool-bubble/company-enrichment-tool.js.map +1 -1
  34. package/dist/bubbles/tool-bubble/google-maps-tool.d.ts +36 -36
  35. package/dist/bubbles/tool-bubble/instagram-tool.d.ts +4 -4
  36. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +142 -142
  37. package/dist/bubbles/tool-bubble/list-bubbles-tool.d.ts +12 -12
  38. package/dist/bubbles/tool-bubble/people-search-tool.d.ts +161 -161
  39. package/dist/bubbles/tool-bubble/people-search-tool.d.ts.map +1 -1
  40. package/dist/bubbles/tool-bubble/people-search-tool.js +31 -10
  41. package/dist/bubbles/tool-bubble/people-search-tool.js.map +1 -1
  42. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +10 -10
  43. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +4 -4
  44. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +4 -4
  45. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +12 -12
  46. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +28 -28
  47. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +4 -4
  48. package/dist/bubbles/tool-bubble/web-search-tool.d.ts +14 -14
  49. package/dist/bubbles/tool-bubble/youtube-tool.d.ts +10 -10
  50. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +20 -20
  51. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +38 -38
  52. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +8 -8
  53. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +4 -4
  54. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +64 -64
  55. package/dist/bubbles.json +7 -7
  56. package/package.json +2 -2
@@ -154,66 +154,66 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
154
154
  verbatim?: boolean | undefined;
155
155
  }>, "many">>;
156
156
  }, "strip", z.ZodTypeAny, {
157
- type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
157
+ type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
158
158
  title?: {
159
159
  type: "plain_text";
160
160
  text: string;
161
161
  emoji?: boolean | undefined;
162
162
  } | undefined;
163
- text?: {
163
+ fields?: {
164
164
  type: "plain_text" | "mrkdwn";
165
165
  text: string;
166
166
  emoji?: boolean | undefined;
167
167
  verbatim?: boolean | undefined;
168
- } | undefined;
169
- fields?: {
168
+ }[] | undefined;
169
+ text?: {
170
170
  type: "plain_text" | "mrkdwn";
171
171
  text: string;
172
172
  emoji?: boolean | undefined;
173
173
  verbatim?: boolean | undefined;
174
- }[] | undefined;
174
+ } | undefined;
175
+ image_url?: string | undefined;
176
+ optional?: boolean | undefined;
177
+ alt_text?: string | undefined;
175
178
  elements?: {
176
179
  type: "plain_text" | "mrkdwn";
177
180
  text: string;
178
181
  emoji?: boolean | undefined;
179
182
  verbatim?: boolean | undefined;
180
183
  }[] | undefined;
181
- image_url?: string | undefined;
182
- optional?: boolean | undefined;
183
- alt_text?: string | undefined;
184
184
  block_id?: string | undefined;
185
185
  accessory?: unknown;
186
186
  element?: unknown;
187
187
  label?: unknown;
188
188
  hint?: unknown;
189
189
  }, {
190
- type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
190
+ type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
191
191
  title?: {
192
192
  type: "plain_text";
193
193
  text: string;
194
194
  emoji?: boolean | undefined;
195
195
  } | undefined;
196
- text?: {
196
+ fields?: {
197
197
  type: "plain_text" | "mrkdwn";
198
198
  text: string;
199
199
  emoji?: boolean | undefined;
200
200
  verbatim?: boolean | undefined;
201
- } | undefined;
202
- fields?: {
201
+ }[] | undefined;
202
+ text?: {
203
203
  type: "plain_text" | "mrkdwn";
204
204
  text: string;
205
205
  emoji?: boolean | undefined;
206
206
  verbatim?: boolean | undefined;
207
- }[] | undefined;
207
+ } | undefined;
208
+ image_url?: string | undefined;
209
+ optional?: boolean | undefined;
210
+ alt_text?: string | undefined;
208
211
  elements?: {
209
212
  type: "plain_text" | "mrkdwn";
210
213
  text: string;
211
214
  emoji?: boolean | undefined;
212
215
  verbatim?: boolean | undefined;
213
216
  }[] | undefined;
214
- image_url?: string | undefined;
215
- optional?: boolean | undefined;
216
- alt_text?: string | undefined;
217
217
  block_id?: string | undefined;
218
218
  accessory?: unknown;
219
219
  element?: unknown;
@@ -269,33 +269,33 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
269
269
  output?: unknown;
270
270
  }[] | undefined;
271
271
  blocks?: {
272
- type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
272
+ type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
273
273
  title?: {
274
274
  type: "plain_text";
275
275
  text: string;
276
276
  emoji?: boolean | undefined;
277
277
  } | undefined;
278
- text?: {
278
+ fields?: {
279
279
  type: "plain_text" | "mrkdwn";
280
280
  text: string;
281
281
  emoji?: boolean | undefined;
282
282
  verbatim?: boolean | undefined;
283
- } | undefined;
284
- fields?: {
283
+ }[] | undefined;
284
+ text?: {
285
285
  type: "plain_text" | "mrkdwn";
286
286
  text: string;
287
287
  emoji?: boolean | undefined;
288
288
  verbatim?: boolean | undefined;
289
- }[] | undefined;
289
+ } | undefined;
290
+ image_url?: string | undefined;
291
+ optional?: boolean | undefined;
292
+ alt_text?: string | undefined;
290
293
  elements?: {
291
294
  type: "plain_text" | "mrkdwn";
292
295
  text: string;
293
296
  emoji?: boolean | undefined;
294
297
  verbatim?: boolean | undefined;
295
298
  }[] | undefined;
296
- image_url?: string | undefined;
297
- optional?: boolean | undefined;
298
- alt_text?: string | undefined;
299
299
  block_id?: string | undefined;
300
300
  accessory?: unknown;
301
301
  element?: unknown;
@@ -319,33 +319,33 @@ declare const SlackFormatterAgentResultSchema: z.ZodObject<{
319
319
  output?: unknown;
320
320
  }[] | undefined;
321
321
  blocks?: {
322
- type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
322
+ type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
323
323
  title?: {
324
324
  type: "plain_text";
325
325
  text: string;
326
326
  emoji?: boolean | undefined;
327
327
  } | undefined;
328
- text?: {
328
+ fields?: {
329
329
  type: "plain_text" | "mrkdwn";
330
330
  text: string;
331
331
  emoji?: boolean | undefined;
332
332
  verbatim?: boolean | undefined;
333
- } | undefined;
334
- fields?: {
333
+ }[] | undefined;
334
+ text?: {
335
335
  type: "plain_text" | "mrkdwn";
336
336
  text: string;
337
337
  emoji?: boolean | undefined;
338
338
  verbatim?: boolean | undefined;
339
- }[] | undefined;
339
+ } | undefined;
340
+ image_url?: string | undefined;
341
+ optional?: boolean | undefined;
342
+ alt_text?: string | undefined;
340
343
  elements?: {
341
344
  type: "plain_text" | "mrkdwn";
342
345
  text: string;
343
346
  emoji?: boolean | undefined;
344
347
  verbatim?: boolean | undefined;
345
348
  }[] | undefined;
346
- image_url?: string | undefined;
347
- optional?: boolean | undefined;
348
- alt_text?: string | undefined;
349
349
  block_id?: string | undefined;
350
350
  accessory?: unknown;
351
351
  element?: unknown;
@@ -512,66 +512,66 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
512
512
  verbatim?: boolean | undefined;
513
513
  }>, "many">>;
514
514
  }, "strip", z.ZodTypeAny, {
515
- type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
515
+ type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
516
516
  title?: {
517
517
  type: "plain_text";
518
518
  text: string;
519
519
  emoji?: boolean | undefined;
520
520
  } | undefined;
521
- text?: {
521
+ fields?: {
522
522
  type: "plain_text" | "mrkdwn";
523
523
  text: string;
524
524
  emoji?: boolean | undefined;
525
525
  verbatim?: boolean | undefined;
526
- } | undefined;
527
- fields?: {
526
+ }[] | undefined;
527
+ text?: {
528
528
  type: "plain_text" | "mrkdwn";
529
529
  text: string;
530
530
  emoji?: boolean | undefined;
531
531
  verbatim?: boolean | undefined;
532
- }[] | undefined;
532
+ } | undefined;
533
+ image_url?: string | undefined;
534
+ optional?: boolean | undefined;
535
+ alt_text?: string | undefined;
533
536
  elements?: {
534
537
  type: "plain_text" | "mrkdwn";
535
538
  text: string;
536
539
  emoji?: boolean | undefined;
537
540
  verbatim?: boolean | undefined;
538
541
  }[] | undefined;
539
- image_url?: string | undefined;
540
- optional?: boolean | undefined;
541
- alt_text?: string | undefined;
542
542
  block_id?: string | undefined;
543
543
  accessory?: unknown;
544
544
  element?: unknown;
545
545
  label?: unknown;
546
546
  hint?: unknown;
547
547
  }, {
548
- type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
548
+ type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
549
549
  title?: {
550
550
  type: "plain_text";
551
551
  text: string;
552
552
  emoji?: boolean | undefined;
553
553
  } | undefined;
554
- text?: {
554
+ fields?: {
555
555
  type: "plain_text" | "mrkdwn";
556
556
  text: string;
557
557
  emoji?: boolean | undefined;
558
558
  verbatim?: boolean | undefined;
559
- } | undefined;
560
- fields?: {
559
+ }[] | undefined;
560
+ text?: {
561
561
  type: "plain_text" | "mrkdwn";
562
562
  text: string;
563
563
  emoji?: boolean | undefined;
564
564
  verbatim?: boolean | undefined;
565
- }[] | undefined;
565
+ } | undefined;
566
+ image_url?: string | undefined;
567
+ optional?: boolean | undefined;
568
+ alt_text?: string | undefined;
566
569
  elements?: {
567
570
  type: "plain_text" | "mrkdwn";
568
571
  text: string;
569
572
  emoji?: boolean | undefined;
570
573
  verbatim?: boolean | undefined;
571
574
  }[] | undefined;
572
- image_url?: string | undefined;
573
- optional?: boolean | undefined;
574
- alt_text?: string | undefined;
575
575
  block_id?: string | undefined;
576
576
  accessory?: unknown;
577
577
  element?: unknown;
@@ -627,33 +627,33 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
627
627
  output?: unknown;
628
628
  }[] | undefined;
629
629
  blocks?: {
630
- type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
630
+ type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
631
631
  title?: {
632
632
  type: "plain_text";
633
633
  text: string;
634
634
  emoji?: boolean | undefined;
635
635
  } | undefined;
636
- text?: {
636
+ fields?: {
637
637
  type: "plain_text" | "mrkdwn";
638
638
  text: string;
639
639
  emoji?: boolean | undefined;
640
640
  verbatim?: boolean | undefined;
641
- } | undefined;
642
- fields?: {
641
+ }[] | undefined;
642
+ text?: {
643
643
  type: "plain_text" | "mrkdwn";
644
644
  text: string;
645
645
  emoji?: boolean | undefined;
646
646
  verbatim?: boolean | undefined;
647
- }[] | undefined;
647
+ } | undefined;
648
+ image_url?: string | undefined;
649
+ optional?: boolean | undefined;
650
+ alt_text?: string | undefined;
648
651
  elements?: {
649
652
  type: "plain_text" | "mrkdwn";
650
653
  text: string;
651
654
  emoji?: boolean | undefined;
652
655
  verbatim?: boolean | undefined;
653
656
  }[] | undefined;
654
- image_url?: string | undefined;
655
- optional?: boolean | undefined;
656
- alt_text?: string | undefined;
657
657
  block_id?: string | undefined;
658
658
  accessory?: unknown;
659
659
  element?: unknown;
@@ -677,33 +677,33 @@ export declare class SlackFormatterAgentBubble extends WorkflowBubble<SlackForma
677
677
  output?: unknown;
678
678
  }[] | undefined;
679
679
  blocks?: {
680
- type: "file" | "image" | "input" | "section" | "header" | "divider" | "context" | "actions";
680
+ type: "input" | "image" | "file" | "section" | "header" | "divider" | "context" | "actions";
681
681
  title?: {
682
682
  type: "plain_text";
683
683
  text: string;
684
684
  emoji?: boolean | undefined;
685
685
  } | undefined;
686
- text?: {
686
+ fields?: {
687
687
  type: "plain_text" | "mrkdwn";
688
688
  text: string;
689
689
  emoji?: boolean | undefined;
690
690
  verbatim?: boolean | undefined;
691
- } | undefined;
692
- fields?: {
691
+ }[] | undefined;
692
+ text?: {
693
693
  type: "plain_text" | "mrkdwn";
694
694
  text: string;
695
695
  emoji?: boolean | undefined;
696
696
  verbatim?: boolean | undefined;
697
- }[] | undefined;
697
+ } | undefined;
698
+ image_url?: string | undefined;
699
+ optional?: boolean | undefined;
700
+ alt_text?: string | undefined;
698
701
  elements?: {
699
702
  type: "plain_text" | "mrkdwn";
700
703
  text: string;
701
704
  emoji?: boolean | undefined;
702
705
  verbatim?: boolean | undefined;
703
706
  }[] | undefined;
704
- image_url?: string | undefined;
705
- optional?: boolean | undefined;
706
- alt_text?: string | undefined;
707
707
  block_id?: string | undefined;
708
708
  accessory?: unknown;
709
709
  element?: unknown;
package/dist/bubbles.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "1.0.0",
3
- "generatedAt": "2026-01-20T08:21:30.759Z",
3
+ "generatedAt": "2026-01-20T18:53:34.542Z",
4
4
  "totalCount": 53,
5
5
  "bubbles": [
6
6
  {
@@ -672,9 +672,9 @@
672
672
  "type": "tool",
673
673
  "shortDescription": "Comprehensive people search by company, title, location, skills, and more",
674
674
  "useCase": "General purpose bubble for various workflow needs",
675
- "inputSchema": "{\n companyName: string | undefined // Current company name to search within (e.g., \"Google\", \"Microsoft\"),\n companyLinkedinUrl: string | undefined // Company LinkedIn URL for precise matching (e.g., \"https://www.linkedin.com/company/google\"),\n jobTitle: string | undefined // Current job title to search for (e.g., \"Software Engineer\", \"CEO\"). Use jobTitles array for multiple titles.,\n jobTitles: string[] | undefined // Multiple job titles to search for with OR logic (e.g., [\"Senior Hardware Engineer\", \"Technical Product Manager\"]). Use this when searching for people with any of several roles.,\n location: string | undefined // Location/region to filter by with fuzzy matching (e.g., \"San Francisco Bay Area\", \"New York\"),\n locationRadius: { location: string // Center point location (e.g., \"San Francisco\", \"New York City\"), radiusMiles: number // Search radius in miles (e.g., 75) } | undefined // Geographic radius search - find people within X miles of a location,\n skills: string[] | undefined // Skills to filter by (e.g., [\"Python\", \"Machine Learning\", \"React\"]),\n languages: string[] | undefined // Languages spoken (e.g., [\"English\", \"Spanish\", \"Mandarin\"]),\n minYearsExperience: number | undefined // Minimum total years of professional experience,\n maxYearsExperience: number | undefined // Maximum total years of professional experience,\n seniorityLevels: string[] | undefined // Seniority levels (e.g., [\"CXO\", \"Vice President\", \"Director\", \"Manager\", \"Senior\", \"Entry\"]),\n functionCategories: string[] | undefined // Job function categories (e.g., [\"Engineering\", \"Sales\", \"Marketing\", \"Finance\", \"Operations\", \"HR\"]),\n companyIndustries: string[] | undefined // Company industries to filter by (e.g., [\"Technology\", \"Healthcare\", \"Finance\"]),\n minCompanyHeadcount: number | undefined // Minimum company employee count (e.g., 100 for companies with 100+ employees),\n maxCompanyHeadcount: number | undefined // Maximum company employee count (e.g., 1000 for companies under 1000 employees),\n minYearsAtCompany: number | undefined // Minimum years at current company (tenure filter),\n pastCompanyName: string | undefined // Past company name - find people who previously worked at a company,\n pastJobTitle: string | undefined // Past job title - find people who previously held a specific title,\n schoolName: string | undefined // School/university name (e.g., \"Stanford University\", \"MIT\"),\n country: string | undefined // Country to filter by (e.g., \"United States\", \"United Kingdom\", \"Germany\"),\n city: string | undefined // City to filter by (e.g., \"San Francisco\", \"New York\", \"London\"),\n recentlyChangedJobs: boolean | undefined // Filter to people who recently changed jobs (useful for outreach),\n minConnections: number | undefined // Minimum number of LinkedIn connections,\n excludeCompanies: string[] | undefined // Company names to exclude from results,\n excludeProfiles: string[] | undefined // LinkedIn profile URLs to exclude from results,\n limit: number | undefined // Maximum results to return (default: 20, max: 100),\n credentials: Record<string, string> | undefined // Required credentials (auto-injected)\n}",
676
- "outputSchema": "{\n people: { name: string | null // Full name, title: string | null // Current job title, headline: string | null // LinkedIn headline, linkedinUrl: string | null // LinkedIn profile URL, profilePictureUrl: string | null // Profile picture URL, emails: string[] | null // Email addresses, twitterHandle: string | null // Twitter/X handle, websites: string[] | null // Personal/professional websites, seniorityLevel: string | null // Seniority level (CXO, Vice President, Director, etc.), yearsOfExperience: number | null // Total years of professional experience, recentlyChangedJobs: boolean | null // Whether this person recently changed jobs, location: string | null // Location/region, locationCity: string | null // City, locationCountry: string | null // Country, skills: string[] | null // Professional skills, languages: string[] | null // Languages spoken, summary: string | null // Professional summary, numConnections: number | null // Number of LinkedIn connections, currentEmployers: { title: string | null // Job title, companyName: string | null // Company name, companyLinkedinUrl: string | null // Company LinkedIn URL, seniorityLevel: string | null // Seniority level, functionCategory: string | null // Function category, startDate: string | null // Start date, yearsAtCompany: number | null // Years at company, companyHeadcount: number | null // Company headcount, companyIndustries: string[] | null // Company industries }[] | null // Current employment, pastEmployers: { title: string | null // Job title, companyName: string | null // Company name, startDate: string | null // Start date, endDate: string | null // End date }[] | null // Past employment, education: { instituteName: string | null // Institution name, degreeName: string | null // Degree name, fieldOfStudy: string | null // Field of study }[] | null // Education history }[] // List of people found,\n totalCount: number // Total number of people available,\n success: boolean // Whether the operation was successful,\n error: string // Error message if operation failed\n}",
677
- "usageExample": "// Example usage of people-search-tool bubble\nconst peopleSearchTool = new PeopleSearchTool({\n companyName: \"example string\", // Current company name to search within (e.g., \"Google\", \"Microsoft\"),\n companyLinkedinUrl: \"example string\", // Company LinkedIn URL for precise matching (e.g., \"https://www.linkedin.com/company/google\"),\n jobTitle: \"example string\", // Current job title to search for (e.g., \"Software Engineer\", \"CEO\"). Use jobTitles array for multiple titles.,\n jobTitles: [\"example string\"], // Multiple job titles to search for with OR logic (e.g., [\"Senior Hardware Engineer\", \"Technical Product Manager\"]). Use this when searching for people with any of several roles.,\n location: \"example string\", // Location/region to filter by with fuzzy matching (e.g., \"San Francisco Bay Area\", \"New York\"),\n locationRadius: { location: \"example string\" // Center point location (e.g., \"San Francisco\", \"New York City\"), radiusMiles: 42 // Search radius in miles (e.g., 75) }, // Geographic radius search - find people within X miles of a location,\n skills: [\"example string\"], // Skills to filter by (e.g., [\"Python\", \"Machine Learning\", \"React\"]),\n languages: [\"example string\"], // Languages spoken (e.g., [\"English\", \"Spanish\", \"Mandarin\"]),\n minYearsExperience: 42, // Minimum total years of professional experience,\n maxYearsExperience: 42, // Maximum total years of professional experience,\n seniorityLevels: [\"example string\"], // Seniority levels (e.g., [\"CXO\", \"Vice President\", \"Director\", \"Manager\", \"Senior\", \"Entry\"]),\n functionCategories: [\"example string\"], // Job function categories (e.g., [\"Engineering\", \"Sales\", \"Marketing\", \"Finance\", \"Operations\", \"HR\"]),\n companyIndustries: [\"example string\"], // Company industries to filter by (e.g., [\"Technology\", \"Healthcare\", \"Finance\"]),\n minCompanyHeadcount: 42, // Minimum company employee count (e.g., 100 for companies with 100+ employees),\n maxCompanyHeadcount: 42, // Maximum company employee count (e.g., 1000 for companies under 1000 employees),\n minYearsAtCompany: 42, // Minimum years at current company (tenure filter),\n pastCompanyName: \"example string\", // Past company name - find people who previously worked at a company,\n pastJobTitle: \"example string\", // Past job title - find people who previously held a specific title,\n schoolName: \"example string\", // School/university name (e.g., \"Stanford University\", \"MIT\"),\n country: \"example string\", // Country to filter by (e.g., \"United States\", \"United Kingdom\", \"Germany\"),\n city: \"example string\", // City to filter by (e.g., \"San Francisco\", \"New York\", \"London\"),\n recentlyChangedJobs: true, // Filter to people who recently changed jobs (useful for outreach),\n minConnections: 42, // Minimum number of LinkedIn connections,\n excludeCompanies: [\"example string\"], // Company names to exclude from results,\n excludeProfiles: [\"example string\"], // LinkedIn profile URLs to exclude from results,\n limit: 20 // default, // Maximum results to return (default: 20, max: 100),\n});\n\nconst result = await peopleSearchTool.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// people: { name: string | null // Full name, title: string | null // Current job title, headline: string | null // LinkedIn headline, linkedinUrl: string | null // LinkedIn profile URL, profilePictureUrl: string | null // Profile picture URL, emails: string[] | null // Email addresses, twitterHandle: string | null // Twitter/X handle, websites: string[] | null // Personal/professional websites, seniorityLevel: string | null // Seniority level (CXO, Vice President, Director, etc.), yearsOfExperience: number | null // Total years of professional experience, recentlyChangedJobs: boolean | null // Whether this person recently changed jobs, location: string | null // Location/region, locationCity: string | null // City, locationCountry: string | null // Country, skills: string[] | null // Professional skills, languages: string[] | null // Languages spoken, summary: string | null // Professional summary, numConnections: number | null // Number of LinkedIn connections, currentEmployers: { title: string | null // Job title, companyName: string | null // Company name, companyLinkedinUrl: string | null // Company LinkedIn URL, seniorityLevel: string | null // Seniority level, functionCategory: string | null // Function category, startDate: string | null // Start date, yearsAtCompany: number | null // Years at company, companyHeadcount: number | null // Company headcount, companyIndustries: string[] | null // Company industries }[] | null // Current employment, pastEmployers: { title: string | null // Job title, companyName: string | null // Company name, startDate: string | null // Start date, endDate: string | null // End date }[] | null // Past employment, education: { instituteName: string | null // Institution name, degreeName: string | null // Degree name, fieldOfStudy: string | null // Field of study }[] | null // Education history }[] // List of people found,\n// totalCount: number // Total number of people available,\n// success: boolean // Whether the operation was successful,\n// error: string // Error message if operation failed\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
675
+ "inputSchema": "{\n companyName: string | undefined // Current company name to search within (e.g., \"Google\", \"Microsoft\"),\n companyLinkedinUrl: string | undefined // Company LinkedIn URL for precise matching (e.g., \"https://www.linkedin.com/company/google\"),\n jobTitle: string | undefined // Current job title to search for (e.g., \"Software Engineer\", \"CEO\"). Use jobTitles array for multiple titles.,\n jobTitles: string[] | undefined // Multiple job titles to search for with OR logic (e.g., [\"Senior Hardware Engineer\", \"Technical Product Manager\"]). Use this when searching for people with any of several roles.,\n location: string | undefined // Location/region to filter by with fuzzy matching (e.g., \"San Francisco Bay Area\", \"New York\"),\n locationRadius: { location: string // Center point location (e.g., \"San Francisco\", \"New York City\"), radiusMiles: number // Search radius in miles (e.g., 75) } | undefined // Geographic radius search - find people within X miles of a location,\n skills: string[] | undefined // Skills to filter by (e.g., [\"Python\", \"Machine Learning\", \"React\"]),\n languages: string[] | undefined // Languages spoken (e.g., [\"English\", \"Spanish\", \"Mandarin\"]),\n minYearsExperience: number | undefined // Minimum total years of professional experience,\n maxYearsExperience: number | undefined // Maximum total years of professional experience,\n seniorityLevels: string[] | undefined // Seniority levels (e.g., [\"CXO\", \"Vice President\", \"Director\", \"Manager\", \"Senior\", \"Entry\"]),\n functionCategories: string[] | undefined // Job function categories (e.g., [\"Engineering\", \"Sales\", \"Marketing\", \"Finance\", \"Operations\", \"HR\"]),\n companyIndustries: string[] | undefined // Company industries to filter by (e.g., [\"Technology\", \"Healthcare\", \"Finance\"]),\n minCompanyHeadcount: number | undefined // Minimum company employee count (e.g., 100 for companies with 100+ employees),\n maxCompanyHeadcount: number | undefined // Maximum company employee count (e.g., 1000 for companies under 1000 employees),\n minYearsAtCompany: number | undefined // Minimum years at current company (tenure filter),\n pastCompanyName: string | undefined // Past company name - find people who previously worked at a company,\n pastJobTitle: string | undefined // Past job title - find people who previously held a specific title,\n schoolName: string | undefined // School/university name (e.g., \"Stanford University\", \"MIT\"),\n country: string | undefined // Country to filter by (e.g., \"United States\", \"United Kingdom\", \"Germany\"),\n city: string | undefined // City to filter by (e.g., \"San Francisco\", \"New York\", \"London\"),\n recentlyChangedJobs: boolean | undefined // Filter to people who recently changed jobs (useful for outreach),\n minConnections: number | undefined // Minimum number of LinkedIn connections,\n excludeCompanies: string[] | undefined // Company names to exclude from results,\n excludeProfiles: string[] | undefined // LinkedIn profile URLs to exclude from results,\n limit: number | undefined // Maximum results to return (default: 100, max: 1000),\n credentials: Record<string, string> | undefined // Required credentials (auto-injected)\n}",
676
+ "outputSchema": "{\n people: { name: string | null // Full name, title: string | null // Current job title, headline: string | null // LinkedIn headline, linkedinUrl: string | null // LinkedIn profile URL, profilePictureUrl: string | null // Profile picture URL, emails: string[] | null // Email addresses, twitterHandle: string | null // Twitter/X handle, websites: string[] | null // Personal/professional websites, seniorityLevel: string | null // Seniority level (CXO, Vice President, Director, etc.), yearsOfExperience: number | null // Total years of professional experience, recentlyChangedJobs: boolean | null // Whether this person recently changed jobs, location: string | null // Location/region, locationCity: string | null // City, locationCountry: string | null // Country, skills: string[] | null // Professional skills, languages: string[] | null // Languages spoken, summary: string | null // Professional summary, numConnections: number | null // Number of LinkedIn connections, currentEmployers: { title: string | null // Job title, companyName: string | null // Company name, companyLinkedinUrl: string | null // Company LinkedIn URL, seniorityLevel: string | null // Seniority level, functionCategory: string | null // Function category, startDate: unknown | null // Start date, yearsAtCompany: number | null // Years at company, companyHeadcount: number | null // Company headcount, companyIndustries: string[] | null // Company industries }[] | null // Current employment, pastEmployers: { title: string | null // Job title, companyName: string | null // Company name, startDate: unknown | null // Start date, endDate: unknown | null // End date }[] | null // Past employment, education: { instituteName: string | null // Institution name, degreeName: string | null // Degree name, fieldOfStudy: string | null // Field of study }[] | null // Education history }[] // List of people found,\n totalCount: number // Total number of people available,\n success: boolean // Whether the operation was successful,\n error: string // Error message if operation failed\n}",
677
+ "usageExample": "// Example usage of people-search-tool bubble\nconst peopleSearchTool = new PeopleSearchTool({\n companyName: \"example string\", // Current company name to search within (e.g., \"Google\", \"Microsoft\"),\n companyLinkedinUrl: \"example string\", // Company LinkedIn URL for precise matching (e.g., \"https://www.linkedin.com/company/google\"),\n jobTitle: \"example string\", // Current job title to search for (e.g., \"Software Engineer\", \"CEO\"). Use jobTitles array for multiple titles.,\n jobTitles: [\"example string\"], // Multiple job titles to search for with OR logic (e.g., [\"Senior Hardware Engineer\", \"Technical Product Manager\"]). Use this when searching for people with any of several roles.,\n location: \"example string\", // Location/region to filter by with fuzzy matching (e.g., \"San Francisco Bay Area\", \"New York\"),\n locationRadius: { location: \"example string\" // Center point location (e.g., \"San Francisco\", \"New York City\"), radiusMiles: 42 // Search radius in miles (e.g., 75) }, // Geographic radius search - find people within X miles of a location,\n skills: [\"example string\"], // Skills to filter by (e.g., [\"Python\", \"Machine Learning\", \"React\"]),\n languages: [\"example string\"], // Languages spoken (e.g., [\"English\", \"Spanish\", \"Mandarin\"]),\n minYearsExperience: 42, // Minimum total years of professional experience,\n maxYearsExperience: 42, // Maximum total years of professional experience,\n seniorityLevels: [\"example string\"], // Seniority levels (e.g., [\"CXO\", \"Vice President\", \"Director\", \"Manager\", \"Senior\", \"Entry\"]),\n functionCategories: [\"example string\"], // Job function categories (e.g., [\"Engineering\", \"Sales\", \"Marketing\", \"Finance\", \"Operations\", \"HR\"]),\n companyIndustries: [\"example string\"], // Company industries to filter by (e.g., [\"Technology\", \"Healthcare\", \"Finance\"]),\n minCompanyHeadcount: 42, // Minimum company employee count (e.g., 100 for companies with 100+ employees),\n maxCompanyHeadcount: 42, // Maximum company employee count (e.g., 1000 for companies under 1000 employees),\n minYearsAtCompany: 42, // Minimum years at current company (tenure filter),\n pastCompanyName: \"example string\", // Past company name - find people who previously worked at a company,\n pastJobTitle: \"example string\", // Past job title - find people who previously held a specific title,\n schoolName: \"example string\", // School/university name (e.g., \"Stanford University\", \"MIT\"),\n country: \"example string\", // Country to filter by (e.g., \"United States\", \"United Kingdom\", \"Germany\"),\n city: \"example string\", // City to filter by (e.g., \"San Francisco\", \"New York\", \"London\"),\n recentlyChangedJobs: true, // Filter to people who recently changed jobs (useful for outreach),\n minConnections: 42, // Minimum number of LinkedIn connections,\n excludeCompanies: [\"example string\"], // Company names to exclude from results,\n excludeProfiles: [\"example string\"], // LinkedIn profile URLs to exclude from results,\n limit: 100 // default, // Maximum results to return (default: 100, max: 1000),\n});\n\nconst result = await peopleSearchTool.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// people: { name: string | null // Full name, title: string | null // Current job title, headline: string | null // LinkedIn headline, linkedinUrl: string | null // LinkedIn profile URL, profilePictureUrl: string | null // Profile picture URL, emails: string[] | null // Email addresses, twitterHandle: string | null // Twitter/X handle, websites: string[] | null // Personal/professional websites, seniorityLevel: string | null // Seniority level (CXO, Vice President, Director, etc.), yearsOfExperience: number | null // Total years of professional experience, recentlyChangedJobs: boolean | null // Whether this person recently changed jobs, location: string | null // Location/region, locationCity: string | null // City, locationCountry: string | null // Country, skills: string[] | null // Professional skills, languages: string[] | null // Languages spoken, summary: string | null // Professional summary, numConnections: number | null // Number of LinkedIn connections, currentEmployers: { title: string | null // Job title, companyName: string | null // Company name, companyLinkedinUrl: string | null // Company LinkedIn URL, seniorityLevel: string | null // Seniority level, functionCategory: string | null // Function category, startDate: unknown | null // Start date, yearsAtCompany: number | null // Years at company, companyHeadcount: number | null // Company headcount, companyIndustries: string[] | null // Company industries }[] | null // Current employment, pastEmployers: { title: string | null // Job title, companyName: string | null // Company name, startDate: unknown | null // Start date, endDate: unknown | null // End date }[] | null // Past employment, education: { instituteName: string | null // Institution name, degreeName: string | null // Degree name, fieldOfStudy: string | null // Field of study }[] | null // Education history }[] // List of people found,\n// totalCount: number // Total number of people available,\n// success: boolean // Whether the operation was successful,\n// error: string // Error message if operation failed\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
678
678
  "requiredCredentials": [
679
679
  "CRUSTDATA_API_KEY"
680
680
  ]
@@ -702,7 +702,7 @@
702
702
  "useCase": "- Lead generation and sales prospecting",
703
703
  "inputSchema": "Complex schema - see usage example for structure",
704
704
  "outputSchema": "Complex schema - see usage example for structure",
705
- "usageExample": "// Identify example\nconst crustdata_identify = new CrustdataBubble({\n operation: \"identify\", // Identify a company and get its Crustdata ID (FREE)\n query_company_name: \"example string\", // Company name to search for\n query_company_website: \"example string\", // Company website domain (e.g., \"stripe.com\")\n query_company_linkedin_url: \"example string\", // Company LinkedIn URL\n count: 1 // default, // Maximum number of results to return (default: 1, max: 25)\n});\n\nconst result = await crustdata_identify.action();\n// outputSchema for result.data when operation === 'identify':\n// {\n// operation: \"identify\" // Company identification operation,\n// success: boolean // Whether the operation was successful,\n// results: { company_id: number | null | undefined, company_name: string | null | undefined, linkedin_profile_url: string | null | undefined, company_website_domain: string | null | undefined, linkedin_headcount: number | null | undefined, score: number | null | undefined }[] | undefined // Array of matching companies,\n// error: string // Error message if operation failed\n// }\n\n\n// Enrich example\nconst crustdata_enrich = new CrustdataBubble({\n operation: \"enrich\", // Enrich company data with contacts (1 credit)\n company_domain: \"example string\", // Company website domain (e.g., \"stripe.com\")\n company_linkedin_url: \"example string\", // Company LinkedIn URL\n company_id: 42, // Crustdata company ID (from identify operation)\n fields: \"decision_makers,cxos,founders.profiles\" // default, // Comma-separated fields to retrieve (default: \"decision_makers,cxos,founders.profiles\")\n enrich_realtime: false // default, // If true, fetch fresh data from LinkedIn (slower but more accurate)\n});\n\nconst result = await crustdata_enrich.action();\n// outputSchema for result.data when operation === 'enrich':\n// {\n// operation: \"enrich\" // Company enrichment operation,\n// success: boolean // Whether the operation was successful,\n// company: { name: string | null | undefined, linkedin_id: string | null | undefined, linkedin_profile_url: string | null | undefined, company_website_domain: string | null | undefined, company_website: string | null | undefined, hq_country: string | null | undefined, hq_city: string | null | undefined, year_founded: string | null | undefined, headcount: number | null | undefined, linkedin_headcount: number | null | undefined, linkedin_followers: number | null | undefined, industry: string | null | undefined, description: string | null | undefined, all_industries: string[] | null | undefined, estimated_revenue: string | null | undefined, funding_stage: string | null | undefined, total_funding: string | null | undefined, last_funding_round_date: string | null | undefined, last_funding_round_type: string | null | undefined } | null | undefined // Enriched company information,\n// decision_makers: { linkedin_profile_url: string | null | undefined, linkedin_flagship_url: string | null | undefined, name: string | null | undefined, first_name: string | null | undefined, last_name: string | null | undefined, headline: string | null | undefined, location: string | null | undefined, profile_picture_url: string | null | undefined, title: string | null | undefined, emails: string[] | null | undefined, twitter_handle: string | null | undefined, github_profile_id: string | null | undefined, skills: string[] | null | undefined, languages: string[] | null | undefined, summary: string | null | undefined, current_positions: { title: string | null | undefined, company_name: string | null | undefined, company_linkedin_url: string | null | undefined, start_date: string | null | undefined, description: string | null | undefined }[] | null | undefined, past_positions: { title: string | null | undefined, company_name: string | null | undefined, start_date: string | null | undefined, end_date: string | null | undefined }[] | null | undefined, education: { institute_name: string | null | undefined, degree_name: string | null | undefined, field_of_study: string | null | undefined }[] | null | undefined }[] | null | undefined // Decision makers at the company,\n// cxos: { linkedin_profile_url: string | null | undefined, linkedin_flagship_url: string | null | undefined, name: string | null | undefined, first_name: string | null | undefined, last_name: string | null | undefined, headline: string | null | undefined, location: string | null | undefined, profile_picture_url: string | null | undefined, title: string | null | undefined, emails: string[] | null | undefined, twitter_handle: string | null | undefined, github_profile_id: string | null | undefined, skills: string[] | null | undefined, languages: string[] | null | undefined, summary: string | null | undefined, current_positions: { title: string | null | undefined, company_name: string | null | undefined, company_linkedin_url: string | null | undefined, start_date: string | null | undefined, description: string | null | undefined }[] | null | undefined, past_positions: { title: string | null | undefined, company_name: string | null | undefined, start_date: string | null | undefined, end_date: string | null | undefined }[] | null | undefined, education: { institute_name: string | null | undefined, degree_name: string | null | undefined, field_of_study: string | null | undefined }[] | null | undefined }[] | null | undefined // C-level executives at the company,\n// founders: { profiles: { linkedin_profile_url: string | null | undefined, linkedin_flagship_url: string | null | undefined, name: string | null | undefined, first_name: string | null | undefined, last_name: string | null | undefined, headline: string | null | undefined, location: string | null | undefined, profile_picture_url: string | null | undefined, title: string | null | undefined, emails: string[] | null | undefined, twitter_handle: string | null | undefined, github_profile_id: string | null | undefined, skills: string[] | null | undefined, languages: string[] | null | undefined, summary: string | null | undefined, current_positions: { title: string | null | undefined, company_name: string | null | undefined, company_linkedin_url: string | null | undefined, start_date: string | null | undefined, description: string | null | undefined }[] | null | undefined, past_positions: { title: string | null | undefined, company_name: string | null | undefined, start_date: string | null | undefined, end_date: string | null | undefined }[] | null | undefined, education: { institute_name: string | null | undefined, degree_name: string | null | undefined, field_of_study: string | null | undefined }[] | null | undefined }[] | null | undefined } | null | undefined // Founders of the company,\n// error: string // Error message if operation failed\n// }\n\n\n// Person Search Db example\nconst crustdata_person_search_db = new CrustdataBubble({\n operation: \"person_search_db\", // Search people in database with advanced filtering (3 credits per 100 results)\n filters: { column: \"example string\" // Field to filter on (e.g., \"current_employers.title\", \"region\"), type: \"=\" // options: \"=\", \"!=\", \"in\", \"not_in\", \">\", \"<\", \"=>\", \"=<\", \"(.)\", \"[.]\", \"geo_distance\" // Filter operator, value: { location: \"example string\" // Center point location name (e.g., \"San Francisco\"), distance: 42 // Radius distance, unit: \"km\" // options: \"km\", \"mi\", \"miles\", \"m\", \"meters\", \"ft\", \"feet\" // Distance unit (default: km) } // Value(s) to match }, // Filter conditions - single condition or nested AND/OR groups\n sorts: [{ column: \"example string\" // Field to sort by (e.g., \"years_of_experience_raw\", \"num_of_connections\"), order: \"asc\" // options: \"asc\", \"desc\" // Sort order }], // Sort criteria to order results\n cursor: \"example string\", // Pagination cursor from previous response\n limit: 20 // default, // Results per page (default: 20, max: 1,000)\n preview: false // default, // Preview mode returns basic profile details (0 credits)\n post_processing: { exclude_profiles: [\"example string\"] // LinkedIn profile URLs to exclude (max 50,000), exclude_names: [\"example string\"] // Names to exclude from results }, // Post-processing options like excluding profiles or names\n});\n\nconst result = await crustdata_person_search_db.action();\n// outputSchema for result.data when operation === 'person_search_db':\n// {\n// operation: \"person_search_db\" // PersonDB search operation,\n// success: boolean // Whether the operation was successful,\n// profiles: { person_id: number | undefined, name: string | null | undefined, first_name: string | null | undefined, last_name: string | null | undefined, headline: string | null | undefined, summary: string | null | undefined, region: string | null | undefined, location_details: { city: string | null | undefined, state: string | null | undefined, country: string | null | undefined, continent: string | null | undefined } | null | undefined, location_city: string | null | undefined, location_state: string | null | undefined, location_country: string | null | undefined, linkedin_profile_url: string | null | undefined, flagship_profile_url: string | null | undefined, profile_picture_url: string | null | undefined, num_of_connections: number | null | undefined, years_of_experience_raw: number | null | undefined, recently_changed_jobs: boolean | null | undefined, skills: string[] | null | undefined, languages: string[] | null | undefined, current_employers: { title: string | null | undefined, company_name: string | null | undefined, name: string | null | undefined, linkedin_id: string | null | undefined, company_linkedin_profile_url: string | null | undefined, company_website_domain: string | null | undefined, company_hq_location: string | null | undefined, company_type: string | null | undefined, company_headcount_latest: number | null | undefined, company_headcount_range: string | null | undefined, company_industries: string[] | null | undefined, seniority_level: string | null | undefined, function_category: string | null | undefined, start_date: string | null | undefined, end_date: string | null | undefined, years_at_company_raw: number | null | undefined, description: string | null | undefined, location: string | null | undefined }[] | null | undefined, past_employers: { title: string | null | undefined, company_name: string | null | undefined, name: string | null | undefined, linkedin_id: string | null | undefined, company_linkedin_profile_url: string | null | undefined, company_website_domain: string | null | undefined, company_hq_location: string | null | undefined, company_type: string | null | undefined, company_headcount_latest: number | null | undefined, company_headcount_range: string | null | undefined, company_industries: string[] | null | undefined, seniority_level: string | null | undefined, function_category: string | null | undefined, start_date: string | null | undefined, end_date: string | null | undefined, years_at_company_raw: number | null | undefined, description: string | null | undefined, location: string | null | undefined }[] | null | undefined, all_employers: { title: string | null | undefined, company_name: string | null | undefined, name: string | null | undefined, linkedin_id: string | null | undefined, company_linkedin_profile_url: string | null | undefined, company_website_domain: string | null | undefined, company_hq_location: string | null | undefined, company_type: string | null | undefined, company_headcount_latest: number | null | undefined, company_headcount_range: string | null | undefined, company_industries: string[] | null | undefined, seniority_level: string | null | undefined, function_category: string | null | undefined, start_date: string | null | undefined, end_date: string | null | undefined, years_at_company_raw: number | null | undefined, description: string | null | undefined, location: string | null | undefined }[] | null | undefined, education_background: { degree_name: string | null | undefined, institute_name: string | null | undefined, field_of_study: string | null | undefined, start_date: string | null | undefined, end_date: string | null | undefined }[] | null | undefined, certifications: { name: string | null | undefined, issued_date: string | null | undefined, issuing_authority: string | null | undefined }[] | null | undefined, honors: { title: string | null | undefined, issued_date: string | null | undefined, issuer: string | null | undefined }[] | null | undefined, emails: string[] | null | undefined, websites: string[] | null | undefined, twitter_handle: string | null | undefined }[] | undefined // Array of people profiles found,\n// total_count: number | undefined // Total number of profiles matching the search criteria,\n// next_cursor: string | undefined // Cursor for fetching the next page of results,\n// error: string // Error message if operation failed\n// }\n\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`crustdata failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
705
+ "usageExample": "// Identify example\nconst crustdata_identify = new CrustdataBubble({\n operation: \"identify\", // Identify a company and get its Crustdata ID (FREE)\n query_company_name: \"example string\", // Company name to search for\n query_company_website: \"example string\", // Company website domain (e.g., \"stripe.com\")\n query_company_linkedin_url: \"example string\", // Company LinkedIn URL\n count: 1 // default, // Maximum number of results to return (default: 1, max: 25)\n});\n\nconst result = await crustdata_identify.action();\n// outputSchema for result.data when operation === 'identify':\n// {\n// operation: \"identify\" // Company identification operation,\n// success: boolean // Whether the operation was successful,\n// results: { company_id: number | null | undefined, company_name: string | null | undefined, linkedin_profile_url: string | null | undefined, company_website_domain: string | null | undefined, linkedin_headcount: number | null | undefined, score: number | null | undefined }[] | undefined // Array of matching companies,\n// error: string // Error message if operation failed\n// }\n\n\n// Enrich example\nconst crustdata_enrich = new CrustdataBubble({\n operation: \"enrich\", // Enrich company data with contacts (1 credit)\n company_domain: \"example string\", // Company website domain (e.g., \"stripe.com\")\n company_linkedin_url: \"example string\", // Company LinkedIn URL\n company_id: 42, // Crustdata company ID (from identify operation)\n fields: \"decision_makers,cxos,founders.profiles\" // default, // Comma-separated fields to retrieve (default: \"decision_makers,cxos,founders.profiles\")\n enrich_realtime: false // default, // If true, fetch fresh data from LinkedIn (slower but more accurate)\n});\n\nconst result = await crustdata_enrich.action();\n// outputSchema for result.data when operation === 'enrich':\n// {\n// operation: \"enrich\" // Company enrichment operation,\n// success: boolean // Whether the operation was successful,\n// company: { name: string | null | undefined, linkedin_id: string | null | undefined, linkedin_profile_url: string | null | undefined, company_website_domain: string | null | undefined, company_website: string | null | undefined, hq_country: string | null | undefined, hq_city: string | null | undefined, year_founded: string | null | undefined, headcount: number | null | undefined, linkedin_headcount: number | null | undefined, linkedin_followers: number | null | undefined, industry: string | null | undefined, description: string | null | undefined, all_industries: string[] | null | undefined, estimated_revenue: string | null | undefined, funding_stage: string | null | undefined, total_funding: string | null | undefined, last_funding_round_date: string | null | undefined, last_funding_round_type: string | null | undefined } | null | undefined // Enriched company information,\n// decision_makers: { linkedin_profile_url: string | null | undefined, linkedin_flagship_url: string | null | undefined, name: string | null | undefined, first_name: string | null | undefined, last_name: string | null | undefined, headline: string | null | undefined, location: string | null | undefined, profile_picture_url: string | null | undefined, title: string | null | undefined, emails: string[] | null | undefined, twitter_handle: string | null | undefined, github_profile_id: string | null | undefined, skills: string[] | null | undefined, languages: string[] | null | undefined, summary: string | null | undefined, current_positions: { title: string | null | undefined, company_name: string | null | undefined, company_linkedin_url: string | null | undefined, start_date: unknown | null | undefined, description: string | null | undefined }[] | null | undefined, past_positions: { title: string | null | undefined, company_name: string | null | undefined, start_date: unknown | null | undefined, end_date: unknown | null | undefined }[] | null | undefined, education: { institute_name: string | null | undefined, degree_name: string | null | undefined, field_of_study: string | null | undefined }[] | null | undefined }[] | null | undefined // Decision makers at the company,\n// cxos: { linkedin_profile_url: string | null | undefined, linkedin_flagship_url: string | null | undefined, name: string | null | undefined, first_name: string | null | undefined, last_name: string | null | undefined, headline: string | null | undefined, location: string | null | undefined, profile_picture_url: string | null | undefined, title: string | null | undefined, emails: string[] | null | undefined, twitter_handle: string | null | undefined, github_profile_id: string | null | undefined, skills: string[] | null | undefined, languages: string[] | null | undefined, summary: string | null | undefined, current_positions: { title: string | null | undefined, company_name: string | null | undefined, company_linkedin_url: string | null | undefined, start_date: unknown | null | undefined, description: string | null | undefined }[] | null | undefined, past_positions: { title: string | null | undefined, company_name: string | null | undefined, start_date: unknown | null | undefined, end_date: unknown | null | undefined }[] | null | undefined, education: { institute_name: string | null | undefined, degree_name: string | null | undefined, field_of_study: string | null | undefined }[] | null | undefined }[] | null | undefined // C-level executives at the company,\n// founders: { profiles: { linkedin_profile_url: string | null | undefined, linkedin_flagship_url: string | null | undefined, name: string | null | undefined, first_name: string | null | undefined, last_name: string | null | undefined, headline: string | null | undefined, location: string | null | undefined, profile_picture_url: string | null | undefined, title: string | null | undefined, emails: string[] | null | undefined, twitter_handle: string | null | undefined, github_profile_id: string | null | undefined, skills: string[] | null | undefined, languages: string[] | null | undefined, summary: string | null | undefined, current_positions: { title: string | null | undefined, company_name: string | null | undefined, company_linkedin_url: string | null | undefined, start_date: unknown | null | undefined, description: string | null | undefined }[] | null | undefined, past_positions: { title: string | null | undefined, company_name: string | null | undefined, start_date: unknown | null | undefined, end_date: unknown | null | undefined }[] | null | undefined, education: { institute_name: string | null | undefined, degree_name: string | null | undefined, field_of_study: string | null | undefined }[] | null | undefined }[] | null | undefined } | null | undefined // Founders of the company,\n// error: string // Error message if operation failed\n// }\n\n\n// Person Search Db example\nconst crustdata_person_search_db = new CrustdataBubble({\n operation: \"person_search_db\", // Search people in database with advanced filtering (3 credits per 100 results)\n filters: { column: \"example string\" // Field to filter on (e.g., \"current_employers.title\", \"region\"), type: \"=\" // options: \"=\", \"!=\", \"in\", \"not_in\", \">\", \"<\", \"=>\", \"=<\", \"(.)\", \"[.]\", \"geo_distance\" // Filter operator, value: { location: \"example string\" // Center point location name (e.g., \"San Francisco\"), distance: 42 // Radius distance, unit: \"km\" // options: \"km\", \"mi\", \"miles\", \"m\", \"meters\", \"ft\", \"feet\" // Distance unit (default: km) } // Value(s) to match }, // Filter conditions - single condition or nested AND/OR groups\n sorts: [{ column: \"example string\" // Field to sort by (e.g., \"years_of_experience_raw\", \"num_of_connections\"), order: \"asc\" // options: \"asc\", \"desc\" // Sort order }], // Sort criteria to order results\n cursor: \"example string\", // Pagination cursor from previous response\n limit: 20 // default, // Results per page (default: 20, max: 1,000)\n preview: false // default, // Preview mode returns basic profile details (0 credits)\n post_processing: { exclude_profiles: [\"example string\"] // LinkedIn profile URLs to exclude (max 50,000), exclude_names: [\"example string\"] // Names to exclude from results }, // Post-processing options like excluding profiles or names\n});\n\nconst result = await crustdata_person_search_db.action();\n// outputSchema for result.data when operation === 'person_search_db':\n// {\n// operation: \"person_search_db\" // PersonDB search operation,\n// success: boolean // Whether the operation was successful,\n// profiles: { person_id: number | undefined, name: string | null | undefined, first_name: string | null | undefined, last_name: string | null | undefined, headline: string | null | undefined, summary: string | null | undefined, region: string | null | undefined, location_details: { city: string | null | undefined, state: string | null | undefined, country: string | null | undefined, continent: string | null | undefined } | null | undefined, location_city: string | null | undefined, location_state: string | null | undefined, location_country: string | null | undefined, linkedin_profile_url: string | null | undefined, flagship_profile_url: string | null | undefined, profile_picture_url: string | null | undefined, num_of_connections: number | null | undefined, years_of_experience_raw: number | null | undefined, recently_changed_jobs: boolean | null | undefined, skills: string[] | null | undefined, languages: string[] | null | undefined, current_employers: { title: string | null | undefined, company_name: string | null | undefined, name: string | null | undefined, linkedin_id: string | null | undefined, company_linkedin_profile_url: string | null | undefined, company_website_domain: string | null | undefined, company_hq_location: string | null | undefined, company_type: string | null | undefined, company_headcount_latest: number | null | undefined, company_headcount_range: string | null | undefined, company_industries: string[] | null | undefined, seniority_level: string | null | undefined, function_category: string | null | undefined, start_date: unknown | null | undefined, end_date: unknown | null | undefined, years_at_company_raw: number | null | undefined, description: string | null | undefined, location: string | null | undefined }[] | null | undefined, past_employers: { title: string | null | undefined, company_name: string | null | undefined, name: string | null | undefined, linkedin_id: string | null | undefined, company_linkedin_profile_url: string | null | undefined, company_website_domain: string | null | undefined, company_hq_location: string | null | undefined, company_type: string | null | undefined, company_headcount_latest: number | null | undefined, company_headcount_range: string | null | undefined, company_industries: string[] | null | undefined, seniority_level: string | null | undefined, function_category: string | null | undefined, start_date: unknown | null | undefined, end_date: unknown | null | undefined, years_at_company_raw: number | null | undefined, description: string | null | undefined, location: string | null | undefined }[] | null | undefined, all_employers: { title: string | null | undefined, company_name: string | null | undefined, name: string | null | undefined, linkedin_id: string | null | undefined, company_linkedin_profile_url: string | null | undefined, company_website_domain: string | null | undefined, company_hq_location: string | null | undefined, company_type: string | null | undefined, company_headcount_latest: number | null | undefined, company_headcount_range: string | null | undefined, company_industries: string[] | null | undefined, seniority_level: string | null | undefined, function_category: string | null | undefined, start_date: unknown | null | undefined, end_date: unknown | null | undefined, years_at_company_raw: number | null | undefined, description: string | null | undefined, location: string | null | undefined }[] | null | undefined, education_background: { degree_name: string | null | undefined, institute_name: string | null | undefined, field_of_study: string | null | undefined, start_date: unknown | null | undefined, end_date: unknown | null | undefined }[] | null | undefined, certifications: { name: string | null | undefined, issued_date: unknown | null | undefined, issuing_authority: string | null | undefined }[] | null | undefined, honors: { title: string | null | undefined, issued_date: unknown | null | undefined, issuer: string | null | undefined }[] | null | undefined, emails: string[] | null | undefined, websites: string[] | null | undefined, twitter_handle: string | null | undefined }[] | undefined // Array of people profiles found,\n// total_count: number | undefined // Total number of profiles matching the search criteria,\n// next_cursor: string | undefined // Cursor for fetching the next page of results,\n// error: string // Error message if operation failed\n// }\n\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`crustdata failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
706
706
  "requiredCredentials": [
707
707
  "CRUSTDATA_API_KEY"
708
708
  ]
@@ -714,8 +714,8 @@
714
714
  "shortDescription": "Get key contacts (executives, decision makers) from any company for lead generation",
715
715
  "useCase": "General purpose bubble for various workflow needs",
716
716
  "inputSchema": "{\n companyIdentifier: string // Company name, domain (e.g., \"stripe.com\"), or LinkedIn URL. Auto-detects type.,\n limit: number | undefined // Maximum contacts to return (default: 10),\n credentials: Record<string, string> | undefined // Required credentials (auto-injected)\n}",
717
- "outputSchema": "{\n contacts: { name: string | null // Full name, title: string | null // Current job title, headline: string | null // LinkedIn headline, linkedinUrl: string | null // LinkedIn profile URL, profilePictureUrl: string | null // Profile picture URL, emails: string[] | null // Email addresses, twitterHandle: string | null // Twitter/X handle, role: \"cxo\" | \"decision_maker\" | \"founder\" // Role classification, location: string | null // Location, skills: string[] | null // Professional skills, languages: string[] | null // Languages spoken, summary: string | null // Professional summary, currentEmployment: { title: string | null // Job title, companyName: string | null // Company name, companyLinkedinUrl: string | null // Company LinkedIn URL, startDate: string | null // Start date, description: string | null // Role description }[] | null // Current employment positions, pastEmployment: { title: string | null // Job title, companyName: string | null // Company name, startDate: string | null // Start date, endDate: string | null // End date }[] | null // Past employment positions, education: { instituteName: string | null // Institution name, degreeName: string | null // Degree name, fieldOfStudy: string | null // Field of study }[] | null // Education history }[] // List of contacts at the company,\n company: { name: string | null // Company name, linkedinUrl: string | null // Company LinkedIn URL, website: string | null // Company website, industry: string | null // Industry, description: string | null // Company description, headcount: number | null // Employee count, hqCity: string | null // Headquarters city, hqCountry: string | null // Headquarters country, yearFounded: number | null // Year founded, fundingStage: string | null // Funding stage, totalFunding: string | null // Total funding raised } | null // Company information,\n totalContacts: number // Total number of contacts found,\n success: boolean // Whether the operation was successful,\n error: string // Error message if operation failed\n}",
718
- "usageExample": "// Example usage of company-enrichment-tool bubble\nconst companyEnrichmentTool = new CompanyEnrichmentTool({\n companyIdentifier: \"example string\", // Company name, domain (e.g., \"stripe.com\"), or LinkedIn URL. Auto-detects type.,\n limit: 10 // default, // Maximum contacts to return (default: 10),\n});\n\nconst result = await companyEnrichmentTool.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// contacts: { name: string | null // Full name, title: string | null // Current job title, headline: string | null // LinkedIn headline, linkedinUrl: string | null // LinkedIn profile URL, profilePictureUrl: string | null // Profile picture URL, emails: string[] | null // Email addresses, twitterHandle: string | null // Twitter/X handle, role: \"cxo\" | \"decision_maker\" | \"founder\" // Role classification, location: string | null // Location, skills: string[] | null // Professional skills, languages: string[] | null // Languages spoken, summary: string | null // Professional summary, currentEmployment: { title: string | null // Job title, companyName: string | null // Company name, companyLinkedinUrl: string | null // Company LinkedIn URL, startDate: string | null // Start date, description: string | null // Role description }[] | null // Current employment positions, pastEmployment: { title: string | null // Job title, companyName: string | null // Company name, startDate: string | null // Start date, endDate: string | null // End date }[] | null // Past employment positions, education: { instituteName: string | null // Institution name, degreeName: string | null // Degree name, fieldOfStudy: string | null // Field of study }[] | null // Education history }[] // List of contacts at the company,\n// company: { name: string | null // Company name, linkedinUrl: string | null // Company LinkedIn URL, website: string | null // Company website, industry: string | null // Industry, description: string | null // Company description, headcount: number | null // Employee count, hqCity: string | null // Headquarters city, hqCountry: string | null // Headquarters country, yearFounded: number | null // Year founded, fundingStage: string | null // Funding stage, totalFunding: string | null // Total funding raised } | null // Company information,\n// totalContacts: number // Total number of contacts found,\n// success: boolean // Whether the operation was successful,\n// error: string // Error message if operation failed\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
717
+ "outputSchema": "{\n contacts: { name: string | null // Full name, title: string | null // Current job title, headline: string | null // LinkedIn headline, linkedinUrl: string | null // LinkedIn profile URL, profilePictureUrl: string | null // Profile picture URL, emails: string[] | null // Email addresses, twitterHandle: string | null // Twitter/X handle, role: \"cxo\" | \"decision_maker\" | \"founder\" // Role classification, location: string | null // Location, skills: string[] | null // Professional skills, languages: string[] | null // Languages spoken, summary: string | null // Professional summary, currentEmployment: { title: string | null // Job title, companyName: string | null // Company name, companyLinkedinUrl: string | null // Company LinkedIn URL, startDate: unknown | null // Start date, description: string | null // Role description }[] | null // Current employment positions, pastEmployment: { title: string | null // Job title, companyName: string | null // Company name, startDate: unknown | null // Start date, endDate: unknown | null // End date }[] | null // Past employment positions, education: { instituteName: string | null // Institution name, degreeName: string | null // Degree name, fieldOfStudy: string | null // Field of study }[] | null // Education history }[] // List of contacts at the company,\n company: { name: string | null // Company name, linkedinUrl: string | null // Company LinkedIn URL, website: string | null // Company website, industry: string | null // Industry, description: string | null // Company description, headcount: number | null // Employee count, hqCity: string | null // Headquarters city, hqCountry: string | null // Headquarters country, yearFounded: number | null // Year founded, fundingStage: string | null // Funding stage, totalFunding: string | null // Total funding raised } | null // Company information,\n totalContacts: number // Total number of contacts found,\n success: boolean // Whether the operation was successful,\n error: string // Error message if operation failed\n}",
718
+ "usageExample": "// Example usage of company-enrichment-tool bubble\nconst companyEnrichmentTool = new CompanyEnrichmentTool({\n companyIdentifier: \"example string\", // Company name, domain (e.g., \"stripe.com\"), or LinkedIn URL. Auto-detects type.,\n limit: 10 // default, // Maximum contacts to return (default: 10),\n});\n\nconst result = await companyEnrichmentTool.action();\n\n// Always check success status before using data\nif (!result.success) {\n throw new Error(`${metadata.name} failed: ${result.error}`);\n}\n\n// outputSchema for result.data:\n// {\n// contacts: { name: string | null // Full name, title: string | null // Current job title, headline: string | null // LinkedIn headline, linkedinUrl: string | null // LinkedIn profile URL, profilePictureUrl: string | null // Profile picture URL, emails: string[] | null // Email addresses, twitterHandle: string | null // Twitter/X handle, role: \"cxo\" | \"decision_maker\" | \"founder\" // Role classification, location: string | null // Location, skills: string[] | null // Professional skills, languages: string[] | null // Languages spoken, summary: string | null // Professional summary, currentEmployment: { title: string | null // Job title, companyName: string | null // Company name, companyLinkedinUrl: string | null // Company LinkedIn URL, startDate: unknown | null // Start date, description: string | null // Role description }[] | null // Current employment positions, pastEmployment: { title: string | null // Job title, companyName: string | null // Company name, startDate: unknown | null // Start date, endDate: unknown | null // End date }[] | null // Past employment positions, education: { instituteName: string | null // Institution name, degreeName: string | null // Degree name, fieldOfStudy: string | null // Field of study }[] | null // Education history }[] // List of contacts at the company,\n// company: { name: string | null // Company name, linkedinUrl: string | null // Company LinkedIn URL, website: string | null // Company website, industry: string | null // Industry, description: string | null // Company description, headcount: number | null // Employee count, hqCity: string | null // Headquarters city, hqCountry: string | null // Headquarters country, yearFounded: number | null // Year founded, fundingStage: string | null // Funding stage, totalFunding: string | null // Total funding raised } | null // Company information,\n// totalContacts: number // Total number of contacts found,\n// success: boolean // Whether the operation was successful,\n// error: string // Error message if operation failed\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
719
719
  "requiredCredentials": [
720
720
  "CRUSTDATA_API_KEY"
721
721
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bubblelab/bubble-core",
3
- "version": "0.1.24",
3
+ "version": "0.1.25",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "main": "./dist/index.js",
@@ -41,7 +41,7 @@
41
41
  "resend": "^4.8.0",
42
42
  "zod": "^3.24.1",
43
43
  "zod-to-json-schema": "^3.24.6",
44
- "@bubblelab/shared-schemas": "0.1.25"
44
+ "@bubblelab/shared-schemas": "0.1.26"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@types/node": "^20.12.12",