import { z } from 'zod'; import { ToolBubble } from '../../types/tool-bubble-class.js'; import type { BubbleContext } from '../../types/bubble.js'; import { CredentialType, type BubbleName } from '@bubblelab/shared-schemas'; declare const YCFounderSchema: z.ZodObject<{ name: z.ZodNullable; title: z.ZodNullable; linkedinUrl: z.ZodNullable; bio: z.ZodNullable; twitterUrl: z.ZodNullable; }, "strip", z.ZodTypeAny, { title: string | null; name: string | null; linkedinUrl: string | null; bio: string | null; twitterUrl: string | null; }, { title: string | null; name: string | null; linkedinUrl: string | null; bio: string | null; twitterUrl: string | null; }>; declare const YCCompanySchema: z.ZodObject<{ companyName: z.ZodNullable; description: z.ZodNullable; batch: z.ZodNullable; website: z.ZodNullable; ycUrl: z.ZodNullable; founders: z.ZodArray; title: z.ZodNullable; linkedinUrl: z.ZodNullable; bio: z.ZodNullable; twitterUrl: z.ZodNullable; }, "strip", z.ZodTypeAny, { title: string | null; name: string | null; linkedinUrl: string | null; bio: string | null; twitterUrl: string | null; }, { title: string | null; name: string | null; linkedinUrl: string | null; bio: string | null; twitterUrl: string | null; }>, "many">; }, "strip", z.ZodTypeAny, { description: string | null; batch: string | null; website: string | null; companyName: string | null; founders: { title: string | null; name: string | null; linkedinUrl: string | null; bio: string | null; twitterUrl: string | null; }[]; ycUrl: string | null; }, { description: string | null; batch: string | null; website: string | null; companyName: string | null; founders: { title: string | null; name: string | null; linkedinUrl: string | null; bio: string | null; twitterUrl: string | null; }[]; ycUrl: string | null; }>; declare const YCPersonSchema: z.ZodObject<{ name: z.ZodNullable; title: z.ZodNullable; currentEmployers: z.ZodArray; }, "strip", z.ZodTypeAny, { companyName: string | null; }, { companyName: string | null; }>, "many">; linkedinUrl: z.ZodNullable; twitterUrl: z.ZodNullable; bio: z.ZodNullable; emails: z.ZodNullable>; }, "strip", z.ZodTypeAny, { title: string | null; name: string | null; emails: string[] | null; linkedinUrl: string | null; bio: string | null; currentEmployers: { companyName: string | null; }[]; twitterUrl: string | null; }, { title: string | null; name: string | null; emails: string[] | null; linkedinUrl: string | null; bio: string | null; currentEmployers: { companyName: string | null; }[]; twitterUrl: string | null; }>; declare const YCScraperToolParamsSchema: z.ZodObject<{ batch: z.ZodOptional; url: z.ZodOptional; maxCompanies: z.ZodOptional>; includeFounders: z.ZodOptional>; credentials: z.ZodOptional, z.ZodString>>; }, "strip", z.ZodTypeAny, { credentials?: Partial> | undefined; batch?: string | undefined; url?: string | undefined; maxCompanies?: number | undefined; includeFounders?: boolean | undefined; }, { credentials?: Partial> | undefined; batch?: string | undefined; url?: string | undefined; maxCompanies?: number | undefined; includeFounders?: boolean | undefined; }>; declare const YCScraperToolResultSchema: z.ZodObject<{ people: z.ZodArray; title: z.ZodNullable; currentEmployers: z.ZodArray; }, "strip", z.ZodTypeAny, { companyName: string | null; }, { companyName: string | null; }>, "many">; linkedinUrl: z.ZodNullable; twitterUrl: z.ZodNullable; bio: z.ZodNullable; emails: z.ZodNullable>; }, "strip", z.ZodTypeAny, { title: string | null; name: string | null; emails: string[] | null; linkedinUrl: string | null; bio: string | null; currentEmployers: { companyName: string | null; }[]; twitterUrl: string | null; }, { title: string | null; name: string | null; emails: string[] | null; linkedinUrl: string | null; bio: string | null; currentEmployers: { companyName: string | null; }[]; twitterUrl: string | null; }>, "many">; companies: z.ZodArray; description: z.ZodNullable; batch: z.ZodNullable; website: z.ZodNullable; ycUrl: z.ZodNullable; founders: z.ZodArray; title: z.ZodNullable; linkedinUrl: z.ZodNullable; bio: z.ZodNullable; twitterUrl: z.ZodNullable; }, "strip", z.ZodTypeAny, { title: string | null; name: string | null; linkedinUrl: string | null; bio: string | null; twitterUrl: string | null; }, { title: string | null; name: string | null; linkedinUrl: string | null; bio: string | null; twitterUrl: string | null; }>, "many">; }, "strip", z.ZodTypeAny, { description: string | null; batch: string | null; website: string | null; companyName: string | null; founders: { title: string | null; name: string | null; linkedinUrl: string | null; bio: string | null; twitterUrl: string | null; }[]; ycUrl: string | null; }, { description: string | null; batch: string | null; website: string | null; companyName: string | null; founders: { title: string | null; name: string | null; linkedinUrl: string | null; bio: string | null; twitterUrl: string | null; }[]; ycUrl: string | null; }>, "many">; totalPeople: z.ZodNumber; totalCompanies: z.ZodNumber; batch: z.ZodNullable; url: z.ZodNullable; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { error: string; success: boolean; batch: string | null; url: string | null; people: { title: string | null; name: string | null; emails: string[] | null; linkedinUrl: string | null; bio: string | null; currentEmployers: { companyName: string | null; }[]; twitterUrl: string | null; }[]; companies: { description: string | null; batch: string | null; website: string | null; companyName: string | null; founders: { title: string | null; name: string | null; linkedinUrl: string | null; bio: string | null; twitterUrl: string | null; }[]; ycUrl: string | null; }[]; totalPeople: number; totalCompanies: number; }, { error: string; success: boolean; batch: string | null; url: string | null; people: { title: string | null; name: string | null; emails: string[] | null; linkedinUrl: string | null; bio: string | null; currentEmployers: { companyName: string | null; }[]; twitterUrl: string | null; }[]; companies: { description: string | null; batch: string | null; website: string | null; companyName: string | null; founders: { title: string | null; name: string | null; linkedinUrl: string | null; bio: string | null; twitterUrl: string | null; }[]; ycUrl: string | null; }[]; totalPeople: number; totalCompanies: number; }>; type YCScraperToolParams = z.output; type YCScraperToolResult = z.output; type YCScraperToolParamsInput = z.input; export type YCPerson = z.output; export type YCCompany = z.output; export type YCFounder = z.output; /** * Y Combinator Scraper Tool * * Scrapes Y Combinator company directory to extract company and founder data. * Perfect for: * - Finding YC founders for networking/outreach * - Researching YC companies by batch * - Building databases of startup founders * - Lead generation targeting YC alumni * * Uses the Apify Y Combinator scraper actor behind the scenes. */ export declare class YCScraperTool extends ToolBubble { static readonly bubbleName: BubbleName; static readonly schema: z.ZodObject<{ batch: z.ZodOptional; url: z.ZodOptional; maxCompanies: z.ZodOptional>; includeFounders: z.ZodOptional>; credentials: z.ZodOptional, z.ZodString>>; }, "strip", z.ZodTypeAny, { credentials?: Partial> | undefined; batch?: string | undefined; url?: string | undefined; maxCompanies?: number | undefined; includeFounders?: boolean | undefined; }, { credentials?: Partial> | undefined; batch?: string | undefined; url?: string | undefined; maxCompanies?: number | undefined; includeFounders?: boolean | undefined; }>; static readonly resultSchema: z.ZodObject<{ people: z.ZodArray; title: z.ZodNullable; currentEmployers: z.ZodArray; }, "strip", z.ZodTypeAny, { companyName: string | null; }, { companyName: string | null; }>, "many">; linkedinUrl: z.ZodNullable; twitterUrl: z.ZodNullable; bio: z.ZodNullable; emails: z.ZodNullable>; }, "strip", z.ZodTypeAny, { title: string | null; name: string | null; emails: string[] | null; linkedinUrl: string | null; bio: string | null; currentEmployers: { companyName: string | null; }[]; twitterUrl: string | null; }, { title: string | null; name: string | null; emails: string[] | null; linkedinUrl: string | null; bio: string | null; currentEmployers: { companyName: string | null; }[]; twitterUrl: string | null; }>, "many">; companies: z.ZodArray; description: z.ZodNullable; batch: z.ZodNullable; website: z.ZodNullable; ycUrl: z.ZodNullable; founders: z.ZodArray; title: z.ZodNullable; linkedinUrl: z.ZodNullable; bio: z.ZodNullable; twitterUrl: z.ZodNullable; }, "strip", z.ZodTypeAny, { title: string | null; name: string | null; linkedinUrl: string | null; bio: string | null; twitterUrl: string | null; }, { title: string | null; name: string | null; linkedinUrl: string | null; bio: string | null; twitterUrl: string | null; }>, "many">; }, "strip", z.ZodTypeAny, { description: string | null; batch: string | null; website: string | null; companyName: string | null; founders: { title: string | null; name: string | null; linkedinUrl: string | null; bio: string | null; twitterUrl: string | null; }[]; ycUrl: string | null; }, { description: string | null; batch: string | null; website: string | null; companyName: string | null; founders: { title: string | null; name: string | null; linkedinUrl: string | null; bio: string | null; twitterUrl: string | null; }[]; ycUrl: string | null; }>, "many">; totalPeople: z.ZodNumber; totalCompanies: z.ZodNumber; batch: z.ZodNullable; url: z.ZodNullable; success: z.ZodBoolean; error: z.ZodString; }, "strip", z.ZodTypeAny, { error: string; success: boolean; batch: string | null; url: string | null; people: { title: string | null; name: string | null; emails: string[] | null; linkedinUrl: string | null; bio: string | null; currentEmployers: { companyName: string | null; }[]; twitterUrl: string | null; }[]; companies: { description: string | null; batch: string | null; website: string | null; companyName: string | null; founders: { title: string | null; name: string | null; linkedinUrl: string | null; bio: string | null; twitterUrl: string | null; }[]; ycUrl: string | null; }[]; totalPeople: number; totalCompanies: number; }, { error: string; success: boolean; batch: string | null; url: string | null; people: { title: string | null; name: string | null; emails: string[] | null; linkedinUrl: string | null; bio: string | null; currentEmployers: { companyName: string | null; }[]; twitterUrl: string | null; }[]; companies: { description: string | null; batch: string | null; website: string | null; companyName: string | null; founders: { title: string | null; name: string | null; linkedinUrl: string | null; bio: string | null; twitterUrl: string | null; }[]; ycUrl: string | null; }[]; totalPeople: number; totalCompanies: number; }>; static readonly shortDescription = "Scrape Y Combinator directory for company and founder data. Find founders by batch (W24, S23, etc.) with LinkedIn profiles."; static readonly longDescription = "\n Y Combinator directory scraper for extracting company and founder data.\n\n **OPERATIONS:**\n - Scrape companies and founders by YC batch (e.g., W24, S23, W22)\n - Extract founder details including LinkedIn profiles, titles, and bios\n - Get company information including descriptions and websites\n\n **WHEN TO USE THIS TOOL:**\n - **YC founder outreach** - find founders from specific batches for networking\n - **Lead generation** - build lists of YC founders for sales/recruiting\n - **Research** - analyze YC companies by batch, industry, or founder background\n - **Competitive analysis** - research YC companies in specific sectors\n\n **BATCH FORMAT:**\n - W = Winter batch (January start)\n - S = Summer batch (June start)\n - Examples: W24 (Winter 2024), S23 (Summer 2023), W22 (Winter 2022)\n\n **OUTPUT:**\n - People array: Flattened list of founders with company context\n - Companies array: Company-level data with nested founders\n - LinkedIn URLs for direct founder outreach\n\n **TIPS:**\n - Start with smaller maxCompanies (20-50) for faster results\n - Use the batch parameter for easier filtering\n - Use url parameter for advanced filtering (industry, location, etc.)\n\n The tool uses Apify's Y Combinator scraper for reliable data extraction.\n "; static readonly alias = "yc"; static readonly type = "tool"; constructor(params?: YCScraperToolParamsInput, context?: BubbleContext); performAction(): Promise; /** * Convert batch to full format for URL * Handles multiple input formats: * - "W24", "S23", "F22", "Sp24" -> "Winter 2024", "Summer 2023", "Fall 2022", "Spring 2024" * - "W2024", "S2023", "F2022", "Sp2024" -> full year variants * - "Winter 2024", "Summer 2023", "Fall 2022", "Spring 2024" -> pass through * - "winter2024", "Winter24", "fall24", "spring24" -> normalized format */ private formatBatchForUrl; /** * Create an error result */ private createErrorResult; /** * Transform Apify companies to our format */ private transformCompanies; /** * Extract and flatten founders into people array */ private extractPeople; } export {}; //# sourceMappingURL=yc-scraper-tool.d.ts.map