@bubblelab/bubble-core 0.1.141 → 0.1.143
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bubble-bundle.d.ts +181 -118
- package/dist/bubble-factory.d.ts.map +1 -1
- package/dist/bubble-factory.js +9 -1
- package/dist/bubble-factory.js.map +1 -1
- package/dist/bubble-flow/bubble-flow-class.d.ts +4 -0
- package/dist/bubble-flow/bubble-flow-class.d.ts.map +1 -1
- package/dist/bubble-flow/bubble-flow-class.js +1 -0
- package/dist/bubble-flow/bubble-flow-class.js.map +1 -1
- package/dist/bubbles/service-bubble/agi-inc.d.ts +140 -140
- package/dist/bubbles/service-bubble/ai-agent.d.ts +4 -4
- package/dist/bubbles/service-bubble/ai-agent.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/ai-agent.js +7 -0
- package/dist/bubbles/service-bubble/ai-agent.js.map +1 -1
- package/dist/bubbles/service-bubble/airtable.d.ts +158 -158
- package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.d.ts +6 -6
- package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-detail.d.ts +806 -0
- package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-detail.d.ts.map +1 -0
- package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-detail.js +256 -0
- package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-detail.js.map +1 -0
- package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +813 -6
- package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/apify/apify-scraper.schema.js +8 -0
- package/dist/bubbles/service-bubble/apify/apify-scraper.schema.js.map +1 -1
- package/dist/bubbles/service-bubble/apify/apify.d.ts +13 -13
- package/dist/bubbles/service-bubble/apify/apify.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/apify/apify.js +1 -0
- package/dist/bubbles/service-bubble/apify/apify.js.map +1 -1
- package/dist/bubbles/service-bubble/ashby/ashby.d.ts +64 -64
- package/dist/bubbles/service-bubble/ashby/ashby.schema.d.ts +6 -6
- package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +44 -37
- package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/browserbase/browserbase.js +66 -3
- package/dist/bubbles/service-bubble/browserbase/browserbase.js.map +1 -1
- package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts +59 -16
- package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts.map +1 -1
- package/dist/bubbles/service-bubble/browserbase/browserbase.schema.js +19 -0
- package/dist/bubbles/service-bubble/browserbase/browserbase.schema.js.map +1 -1
- package/dist/bubbles/service-bubble/confluence/confluence.d.ts +26 -26
- package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +96 -96
- package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +24 -24
- package/dist/bubbles/service-bubble/eleven-labs.d.ts +24 -24
- package/dist/bubbles/service-bubble/firecrawl.d.ts +244 -244
- package/dist/bubbles/service-bubble/followupboss.d.ts +152 -152
- package/dist/bubbles/service-bubble/fullenrich/fullenrich.d.ts +44 -44
- package/dist/bubbles/service-bubble/fullenrich/fullenrich.schema.d.ts +62 -62
- package/dist/bubbles/service-bubble/github.d.ts +148 -148
- package/dist/bubbles/service-bubble/gmail.d.ts +556 -556
- package/dist/bubbles/service-bubble/google-calendar.d.ts +34 -34
- package/dist/bubbles/service-bubble/google-drive.d.ts +102 -102
- package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts +30 -30
- package/dist/bubbles/service-bubble/http.d.ts +20 -20
- package/dist/bubbles/service-bubble/jira/jira.d.ts +92 -92
- package/dist/bubbles/service-bubble/jira/jira.schema.d.ts +2 -2
- package/dist/bubbles/service-bubble/notion/notion.d.ts +647 -647
- package/dist/bubbles/service-bubble/resend.d.ts +32 -32
- package/dist/bubbles/service-bubble/slack/slack.d.ts +496 -496
- package/dist/bubbles/service-bubble/slack/slack.js +2 -2
- package/dist/bubbles/service-bubble/slack/slack.js.map +1 -1
- package/dist/bubbles/service-bubble/storage.d.ts +20 -20
- package/dist/bubbles/service-bubble/stripe/stripe.d.ts +87 -87
- package/dist/bubbles/service-bubble/telegram.d.ts +108 -108
- package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +18 -18
- package/dist/bubbles/tool-bubble/browser-tools/_shared/schema.d.ts +126 -0
- package/dist/bubbles/tool-bubble/browser-tools/_shared/schema.d.ts.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/_shared/schema.js +34 -0
- package/dist/bubbles/tool-bubble/browser-tools/_shared/schema.js.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/_shared/utils.d.ts +22 -0
- package/dist/bubbles/tool-bubble/browser-tools/_shared/utils.d.ts.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/_shared/utils.js +57 -0
- package/dist/bubbles/tool-bubble/browser-tools/_shared/utils.js.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/index.d.ts +5 -0
- package/dist/bubbles/tool-bubble/browser-tools/index.d.ts.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/index.js +5 -0
- package/dist/bubbles/tool-bubble/browser-tools/index.js.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/index.d.ts +3 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/index.d.ts.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/index.js +3 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/index.js.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/schema.d.ts +158 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/schema.d.ts.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/schema.js +33 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/schema.js.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/tool.d.ts +161 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/tool.d.ts.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/tool.js +310 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-accept-invitations/tool.js.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/index.d.ts +3 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/index.d.ts.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/index.js +3 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/index.js.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/schema.d.ts +165 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/schema.d.ts.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/schema.js +45 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/schema.js.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/tool.d.ts +171 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/tool.d.ts.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/tool.js +364 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-connection/tool.js.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/index.d.ts +3 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/index.d.ts.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/index.js +3 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/index.js.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/schema.d.ts +160 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/schema.d.ts.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/schema.js +24 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/schema.js.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/tool.d.ts +160 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/tool.d.ts.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/tool.js +334 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-received-invitations/tool.js.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/index.d.ts +3 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/index.d.ts.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/index.js +3 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/index.js.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/schema.d.ts +152 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/schema.d.ts.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/schema.js +23 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/schema.js.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/tool.d.ts +155 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/tool.d.ts.map +1 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/tool.js +233 -0
- package/dist/bubbles/tool-bubble/browser-tools/linkedin-sent-invitations/tool.js.map +1 -0
- package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +64 -64
- package/dist/bubbles/tool-bubble/google-maps-tool.d.ts +16 -16
- package/dist/bubbles/tool-bubble/instagram-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/linkedin-connection-tool/linkedin-connection-tool.d.ts +2 -2
- package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +1634 -196
- package/dist/bubbles/tool-bubble/linkedin-tool.d.ts.map +1 -1
- package/dist/bubbles/tool-bubble/linkedin-tool.js +300 -56
- package/dist/bubbles/tool-bubble/linkedin-tool.js.map +1 -1
- package/dist/bubbles/tool-bubble/list-capabilities-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/people-search-tool.d.ts +108 -108
- package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +10 -10
- package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +24 -24
- package/dist/bubbles/tool-bubble/twitter-tool.d.ts +14 -14
- package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +4 -4
- package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +8 -8
- package/dist/bubbles/tool-bubble/web-search-tool.d.ts +2 -2
- package/dist/bubbles/tool-bubble/yc-scraper-tool.d.ts +32 -32
- package/dist/bubbles/tool-bubble/youtube-tool.d.ts +14 -14
- package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +58 -58
- package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +16 -16
- package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +2 -2
- package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +46 -46
- package/dist/bubbles.json +1148 -75
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/bubbles.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": "2.0.0",
|
|
3
|
-
"generatedAt": "2026-02-
|
|
4
|
-
"totalCount":
|
|
3
|
+
"generatedAt": "2026-02-10T22:41:23.863Z",
|
|
4
|
+
"totalCount": 64,
|
|
5
5
|
"bubbles": [
|
|
6
6
|
{
|
|
7
7
|
"name": "hello-world",
|
|
@@ -36391,20 +36391,25 @@
|
|
|
36391
36391
|
"name": "linkedin-tool",
|
|
36392
36392
|
"alias": "li",
|
|
36393
36393
|
"type": "tool",
|
|
36394
|
-
"shortDescription": "
|
|
36395
|
-
"useCase": "
|
|
36396
|
-
"outputSchema": "{\n operation: \"scrapePosts\" | \"searchPosts\" | \"scrapeJobs\" // Operation that was performed,\n jobs: { id: string | null // Job ID, title: string | null // Job title, company: { name: string | null, url: string | null, logo: string | null } | null // Company info, location: string | null // Job location, description: string | null // Job description, employmentType: string | null // Employment type, seniorityLevel: string | null // Seniority level, postedAt: string | null // Posted date, url: string | null // Job URL, applyUrl: string | null // Apply URL, salary: { from: number | null, to: number | null, currency: string | null, period: string | null } | null // Salary info, skills: string[] | null // Required skills }[] | undefined // Array of LinkedIn jobs,\n posts: { urn: string | null // Post URN, fullUrn: string | null // Full URN with prefix, postedAt: { date: string | null // Post date (formatted string), relative: string | null // Relative time (e.g., \"2 days ago\"), timestamp: number | null // Unix timestamp in milliseconds } | null // When post was created, text: string | null // Post text content, url: string | null // Post URL, postType: string | null // Post type (regular, quote, etc), author: { firstName: string | null // Author first name, lastName: string | null // Author last name, headline: string | null // Author headline/title, username: string | null // Author username, profileUrl: string | null // Author profile URL, profilePicture: string | null // Author profile picture URL } | null // Post author information, stats: { totalReactions: number | null // Total number of reactions, like: number | null // Number of likes, support: number | null // Number of support reactions, love: number | null // Number of love reactions, insight: number | null // Number of insight reactions, celebrate: number | null // Number of celebrate reactions, funny: number | null // Number of funny reactions, comments: number | null // Number of comments, reposts: number | null // Number of reposts } | null // Post engagement statistics, media: { type: string | null // Media type (image, video, images), url: string | null // Media URL, thumbnail: string | null // Media thumbnail URL, images: { url: string | null, width: number | null, height: number | null }[] | null // Array of images for multi-image posts } | null // Post media content, article: { url: string | null, title: string | null, subtitle: string | null, thumbnail: string | null } | null // Shared article information, document: { title: string | null, pageCount: number | null, url: string | null, thumbnail: string | null } | null // Shared document information, resharedPost: { urn: string | null, postedAt: { date: string | null // Post date (formatted string), relative: string | null // Relative time (e.g., \"2 days ago\"), timestamp: number | null // Unix timestamp in milliseconds } | null, text: string | null, url: string | null, postType: string | null, author: { firstName: string | null // Author first name, lastName: string | null // Author last name, headline: string | null // Author headline/title, username: string | null // Author username, profileUrl: string | null // Author profile URL, profilePicture: string | null // Author profile picture URL } | null, stats: { totalReactions: number | null // Total number of reactions, like: number | null // Number of likes, support: number | null // Number of support reactions, love: number | null // Number of love reactions, insight: number | null // Number of insight reactions, celebrate: number | null // Number of celebrate reactions, funny: number | null // Number of funny reactions, comments: number | null // Number of comments, reposts: number | null // Number of reposts } | null, media: { type: string | null // Media type (image, video, images), url: string | null // Media URL, thumbnail: string | null // Media thumbnail URL, images: { url: string | null, width: number | null, height: number | null }[] | null // Array of images for multi-image posts } | null } | null // Original post that was reshared }[] // Array of LinkedIn posts,\n username: string | undefined // LinkedIn username that was scraped (only for scrapePosts operation),\n paginationToken: string | null | undefined // Token for fetching next page of results (only for scrapePosts operation),\n keyword: string | undefined // Search keyword that was used (only for searchPosts operation),\n totalResults: number | null | undefined // Total results available (only for searchPosts operation),\n hasNextPage: boolean | null | undefined // Whether there are more results (only for searchPosts operation),\n totalPosts: number // Total number of posts found,\n success: boolean // Whether the operation was successful,\n error: string // Error message if operation failed\n}",
|
|
36394
|
+
"shortDescription": "Look up LinkedIn profiles by URL, scrape posts by profile, or search posts/jobs by keyword.",
|
|
36395
|
+
"useCase": "General purpose bubble for various workflow needs",
|
|
36396
|
+
"outputSchema": "{\n operation: \"scrapeProfile\" | \"scrapePosts\" | \"searchPosts\" | \"scrapeJobs\" // Operation that was performed,\n profile: { id: string | null // LinkedIn member ID, publicIdentifier: string | null // Profile slug (e.g., \"williamhgates\"), linkedinUrl: string | null // Full LinkedIn profile URL, firstName: string | null // First name, lastName: string | null // Last name, headline: string | null // Profile headline, about: string | null // About/summary section, openToWork: boolean | null // Whether open to work, hiring: boolean | null // Whether actively hiring, photo: string | null // Profile photo URL, premium: boolean | null // Whether premium subscriber, influencer: boolean | null // Whether LinkedIn influencer, location: { text: string | null // Location text, countryCode: string | null // Country code, country: string | null // Country, state: string | null // State/region, city: string | null // City } | null // Location information, verified: boolean | null // Whether profile is verified, topSkills: string | null // Top skills summary, connectionsCount: number | null // Number of connections, followerCount: number | null // Number of followers, currentPosition: { companyName: string | null }[] | null // Current company/position, experience: { position: string | null // Job title/position, location: string | null // Job location, employmentType: string | null // Employment type, workplaceType: string | null // Workplace type, companyName: string | null // Company name, companyLinkedinUrl: string | null // Company LinkedIn URL, duration: string | null // Duration text, description: string | null // Role description, skills: string[] | null // Skills for this role, startDate: { month: string | null // Month name, year: number | null // Year, text: string | null // Formatted date text } | null // Start date, endDate: { month: string | null // Month name, year: number | null // Year, text: string | null // Formatted date text } | null // End date }[] | null // Work experience history, education: { schoolName: string | null // School name, schoolLinkedinUrl: string | null // School LinkedIn URL, degree: string | null // Degree type, fieldOfStudy: string | null // Field of study, startDate: { month: string | null // Month name, year: number | null // Year, text: string | null // Formatted date text } | null // Start date, endDate: { month: string | null // Month name, year: number | null // Year, text: string | null // Formatted date text } | null // End date, period: string | null // Period text }[] | null // Education history, certifications: { title: string | null, issuedAt: string | null, issuedBy: string | null }[] | null // Certifications, languages: { name: string | null, proficiency: string | null }[] | null // Languages, skills: { name: string | null }[] | null // All skills } | null | undefined // LinkedIn profile data (only for scrapeProfile operation),\n jobs: { id: string | null // Job ID, title: string | null // Job title, company: { name: string | null, url: string | null, logo: string | null } | null // Company info, location: string | null // Job location, description: string | null // Job description, employmentType: string | null // Employment type, seniorityLevel: string | null // Seniority level, postedAt: string | null // Posted date, url: string | null // Job URL, applyUrl: string | null // Apply URL, salary: { from: number | null, to: number | null, currency: string | null, period: string | null } | null // Salary info, skills: string[] | null // Required skills }[] | undefined // Array of LinkedIn jobs,\n posts: { urn: string | null // Post URN, fullUrn: string | null // Full URN with prefix, postedAt: { date: string | null // Post date (formatted string), relative: string | null // Relative time (e.g., \"2 days ago\"), timestamp: number | null // Unix timestamp in milliseconds } | null // When post was created, text: string | null // Post text content, url: string | null // Post URL, postType: string | null // Post type (regular, quote, etc), author: { firstName: string | null // Author first name, lastName: string | null // Author last name, headline: string | null // Author headline/title, username: string | null // Author username, profileUrl: string | null // Author profile URL, profilePicture: string | null // Author profile picture URL } | null // Post author information, stats: { totalReactions: number | null // Total number of reactions, like: number | null // Number of likes, support: number | null // Number of support reactions, love: number | null // Number of love reactions, insight: number | null // Number of insight reactions, celebrate: number | null // Number of celebrate reactions, funny: number | null // Number of funny reactions, comments: number | null // Number of comments, reposts: number | null // Number of reposts } | null // Post engagement statistics, media: { type: string | null // Media type (image, video, images), url: string | null // Media URL, thumbnail: string | null // Media thumbnail URL, images: { url: string | null, width: number | null, height: number | null }[] | null // Array of images for multi-image posts } | null // Post media content, article: { url: string | null, title: string | null, subtitle: string | null, thumbnail: string | null } | null // Shared article information, document: { title: string | null, pageCount: number | null, url: string | null, thumbnail: string | null } | null // Shared document information, resharedPost: { urn: string | null, postedAt: { date: string | null // Post date (formatted string), relative: string | null // Relative time (e.g., \"2 days ago\"), timestamp: number | null // Unix timestamp in milliseconds } | null, text: string | null, url: string | null, postType: string | null, author: { firstName: string | null // Author first name, lastName: string | null // Author last name, headline: string | null // Author headline/title, username: string | null // Author username, profileUrl: string | null // Author profile URL, profilePicture: string | null // Author profile picture URL } | null, stats: { totalReactions: number | null // Total number of reactions, like: number | null // Number of likes, support: number | null // Number of support reactions, love: number | null // Number of love reactions, insight: number | null // Number of insight reactions, celebrate: number | null // Number of celebrate reactions, funny: number | null // Number of funny reactions, comments: number | null // Number of comments, reposts: number | null // Number of reposts } | null, media: { type: string | null // Media type (image, video, images), url: string | null // Media URL, thumbnail: string | null // Media thumbnail URL, images: { url: string | null, width: number | null, height: number | null }[] | null // Array of images for multi-image posts } | null } | null // Original post that was reshared }[] // Array of LinkedIn posts,\n username: string | undefined // LinkedIn username that was scraped (only for scrapePosts operation),\n paginationToken: string | null | undefined // Token for fetching next page of results (only for scrapePosts operation),\n keyword: string | undefined // Search keyword that was used (only for searchPosts operation),\n totalResults: number | null | undefined // Total results available (only for searchPosts operation),\n hasNextPage: boolean | null | undefined // Whether there are more results (only for searchPosts operation),\n totalPosts: number // Total number of posts found,\n success: boolean // Whether the operation was successful,\n error: string // Error message if operation failed\n}",
|
|
36397
36397
|
"inputJsonSchema": {
|
|
36398
36398
|
"type": "object",
|
|
36399
36399
|
"properties": {
|
|
36400
36400
|
"operation": {
|
|
36401
36401
|
"type": "string",
|
|
36402
36402
|
"enum": [
|
|
36403
|
+
"scrapeProfile",
|
|
36403
36404
|
"scrapePosts",
|
|
36404
36405
|
"searchPosts",
|
|
36405
36406
|
"scrapeJobs"
|
|
36406
36407
|
],
|
|
36407
|
-
"description": "Operation to perform: scrapePosts (
|
|
36408
|
+
"description": "Operation to perform: scrapeProfile (get profile info from LinkedIn URL), scrapePosts (get posts from a profile), searchPosts (search posts by keyword), or scrapeJobs (search jobs)"
|
|
36409
|
+
},
|
|
36410
|
+
"profileUrl": {
|
|
36411
|
+
"type": "string",
|
|
36412
|
+
"description": "LinkedIn profile URL or username (for scrapeProfile operation). Examples: \"https://www.linkedin.com/in/williamhgates\", \"williamhgates\""
|
|
36408
36413
|
},
|
|
36409
36414
|
"username": {
|
|
36410
36415
|
"type": "string",
|
|
@@ -36508,12 +36513,482 @@
|
|
|
36508
36513
|
"operation": {
|
|
36509
36514
|
"type": "string",
|
|
36510
36515
|
"enum": [
|
|
36516
|
+
"scrapeProfile",
|
|
36511
36517
|
"scrapePosts",
|
|
36512
36518
|
"searchPosts",
|
|
36513
36519
|
"scrapeJobs"
|
|
36514
36520
|
],
|
|
36515
36521
|
"description": "Operation that was performed"
|
|
36516
36522
|
},
|
|
36523
|
+
"profile": {
|
|
36524
|
+
"type": "object",
|
|
36525
|
+
"properties": {
|
|
36526
|
+
"id": {
|
|
36527
|
+
"type": "string",
|
|
36528
|
+
"nullable": true,
|
|
36529
|
+
"description": "LinkedIn member ID"
|
|
36530
|
+
},
|
|
36531
|
+
"publicIdentifier": {
|
|
36532
|
+
"type": "string",
|
|
36533
|
+
"nullable": true,
|
|
36534
|
+
"description": "Profile slug (e.g., \"williamhgates\")"
|
|
36535
|
+
},
|
|
36536
|
+
"linkedinUrl": {
|
|
36537
|
+
"type": "string",
|
|
36538
|
+
"nullable": true,
|
|
36539
|
+
"description": "Full LinkedIn profile URL"
|
|
36540
|
+
},
|
|
36541
|
+
"firstName": {
|
|
36542
|
+
"type": "string",
|
|
36543
|
+
"nullable": true,
|
|
36544
|
+
"description": "First name"
|
|
36545
|
+
},
|
|
36546
|
+
"lastName": {
|
|
36547
|
+
"type": "string",
|
|
36548
|
+
"nullable": true,
|
|
36549
|
+
"description": "Last name"
|
|
36550
|
+
},
|
|
36551
|
+
"headline": {
|
|
36552
|
+
"type": "string",
|
|
36553
|
+
"nullable": true,
|
|
36554
|
+
"description": "Profile headline"
|
|
36555
|
+
},
|
|
36556
|
+
"about": {
|
|
36557
|
+
"type": "string",
|
|
36558
|
+
"nullable": true,
|
|
36559
|
+
"description": "About/summary section"
|
|
36560
|
+
},
|
|
36561
|
+
"openToWork": {
|
|
36562
|
+
"type": "boolean",
|
|
36563
|
+
"nullable": true,
|
|
36564
|
+
"description": "Whether open to work"
|
|
36565
|
+
},
|
|
36566
|
+
"hiring": {
|
|
36567
|
+
"type": "boolean",
|
|
36568
|
+
"nullable": true,
|
|
36569
|
+
"description": "Whether actively hiring"
|
|
36570
|
+
},
|
|
36571
|
+
"photo": {
|
|
36572
|
+
"type": "string",
|
|
36573
|
+
"nullable": true,
|
|
36574
|
+
"description": "Profile photo URL"
|
|
36575
|
+
},
|
|
36576
|
+
"premium": {
|
|
36577
|
+
"type": "boolean",
|
|
36578
|
+
"nullable": true,
|
|
36579
|
+
"description": "Whether premium subscriber"
|
|
36580
|
+
},
|
|
36581
|
+
"influencer": {
|
|
36582
|
+
"type": "boolean",
|
|
36583
|
+
"nullable": true,
|
|
36584
|
+
"description": "Whether LinkedIn influencer"
|
|
36585
|
+
},
|
|
36586
|
+
"location": {
|
|
36587
|
+
"type": "object",
|
|
36588
|
+
"properties": {
|
|
36589
|
+
"text": {
|
|
36590
|
+
"type": "string",
|
|
36591
|
+
"nullable": true,
|
|
36592
|
+
"description": "Location text"
|
|
36593
|
+
},
|
|
36594
|
+
"countryCode": {
|
|
36595
|
+
"type": "string",
|
|
36596
|
+
"nullable": true,
|
|
36597
|
+
"description": "Country code"
|
|
36598
|
+
},
|
|
36599
|
+
"country": {
|
|
36600
|
+
"type": "string",
|
|
36601
|
+
"nullable": true,
|
|
36602
|
+
"description": "Country"
|
|
36603
|
+
},
|
|
36604
|
+
"state": {
|
|
36605
|
+
"type": "string",
|
|
36606
|
+
"nullable": true,
|
|
36607
|
+
"description": "State/region"
|
|
36608
|
+
},
|
|
36609
|
+
"city": {
|
|
36610
|
+
"type": "string",
|
|
36611
|
+
"nullable": true,
|
|
36612
|
+
"description": "City"
|
|
36613
|
+
}
|
|
36614
|
+
},
|
|
36615
|
+
"required": [
|
|
36616
|
+
"text",
|
|
36617
|
+
"countryCode",
|
|
36618
|
+
"country",
|
|
36619
|
+
"state",
|
|
36620
|
+
"city"
|
|
36621
|
+
],
|
|
36622
|
+
"additionalProperties": false,
|
|
36623
|
+
"nullable": true,
|
|
36624
|
+
"description": "Location information"
|
|
36625
|
+
},
|
|
36626
|
+
"verified": {
|
|
36627
|
+
"type": "boolean",
|
|
36628
|
+
"nullable": true,
|
|
36629
|
+
"description": "Whether profile is verified"
|
|
36630
|
+
},
|
|
36631
|
+
"topSkills": {
|
|
36632
|
+
"type": "string",
|
|
36633
|
+
"nullable": true,
|
|
36634
|
+
"description": "Top skills summary"
|
|
36635
|
+
},
|
|
36636
|
+
"connectionsCount": {
|
|
36637
|
+
"type": "number",
|
|
36638
|
+
"nullable": true,
|
|
36639
|
+
"description": "Number of connections"
|
|
36640
|
+
},
|
|
36641
|
+
"followerCount": {
|
|
36642
|
+
"type": "number",
|
|
36643
|
+
"nullable": true,
|
|
36644
|
+
"description": "Number of followers"
|
|
36645
|
+
},
|
|
36646
|
+
"currentPosition": {
|
|
36647
|
+
"type": "array",
|
|
36648
|
+
"items": {
|
|
36649
|
+
"type": "object",
|
|
36650
|
+
"properties": {
|
|
36651
|
+
"companyName": {
|
|
36652
|
+
"type": "string",
|
|
36653
|
+
"nullable": true
|
|
36654
|
+
}
|
|
36655
|
+
},
|
|
36656
|
+
"required": [
|
|
36657
|
+
"companyName"
|
|
36658
|
+
],
|
|
36659
|
+
"additionalProperties": false
|
|
36660
|
+
},
|
|
36661
|
+
"nullable": true,
|
|
36662
|
+
"description": "Current company/position"
|
|
36663
|
+
},
|
|
36664
|
+
"experience": {
|
|
36665
|
+
"type": "array",
|
|
36666
|
+
"items": {
|
|
36667
|
+
"type": "object",
|
|
36668
|
+
"properties": {
|
|
36669
|
+
"position": {
|
|
36670
|
+
"type": "string",
|
|
36671
|
+
"nullable": true,
|
|
36672
|
+
"description": "Job title/position"
|
|
36673
|
+
},
|
|
36674
|
+
"location": {
|
|
36675
|
+
"type": "string",
|
|
36676
|
+
"nullable": true,
|
|
36677
|
+
"description": "Job location"
|
|
36678
|
+
},
|
|
36679
|
+
"employmentType": {
|
|
36680
|
+
"type": "string",
|
|
36681
|
+
"nullable": true,
|
|
36682
|
+
"description": "Employment type"
|
|
36683
|
+
},
|
|
36684
|
+
"workplaceType": {
|
|
36685
|
+
"type": "string",
|
|
36686
|
+
"nullable": true,
|
|
36687
|
+
"description": "Workplace type"
|
|
36688
|
+
},
|
|
36689
|
+
"companyName": {
|
|
36690
|
+
"type": "string",
|
|
36691
|
+
"nullable": true,
|
|
36692
|
+
"description": "Company name"
|
|
36693
|
+
},
|
|
36694
|
+
"companyLinkedinUrl": {
|
|
36695
|
+
"type": "string",
|
|
36696
|
+
"nullable": true,
|
|
36697
|
+
"description": "Company LinkedIn URL"
|
|
36698
|
+
},
|
|
36699
|
+
"duration": {
|
|
36700
|
+
"type": "string",
|
|
36701
|
+
"nullable": true,
|
|
36702
|
+
"description": "Duration text"
|
|
36703
|
+
},
|
|
36704
|
+
"description": {
|
|
36705
|
+
"type": "string",
|
|
36706
|
+
"nullable": true,
|
|
36707
|
+
"description": "Role description"
|
|
36708
|
+
},
|
|
36709
|
+
"skills": {
|
|
36710
|
+
"type": "array",
|
|
36711
|
+
"items": {
|
|
36712
|
+
"type": "string"
|
|
36713
|
+
},
|
|
36714
|
+
"nullable": true,
|
|
36715
|
+
"description": "Skills for this role"
|
|
36716
|
+
},
|
|
36717
|
+
"startDate": {
|
|
36718
|
+
"type": "object",
|
|
36719
|
+
"properties": {
|
|
36720
|
+
"month": {
|
|
36721
|
+
"type": "string",
|
|
36722
|
+
"nullable": true,
|
|
36723
|
+
"description": "Month name"
|
|
36724
|
+
},
|
|
36725
|
+
"year": {
|
|
36726
|
+
"type": "number",
|
|
36727
|
+
"nullable": true,
|
|
36728
|
+
"description": "Year"
|
|
36729
|
+
},
|
|
36730
|
+
"text": {
|
|
36731
|
+
"type": "string",
|
|
36732
|
+
"nullable": true,
|
|
36733
|
+
"description": "Formatted date text"
|
|
36734
|
+
}
|
|
36735
|
+
},
|
|
36736
|
+
"required": [
|
|
36737
|
+
"month",
|
|
36738
|
+
"year",
|
|
36739
|
+
"text"
|
|
36740
|
+
],
|
|
36741
|
+
"additionalProperties": false,
|
|
36742
|
+
"nullable": true,
|
|
36743
|
+
"description": "Start date"
|
|
36744
|
+
},
|
|
36745
|
+
"endDate": {
|
|
36746
|
+
"type": "object",
|
|
36747
|
+
"properties": {
|
|
36748
|
+
"month": {
|
|
36749
|
+
"type": "string",
|
|
36750
|
+
"nullable": true,
|
|
36751
|
+
"description": "Month name"
|
|
36752
|
+
},
|
|
36753
|
+
"year": {
|
|
36754
|
+
"type": "number",
|
|
36755
|
+
"nullable": true,
|
|
36756
|
+
"description": "Year"
|
|
36757
|
+
},
|
|
36758
|
+
"text": {
|
|
36759
|
+
"type": "string",
|
|
36760
|
+
"nullable": true,
|
|
36761
|
+
"description": "Formatted date text"
|
|
36762
|
+
}
|
|
36763
|
+
},
|
|
36764
|
+
"required": [
|
|
36765
|
+
"month",
|
|
36766
|
+
"year",
|
|
36767
|
+
"text"
|
|
36768
|
+
],
|
|
36769
|
+
"additionalProperties": false,
|
|
36770
|
+
"nullable": true,
|
|
36771
|
+
"description": "End date"
|
|
36772
|
+
}
|
|
36773
|
+
},
|
|
36774
|
+
"required": [
|
|
36775
|
+
"position",
|
|
36776
|
+
"location",
|
|
36777
|
+
"employmentType",
|
|
36778
|
+
"workplaceType",
|
|
36779
|
+
"companyName",
|
|
36780
|
+
"companyLinkedinUrl",
|
|
36781
|
+
"duration",
|
|
36782
|
+
"description",
|
|
36783
|
+
"skills",
|
|
36784
|
+
"startDate",
|
|
36785
|
+
"endDate"
|
|
36786
|
+
],
|
|
36787
|
+
"additionalProperties": false
|
|
36788
|
+
},
|
|
36789
|
+
"nullable": true,
|
|
36790
|
+
"description": "Work experience history"
|
|
36791
|
+
},
|
|
36792
|
+
"education": {
|
|
36793
|
+
"type": "array",
|
|
36794
|
+
"items": {
|
|
36795
|
+
"type": "object",
|
|
36796
|
+
"properties": {
|
|
36797
|
+
"schoolName": {
|
|
36798
|
+
"type": "string",
|
|
36799
|
+
"nullable": true,
|
|
36800
|
+
"description": "School name"
|
|
36801
|
+
},
|
|
36802
|
+
"schoolLinkedinUrl": {
|
|
36803
|
+
"type": "string",
|
|
36804
|
+
"nullable": true,
|
|
36805
|
+
"description": "School LinkedIn URL"
|
|
36806
|
+
},
|
|
36807
|
+
"degree": {
|
|
36808
|
+
"type": "string",
|
|
36809
|
+
"nullable": true,
|
|
36810
|
+
"description": "Degree type"
|
|
36811
|
+
},
|
|
36812
|
+
"fieldOfStudy": {
|
|
36813
|
+
"type": "string",
|
|
36814
|
+
"nullable": true,
|
|
36815
|
+
"description": "Field of study"
|
|
36816
|
+
},
|
|
36817
|
+
"startDate": {
|
|
36818
|
+
"type": "object",
|
|
36819
|
+
"properties": {
|
|
36820
|
+
"month": {
|
|
36821
|
+
"type": "string",
|
|
36822
|
+
"nullable": true,
|
|
36823
|
+
"description": "Month name"
|
|
36824
|
+
},
|
|
36825
|
+
"year": {
|
|
36826
|
+
"type": "number",
|
|
36827
|
+
"nullable": true,
|
|
36828
|
+
"description": "Year"
|
|
36829
|
+
},
|
|
36830
|
+
"text": {
|
|
36831
|
+
"type": "string",
|
|
36832
|
+
"nullable": true,
|
|
36833
|
+
"description": "Formatted date text"
|
|
36834
|
+
}
|
|
36835
|
+
},
|
|
36836
|
+
"required": [
|
|
36837
|
+
"month",
|
|
36838
|
+
"year",
|
|
36839
|
+
"text"
|
|
36840
|
+
],
|
|
36841
|
+
"additionalProperties": false,
|
|
36842
|
+
"nullable": true,
|
|
36843
|
+
"description": "Start date"
|
|
36844
|
+
},
|
|
36845
|
+
"endDate": {
|
|
36846
|
+
"type": "object",
|
|
36847
|
+
"properties": {
|
|
36848
|
+
"month": {
|
|
36849
|
+
"type": "string",
|
|
36850
|
+
"nullable": true,
|
|
36851
|
+
"description": "Month name"
|
|
36852
|
+
},
|
|
36853
|
+
"year": {
|
|
36854
|
+
"type": "number",
|
|
36855
|
+
"nullable": true,
|
|
36856
|
+
"description": "Year"
|
|
36857
|
+
},
|
|
36858
|
+
"text": {
|
|
36859
|
+
"type": "string",
|
|
36860
|
+
"nullable": true,
|
|
36861
|
+
"description": "Formatted date text"
|
|
36862
|
+
}
|
|
36863
|
+
},
|
|
36864
|
+
"required": [
|
|
36865
|
+
"month",
|
|
36866
|
+
"year",
|
|
36867
|
+
"text"
|
|
36868
|
+
],
|
|
36869
|
+
"additionalProperties": false,
|
|
36870
|
+
"nullable": true,
|
|
36871
|
+
"description": "End date"
|
|
36872
|
+
},
|
|
36873
|
+
"period": {
|
|
36874
|
+
"type": "string",
|
|
36875
|
+
"nullable": true,
|
|
36876
|
+
"description": "Period text"
|
|
36877
|
+
}
|
|
36878
|
+
},
|
|
36879
|
+
"required": [
|
|
36880
|
+
"schoolName",
|
|
36881
|
+
"schoolLinkedinUrl",
|
|
36882
|
+
"degree",
|
|
36883
|
+
"fieldOfStudy",
|
|
36884
|
+
"startDate",
|
|
36885
|
+
"endDate",
|
|
36886
|
+
"period"
|
|
36887
|
+
],
|
|
36888
|
+
"additionalProperties": false
|
|
36889
|
+
},
|
|
36890
|
+
"nullable": true,
|
|
36891
|
+
"description": "Education history"
|
|
36892
|
+
},
|
|
36893
|
+
"certifications": {
|
|
36894
|
+
"type": "array",
|
|
36895
|
+
"items": {
|
|
36896
|
+
"type": "object",
|
|
36897
|
+
"properties": {
|
|
36898
|
+
"title": {
|
|
36899
|
+
"type": "string",
|
|
36900
|
+
"nullable": true
|
|
36901
|
+
},
|
|
36902
|
+
"issuedAt": {
|
|
36903
|
+
"type": "string",
|
|
36904
|
+
"nullable": true
|
|
36905
|
+
},
|
|
36906
|
+
"issuedBy": {
|
|
36907
|
+
"type": "string",
|
|
36908
|
+
"nullable": true
|
|
36909
|
+
}
|
|
36910
|
+
},
|
|
36911
|
+
"required": [
|
|
36912
|
+
"title",
|
|
36913
|
+
"issuedAt",
|
|
36914
|
+
"issuedBy"
|
|
36915
|
+
],
|
|
36916
|
+
"additionalProperties": false
|
|
36917
|
+
},
|
|
36918
|
+
"nullable": true,
|
|
36919
|
+
"description": "Certifications"
|
|
36920
|
+
},
|
|
36921
|
+
"languages": {
|
|
36922
|
+
"type": "array",
|
|
36923
|
+
"items": {
|
|
36924
|
+
"type": "object",
|
|
36925
|
+
"properties": {
|
|
36926
|
+
"name": {
|
|
36927
|
+
"type": "string",
|
|
36928
|
+
"nullable": true
|
|
36929
|
+
},
|
|
36930
|
+
"proficiency": {
|
|
36931
|
+
"type": "string",
|
|
36932
|
+
"nullable": true
|
|
36933
|
+
}
|
|
36934
|
+
},
|
|
36935
|
+
"required": [
|
|
36936
|
+
"name",
|
|
36937
|
+
"proficiency"
|
|
36938
|
+
],
|
|
36939
|
+
"additionalProperties": false
|
|
36940
|
+
},
|
|
36941
|
+
"nullable": true,
|
|
36942
|
+
"description": "Languages"
|
|
36943
|
+
},
|
|
36944
|
+
"skills": {
|
|
36945
|
+
"type": "array",
|
|
36946
|
+
"items": {
|
|
36947
|
+
"type": "object",
|
|
36948
|
+
"properties": {
|
|
36949
|
+
"name": {
|
|
36950
|
+
"type": "string",
|
|
36951
|
+
"nullable": true
|
|
36952
|
+
}
|
|
36953
|
+
},
|
|
36954
|
+
"required": [
|
|
36955
|
+
"name"
|
|
36956
|
+
],
|
|
36957
|
+
"additionalProperties": false
|
|
36958
|
+
},
|
|
36959
|
+
"nullable": true,
|
|
36960
|
+
"description": "All skills"
|
|
36961
|
+
}
|
|
36962
|
+
},
|
|
36963
|
+
"required": [
|
|
36964
|
+
"id",
|
|
36965
|
+
"publicIdentifier",
|
|
36966
|
+
"linkedinUrl",
|
|
36967
|
+
"firstName",
|
|
36968
|
+
"lastName",
|
|
36969
|
+
"headline",
|
|
36970
|
+
"about",
|
|
36971
|
+
"openToWork",
|
|
36972
|
+
"hiring",
|
|
36973
|
+
"photo",
|
|
36974
|
+
"premium",
|
|
36975
|
+
"influencer",
|
|
36976
|
+
"location",
|
|
36977
|
+
"verified",
|
|
36978
|
+
"topSkills",
|
|
36979
|
+
"connectionsCount",
|
|
36980
|
+
"followerCount",
|
|
36981
|
+
"currentPosition",
|
|
36982
|
+
"experience",
|
|
36983
|
+
"education",
|
|
36984
|
+
"certifications",
|
|
36985
|
+
"languages",
|
|
36986
|
+
"skills"
|
|
36987
|
+
],
|
|
36988
|
+
"additionalProperties": false,
|
|
36989
|
+
"nullable": true,
|
|
36990
|
+
"description": "LinkedIn profile data (only for scrapeProfile operation)"
|
|
36991
|
+
},
|
|
36517
36992
|
"jobs": {
|
|
36518
36993
|
"type": "array",
|
|
36519
36994
|
"items": {
|
|
@@ -37220,7 +37695,7 @@
|
|
|
37220
37695
|
],
|
|
37221
37696
|
"additionalProperties": false
|
|
37222
37697
|
},
|
|
37223
|
-
"usageExample": "// Example usage of linkedin-tool bubble\nconst linkedinTool = new LinkedInTool({\n operation: \"scrapePosts\" // options: \"scrapePosts\", \"searchPosts\", \"scrapeJobs\", // Operation to perform: scrapePosts (profiles), searchPosts (keywords), or scrapeJobs,\n username: \"example string\", // LinkedIn username (for scrapePosts operation). Examples: \"satyanadella\", \"billgates\",\n keyword: \"example string\", // Keyword or phrase to search for (for searchPosts/scrapeJobs). Examples: \"AI\", \"hiring\", \"Software Engineer\",\n location: \"example string\", // Location for job search (e.g. \"San Francisco\", \"Remote\") (scrapeJobs only),\n jobType: [\"full-time\" // options: \"full-time\", \"part-time\", \"contract\", \"temporary\", \"internship\"], // Filter by job type (scrapeJobs only),\n workplaceType: [\"on-site\" // options: \"on-site\", \"remote\", \"hybrid\"], // Filter by workplace type (scrapeJobs only),\n experienceLevel: [\"internship\" // options: \"internship\", \"entry-level\", \"associate\", \"mid-senior\", \"director\", \"executive\"], // Filter by experience level (scrapeJobs only),\n sortBy: \"relevance\" // options: \"relevance\", \"date_posted\", // Sort results by relevance or date posted (for searchPosts operation, default: relevance),\n dateFilter: \"past-24h\" // options: \"past-24h\", \"past-week\", \"past-month\", // Filter posts/jobs by date range (searchPosts/scrapeJobs). Options: past-24h, past-week, past-month. Leave empty for no date filter.,\n limit: 50 // default, // Maximum number of items to fetch (default: 50),\n pageNumber: 1 // default, // Page number for pagination (default: 1),\n});\n\nconst result = await linkedinTool.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// operation: \"scrapePosts\" | \"searchPosts\" | \"scrapeJobs\" // Operation that was performed,\n// jobs: { id: string | null // Job ID, title: string | null // Job title, company: { name: string | null, url: string | null, logo: string | null } | null // Company info, location: string | null // Job location, description: string | null // Job description, employmentType: string | null // Employment type, seniorityLevel: string | null // Seniority level, postedAt: string | null // Posted date, url: string | null // Job URL, applyUrl: string | null // Apply URL, salary: { from: number | null, to: number | null, currency: string | null, period: string | null } | null // Salary info, skills: string[] | null // Required skills }[] | undefined // Array of LinkedIn jobs,\n// posts: { urn: string | null // Post URN, fullUrn: string | null // Full URN with prefix, postedAt: { date: string | null // Post date (formatted string), relative: string | null // Relative time (e.g., \"2 days ago\"), timestamp: number | null // Unix timestamp in milliseconds } | null // When post was created, text: string | null // Post text content, url: string | null // Post URL, postType: string | null // Post type (regular, quote, etc), author: { firstName: string | null // Author first name, lastName: string | null // Author last name, headline: string | null // Author headline/title, username: string | null // Author username, profileUrl: string | null // Author profile URL, profilePicture: string | null // Author profile picture URL } | null // Post author information, stats: { totalReactions: number | null // Total number of reactions, like: number | null // Number of likes, support: number | null // Number of support reactions, love: number | null // Number of love reactions, insight: number | null // Number of insight reactions, celebrate: number | null // Number of celebrate reactions, funny: number | null // Number of funny reactions, comments: number | null // Number of comments, reposts: number | null // Number of reposts } | null // Post engagement statistics, media: { type: string | null // Media type (image, video, images), url: string | null // Media URL, thumbnail: string | null // Media thumbnail URL, images: { url: string | null, width: number | null, height: number | null }[] | null // Array of images for multi-image posts } | null // Post media content, article: { url: string | null, title: string | null, subtitle: string | null, thumbnail: string | null } | null // Shared article information, document: { title: string | null, pageCount: number | null, url: string | null, thumbnail: string | null } | null // Shared document information, resharedPost: { urn: string | null, postedAt: { date: string | null // Post date (formatted string), relative: string | null // Relative time (e.g., \"2 days ago\"), timestamp: number | null // Unix timestamp in milliseconds } | null, text: string | null, url: string | null, postType: string | null, author: { firstName: string | null // Author first name, lastName: string | null // Author last name, headline: string | null // Author headline/title, username: string | null // Author username, profileUrl: string | null // Author profile URL, profilePicture: string | null // Author profile picture URL } | null, stats: { totalReactions: number | null // Total number of reactions, like: number | null // Number of likes, support: number | null // Number of support reactions, love: number | null // Number of love reactions, insight: number | null // Number of insight reactions, celebrate: number | null // Number of celebrate reactions, funny: number | null // Number of funny reactions, comments: number | null // Number of comments, reposts: number | null // Number of reposts } | null, media: { type: string | null // Media type (image, video, images), url: string | null // Media URL, thumbnail: string | null // Media thumbnail URL, images: { url: string | null, width: number | null, height: number | null }[] | null // Array of images for multi-image posts } | null } | null // Original post that was reshared }[] // Array of LinkedIn posts,\n// username: string | undefined // LinkedIn username that was scraped (only for scrapePosts operation),\n// paginationToken: string | null | undefined // Token for fetching next page of results (only for scrapePosts operation),\n// keyword: string | undefined // Search keyword that was used (only for searchPosts operation),\n// totalResults: number | null | undefined // Total results available (only for searchPosts operation),\n// hasNextPage: boolean | null | undefined // Whether there are more results (only for searchPosts operation),\n// totalPosts: number // Total number of posts 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);",
|
|
37698
|
+
"usageExample": "// Example usage of linkedin-tool bubble\nconst linkedinTool = new LinkedInTool({\n operation: \"scrapeProfile\" // options: \"scrapeProfile\", \"scrapePosts\", \"searchPosts\", \"scrapeJobs\", // Operation to perform: scrapeProfile (get profile info from LinkedIn URL), scrapePosts (get posts from a profile), searchPosts (search posts by keyword), or scrapeJobs (search jobs),\n profileUrl: \"example string\", // LinkedIn profile URL or username (for scrapeProfile operation). Examples: \"https://www.linkedin.com/in/williamhgates\", \"williamhgates\",\n username: \"example string\", // LinkedIn username (for scrapePosts operation). Examples: \"satyanadella\", \"billgates\",\n keyword: \"example string\", // Keyword or phrase to search for (for searchPosts/scrapeJobs). Examples: \"AI\", \"hiring\", \"Software Engineer\",\n location: \"example string\", // Location for job search (e.g. \"San Francisco\", \"Remote\") (scrapeJobs only),\n jobType: [\"full-time\" // options: \"full-time\", \"part-time\", \"contract\", \"temporary\", \"internship\"], // Filter by job type (scrapeJobs only),\n workplaceType: [\"on-site\" // options: \"on-site\", \"remote\", \"hybrid\"], // Filter by workplace type (scrapeJobs only),\n experienceLevel: [\"internship\" // options: \"internship\", \"entry-level\", \"associate\", \"mid-senior\", \"director\", \"executive\"], // Filter by experience level (scrapeJobs only),\n sortBy: \"relevance\" // options: \"relevance\", \"date_posted\", // Sort results by relevance or date posted (for searchPosts operation, default: relevance),\n dateFilter: \"past-24h\" // options: \"past-24h\", \"past-week\", \"past-month\", // Filter posts/jobs by date range (searchPosts/scrapeJobs). Options: past-24h, past-week, past-month. Leave empty for no date filter.,\n limit: 50 // default, // Maximum number of items to fetch (default: 50),\n pageNumber: 1 // default, // Page number for pagination (default: 1),\n});\n\nconst result = await linkedinTool.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// operation: \"scrapeProfile\" | \"scrapePosts\" | \"searchPosts\" | \"scrapeJobs\" // Operation that was performed,\n// profile: { id: string | null // LinkedIn member ID, publicIdentifier: string | null // Profile slug (e.g., \"williamhgates\"), linkedinUrl: string | null // Full LinkedIn profile URL, firstName: string | null // First name, lastName: string | null // Last name, headline: string | null // Profile headline, about: string | null // About/summary section, openToWork: boolean | null // Whether open to work, hiring: boolean | null // Whether actively hiring, photo: string | null // Profile photo URL, premium: boolean | null // Whether premium subscriber, influencer: boolean | null // Whether LinkedIn influencer, location: { text: string | null // Location text, countryCode: string | null // Country code, country: string | null // Country, state: string | null // State/region, city: string | null // City } | null // Location information, verified: boolean | null // Whether profile is verified, topSkills: string | null // Top skills summary, connectionsCount: number | null // Number of connections, followerCount: number | null // Number of followers, currentPosition: { companyName: string | null }[] | null // Current company/position, experience: { position: string | null // Job title/position, location: string | null // Job location, employmentType: string | null // Employment type, workplaceType: string | null // Workplace type, companyName: string | null // Company name, companyLinkedinUrl: string | null // Company LinkedIn URL, duration: string | null // Duration text, description: string | null // Role description, skills: string[] | null // Skills for this role, startDate: { month: string | null // Month name, year: number | null // Year, text: string | null // Formatted date text } | null // Start date, endDate: { month: string | null // Month name, year: number | null // Year, text: string | null // Formatted date text } | null // End date }[] | null // Work experience history, education: { schoolName: string | null // School name, schoolLinkedinUrl: string | null // School LinkedIn URL, degree: string | null // Degree type, fieldOfStudy: string | null // Field of study, startDate: { month: string | null // Month name, year: number | null // Year, text: string | null // Formatted date text } | null // Start date, endDate: { month: string | null // Month name, year: number | null // Year, text: string | null // Formatted date text } | null // End date, period: string | null // Period text }[] | null // Education history, certifications: { title: string | null, issuedAt: string | null, issuedBy: string | null }[] | null // Certifications, languages: { name: string | null, proficiency: string | null }[] | null // Languages, skills: { name: string | null }[] | null // All skills } | null | undefined // LinkedIn profile data (only for scrapeProfile operation),\n// jobs: { id: string | null // Job ID, title: string | null // Job title, company: { name: string | null, url: string | null, logo: string | null } | null // Company info, location: string | null // Job location, description: string | null // Job description, employmentType: string | null // Employment type, seniorityLevel: string | null // Seniority level, postedAt: string | null // Posted date, url: string | null // Job URL, applyUrl: string | null // Apply URL, salary: { from: number | null, to: number | null, currency: string | null, period: string | null } | null // Salary info, skills: string[] | null // Required skills }[] | undefined // Array of LinkedIn jobs,\n// posts: { urn: string | null // Post URN, fullUrn: string | null // Full URN with prefix, postedAt: { date: string | null // Post date (formatted string), relative: string | null // Relative time (e.g., \"2 days ago\"), timestamp: number | null // Unix timestamp in milliseconds } | null // When post was created, text: string | null // Post text content, url: string | null // Post URL, postType: string | null // Post type (regular, quote, etc), author: { firstName: string | null // Author first name, lastName: string | null // Author last name, headline: string | null // Author headline/title, username: string | null // Author username, profileUrl: string | null // Author profile URL, profilePicture: string | null // Author profile picture URL } | null // Post author information, stats: { totalReactions: number | null // Total number of reactions, like: number | null // Number of likes, support: number | null // Number of support reactions, love: number | null // Number of love reactions, insight: number | null // Number of insight reactions, celebrate: number | null // Number of celebrate reactions, funny: number | null // Number of funny reactions, comments: number | null // Number of comments, reposts: number | null // Number of reposts } | null // Post engagement statistics, media: { type: string | null // Media type (image, video, images), url: string | null // Media URL, thumbnail: string | null // Media thumbnail URL, images: { url: string | null, width: number | null, height: number | null }[] | null // Array of images for multi-image posts } | null // Post media content, article: { url: string | null, title: string | null, subtitle: string | null, thumbnail: string | null } | null // Shared article information, document: { title: string | null, pageCount: number | null, url: string | null, thumbnail: string | null } | null // Shared document information, resharedPost: { urn: string | null, postedAt: { date: string | null // Post date (formatted string), relative: string | null // Relative time (e.g., \"2 days ago\"), timestamp: number | null // Unix timestamp in milliseconds } | null, text: string | null, url: string | null, postType: string | null, author: { firstName: string | null // Author first name, lastName: string | null // Author last name, headline: string | null // Author headline/title, username: string | null // Author username, profileUrl: string | null // Author profile URL, profilePicture: string | null // Author profile picture URL } | null, stats: { totalReactions: number | null // Total number of reactions, like: number | null // Number of likes, support: number | null // Number of support reactions, love: number | null // Number of love reactions, insight: number | null // Number of insight reactions, celebrate: number | null // Number of celebrate reactions, funny: number | null // Number of funny reactions, comments: number | null // Number of comments, reposts: number | null // Number of reposts } | null, media: { type: string | null // Media type (image, video, images), url: string | null // Media URL, thumbnail: string | null // Media thumbnail URL, images: { url: string | null, width: number | null, height: number | null }[] | null // Array of images for multi-image posts } | null } | null // Original post that was reshared }[] // Array of LinkedIn posts,\n// username: string | undefined // LinkedIn username that was scraped (only for scrapePosts operation),\n// paginationToken: string | null | undefined // Token for fetching next page of results (only for scrapePosts operation),\n// keyword: string | undefined // Search keyword that was used (only for searchPosts operation),\n// totalResults: number | null | undefined // Total results available (only for searchPosts operation),\n// hasNextPage: boolean | null | undefined // Whether there are more results (only for searchPosts operation),\n// totalPosts: number // Total number of posts 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);",
|
|
37224
37699
|
"requiredCredentials": [
|
|
37225
37700
|
"APIFY_CRED"
|
|
37226
37701
|
]
|
|
@@ -49927,6 +50402,12 @@
|
|
|
49927
50402
|
},
|
|
49928
50403
|
"additionalProperties": false,
|
|
49929
50404
|
"description": "Stealth mode configuration for anti-bot avoidance and CAPTCHA solving"
|
|
50405
|
+
},
|
|
50406
|
+
"timeout_seconds": {
|
|
50407
|
+
"type": "number",
|
|
50408
|
+
"minimum": 60,
|
|
50409
|
+
"maximum": 21600,
|
|
50410
|
+
"description": "Session timeout in seconds. Duration after which the session automatically ends (60-21600)."
|
|
49930
50411
|
}
|
|
49931
50412
|
},
|
|
49932
50413
|
"required": [
|
|
@@ -50660,7 +51141,7 @@
|
|
|
50660
51141
|
}
|
|
50661
51142
|
]
|
|
50662
51143
|
},
|
|
50663
|
-
"usageExample": "// Start Session example\nconst browserbase_start_session = new BrowserBaseBubble({\n operation: \"start_session\", // Create a new BrowserBase browser session\n context_id: \"example string\", // Existing context ID for session persistence\n cookies: [{ name: \"example string\" // Cookie name, value: \"example string\" // Cookie value, domain: \"example string\" // Cookie domain, path: \"example string\" // Cookie path, expires: 42 // Expiration timestamp, httpOnly: true // HTTP only flag, secure: true // Secure flag }], // Cookies to inject into the session\n viewport_width: 1280 // default, // Browser viewport width\n viewport_height: 900 // default, // Browser viewport height\n proxies: [{ type: \"browserbase\", geolocation: { city: \"example string\" // City name (e.g., \"NEW_YORK\", \"LONDON\"), state: \"example string\" // State code for US locations (e.g., \"NY\", \"CA\"), country: \"example string\" // ISO 3166-1 alpha-2 country code (e.g., \"US\", \"GB\", \"JP\") }, domainPattern: \"example string\" }], // Proxy configuration: true for built-in proxies, or array of proxy configs with routing rules\n stealth: { advancedStealth: false // default // Enable Advanced Stealth Mode with custom Chromium for better anti-bot avoidance (Scale Plan only), solveCaptchas: true // default // Enable automatic CAPTCHA solving (enabled by default), captchaImageSelector: \"example string\" // CSS selector for custom CAPTCHA image element, captchaInputSelector: \"example string\" // CSS selector for custom CAPTCHA input field }, // Stealth mode configuration for anti-bot avoidance and CAPTCHA solving\n});\n\nconst result = await browserbase_start_session.action();\n// outputSchema for result.data when operation === 'start_session':\n// {\n// operation: \"start_session\",\n// success: boolean // Whether the operation was successful,\n// session_id: string | undefined // Created session ID,\n// context_id: string | undefined // Context ID for persistence,\n// debug_url: string | undefined // Debug URL for live viewing,\n// error: string // Error message if operation failed\n// }\n\n\n// Navigate example\nconst browserbase_navigate = new BrowserBaseBubble({\n operation: \"navigate\", // Navigate to a URL\n session_id: \"example string\", // Active browser session ID\n url: \"example string\", // URL to navigate to\n wait_until: \"load\" // options: \"load\", \"domcontentloaded\", \"networkidle0\", \"networkidle2\", // Wait condition for navigation\n timeout: 30000 // default, // Navigation timeout in milliseconds\n});\n\nconst result = await browserbase_navigate.action();\n// outputSchema for result.data when operation === 'navigate':\n// {\n// operation: \"navigate\",\n// success: boolean // Whether the operation was successful,\n// url: string | undefined // Final URL after navigation,\n// error: string // Error message if operation failed\n// }\n\n\n// Click example\nconst browserbase_click = new BrowserBaseBubble({\n operation: \"click\", // Click an element on the page\n session_id: \"example string\", // Active browser session ID\n selector: \"example string\", // CSS selector of element to click\n wait_for_navigation: false // default, // Wait for navigation after click\n timeout: 5000 // default, // Element wait timeout in milliseconds\n});\n\nconst result = await browserbase_click.action();\n// outputSchema for result.data when operation === 'click':\n// {\n// operation: \"click\",\n// success: boolean // Whether the operation was successful,\n// error: string // Error message if operation failed\n// }\n\n\n// Type example\nconst browserbase_type = new BrowserBaseBubble({\n operation: \"type\", // Type text into an input element\n session_id: \"example string\", // Active browser session ID\n selector: \"example string\", // CSS selector of input element\n text: \"example string\", // Text to type\n clear_first: false // default, // Clear the input before typing\n delay: 0 // default, // Delay between keystrokes in milliseconds\n});\n\nconst result = await browserbase_type.action();\n// outputSchema for result.data when operation === 'type':\n// {\n// operation: \"type\",\n// success: boolean // Whether the operation was successful,\n// error: string // Error message if operation failed\n// }\n\n\n// Evaluate example\nconst browserbase_evaluate = new BrowserBaseBubble({\n operation: \"evaluate\", // Execute JavaScript in page context\n session_id: \"example string\", // Active browser session ID\n script: \"example string\", // JavaScript code to execute (will be wrapped in a function)\n});\n\nconst result = await browserbase_evaluate.action();\n// outputSchema for result.data when operation === 'evaluate':\n// {\n// operation: \"evaluate\",\n// success: boolean // Whether the operation was successful,\n// result: unknown | undefined // Result of JavaScript execution,\n// error: string // Error message if operation failed\n// }\n\n\n// Get Content example\nconst browserbase_get_content = new BrowserBaseBubble({\n operation: \"get_content\", // Get page or element content\n session_id: \"example string\", // Active browser session ID\n selector: \"example string\", // CSS selector for specific element (optional, defaults to body)\n content_type: \"html\" // options: \"html\", \"text\", \"outer_html\", // Type of content to retrieve\n});\n\nconst result = await browserbase_get_content.action();\n// outputSchema for result.data when operation === 'get_content':\n// {\n// operation: \"get_content\",\n// success: boolean // Whether the operation was successful,\n// content: string | undefined // Retrieved content,\n// error: string // Error message if operation failed\n// }\n\n\n// Screenshot example\nconst browserbase_screenshot = new BrowserBaseBubble({\n operation: \"screenshot\", // Take a screenshot of the page\n session_id: \"example string\", // Active browser session ID\n selector: \"example string\", // CSS selector for specific element (optional, defaults to full page)\n full_page: false // default, // Capture full scrollable page\n format: \"png\" // options: \"png\", \"jpeg\", \"webp\", // Screenshot image format\n quality: 42, // Image quality for jpeg/webp (0-100)\n});\n\nconst result = await browserbase_screenshot.action();\n// outputSchema for result.data when operation === 'screenshot':\n// {\n// operation: \"screenshot\",\n// success: boolean // Whether the operation was successful,\n// data: string | undefined // Base64-encoded screenshot data,\n// format: string | undefined // Image format,\n// error: string // Error message if operation failed\n// }\n\n\n// Wait example\nconst browserbase_wait = new BrowserBaseBubble({\n operation: \"wait\", // Wait for a condition\n session_id: \"example string\", // Active browser session ID\n wait_type: \"selector\" // options: \"selector\", \"timeout\", \"navigation\", // Type of wait condition\n selector: \"example string\", // CSS selector to wait for (for selector wait_type)\n timeout: 5000 // default, // Wait timeout in milliseconds\n});\n\nconst result = await browserbase_wait.action();\n// outputSchema for result.data when operation === 'wait':\n// {\n// operation: \"wait\",\n// success: boolean // Whether the operation was successful,\n// error: string // Error message if operation failed\n// }\n\n\n// Get Cookies example\nconst browserbase_get_cookies = new BrowserBaseBubble({\n operation: \"get_cookies\", // Get cookies from the browser\n session_id: \"example string\", // Active browser session ID\n domain_filter: \"example string\", // Filter cookies by domain (partial match)\n});\n\nconst result = await browserbase_get_cookies.action();\n// outputSchema for result.data when operation === 'get_cookies':\n// {\n// operation: \"get_cookies\",\n// success: boolean // Whether the operation was successful,\n// cookies: { name: string // Cookie name, value: string // Cookie value, domain: string // Cookie domain, path: string // Cookie path, expires: number // Expiration timestamp, httpOnly: boolean // HTTP only flag, secure: boolean // Secure flag }[] | undefined // Retrieved cookies,\n// error: string // Error message if operation failed\n// }\n\n\n// End Session example\nconst browserbase_end_session = new BrowserBaseBubble({\n operation: \"end_session\", // Close browser session and release resources\n session_id: \"example string\", // Session ID to close\n});\n\nconst result = await browserbase_end_session.action();\n// outputSchema for result.data when operation === 'end_session':\n// {\n// operation: \"end_session\",\n// success: boolean // Whether the operation was successful,\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(`browserbase failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
51144
|
+
"usageExample": "// Start Session example\nconst browserbase_start_session = new BrowserBaseBubble({\n operation: \"start_session\", // Create a new BrowserBase browser session\n context_id: \"example string\", // Existing context ID for session persistence\n cookies: [{ name: \"example string\" // Cookie name, value: \"example string\" // Cookie value, domain: \"example string\" // Cookie domain, path: \"example string\" // Cookie path, expires: 42 // Expiration timestamp, httpOnly: true // HTTP only flag, secure: true // Secure flag }], // Cookies to inject into the session\n viewport_width: 1280 // default, // Browser viewport width\n viewport_height: 900 // default, // Browser viewport height\n proxies: [{ type: \"browserbase\", geolocation: { city: \"example string\" // City name (e.g., \"NEW_YORK\", \"LONDON\"), state: \"example string\" // State code for US locations (e.g., \"NY\", \"CA\"), country: \"example string\" // ISO 3166-1 alpha-2 country code (e.g., \"US\", \"GB\", \"JP\") }, domainPattern: \"example string\" }], // Proxy configuration: true for built-in proxies, or array of proxy configs with routing rules\n stealth: { advancedStealth: false // default // Enable Advanced Stealth Mode with custom Chromium for better anti-bot avoidance (Scale Plan only), solveCaptchas: true // default // Enable automatic CAPTCHA solving (enabled by default), captchaImageSelector: \"example string\" // CSS selector for custom CAPTCHA image element, captchaInputSelector: \"example string\" // CSS selector for custom CAPTCHA input field }, // Stealth mode configuration for anti-bot avoidance and CAPTCHA solving\n timeout_seconds: 42, // Session timeout in seconds. Duration after which the session automatically ends (60-21600).\n});\n\nconst result = await browserbase_start_session.action();\n// outputSchema for result.data when operation === 'start_session':\n// {\n// operation: \"start_session\",\n// success: boolean // Whether the operation was successful,\n// session_id: string | undefined // Created session ID,\n// context_id: string | undefined // Context ID for persistence,\n// debug_url: string | undefined // Debug URL for live viewing,\n// error: string // Error message if operation failed\n// }\n\n\n// Navigate example\nconst browserbase_navigate = new BrowserBaseBubble({\n operation: \"navigate\", // Navigate to a URL\n session_id: \"example string\", // Active browser session ID\n url: \"example string\", // URL to navigate to\n wait_until: \"load\" // options: \"load\", \"domcontentloaded\", \"networkidle0\", \"networkidle2\", // Wait condition for navigation\n timeout: 30000 // default, // Navigation timeout in milliseconds\n});\n\nconst result = await browserbase_navigate.action();\n// outputSchema for result.data when operation === 'navigate':\n// {\n// operation: \"navigate\",\n// success: boolean // Whether the operation was successful,\n// url: string | undefined // Final URL after navigation,\n// error: string // Error message if operation failed\n// }\n\n\n// Click example\nconst browserbase_click = new BrowserBaseBubble({\n operation: \"click\", // Click an element on the page\n session_id: \"example string\", // Active browser session ID\n selector: \"example string\", // CSS selector of element to click\n wait_for_navigation: false // default, // Wait for navigation after click\n timeout: 5000 // default, // Element wait timeout in milliseconds\n});\n\nconst result = await browserbase_click.action();\n// outputSchema for result.data when operation === 'click':\n// {\n// operation: \"click\",\n// success: boolean // Whether the operation was successful,\n// error: string // Error message if operation failed\n// }\n\n\n// Type example\nconst browserbase_type = new BrowserBaseBubble({\n operation: \"type\", // Type text into an input element\n session_id: \"example string\", // Active browser session ID\n selector: \"example string\", // CSS selector of input element\n text: \"example string\", // Text to type\n clear_first: false // default, // Clear the input before typing\n delay: 0 // default, // Delay between keystrokes in milliseconds\n});\n\nconst result = await browserbase_type.action();\n// outputSchema for result.data when operation === 'type':\n// {\n// operation: \"type\",\n// success: boolean // Whether the operation was successful,\n// error: string // Error message if operation failed\n// }\n\n\n// Evaluate example\nconst browserbase_evaluate = new BrowserBaseBubble({\n operation: \"evaluate\", // Execute JavaScript in page context\n session_id: \"example string\", // Active browser session ID\n script: \"example string\", // JavaScript code to execute (will be wrapped in a function)\n});\n\nconst result = await browserbase_evaluate.action();\n// outputSchema for result.data when operation === 'evaluate':\n// {\n// operation: \"evaluate\",\n// success: boolean // Whether the operation was successful,\n// result: unknown | undefined // Result of JavaScript execution,\n// error: string // Error message if operation failed\n// }\n\n\n// Get Content example\nconst browserbase_get_content = new BrowserBaseBubble({\n operation: \"get_content\", // Get page or element content\n session_id: \"example string\", // Active browser session ID\n selector: \"example string\", // CSS selector for specific element (optional, defaults to body)\n content_type: \"html\" // options: \"html\", \"text\", \"outer_html\", // Type of content to retrieve\n});\n\nconst result = await browserbase_get_content.action();\n// outputSchema for result.data when operation === 'get_content':\n// {\n// operation: \"get_content\",\n// success: boolean // Whether the operation was successful,\n// content: string | undefined // Retrieved content,\n// error: string // Error message if operation failed\n// }\n\n\n// Screenshot example\nconst browserbase_screenshot = new BrowserBaseBubble({\n operation: \"screenshot\", // Take a screenshot of the page\n session_id: \"example string\", // Active browser session ID\n selector: \"example string\", // CSS selector for specific element (optional, defaults to full page)\n full_page: false // default, // Capture full scrollable page\n format: \"png\" // options: \"png\", \"jpeg\", \"webp\", // Screenshot image format\n quality: 42, // Image quality for jpeg/webp (0-100)\n});\n\nconst result = await browserbase_screenshot.action();\n// outputSchema for result.data when operation === 'screenshot':\n// {\n// operation: \"screenshot\",\n// success: boolean // Whether the operation was successful,\n// data: string | undefined // Base64-encoded screenshot data,\n// format: string | undefined // Image format,\n// error: string // Error message if operation failed\n// }\n\n\n// Wait example\nconst browserbase_wait = new BrowserBaseBubble({\n operation: \"wait\", // Wait for a condition\n session_id: \"example string\", // Active browser session ID\n wait_type: \"selector\" // options: \"selector\", \"timeout\", \"navigation\", // Type of wait condition\n selector: \"example string\", // CSS selector to wait for (for selector wait_type)\n timeout: 5000 // default, // Wait timeout in milliseconds\n});\n\nconst result = await browserbase_wait.action();\n// outputSchema for result.data when operation === 'wait':\n// {\n// operation: \"wait\",\n// success: boolean // Whether the operation was successful,\n// error: string // Error message if operation failed\n// }\n\n\n// Get Cookies example\nconst browserbase_get_cookies = new BrowserBaseBubble({\n operation: \"get_cookies\", // Get cookies from the browser\n session_id: \"example string\", // Active browser session ID\n domain_filter: \"example string\", // Filter cookies by domain (partial match)\n});\n\nconst result = await browserbase_get_cookies.action();\n// outputSchema for result.data when operation === 'get_cookies':\n// {\n// operation: \"get_cookies\",\n// success: boolean // Whether the operation was successful,\n// cookies: { name: string // Cookie name, value: string // Cookie value, domain: string // Cookie domain, path: string // Cookie path, expires: number // Expiration timestamp, httpOnly: boolean // HTTP only flag, secure: boolean // Secure flag }[] | undefined // Retrieved cookies,\n// error: string // Error message if operation failed\n// }\n\n\n// End Session example\nconst browserbase_end_session = new BrowserBaseBubble({\n operation: \"end_session\", // Close browser session and release resources\n session_id: \"example string\", // Session ID to close\n});\n\nconst result = await browserbase_end_session.action();\n// outputSchema for result.data when operation === 'end_session':\n// {\n// operation: \"end_session\",\n// success: boolean // Whether the operation was successful,\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(`browserbase failed: ${result.error}`);\n}\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
50664
51145
|
"requiredCredentials": [
|
|
50665
51146
|
"AMAZON_CRED",
|
|
50666
51147
|
"CLOUDFLARE_R2_ACCESS_KEY",
|
|
@@ -60038,110 +60519,702 @@
|
|
|
60038
60519
|
},
|
|
60039
60520
|
{
|
|
60040
60521
|
"name": "linkedin-connection-tool",
|
|
60041
|
-
"alias": "linkedin",
|
|
60522
|
+
"alias": "linkedin-recordable",
|
|
60042
60523
|
"type": "tool",
|
|
60043
|
-
"shortDescription": "LinkedIn connection automation
|
|
60524
|
+
"shortDescription": "LinkedIn connection automation with step recording",
|
|
60044
60525
|
"useCase": "General purpose bubble for various workflow needs",
|
|
60045
|
-
"outputSchema": "
|
|
60526
|
+
"outputSchema": "{\n operation: \"send_connection\",\n success: boolean // Whether the connection request was sent,\n message: string | undefined // Success or status message,\n profile: { name: string // Full name of the profile owner, headline: string | undefined // Professional headline, location: string | undefined // Location information, profile_url: string // LinkedIn profile URL } | undefined // Profile information of the person,\n error: string // Error message if operation failed\n}",
|
|
60046
60527
|
"inputJsonSchema": {
|
|
60047
|
-
"
|
|
60048
|
-
|
|
60528
|
+
"type": "object",
|
|
60529
|
+
"properties": {
|
|
60530
|
+
"operation": {
|
|
60531
|
+
"type": "string",
|
|
60532
|
+
"enum": [
|
|
60533
|
+
"send_connection"
|
|
60534
|
+
],
|
|
60535
|
+
"description": "Send a connection request to a LinkedIn profile"
|
|
60536
|
+
},
|
|
60537
|
+
"profile_url": {
|
|
60538
|
+
"type": "string",
|
|
60539
|
+
"minLength": 1,
|
|
60540
|
+
"description": "LinkedIn profile URL (e.g., https://www.linkedin.com/in/username)"
|
|
60541
|
+
},
|
|
60542
|
+
"message": {
|
|
60543
|
+
"type": "string",
|
|
60544
|
+
"maxLength": 300,
|
|
60545
|
+
"description": "Optional personalized note to include with the connection request (max 300 characters)"
|
|
60546
|
+
},
|
|
60547
|
+
"credentials": {
|
|
60049
60548
|
"type": "object",
|
|
60050
|
-
"
|
|
60051
|
-
"
|
|
60052
|
-
|
|
60053
|
-
|
|
60054
|
-
|
|
60549
|
+
"additionalProperties": {
|
|
60550
|
+
"type": "string"
|
|
60551
|
+
},
|
|
60552
|
+
"description": "Required: LINKEDIN_CRED for authenticated LinkedIn session"
|
|
60553
|
+
},
|
|
60554
|
+
"proxy": {
|
|
60555
|
+
"anyOf": [
|
|
60556
|
+
{
|
|
60557
|
+
"type": "object",
|
|
60558
|
+
"properties": {
|
|
60559
|
+
"type": {
|
|
60560
|
+
"type": "string",
|
|
60561
|
+
"enum": [
|
|
60562
|
+
"none"
|
|
60563
|
+
]
|
|
60564
|
+
}
|
|
60565
|
+
},
|
|
60566
|
+
"required": [
|
|
60567
|
+
"type"
|
|
60055
60568
|
],
|
|
60056
|
-
"
|
|
60057
|
-
},
|
|
60058
|
-
"profile_url": {
|
|
60059
|
-
"type": "string",
|
|
60060
|
-
"minLength": 1,
|
|
60061
|
-
"description": "LinkedIn profile URL (e.g., https://www.linkedin.com/in/username)"
|
|
60569
|
+
"additionalProperties": false
|
|
60062
60570
|
},
|
|
60063
|
-
|
|
60064
|
-
"type": "
|
|
60065
|
-
"
|
|
60066
|
-
|
|
60571
|
+
{
|
|
60572
|
+
"type": "object",
|
|
60573
|
+
"properties": {
|
|
60574
|
+
"type": {
|
|
60575
|
+
"type": "string",
|
|
60576
|
+
"enum": [
|
|
60577
|
+
"browserbase"
|
|
60578
|
+
]
|
|
60579
|
+
}
|
|
60580
|
+
},
|
|
60581
|
+
"required": [
|
|
60582
|
+
"type"
|
|
60583
|
+
],
|
|
60584
|
+
"additionalProperties": false
|
|
60067
60585
|
},
|
|
60068
|
-
|
|
60586
|
+
{
|
|
60069
60587
|
"type": "object",
|
|
60070
|
-
"
|
|
60071
|
-
"type":
|
|
60588
|
+
"properties": {
|
|
60589
|
+
"type": {
|
|
60590
|
+
"type": "string",
|
|
60591
|
+
"enum": [
|
|
60592
|
+
"custom"
|
|
60593
|
+
]
|
|
60594
|
+
},
|
|
60595
|
+
"proxy": {
|
|
60596
|
+
"type": "object",
|
|
60597
|
+
"properties": {
|
|
60598
|
+
"id": {
|
|
60599
|
+
"type": "string",
|
|
60600
|
+
"description": "User-provided identifier for the proxy"
|
|
60601
|
+
},
|
|
60602
|
+
"server": {
|
|
60603
|
+
"type": "string",
|
|
60604
|
+
"description": "Proxy server URL"
|
|
60605
|
+
},
|
|
60606
|
+
"username": {
|
|
60607
|
+
"type": "string",
|
|
60608
|
+
"description": "Proxy authentication username"
|
|
60609
|
+
},
|
|
60610
|
+
"password": {
|
|
60611
|
+
"type": "string",
|
|
60612
|
+
"description": "Proxy authentication password"
|
|
60613
|
+
}
|
|
60614
|
+
},
|
|
60615
|
+
"required": [
|
|
60616
|
+
"id",
|
|
60617
|
+
"server"
|
|
60618
|
+
],
|
|
60619
|
+
"additionalProperties": false
|
|
60620
|
+
}
|
|
60072
60621
|
},
|
|
60073
|
-
"
|
|
60622
|
+
"required": [
|
|
60623
|
+
"type",
|
|
60624
|
+
"proxy"
|
|
60625
|
+
],
|
|
60626
|
+
"additionalProperties": false
|
|
60074
60627
|
}
|
|
60075
|
-
},
|
|
60076
|
-
"required": [
|
|
60077
|
-
"operation",
|
|
60078
|
-
"profile_url"
|
|
60079
60628
|
],
|
|
60080
|
-
"
|
|
60629
|
+
"description": "Proxy configuration: none (direct connection), browserbase (residential), or custom proxy"
|
|
60081
60630
|
}
|
|
60082
|
-
|
|
60631
|
+
},
|
|
60632
|
+
"required": [
|
|
60633
|
+
"operation",
|
|
60634
|
+
"profile_url"
|
|
60635
|
+
],
|
|
60636
|
+
"additionalProperties": false
|
|
60083
60637
|
},
|
|
60084
60638
|
"outputJsonSchema": {
|
|
60085
|
-
"
|
|
60086
|
-
|
|
60639
|
+
"type": "object",
|
|
60640
|
+
"properties": {
|
|
60641
|
+
"operation": {
|
|
60642
|
+
"type": "string",
|
|
60643
|
+
"enum": [
|
|
60644
|
+
"send_connection"
|
|
60645
|
+
]
|
|
60646
|
+
},
|
|
60647
|
+
"success": {
|
|
60648
|
+
"type": "boolean",
|
|
60649
|
+
"description": "Whether the connection request was sent"
|
|
60650
|
+
},
|
|
60651
|
+
"message": {
|
|
60652
|
+
"type": "string",
|
|
60653
|
+
"description": "Success or status message"
|
|
60654
|
+
},
|
|
60655
|
+
"profile": {
|
|
60087
60656
|
"type": "object",
|
|
60088
60657
|
"properties": {
|
|
60089
|
-
"
|
|
60658
|
+
"name": {
|
|
60090
60659
|
"type": "string",
|
|
60091
|
-
"
|
|
60092
|
-
"send_connection"
|
|
60093
|
-
]
|
|
60660
|
+
"description": "Full name of the profile owner"
|
|
60094
60661
|
},
|
|
60095
|
-
"
|
|
60096
|
-
"type": "
|
|
60097
|
-
"description": "
|
|
60662
|
+
"headline": {
|
|
60663
|
+
"type": "string",
|
|
60664
|
+
"description": "Professional headline"
|
|
60098
60665
|
},
|
|
60099
|
-
"
|
|
60666
|
+
"location": {
|
|
60100
60667
|
"type": "string",
|
|
60101
|
-
"description": "
|
|
60668
|
+
"description": "Location information"
|
|
60102
60669
|
},
|
|
60103
|
-
"
|
|
60670
|
+
"profile_url": {
|
|
60671
|
+
"type": "string",
|
|
60672
|
+
"description": "LinkedIn profile URL"
|
|
60673
|
+
}
|
|
60674
|
+
},
|
|
60675
|
+
"required": [
|
|
60676
|
+
"name",
|
|
60677
|
+
"profile_url"
|
|
60678
|
+
],
|
|
60679
|
+
"additionalProperties": false,
|
|
60680
|
+
"description": "Profile information of the person"
|
|
60681
|
+
},
|
|
60682
|
+
"error": {
|
|
60683
|
+
"type": "string",
|
|
60684
|
+
"description": "Error message if operation failed"
|
|
60685
|
+
}
|
|
60686
|
+
},
|
|
60687
|
+
"required": [
|
|
60688
|
+
"operation",
|
|
60689
|
+
"success",
|
|
60690
|
+
"error"
|
|
60691
|
+
],
|
|
60692
|
+
"additionalProperties": false
|
|
60693
|
+
},
|
|
60694
|
+
"usageExample": "// Example usage of linkedin-connection-tool bubble\nconst linkedinConnectionTool = new LinkedInConnectionTool({\n operation: \"send_connection\", // Send a connection request to a LinkedIn profile,\n profile_url: \"example string\", // LinkedIn profile URL (e.g., https://www.linkedin.com/in/username),\n message: \"example string\", // Optional personalized note to include with the connection request (max 300 characters),\n proxy: { type: \"none\" }, // Proxy configuration: none (direct connection), browserbase (residential), or custom proxy,\n});\n\nconst result = await linkedinConnectionTool.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// operation: \"send_connection\",\n// success: boolean // Whether the connection request was sent,\n// message: string | undefined // Success or status message,\n// profile: { name: string // Full name of the profile owner, headline: string | undefined // Professional headline, location: string | undefined // Location information, profile_url: string // LinkedIn profile URL } | undefined // Profile information of the person,\n// error: string // Error message if operation failed\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
60695
|
+
"requiredCredentials": [
|
|
60696
|
+
"LINKEDIN_CRED",
|
|
60697
|
+
"CLOUDFLARE_R2_ACCESS_KEY",
|
|
60698
|
+
"CLOUDFLARE_R2_SECRET_KEY",
|
|
60699
|
+
"CLOUDFLARE_R2_ACCOUNT_ID"
|
|
60700
|
+
]
|
|
60701
|
+
},
|
|
60702
|
+
{
|
|
60703
|
+
"name": "linkedin-sent-invitations-tool",
|
|
60704
|
+
"alias": "linkedin-sent-invitations",
|
|
60705
|
+
"type": "tool",
|
|
60706
|
+
"shortDescription": "Extract sent LinkedIn connection invitations",
|
|
60707
|
+
"useCase": "General purpose bubble for various workflow needs",
|
|
60708
|
+
"outputSchema": "{\n operation: \"get_sent_invitations\",\n success: boolean,\n invitations: { name: string // Full name of the person, headline: string | undefined // Professional headline/tagline, sent_date: string // When the invitation was sent, profile_url: string | undefined // LinkedIn profile URL }[] | undefined,\n total_count: number | undefined,\n message: string | undefined,\n error: string\n}",
|
|
60709
|
+
"inputJsonSchema": {
|
|
60710
|
+
"type": "object",
|
|
60711
|
+
"properties": {
|
|
60712
|
+
"operation": {
|
|
60713
|
+
"type": "string",
|
|
60714
|
+
"enum": [
|
|
60715
|
+
"get_sent_invitations"
|
|
60716
|
+
]
|
|
60717
|
+
},
|
|
60718
|
+
"credentials": {
|
|
60719
|
+
"type": "object",
|
|
60720
|
+
"additionalProperties": {
|
|
60721
|
+
"type": "string"
|
|
60722
|
+
}
|
|
60723
|
+
},
|
|
60724
|
+
"proxy": {
|
|
60725
|
+
"anyOf": [
|
|
60726
|
+
{
|
|
60104
60727
|
"type": "object",
|
|
60105
60728
|
"properties": {
|
|
60106
|
-
"
|
|
60729
|
+
"type": {
|
|
60107
60730
|
"type": "string",
|
|
60108
|
-
"
|
|
60109
|
-
|
|
60110
|
-
|
|
60731
|
+
"enum": [
|
|
60732
|
+
"none"
|
|
60733
|
+
]
|
|
60734
|
+
}
|
|
60735
|
+
},
|
|
60736
|
+
"required": [
|
|
60737
|
+
"type"
|
|
60738
|
+
],
|
|
60739
|
+
"additionalProperties": false
|
|
60740
|
+
},
|
|
60741
|
+
{
|
|
60742
|
+
"type": "object",
|
|
60743
|
+
"properties": {
|
|
60744
|
+
"type": {
|
|
60745
|
+
"type": "string",
|
|
60746
|
+
"enum": [
|
|
60747
|
+
"browserbase"
|
|
60748
|
+
]
|
|
60749
|
+
}
|
|
60750
|
+
},
|
|
60751
|
+
"required": [
|
|
60752
|
+
"type"
|
|
60753
|
+
],
|
|
60754
|
+
"additionalProperties": false
|
|
60755
|
+
},
|
|
60756
|
+
{
|
|
60757
|
+
"type": "object",
|
|
60758
|
+
"properties": {
|
|
60759
|
+
"type": {
|
|
60111
60760
|
"type": "string",
|
|
60112
|
-
"
|
|
60761
|
+
"enum": [
|
|
60762
|
+
"custom"
|
|
60763
|
+
]
|
|
60113
60764
|
},
|
|
60114
|
-
"
|
|
60765
|
+
"proxy": {
|
|
60766
|
+
"type": "object",
|
|
60767
|
+
"properties": {
|
|
60768
|
+
"id": {
|
|
60769
|
+
"type": "string",
|
|
60770
|
+
"description": "User-provided identifier for the proxy"
|
|
60771
|
+
},
|
|
60772
|
+
"server": {
|
|
60773
|
+
"type": "string",
|
|
60774
|
+
"description": "Proxy server URL"
|
|
60775
|
+
},
|
|
60776
|
+
"username": {
|
|
60777
|
+
"type": "string",
|
|
60778
|
+
"description": "Proxy authentication username"
|
|
60779
|
+
},
|
|
60780
|
+
"password": {
|
|
60781
|
+
"type": "string",
|
|
60782
|
+
"description": "Proxy authentication password"
|
|
60783
|
+
}
|
|
60784
|
+
},
|
|
60785
|
+
"required": [
|
|
60786
|
+
"id",
|
|
60787
|
+
"server"
|
|
60788
|
+
],
|
|
60789
|
+
"additionalProperties": false
|
|
60790
|
+
}
|
|
60791
|
+
},
|
|
60792
|
+
"required": [
|
|
60793
|
+
"type",
|
|
60794
|
+
"proxy"
|
|
60795
|
+
],
|
|
60796
|
+
"additionalProperties": false
|
|
60797
|
+
}
|
|
60798
|
+
]
|
|
60799
|
+
}
|
|
60800
|
+
},
|
|
60801
|
+
"required": [
|
|
60802
|
+
"operation"
|
|
60803
|
+
],
|
|
60804
|
+
"additionalProperties": false
|
|
60805
|
+
},
|
|
60806
|
+
"outputJsonSchema": {
|
|
60807
|
+
"type": "object",
|
|
60808
|
+
"properties": {
|
|
60809
|
+
"operation": {
|
|
60810
|
+
"type": "string",
|
|
60811
|
+
"enum": [
|
|
60812
|
+
"get_sent_invitations"
|
|
60813
|
+
]
|
|
60814
|
+
},
|
|
60815
|
+
"success": {
|
|
60816
|
+
"type": "boolean"
|
|
60817
|
+
},
|
|
60818
|
+
"invitations": {
|
|
60819
|
+
"type": "array",
|
|
60820
|
+
"items": {
|
|
60821
|
+
"type": "object",
|
|
60822
|
+
"properties": {
|
|
60823
|
+
"name": {
|
|
60824
|
+
"type": "string",
|
|
60825
|
+
"description": "Full name of the person"
|
|
60826
|
+
},
|
|
60827
|
+
"headline": {
|
|
60828
|
+
"type": "string",
|
|
60829
|
+
"description": "Professional headline/tagline"
|
|
60830
|
+
},
|
|
60831
|
+
"sent_date": {
|
|
60832
|
+
"type": "string",
|
|
60833
|
+
"description": "When the invitation was sent"
|
|
60834
|
+
},
|
|
60835
|
+
"profile_url": {
|
|
60836
|
+
"type": "string",
|
|
60837
|
+
"description": "LinkedIn profile URL"
|
|
60838
|
+
}
|
|
60839
|
+
},
|
|
60840
|
+
"required": [
|
|
60841
|
+
"name",
|
|
60842
|
+
"sent_date"
|
|
60843
|
+
],
|
|
60844
|
+
"additionalProperties": false
|
|
60845
|
+
}
|
|
60846
|
+
},
|
|
60847
|
+
"total_count": {
|
|
60848
|
+
"type": "number"
|
|
60849
|
+
},
|
|
60850
|
+
"message": {
|
|
60851
|
+
"type": "string"
|
|
60852
|
+
},
|
|
60853
|
+
"error": {
|
|
60854
|
+
"type": "string"
|
|
60855
|
+
}
|
|
60856
|
+
},
|
|
60857
|
+
"required": [
|
|
60858
|
+
"operation",
|
|
60859
|
+
"success",
|
|
60860
|
+
"error"
|
|
60861
|
+
],
|
|
60862
|
+
"additionalProperties": false
|
|
60863
|
+
},
|
|
60864
|
+
"usageExample": "// Example usage of linkedin-sent-invitations-tool bubble\nconst linkedinSentInvitationsTool = new LinkedInSentInvitationsTool({\n operation: \"get_sent_invitations\",,\n proxy: { type: \"none\" },,\n});\n\nconst result = await linkedinSentInvitationsTool.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// operation: \"get_sent_invitations\",\n// success: boolean,\n// invitations: { name: string // Full name of the person, headline: string | undefined // Professional headline/tagline, sent_date: string // When the invitation was sent, profile_url: string | undefined // LinkedIn profile URL }[] | undefined,\n// total_count: number | undefined,\n// message: string | undefined,\n// error: string\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
60865
|
+
"requiredCredentials": [
|
|
60866
|
+
"LINKEDIN_CRED",
|
|
60867
|
+
"CLOUDFLARE_R2_ACCESS_KEY",
|
|
60868
|
+
"CLOUDFLARE_R2_SECRET_KEY",
|
|
60869
|
+
"CLOUDFLARE_R2_ACCOUNT_ID"
|
|
60870
|
+
]
|
|
60871
|
+
},
|
|
60872
|
+
{
|
|
60873
|
+
"name": "linkedin-received-invitations-tool",
|
|
60874
|
+
"alias": "linkedin-received-invitations",
|
|
60875
|
+
"type": "tool",
|
|
60876
|
+
"shortDescription": "Extract received LinkedIn connection invitations",
|
|
60877
|
+
"useCase": "General purpose bubble for various workflow needs",
|
|
60878
|
+
"outputSchema": "{\n operation: \"get_received_invitations\",\n success: boolean,\n invitations: { name: string // Full name of the person, headline: string | undefined // Professional headline/tagline, mutual_connections: string | undefined // Mutual connections info, received_date: string // When the invitation was received, profile_url: string | undefined // LinkedIn profile URL }[] | undefined,\n total_count: number | undefined,\n message: string | undefined,\n error: string\n}",
|
|
60879
|
+
"inputJsonSchema": {
|
|
60880
|
+
"type": "object",
|
|
60881
|
+
"properties": {
|
|
60882
|
+
"operation": {
|
|
60883
|
+
"type": "string",
|
|
60884
|
+
"enum": [
|
|
60885
|
+
"get_received_invitations"
|
|
60886
|
+
]
|
|
60887
|
+
},
|
|
60888
|
+
"credentials": {
|
|
60889
|
+
"type": "object",
|
|
60890
|
+
"additionalProperties": {
|
|
60891
|
+
"type": "string"
|
|
60892
|
+
}
|
|
60893
|
+
},
|
|
60894
|
+
"proxy": {
|
|
60895
|
+
"anyOf": [
|
|
60896
|
+
{
|
|
60897
|
+
"type": "object",
|
|
60898
|
+
"properties": {
|
|
60899
|
+
"type": {
|
|
60900
|
+
"type": "string",
|
|
60901
|
+
"enum": [
|
|
60902
|
+
"none"
|
|
60903
|
+
]
|
|
60904
|
+
}
|
|
60905
|
+
},
|
|
60906
|
+
"required": [
|
|
60907
|
+
"type"
|
|
60908
|
+
],
|
|
60909
|
+
"additionalProperties": false
|
|
60910
|
+
},
|
|
60911
|
+
{
|
|
60912
|
+
"type": "object",
|
|
60913
|
+
"properties": {
|
|
60914
|
+
"type": {
|
|
60915
|
+
"type": "string",
|
|
60916
|
+
"enum": [
|
|
60917
|
+
"browserbase"
|
|
60918
|
+
]
|
|
60919
|
+
}
|
|
60920
|
+
},
|
|
60921
|
+
"required": [
|
|
60922
|
+
"type"
|
|
60923
|
+
],
|
|
60924
|
+
"additionalProperties": false
|
|
60925
|
+
},
|
|
60926
|
+
{
|
|
60927
|
+
"type": "object",
|
|
60928
|
+
"properties": {
|
|
60929
|
+
"type": {
|
|
60115
60930
|
"type": "string",
|
|
60116
|
-
"
|
|
60931
|
+
"enum": [
|
|
60932
|
+
"custom"
|
|
60933
|
+
]
|
|
60117
60934
|
},
|
|
60118
|
-
"
|
|
60935
|
+
"proxy": {
|
|
60936
|
+
"type": "object",
|
|
60937
|
+
"properties": {
|
|
60938
|
+
"id": {
|
|
60939
|
+
"type": "string",
|
|
60940
|
+
"description": "User-provided identifier for the proxy"
|
|
60941
|
+
},
|
|
60942
|
+
"server": {
|
|
60943
|
+
"type": "string",
|
|
60944
|
+
"description": "Proxy server URL"
|
|
60945
|
+
},
|
|
60946
|
+
"username": {
|
|
60947
|
+
"type": "string",
|
|
60948
|
+
"description": "Proxy authentication username"
|
|
60949
|
+
},
|
|
60950
|
+
"password": {
|
|
60951
|
+
"type": "string",
|
|
60952
|
+
"description": "Proxy authentication password"
|
|
60953
|
+
}
|
|
60954
|
+
},
|
|
60955
|
+
"required": [
|
|
60956
|
+
"id",
|
|
60957
|
+
"server"
|
|
60958
|
+
],
|
|
60959
|
+
"additionalProperties": false
|
|
60960
|
+
}
|
|
60961
|
+
},
|
|
60962
|
+
"required": [
|
|
60963
|
+
"type",
|
|
60964
|
+
"proxy"
|
|
60965
|
+
],
|
|
60966
|
+
"additionalProperties": false
|
|
60967
|
+
}
|
|
60968
|
+
]
|
|
60969
|
+
}
|
|
60970
|
+
},
|
|
60971
|
+
"required": [
|
|
60972
|
+
"operation"
|
|
60973
|
+
],
|
|
60974
|
+
"additionalProperties": false
|
|
60975
|
+
},
|
|
60976
|
+
"outputJsonSchema": {
|
|
60977
|
+
"type": "object",
|
|
60978
|
+
"properties": {
|
|
60979
|
+
"operation": {
|
|
60980
|
+
"type": "string",
|
|
60981
|
+
"enum": [
|
|
60982
|
+
"get_received_invitations"
|
|
60983
|
+
]
|
|
60984
|
+
},
|
|
60985
|
+
"success": {
|
|
60986
|
+
"type": "boolean"
|
|
60987
|
+
},
|
|
60988
|
+
"invitations": {
|
|
60989
|
+
"type": "array",
|
|
60990
|
+
"items": {
|
|
60991
|
+
"type": "object",
|
|
60992
|
+
"properties": {
|
|
60993
|
+
"name": {
|
|
60994
|
+
"type": "string",
|
|
60995
|
+
"description": "Full name of the person"
|
|
60996
|
+
},
|
|
60997
|
+
"headline": {
|
|
60998
|
+
"type": "string",
|
|
60999
|
+
"description": "Professional headline/tagline"
|
|
61000
|
+
},
|
|
61001
|
+
"mutual_connections": {
|
|
61002
|
+
"type": "string",
|
|
61003
|
+
"description": "Mutual connections info"
|
|
61004
|
+
},
|
|
61005
|
+
"received_date": {
|
|
61006
|
+
"type": "string",
|
|
61007
|
+
"description": "When the invitation was received"
|
|
61008
|
+
},
|
|
61009
|
+
"profile_url": {
|
|
61010
|
+
"type": "string",
|
|
61011
|
+
"description": "LinkedIn profile URL"
|
|
61012
|
+
}
|
|
61013
|
+
},
|
|
61014
|
+
"required": [
|
|
61015
|
+
"name",
|
|
61016
|
+
"received_date"
|
|
61017
|
+
],
|
|
61018
|
+
"additionalProperties": false
|
|
61019
|
+
}
|
|
61020
|
+
},
|
|
61021
|
+
"total_count": {
|
|
61022
|
+
"type": "number"
|
|
61023
|
+
},
|
|
61024
|
+
"message": {
|
|
61025
|
+
"type": "string"
|
|
61026
|
+
},
|
|
61027
|
+
"error": {
|
|
61028
|
+
"type": "string"
|
|
61029
|
+
}
|
|
61030
|
+
},
|
|
61031
|
+
"required": [
|
|
61032
|
+
"operation",
|
|
61033
|
+
"success",
|
|
61034
|
+
"error"
|
|
61035
|
+
],
|
|
61036
|
+
"additionalProperties": false
|
|
61037
|
+
},
|
|
61038
|
+
"usageExample": "// Example usage of linkedin-received-invitations-tool bubble\nconst linkedinReceivedInvitationsTool = new LinkedInReceivedInvitationsTool({\n operation: \"get_received_invitations\",,\n proxy: { type: \"none\" },,\n});\n\nconst result = await linkedinReceivedInvitationsTool.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// operation: \"get_received_invitations\",\n// success: boolean,\n// invitations: { name: string // Full name of the person, headline: string | undefined // Professional headline/tagline, mutual_connections: string | undefined // Mutual connections info, received_date: string // When the invitation was received, profile_url: string | undefined // LinkedIn profile URL }[] | undefined,\n// total_count: number | undefined,\n// message: string | undefined,\n// error: string\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
61039
|
+
"requiredCredentials": [
|
|
61040
|
+
"LINKEDIN_CRED",
|
|
61041
|
+
"CLOUDFLARE_R2_ACCESS_KEY",
|
|
61042
|
+
"CLOUDFLARE_R2_SECRET_KEY",
|
|
61043
|
+
"CLOUDFLARE_R2_ACCOUNT_ID"
|
|
61044
|
+
]
|
|
61045
|
+
},
|
|
61046
|
+
{
|
|
61047
|
+
"name": "linkedin-accept-invitations-tool",
|
|
61048
|
+
"alias": "linkedin-accept-invitations",
|
|
61049
|
+
"type": "tool",
|
|
61050
|
+
"shortDescription": "Accept top N LinkedIn connection invitations",
|
|
61051
|
+
"useCase": "General purpose bubble for various workflow needs",
|
|
61052
|
+
"outputSchema": "{\n operation: \"accept_invitations\",\n success: boolean,\n accepted: { name: string // Full name of the person whose invitation was accepted, headline: string | undefined // Professional headline/tagline, mutual_connections: string | undefined // Mutual connections info, profile_url: string | undefined // LinkedIn profile URL }[] | undefined,\n accepted_count: number | undefined,\n skipped_count: number | undefined,\n message: string | undefined,\n error: string\n}",
|
|
61053
|
+
"inputJsonSchema": {
|
|
61054
|
+
"type": "object",
|
|
61055
|
+
"properties": {
|
|
61056
|
+
"operation": {
|
|
61057
|
+
"type": "string",
|
|
61058
|
+
"enum": [
|
|
61059
|
+
"accept_invitations"
|
|
61060
|
+
]
|
|
61061
|
+
},
|
|
61062
|
+
"count": {
|
|
61063
|
+
"type": "number",
|
|
61064
|
+
"minimum": 1,
|
|
61065
|
+
"maximum": 100,
|
|
61066
|
+
"default": 5,
|
|
61067
|
+
"description": "Number of invitations to accept (default: 5, max: 100)"
|
|
61068
|
+
},
|
|
61069
|
+
"credentials": {
|
|
61070
|
+
"type": "object",
|
|
61071
|
+
"additionalProperties": {
|
|
61072
|
+
"type": "string"
|
|
61073
|
+
}
|
|
61074
|
+
},
|
|
61075
|
+
"proxy": {
|
|
61076
|
+
"anyOf": [
|
|
61077
|
+
{
|
|
61078
|
+
"type": "object",
|
|
61079
|
+
"properties": {
|
|
61080
|
+
"type": {
|
|
60119
61081
|
"type": "string",
|
|
60120
|
-
"
|
|
61082
|
+
"enum": [
|
|
61083
|
+
"none"
|
|
61084
|
+
]
|
|
60121
61085
|
}
|
|
60122
61086
|
},
|
|
60123
61087
|
"required": [
|
|
60124
|
-
"
|
|
60125
|
-
"profile_url"
|
|
61088
|
+
"type"
|
|
60126
61089
|
],
|
|
60127
|
-
"additionalProperties": false
|
|
60128
|
-
"description": "Profile information of the person"
|
|
61090
|
+
"additionalProperties": false
|
|
60129
61091
|
},
|
|
60130
|
-
|
|
60131
|
-
"type": "
|
|
60132
|
-
"
|
|
61092
|
+
{
|
|
61093
|
+
"type": "object",
|
|
61094
|
+
"properties": {
|
|
61095
|
+
"type": {
|
|
61096
|
+
"type": "string",
|
|
61097
|
+
"enum": [
|
|
61098
|
+
"browserbase"
|
|
61099
|
+
]
|
|
61100
|
+
}
|
|
61101
|
+
},
|
|
61102
|
+
"required": [
|
|
61103
|
+
"type"
|
|
61104
|
+
],
|
|
61105
|
+
"additionalProperties": false
|
|
61106
|
+
},
|
|
61107
|
+
{
|
|
61108
|
+
"type": "object",
|
|
61109
|
+
"properties": {
|
|
61110
|
+
"type": {
|
|
61111
|
+
"type": "string",
|
|
61112
|
+
"enum": [
|
|
61113
|
+
"custom"
|
|
61114
|
+
]
|
|
61115
|
+
},
|
|
61116
|
+
"proxy": {
|
|
61117
|
+
"type": "object",
|
|
61118
|
+
"properties": {
|
|
61119
|
+
"id": {
|
|
61120
|
+
"type": "string",
|
|
61121
|
+
"description": "User-provided identifier for the proxy"
|
|
61122
|
+
},
|
|
61123
|
+
"server": {
|
|
61124
|
+
"type": "string",
|
|
61125
|
+
"description": "Proxy server URL"
|
|
61126
|
+
},
|
|
61127
|
+
"username": {
|
|
61128
|
+
"type": "string",
|
|
61129
|
+
"description": "Proxy authentication username"
|
|
61130
|
+
},
|
|
61131
|
+
"password": {
|
|
61132
|
+
"type": "string",
|
|
61133
|
+
"description": "Proxy authentication password"
|
|
61134
|
+
}
|
|
61135
|
+
},
|
|
61136
|
+
"required": [
|
|
61137
|
+
"id",
|
|
61138
|
+
"server"
|
|
61139
|
+
],
|
|
61140
|
+
"additionalProperties": false
|
|
61141
|
+
}
|
|
61142
|
+
},
|
|
61143
|
+
"required": [
|
|
61144
|
+
"type",
|
|
61145
|
+
"proxy"
|
|
61146
|
+
],
|
|
61147
|
+
"additionalProperties": false
|
|
60133
61148
|
}
|
|
60134
|
-
|
|
60135
|
-
"required": [
|
|
60136
|
-
"operation",
|
|
60137
|
-
"success",
|
|
60138
|
-
"error"
|
|
60139
|
-
],
|
|
60140
|
-
"additionalProperties": false
|
|
61149
|
+
]
|
|
60141
61150
|
}
|
|
60142
|
-
|
|
61151
|
+
},
|
|
61152
|
+
"required": [
|
|
61153
|
+
"operation"
|
|
61154
|
+
],
|
|
61155
|
+
"additionalProperties": false
|
|
61156
|
+
},
|
|
61157
|
+
"outputJsonSchema": {
|
|
61158
|
+
"type": "object",
|
|
61159
|
+
"properties": {
|
|
61160
|
+
"operation": {
|
|
61161
|
+
"type": "string",
|
|
61162
|
+
"enum": [
|
|
61163
|
+
"accept_invitations"
|
|
61164
|
+
]
|
|
61165
|
+
},
|
|
61166
|
+
"success": {
|
|
61167
|
+
"type": "boolean"
|
|
61168
|
+
},
|
|
61169
|
+
"accepted": {
|
|
61170
|
+
"type": "array",
|
|
61171
|
+
"items": {
|
|
61172
|
+
"type": "object",
|
|
61173
|
+
"properties": {
|
|
61174
|
+
"name": {
|
|
61175
|
+
"type": "string",
|
|
61176
|
+
"description": "Full name of the person whose invitation was accepted"
|
|
61177
|
+
},
|
|
61178
|
+
"headline": {
|
|
61179
|
+
"type": "string",
|
|
61180
|
+
"description": "Professional headline/tagline"
|
|
61181
|
+
},
|
|
61182
|
+
"mutual_connections": {
|
|
61183
|
+
"type": "string",
|
|
61184
|
+
"description": "Mutual connections info"
|
|
61185
|
+
},
|
|
61186
|
+
"profile_url": {
|
|
61187
|
+
"type": "string",
|
|
61188
|
+
"description": "LinkedIn profile URL"
|
|
61189
|
+
}
|
|
61190
|
+
},
|
|
61191
|
+
"required": [
|
|
61192
|
+
"name"
|
|
61193
|
+
],
|
|
61194
|
+
"additionalProperties": false
|
|
61195
|
+
}
|
|
61196
|
+
},
|
|
61197
|
+
"accepted_count": {
|
|
61198
|
+
"type": "number"
|
|
61199
|
+
},
|
|
61200
|
+
"skipped_count": {
|
|
61201
|
+
"type": "number"
|
|
61202
|
+
},
|
|
61203
|
+
"message": {
|
|
61204
|
+
"type": "string"
|
|
61205
|
+
},
|
|
61206
|
+
"error": {
|
|
61207
|
+
"type": "string"
|
|
61208
|
+
}
|
|
61209
|
+
},
|
|
61210
|
+
"required": [
|
|
61211
|
+
"operation",
|
|
61212
|
+
"success",
|
|
61213
|
+
"error"
|
|
61214
|
+
],
|
|
61215
|
+
"additionalProperties": false
|
|
60143
61216
|
},
|
|
60144
|
-
"usageExample": "//
|
|
61217
|
+
"usageExample": "// Example usage of linkedin-accept-invitations-tool bubble\nconst linkedinAcceptInvitationsTool = new LinkedInAcceptInvitationsTool({\n operation: \"accept_invitations\",,\n count: 5 // default, // Number of invitations to accept (default: 5, max: 100),\n proxy: { type: \"none\" },,\n});\n\nconst result = await linkedinAcceptInvitationsTool.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// operation: \"accept_invitations\",\n// success: boolean,\n// accepted: { name: string // Full name of the person whose invitation was accepted, headline: string | undefined // Professional headline/tagline, mutual_connections: string | undefined // Mutual connections info, profile_url: string | undefined // LinkedIn profile URL }[] | undefined,\n// accepted_count: number | undefined,\n// skipped_count: number | undefined,\n// message: string | undefined,\n// error: string\n// }\n\n// Access the actual data\nconst actualData = result.data;\nconsole.log(actualData);",
|
|
60145
61218
|
"requiredCredentials": [
|
|
60146
61219
|
"LINKEDIN_CRED",
|
|
60147
61220
|
"CLOUDFLARE_R2_ACCESS_KEY",
|