@bubblelab/bubble-core 0.1.23 → 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 (51) hide show
  1. package/dist/bubble-bundle.d.ts +55 -55
  2. package/dist/bubbles/service-bubble/agi-inc.d.ts +4 -4
  3. package/dist/bubbles/service-bubble/ai-agent.d.ts +8 -8
  4. package/dist/bubbles/service-bubble/airtable.d.ts +80 -80
  5. package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +9 -9
  6. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +382 -382
  7. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts.map +1 -1
  8. package/dist/bubbles/service-bubble/crustdata/crustdata.js +7 -6
  9. package/dist/bubbles/service-bubble/crustdata/crustdata.js.map +1 -1
  10. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +432 -432
  11. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts.map +1 -1
  12. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.js +15 -9
  13. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.js.map +1 -1
  14. package/dist/bubbles/service-bubble/firecrawl.d.ts +36 -36
  15. package/dist/bubbles/service-bubble/followupboss.d.ts +40 -40
  16. package/dist/bubbles/service-bubble/github.d.ts +52 -52
  17. package/dist/bubbles/service-bubble/gmail.d.ts +114 -114
  18. package/dist/bubbles/service-bubble/google-calendar.d.ts +16 -16
  19. package/dist/bubbles/service-bubble/google-drive.d.ts +14 -14
  20. package/dist/bubbles/service-bubble/google-drive.d.ts.map +1 -1
  21. package/dist/bubbles/service-bubble/google-drive.js +22 -1
  22. package/dist/bubbles/service-bubble/google-drive.js.map +1 -1
  23. package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts +8 -8
  24. package/dist/bubbles/service-bubble/hello-world.d.ts +2 -2
  25. package/dist/bubbles/service-bubble/http.d.ts +8 -8
  26. package/dist/bubbles/service-bubble/notion/notion.d.ts +444 -444
  27. package/dist/bubbles/service-bubble/resend.d.ts +8 -8
  28. package/dist/bubbles/service-bubble/slack/slack.d.ts +132 -132
  29. package/dist/bubbles/service-bubble/storage.d.ts +20 -20
  30. package/dist/bubbles/service-bubble/telegram.d.ts +148 -148
  31. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +8 -8
  32. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +101 -101
  33. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts.map +1 -1
  34. package/dist/bubbles/tool-bubble/company-enrichment-tool.js +29 -8
  35. package/dist/bubbles/tool-bubble/company-enrichment-tool.js.map +1 -1
  36. package/dist/bubbles/tool-bubble/google-maps-tool.d.ts +20 -20
  37. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +44 -44
  38. package/dist/bubbles/tool-bubble/list-bubbles-tool.d.ts +12 -12
  39. package/dist/bubbles/tool-bubble/people-search-tool.d.ts +119 -119
  40. package/dist/bubbles/tool-bubble/people-search-tool.d.ts.map +1 -1
  41. package/dist/bubbles/tool-bubble/people-search-tool.js +31 -10
  42. package/dist/bubbles/tool-bubble/people-search-tool.js.map +1 -1
  43. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +4 -4
  44. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +18 -18
  45. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +4 -4
  46. package/dist/bubbles/tool-bubble/web-search-tool.d.ts +4 -4
  47. package/dist/bubbles/tool-bubble/youtube-tool.d.ts +10 -10
  48. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +8 -8
  49. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +22 -22
  50. package/dist/bubbles.json +7 -7
  51. package/package.json +2 -2
@@ -80,8 +80,8 @@ declare const PDFFormOperationsParamsSchema: z.ZodDiscriminatedUnion<"operation"
80
80
  pages: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
81
81
  credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
82
82
  }, "strip", z.ZodTypeAny, {
83
- operation: "convert-to-images";
84
83
  format: "png" | "jpeg";
84
+ operation: "convert-to-images";
85
85
  quality: number;
86
86
  pdfData: string;
87
87
  dpi: number;
@@ -136,8 +136,8 @@ declare const PDFFormOperationsResultSchema: z.ZodDiscriminatedUnion<"operation"
136
136
  label: z.ZodString;
137
137
  potential_labels: z.ZodArray<z.ZodString, "many">;
138
138
  }, "strip", z.ZodTypeAny, {
139
- type: string;
140
139
  name: string;
140
+ type: string;
141
141
  id: number;
142
142
  width: number;
143
143
  height: number;
@@ -152,8 +152,8 @@ declare const PDFFormOperationsResultSchema: z.ZodDiscriminatedUnion<"operation"
152
152
  field_flags: number;
153
153
  potential_labels: string[];
154
154
  }, {
155
- type: string;
156
155
  name: string;
156
+ type: string;
157
157
  id: number;
158
158
  width: number;
159
159
  height: number;
@@ -174,8 +174,8 @@ declare const PDFFormOperationsResultSchema: z.ZodDiscriminatedUnion<"operation"
174
174
  }, "strip", z.ZodTypeAny, {
175
175
  operation: "discover";
176
176
  fields: {
177
- type: string;
178
177
  name: string;
178
+ type: string;
179
179
  id: number;
180
180
  width: number;
181
181
  height: number;
@@ -196,8 +196,8 @@ declare const PDFFormOperationsResultSchema: z.ZodDiscriminatedUnion<"operation"
196
196
  }, {
197
197
  operation: "discover";
198
198
  fields: {
199
- type: string;
200
199
  name: string;
200
+ type: string;
201
201
  id: number;
202
202
  width: number;
203
203
  height: number;
@@ -408,16 +408,16 @@ declare const PDFFormOperationsResultSchema: z.ZodDiscriminatedUnion<"operation"
408
408
  x: z.ZodNumber;
409
409
  y: z.ZodNumber;
410
410
  }, "strip", z.ZodTypeAny, {
411
+ name: string;
411
412
  value: string;
412
413
  type: string;
413
- name: string;
414
414
  id: number;
415
415
  x: number;
416
416
  y: number;
417
417
  }, {
418
+ name: string;
418
419
  value: string;
419
420
  type: string;
420
- name: string;
421
421
  id: number;
422
422
  x: number;
423
423
  y: number;
@@ -426,9 +426,9 @@ declare const PDFFormOperationsResultSchema: z.ZodDiscriminatedUnion<"operation"
426
426
  pageNumber: number;
427
427
  markdown: string;
428
428
  formFields?: {
429
+ name: string;
429
430
  value: string;
430
431
  type: string;
431
- name: string;
432
432
  id: number;
433
433
  x: number;
434
434
  y: number;
@@ -437,9 +437,9 @@ declare const PDFFormOperationsResultSchema: z.ZodDiscriminatedUnion<"operation"
437
437
  pageNumber: number;
438
438
  markdown: string;
439
439
  formFields?: {
440
+ name: string;
440
441
  value: string;
441
442
  type: string;
442
- name: string;
443
443
  id: number;
444
444
  x: number;
445
445
  y: number;
@@ -457,9 +457,9 @@ declare const PDFFormOperationsResultSchema: z.ZodDiscriminatedUnion<"operation"
457
457
  pageNumber: number;
458
458
  markdown: string;
459
459
  formFields?: {
460
+ name: string;
460
461
  value: string;
461
462
  type: string;
462
- name: string;
463
463
  id: number;
464
464
  x: number;
465
465
  y: number;
@@ -476,9 +476,9 @@ declare const PDFFormOperationsResultSchema: z.ZodDiscriminatedUnion<"operation"
476
476
  pageNumber: number;
477
477
  markdown: string;
478
478
  formFields?: {
479
+ name: string;
479
480
  value: string;
480
481
  type: string;
481
- name: string;
482
482
  id: number;
483
483
  x: number;
484
484
  y: number;
@@ -562,8 +562,8 @@ export declare class PDFFormOperationsWorkflow<T extends PDFFormOperationsParams
562
562
  pages: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
563
563
  credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
564
564
  }, "strip", z.ZodTypeAny, {
565
- operation: "convert-to-images";
566
565
  format: "png" | "jpeg";
566
+ operation: "convert-to-images";
567
567
  quality: number;
568
568
  pdfData: string;
569
569
  dpi: number;
@@ -615,8 +615,8 @@ export declare class PDFFormOperationsWorkflow<T extends PDFFormOperationsParams
615
615
  label: z.ZodString;
616
616
  potential_labels: z.ZodArray<z.ZodString, "many">;
617
617
  }, "strip", z.ZodTypeAny, {
618
- type: string;
619
618
  name: string;
619
+ type: string;
620
620
  id: number;
621
621
  width: number;
622
622
  height: number;
@@ -631,8 +631,8 @@ export declare class PDFFormOperationsWorkflow<T extends PDFFormOperationsParams
631
631
  field_flags: number;
632
632
  potential_labels: string[];
633
633
  }, {
634
- type: string;
635
634
  name: string;
635
+ type: string;
636
636
  id: number;
637
637
  width: number;
638
638
  height: number;
@@ -653,8 +653,8 @@ export declare class PDFFormOperationsWorkflow<T extends PDFFormOperationsParams
653
653
  }, "strip", z.ZodTypeAny, {
654
654
  operation: "discover";
655
655
  fields: {
656
- type: string;
657
656
  name: string;
657
+ type: string;
658
658
  id: number;
659
659
  width: number;
660
660
  height: number;
@@ -675,8 +675,8 @@ export declare class PDFFormOperationsWorkflow<T extends PDFFormOperationsParams
675
675
  }, {
676
676
  operation: "discover";
677
677
  fields: {
678
- type: string;
679
678
  name: string;
679
+ type: string;
680
680
  id: number;
681
681
  width: number;
682
682
  height: number;
@@ -887,16 +887,16 @@ export declare class PDFFormOperationsWorkflow<T extends PDFFormOperationsParams
887
887
  x: z.ZodNumber;
888
888
  y: z.ZodNumber;
889
889
  }, "strip", z.ZodTypeAny, {
890
+ name: string;
890
891
  value: string;
891
892
  type: string;
892
- name: string;
893
893
  id: number;
894
894
  x: number;
895
895
  y: number;
896
896
  }, {
897
+ name: string;
897
898
  value: string;
898
899
  type: string;
899
- name: string;
900
900
  id: number;
901
901
  x: number;
902
902
  y: number;
@@ -905,9 +905,9 @@ export declare class PDFFormOperationsWorkflow<T extends PDFFormOperationsParams
905
905
  pageNumber: number;
906
906
  markdown: string;
907
907
  formFields?: {
908
+ name: string;
908
909
  value: string;
909
910
  type: string;
910
- name: string;
911
911
  id: number;
912
912
  x: number;
913
913
  y: number;
@@ -916,9 +916,9 @@ export declare class PDFFormOperationsWorkflow<T extends PDFFormOperationsParams
916
916
  pageNumber: number;
917
917
  markdown: string;
918
918
  formFields?: {
919
+ name: string;
919
920
  value: string;
920
921
  type: string;
921
- name: string;
922
922
  id: number;
923
923
  x: number;
924
924
  y: number;
@@ -936,9 +936,9 @@ export declare class PDFFormOperationsWorkflow<T extends PDFFormOperationsParams
936
936
  pageNumber: number;
937
937
  markdown: string;
938
938
  formFields?: {
939
+ name: string;
939
940
  value: string;
940
941
  type: string;
941
- name: string;
942
942
  id: number;
943
943
  x: number;
944
944
  y: number;
@@ -955,9 +955,9 @@ export declare class PDFFormOperationsWorkflow<T extends PDFFormOperationsParams
955
955
  pageNumber: number;
956
956
  markdown: string;
957
957
  formFields?: {
958
+ name: string;
958
959
  value: string;
959
960
  type: string;
960
- name: string;
961
961
  id: number;
962
962
  x: number;
963
963
  y: number;
package/dist/bubbles.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "1.0.0",
3
- "generatedAt": "2026-01-20T07:54:59.350Z",
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.23",
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.24"
44
+ "@bubblelab/shared-schemas": "0.1.26"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@types/node": "^20.12.12",