[
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "83277dab9cedeaa40d396153724699697d8f1cce783a534f9f8fd8a28ef2f8ba",
    "channelId": "UC2Xd-TjJByJyK2w1zNwY0zQ",
    "channelHandle": "@beyondfireship",
    "channelName": "Beyond Fireship",
    "channelUrl": "https://www.youtube.com/@beyondfireship",
    "description": "Even more highly-focused blazingly-fast coding tutorials from Fireship",
    "joinDate": null,
    "location": null,
    "subscribers": 468000,
    "totalVideos": 43,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/UjQ03W3C4Wm_WGj_J5ktcd6OJFV1rrVeJrtvtXQ6q_UUvvJcpZ6edLJWDZsToyB0G_huIZtM9Q=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [],
    "recentVideos": [
      {
        "videoId": "clJCDHml2cA",
        "title": "I built a DeepSeek R1 powered VS Code extension…",
        "publishedAt": "1 year ago",
        "durationSeconds": 422,
        "views": 660177,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to build a VS Code Extension from scratch. In this fun tutorial, we integrate DeepSeek R1 direction into our editor to build a custom AI assistant. \n\nGo Deeper https://fireship.io/courses\n\nRelated Content:\n\nVS Code Extension Template https://code.visualstudio.com/api/get...\nOllama DeepSeek R1 https://ollama.com/library/deepseek-r1\nDeepSeek R1 First Look    • This free Chinese AI just crushed OpenAI's...  \nDeepSeek Fallout    • Big Tech in panic mode... Did DeepSeek R1 ...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xWkozeculPo",
        "title": "Is Next.js 15 any good? \"use cache\" API first look",
        "publishedAt": "1 year ago",
        "durationSeconds": 496,
        "views": 167210,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Upgrade to Fireship PRO https://fireship.io/pro \n\nUse code BLACKFIRE for 40% off\n\nNext.js 15 was released recently, with awesome new features like the React 19 compiler, background code, and the \"use cache\" directive. Learn about the new dynamicIO caching feature in Next.js\n\nNext 15 Blog Post https://nextjs.org/blog/next-15",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_pWA4rbzvIg",
        "title": "JavaScript performance is weird... Write scientifically faster code with benchmarking",
        "publishedAt": "1 year ago",
        "durationSeconds": 500,
        "views": 253667,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to benchmark your JavaScript code in Deno and find out how the way you write code affects performance. Why is a traditional for loop faster than forEach? And is premature optimization the root of all evil?\n\nUse DENOTIME to take 30% off Fireship PRO https://fireship.io/pro\n\nNode vs Deno vs Bun by ‪@AntonPutra‬    • Deno vs. Node.js vs Bun: Performance Compa...  \n10 Sorting Algorithms    • Sorting Algorithms Explained Visually",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8IHhvkaVqVE",
        "title": "Does Deno 2 really uncomplicate JavaScript?",
        "publishedAt": "1 year ago",
        "durationSeconds": 535,
        "views": 521330,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Last week, the highly anticipated JavaScript runtime was released, with arguably the greatest launch campaign for a JavaScript tool ever made.\n\nDeno 2 Commercial    • Programming Should Be Simple  \nOriginal Deno Code Report    • Deno 2 is here… will it actually kill Node...  \n\nIn this video we'll use Deno 2.0 to build a REST API and find out if it lives up to its bold claim of uncomplicating JavaScript...\n\nLearn how to build real-world applications with JavaScript 👉https://fireship.io/courses/js/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7WFXl4-aCxs",
        "title": "Build better payment forms using new “embedded” Stripe Checkout",
        "publishedAt": "2 years ago",
        "durationSeconds": 364,
        "views": 254578,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to use the new embedded Stripe Checkout feature to easily accept payments without ever leaving your own website. Learn everything about payments for software developers in my new Stripe for SaaS featuring Next.js and Supabase: \n\nStripe for SaaS: https://fireship.io/courses/stripe-saas/\n\nAnd use code BEYOND30 to save some money!\n\nFull Tutorial and Code: https://fireship.io/courses/stripe-sa...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "P8MfgV9us4o",
        "title": "GitHub Copilot now controls your command line...",
        "publishedAt": "2 years ago",
        "durationSeconds": 314,
        "views": 313273,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to become a Bash or PowerShell guru by using GitHub Copilot in the CLI. This new feature is a great way to learn Linux and Git commands without ever leaving your IDE. \n\nCheck out the Fireship VS Code course https://fireship.io/courses/vscode-tr...\n\nGitHub copilot in the CLI https://github.blog/changelog/2024-03...\n\nFFmpeg in 100 Seconds    • FFmpeg in 100 Seconds",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cw34KMPSt4k",
        "title": "How I deploy serverless containers for free",
        "publishedAt": "2 years ago",
        "durationSeconds": 393,
        "views": 804434,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build a Python Flask app for removing the background from images, containerize it with Docker, then deploy it with serverless cloud tools. \n\nWatch Docker 101    • 100+ Docker Concepts you Need to Know  \nSource Code https://github.com/codediodeio/rembg-...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RPa3_AD1_Vs",
        "title": "This UI component library is mind-blowing",
        "publishedAt": "2 years ago",
        "durationSeconds": 503,
        "views": 871216,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Let's explore a free open-source UI library that replicates advanced animations found on the landing pages of top-tier startups. Learn how to code advanced components in React and other JavaScript frameworks. \n\nAceternity Components https://ui.aceternity.com/components\nShadCN https://ui.shadcn.com/\nParallax Tutorial    • The Parallax Effect // 5 Minute WebDev Pro...  \nFireship Next.js Course https://fireship.io/courses/nextjs/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_xfZIr5sDLw",
        "title": "I built an Apple Vision Pro app... visionOS tutorial",
        "publishedAt": "2 years ago",
        "durationSeconds": 559,
        "views": 570432,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn the basics of VisionOS development for the Apple Vision Pro. I build a simple app from scratch using SwiftUI and RealityKit to build an app for Apple's new VR/AR platform. \n\nUpgrade to PRO https://fireship.io/pro\n\nVisionOS Docs https://developer.apple.com/documenta...\nApple Vision Code Report    • Zuck’s brutal takedown of Apple Vision Pro",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lsXqparnx24",
        "title": "Mind-blowing page animations are easy now... View Transitions API first look",
        "publishedAt": "2 years ago",
        "durationSeconds": 301,
        "views": 275865,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn about the new View Transitions API in Astro and how it can add awesome route animations to your website. \n\n#webdevelopment #javascript #code\n\nUpgrade to Fireship PRO https://fireship.io/pro\nView Transitions API https://docs.astro.build/en/guides/vi...\nSvelteFire Docs https://sveltefire.fireship.io\nI built a JS framework    • I built a JavaScript framework",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-JE8P2TiJEg",
        "title": "PROOF JavaScript is a Multi-Threaded language",
        "publishedAt": "2 years ago",
        "durationSeconds": 501,
        "views": 333114,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn the basics of parallelism and concurrency in JavaScript by experimenting with Node.js Worker Threads and browser Web Workers. \n\n#javascript #programming #computerscience \n\nUpgrade to...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "yfBtjLxn_6k",
        "title": "How GitHub Actions 10x my productivity",
        "publishedAt": "2 years ago",
        "durationSeconds": 498,
        "views": 536652,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to use GitHub actions continuous integration and delivery in a software development project. In this quick tutorial, we look at 7 powerful ways to automate code with CI/CD. \n\n#programming...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MnpuK0MK4yo",
        "title": "React VS Svelte...10 Examples",
        "publishedAt": "2 years ago",
        "durationSeconds": 515,
        "views": 705873,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The ultimate guide to Svelte for React.js Developers with 10 code examples for both JavaScript frameworks. Find out if SvelteKit is better than Next.js...\n\nSvelteKit Course https://fireship.io/cour...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mG8UupGkbGo",
        "title": "I built a *streaming* AI chat app",
        "publishedAt": "2 years ago",
        "durationSeconds": 253,
        "views": 128374,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to use the new Vercel AI SDK to quickly build streaming AI chat apps with APIs like OpenAI, Anthropic, HuggingFace, LangChain, and more. \n\nUpgrade to get the full SvelteKit Course...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4QN1BzxF8wM",
        "title": "I tried 8 different Postgres ORMs",
        "publishedAt": "2 years ago",
        "durationSeconds": 586,
        "views": 507419,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Let's compare 8 ways to work with SQL databases in a JavaScript project like Node.js or Next.js. Analyze the pros and cons of libraries and ORMs that can run Postgres queries in a fullstack...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-uN1Q98UMO4",
        "title": "Most overpowered way to build mobile apps?",
        "publishedAt": "2 years ago",
        "durationSeconds": 513,
        "views": 924095,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to use FlutterFlow to build iOS and Android apps quickly. It is a low-code Flutter tool with integrations for Firebase that rapidly speed up mobile development.\n\n#android #flutter...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "shWEfRlmb6g",
        "title": "I built a fullstack PaLM AI app in just 2 minutes",
        "publishedAt": "3 years ago",
        "durationSeconds": 208,
        "views": 177977,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to use Google's new PaLM 2 AI model with Firebase and SvelteKit. In this tutorial, we build and deploy a fullstack LLM-powered application in just 2 minutes. \n\nFirebase Updates https://fi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0fONene3OIA",
        "title": "The ultimate guide to web performance",
        "publishedAt": "3 years ago",
        "durationSeconds": 403,
        "views": 547946,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to analyze and optimize the performance of any website. In this tutorial, we explore tips and tricks to build faster UIs that are ideal for search engine optimization. \n\n#webdevelopment...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "O94ESaJtHtM",
        "title": "Next.js Server Actions...  5 awesome things you can do",
        "publishedAt": "3 years ago",
        "durationSeconds": 471,
        "views": 314495,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A full tutorial and breakdown of the new Next.js Server Actions feature. Learn how to handle form submissions and implement optimistic updates without the need to API routes. \n\n#reactjs #javascript...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qo_fUjb02ns",
        "title": "Industrial-scale Web Scraping with AI & Proxy Networks",
        "publishedAt": "3 years ago",
        "durationSeconds": 377,
        "views": 846971,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn advanced web scraping techniques with Puppeteer and BrightData's scraping browser. We collect ecommerce data from sites like Amazon then analyze that data with ChatGPT. \n\n#javascript...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mBcBoGhFndY",
        "title": "I built an image search engine",
        "publishedAt": "3 years ago",
        "durationSeconds": 404,
        "views": 320106,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to use a vector database to build an image search engine powered by a deep neural network from scratch. \n\nFull Image Search Engine Tutorial https://fireship.io/lessons/image-search-engine...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "e2uvhJ7r1UQ",
        "title": "ChatGPT Official API First Look",
        "publishedAt": "3 years ago",
        "durationSeconds": 264,
        "views": 432723,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "ChatGPT now has an official API from OpenAI. Learn how to use the new Chat Completions API to build your own custom chat application or AI SaaS product. \n\nChatGPT API https://platform.openai.com/do...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RfXt_qHDEPw",
        "title": "Sorting Algorithms Explained Visually",
        "publishedAt": "3 years ago",
        "durationSeconds": 541,
        "views": 600011,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Implement 7 sorting algorithms with javascript and analyze their performance visually. \n\nLearn how JetBrains MPS empowers developers and non-developers to benefit from domain-specific languages...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cv7ci6GT5Hg",
        "title": "You don't need Node to use NPM packages",
        "publishedAt": "3 years ago",
        "durationSeconds": 168,
        "views": 152456,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to use Node.js packages in the Deno JavaScript runtime with its new NPM specifier. \n\n#typescript #nodejs #javascript \n\nDeno NPM support blog post https://deno.com/blog/v1.28\nFireship...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Dkx5ydvtpCA",
        "title": "10 Rendering Patterns for Web Apps",
        "publishedAt": "3 years ago",
        "durationSeconds": 415,
        "views": 381311,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn about 10 different ways you can render a website to HTML with patterns like SSR, SSG, ISR, Partial Hydration, and More! \n\n#webdevelopment #javascript #top10 \n\nUpgrade to PRO for full...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UbOaAtHWidc",
        "title": "The easiest realtime app I’ve ever built",
        "publishedAt": "3 years ago",
        "durationSeconds": 346,
        "views": 189451,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I built a library called SvelteFire to make building realtime apps with Svelte and Firebase even easier https://github.com/codediodeio/sveltefire\n\n#webdevelopment #javascript #sveltekit #firebase",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZZIR1NGwy-s",
        "title": "Dramatically improve website speed with Partytown",
        "publishedAt": "3 years ago",
        "durationSeconds": 219,
        "views": 183699,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to use Partytown to run non-essential scripts with a webworker and dramatically improve your websites speed and rendering performance. https://partytown.builder.io\n\n#javascript #webdevelo...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "H91aqUHn8sE",
        "title": "How to Setup Node.js with TypeScript in 2023",
        "publishedAt": "3 years ago",
        "durationSeconds": 225,
        "views": 459107,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to setup Node.js with TypeScript while supporting native ES modules. Use the new NodeNext option to easily interop between CommonJS and ES modules in the same project. \n\nFull Lesson...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0S2acIMiA2c",
        "title": "Make Crazy Art with the NEW OpenAI Dall-e API",
        "publishedAt": "3 years ago",
        "durationSeconds": 337,
        "views": 166911,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to create your own AI art with OpenAI's Dall-e models. The new Image Generation API was just announced yesterday allowing anybody to create images from text programmatically with...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "__mSgDEOyv8",
        "title": "Next.js 13 - The Basics",
        "publishedAt": "3 years ago",
        "durationSeconds": 540,
        "views": 746771,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn about all the new features in Next.js version 13 with a full tutorial. We build a beginner-friendly CRUD app from scratch using a PocketBase (SQL database) for the backend. \n\nSource code...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "ai-saas",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:AI assistants"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": null,
      "additionalContacts": []
    },
    "contactability": {
      "tier": "none",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": false,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Not reachable through public business channels. No published business email and no external website detected."
    },
    "topicPillars": [
      {
        "label": "learn",
        "share": 0.87,
        "evidenceVideoIds": [
          "clJCDHml2cA",
          "xWkozeculPo",
          "_pWA4rbzvIg",
          "8IHhvkaVqVE",
          "7WFXl4-aCxs"
        ]
      },
      {
        "label": "https",
        "share": 0.57,
        "evidenceVideoIds": [
          "clJCDHml2cA",
          "xWkozeculPo",
          "_pWA4rbzvIg",
          "8IHhvkaVqVE",
          "7WFXl4-aCxs"
        ]
      },
      {
        "label": "code",
        "share": 0.47,
        "evidenceVideoIds": [
          "clJCDHml2cA",
          "xWkozeculPo",
          "_pWA4rbzvIg",
          "8IHhvkaVqVE",
          "7WFXl4-aCxs"
        ]
      },
      {
        "label": "javascript",
        "share": 0.47,
        "evidenceVideoIds": [
          "_pWA4rbzvIg",
          "8IHhvkaVqVE",
          "RPa3_AD1_Vs",
          "lsXqparnx24",
          "-JE8P2TiJEg"
        ]
      },
      {
        "label": "build",
        "share": 0.43,
        "evidenceVideoIds": [
          "clJCDHml2cA",
          "8IHhvkaVqVE",
          "7WFXl4-aCxs",
          "cw34KMPSt4k",
          "_xfZIr5sDLw"
        ]
      },
      {
        "label": "AI assistants",
        "share": 0.03,
        "evidenceVideoIds": [
          "clJCDHml2cA"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Monday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "D",
      "rationale": "content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 27,
      "reason": "fits ai-saas",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.05
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.35
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "fits ai-saas. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 30,
    "failureType": null,
    "summary": "Beyond Fireship — 0.5M subs, D-tier sponsorship readiness, none contactability, respond within 30 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 27,
      "readyForOutreach": false,
      "blockers": [
        "contactability:none — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.83,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 2,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 2
      }
    },
    "channelStrategy": {
      "primary": "enrichment",
      "secondary": "linkedin",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [],
      "missedOpportunities": [
        "no-external-website-detected",
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.02
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.02,
      "gap": 0.92,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "unknown",
      "score": 0,
      "factors": [],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "none"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "ai-saas",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "ignore",
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": {
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "gaps": [
        "tier:D",
        "contactability:none"
      ]
    },
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "83277dab9cedeaa40d396153724699697d8f1cce783a534f9f8fd8a28ef2f8ba",
      "inputsHash": "5f12087c1bda9ded570fcc35916ac43669784f77c87e0b2dc4842489f1107ed2",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:27.913Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "c1eecca22aebff8ddc60c47b8b4e98bb76098bc0ace72b7c981fe6b3b4c8432c",
    "channelId": "UCsBjURrPoezykLs9EqgamOA",
    "channelHandle": "@Fireship",
    "channelName": "Fireship",
    "channelUrl": "https://www.youtube.com/@Fireship",
    "description": "High-intensity ⚡ code tutorials and tech news to help you ship your app faster. New videos every week covering the topics every programmer should know. \n\nThe original home of #100SecondsOfCode #TheCodeReport and #CodeThisNotThat. Created by Jeff Delaney. \n\nWant more Fireship?\n\n🗞️ Newsletter – https://bytes.dev\n🧠 Courses – https://fireship.dev",
    "joinDate": null,
    "location": null,
    "subscribers": 4200000,
    "totalVideos": 808,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/3fPNbkf_xPyCleq77ZhcxyeorY97NtMHVNUbaAON_RBDH9ydL4hJkjxC8x_4mpuopkB8oI7Ct6Y=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "fireship.dev",
        "url": "https://fireship.dev/"
      },
      {
        "platform": "bytes.dev",
        "url": "https://bytes.dev"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/fireship_dev"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/fireship_dev/"
      },
      {
        "platform": "tiktok",
        "url": "https://www.tiktok.com/@fireship_dev"
      },
      {
        "platform": "open.spotify.com",
        "url": "https://open.spotify.com/show/1gGc9QcfhJ29b2NSfMFlB9?si=CUztUuE2RjOP4b2ufEwiuw"
      },
      {
        "platform": "fireship.dev",
        "url": "https://fireship.dev"
      }
    ],
    "recentVideos": [
      {
        "videoId": "MtxP2pyCvYA",
        "title": "Every operating system concept in one video…",
        "publishedAt": "6 days ago",
        "durationSeconds": 691,
        "views": 501839,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Railway is the easiest way to deploy anything. Get $20 in free credits - https://railway.com/?referralCode=fir...\n\nEverything that happens inside your computer from the instant you press the power button to the moment you rage quit and shut it down.\n\n#coding #programming #computer #computerscience \n\n🔖 Topics Covered\nBootloader\nPrivilege Ring\nVirtual Memory \nFilesystem\nDrivers and Interrupts\nProcesses\nSyscalls\nScheduler\nThreads\nIPC\nShutdown SIGKILL\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lkifbWtxxlk",
        "title": "732 bytes of Python just borked every Linux machine on earth…",
        "publishedAt": "9 days ago",
        "durationSeconds": 287,
        "views": 875131,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "CodeRabbit's new Slack Agent lets you manage your team's agentic workflow right in Slack - https://coderabbit.link/fireship-agent\n\nA 100% reliable logic flaw was discovered in the Linux kernel and an AI tool wrote an exploit for it that affects every Linux machine updated since 2017. Let's look at the technical details behind the vulnerability and what to do if you're affected...\n\n#coding #programming #linux #python \n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "d53Zk28esmU",
        "title": "GitHub is having some major issues right now…",
        "publishedAt": "13 days ago",
        "durationSeconds": 359,
        "views": 963176,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get the free 80,000 Hours career guide - https://80000hours.org/fireship\n\nGitHub is easily the most important website in software engineering but a wave of recent issues has led several 10x developers to jump ship. What's going on?\n\n#coding #programming #github #tech\n\n🔖 Topics Covered\nThe rise of GitHub\nGitHub uptime issues \nGitHub's week from hell\nWhy Ghostty is leaving GitHub\nGitHub alternatives\n\n📚 Resources\nhttps://mitchellh.com/writing/ghostty...\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "FM5-R4VPArw",
        "title": "I finally found a use case for OpenClaw…",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 315,
        "views": 581082,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get up to 67% off OpenClaw VPS hosting with Hostinger's one-click template. Use code FIRESHIP for an extra discount - https://hostinger.com/openclawfireship\n\nBack in January, OpenClaw's wild rise triggered a nation-wide Mac mini shortage and a record number of security advisories. But just last week, Peter Steinberger spoke about fixing its vulnerabilities to a room full of devs at AI Engineer Europe, and he convinced me to give it another shot.\n\n#coding #programming #ai #openclaw\n\n🔖 Topics Covered\nThe state of OpenClaw\nFixing OpenClaw's security issues\nReal-life OpenClaw project\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jeA-KBv0b68",
        "title": "Claude just got another superpower...",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 312,
        "views": 886209,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Run any code on Google’s world-class infrastructure - https://cloud.run. Get 2 million free requests per month\n\nClaude Design could be Anthropic's most disruptive tool since Claude Code. But can their new Opus 4.7 powered platform really turn your half-baked Figma wireframe into a production ready UI? Let's run it.\n\n#coding #programming\n\n🔖 Topics Covered\nWhat is Claude Design\nClaude Design vs Figma vs Adobe\nClaude Design demo\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "piah4fV_o2Q",
        "title": "Millions of WordPress sites just got hacked... again",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 316,
        "views": 462488,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Warp is the agentic development environment born out of the terminal. Download Warp for free today at → https://go.warp.dev/fireship\n\nSomeone spent $100k buying a massive collection of WordPress plugins and planted a backdoor in all of them. Naturally, CloudFlare stepped in with EmDash: a slop-forked WP alternative that promises to fix plugin security for good.\n\n#coding #programming #wordpress\n\n🔖 Topics Covered\nWordpress plugin hack \nEmDash\n\n📚 Resources\nhttps://www.wordfence.com/threat-inte...\nhttps://anchor.host/someone-bought-30...\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "d3Qq-rkp_to",
        "title": "Claude Mythos is too dangerous for public consumption...",
        "publishedAt": "1 month ago",
        "durationSeconds": 337,
        "views": 1064617,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Browserbase is the simplest way to give your agents access to the whole web. Try it for free - https://browserbase.run/fireship\n\nAnthropic locked down their new Mythos model because they say it's too dangerous for normies like you and me to use. Let's investigate...\n\n#mythos #ai #programming #claude \n\nResources:\nhttps://www.trendmicro.com/en_us/rese...\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-01ZCTt-CJw",
        "title": "Google just casually disrupted the open-source AI narrative…",
        "publishedAt": "1 month ago",
        "durationSeconds": 315,
        "views": 1324030,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "CodeRabbit CLI can fix your agent’s code before it ever opens a PR - https://coderabbit.link/fireship Free forever for any open source project.\n\nLast week, Google surprised us all by shipping their latest micro model Gemma 4 under a truly open source license. But what's the catch? Let's run it...\n\n#coding  #programming #programming\n\n🔖 Topics Covered\nHow Gemma 4 works\nGemma 4 benchmarks\nTurboQuant\n\n📌 Resources\nhttps://newsletter.maartengrootendors...\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JSuS-zXMVwE",
        "title": "Cursor ditches VS Code, but not everyone is happy...",
        "publishedAt": "1 month ago",
        "durationSeconds": 303,
        "views": 863885,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Blacksmith for free to run your GitHub Actions 2x faster - https://www.blacksmith.sh/\n\nCursor 3 just introduced its own frontier model that's been suspiciously dominating all the trust me bro benchmarks. But it turns out there's a catch... \n\n#coding  #programming\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vd14EElCRvs",
        "title": "He just crawled through hell to fix the browser…",
        "publishedAt": "1 month ago",
        "durationSeconds": 337,
        "views": 1256523,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try out the Junie CLI for free - https://jb.gg/fireship-junie-cli\n\nCheng Lou, a former React Core team member and engineer at Midjourney says he \"crawled through depths of hell\" to bring us Pretext – a fast, accurate, and comprehensive text measurement library that could change UI design forever. Let's run it.\n\n#coding #programming #typescript #javascript\n\n🔖 Topics Covered\nWho is Cheng Lou?\nIntro to Pretext\nWhat makes dynamic text rendering so hard?\nPretext demo\n\nWant more Fireship?\n\n🗞️ Newsletter: https://bytes.dev\n🧠 Courses: https://fireship.dev",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mBHRPeg8zPU",
        "title": "Tragic mistake... Anthropic leaks Claude’s source code",
        "publishedAt": "1 month ago",
        "durationSeconds": 442,
        "views": 3193997,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Anthropic accidentally leaked Claude Code's source code to the entire internet. Let's take a look...\n\n#coding #programming #claude #ai\n\n🔖 Topics Covered\n- Claude source code leak\n- What's...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "o7NYXvYohYk",
        "title": "Millions of JS devs just got penetrated by a RAT…",
        "publishedAt": "1 month ago",
        "durationSeconds": 299,
        "views": 680117,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Mux is the best video API for developers. Get $50 in free credits - https://mux.com/fireship\n\nYesterday, a precision-guided remote access trojan was discovered in Axios, a JavaScript library...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wfeiCZK0mNs",
        "title": "Anthropic just released the real Claude Bot...",
        "publishedAt": "1 month ago",
        "durationSeconds": 300,
        "views": 1056831,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try SerpApi for free to get real-time search data from a single API - https://serpapi.com/?utm_source=fireship\n\nAnthropic just dropped Claude Computer Use to try and take down OpenClaw. But...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nxwkn9Dt9-I",
        "title": "Tech bros optimized war… and it’s working",
        "publishedAt": "1 month ago",
        "durationSeconds": 322,
        "views": 807619,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try out Traycer’s Epic Mode so your whole team can ship better software with agents - https://traycer.ai/fireship\n\nThe US Department of War is rolling out the Maven Smart System - an AI-driven...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nkY_s9HpL9M",
        "title": "This new Linux distro is breaking the law, by design…",
        "publishedAt": "1 month ago",
        "durationSeconds": 289,
        "views": 908771,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "CodeRabbit can automatically resolve merge conflicts in your PRs - https://coderabbit.link/fireship Free forever for any open source project.\n\nOn January 1st, governments will start forcing...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qaB5HF4ax9M",
        "title": "Google just changed the future of UI/UX design...",
        "publishedAt": "1 month ago",
        "durationSeconds": 290,
        "views": 1848769,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Clerk for free to get full stack auth and user management - https://go.clerk.com/fireship/\n\nLet's take a look at everything new in Google Stitch to find out if it's just more hype, or if...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ReAnFFqvCeA",
        "title": "How to burn $30m on a JavaScript framework...",
        "publishedAt": "1 month ago",
        "durationSeconds": 308,
        "views": 435854,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Railway is the easiest way to deploy anything. Get $20 in free credits - https://railway.com/?referralCode=fireship\n\nThe famo.us rendering engine was supposed to change web dev forever back...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Xn-gtHDsaPY",
        "title": "7 new open source AI tools you need right now…",
        "publishedAt": "2 months ago",
        "durationSeconds": 375,
        "views": 825591,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build meeting bots and desktop recording apps in hours - https://www.recall.ai/fireship gets you $100 in free credits\n\nIn today's we'll look at 7 open source AI projects you've never heard...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "x36UmiSiEzc",
        "title": "The greatest unsolved problem in computer science...",
        "publishedAt": "2 months ago",
        "durationSeconds": 425,
        "views": 632887,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try MongoDB Atlas for free - https://fandf.co/4rf61Za and simplify your AI data stack with one platform.\n\nP vs NP is arguably the most famous unsolved problem in computer science. It asks:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "abbeIUOCzmw",
        "title": "Cloudflare just slop forked Next.js…",
        "publishedAt": "2 months ago",
        "durationSeconds": 317,
        "views": 563383,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Brilliant for free for 30 days - https://brilliant.org/fireship and get 20% off a premium annual subscription.\n\nCloudflare just shipped Vinext - a reimplementation of the Next.js API built...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wzzh7Not8XE",
        "title": "When open-sourcing your code goes wrong...",
        "publishedAt": "2 months ago",
        "durationSeconds": 399,
        "views": 723978,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try out CodeRabbit’s AI code reviewer with custom PR summaries - https://coderabbit.link/fireship. It’s free forever for any open source project.\n\nEverything you use on the internet today...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1fUBWAETmkk",
        "title": "TanStack Start in 100 Seconds",
        "publishedAt": "2 months ago",
        "durationSeconds": 139,
        "views": 353856,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "TanStack Start is a dx optimized, full-stack framework, powered by TanStack Router for React and Solid.\n\n🔗 Resources\n- https://tanstack.com/start/latest\n\n🔖 Topics Covered\n-  The problem...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cxcb55zr2Q8",
        "title": "How AI is breaking the SaaS business model...",
        "publishedAt": "2 months ago",
        "durationSeconds": 302,
        "views": 743674,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Run hundreds of coding agents in the cloud - https://oz.dev/fireship. Use code FIRESHIP to get one month of their Build plan for $5 (instead of $20).\n\nSaaS companies are getting crushed right...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Ukt2gVz25PQ",
        "title": "10 open source tools that feel illegal...",
        "publishedAt": "3 months ago",
        "durationSeconds": 604,
        "views": 1211288,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get up to 67% off Kali Linux VPS hosting with Hostinger’s one-click template. Use code FIRESHIP for an extra discount - https://hostinger.com/fireship\n\nLet's learn the fundamentals of penetration...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ssYt09bCgUY",
        "title": "The wild rise of OpenClaw...",
        "publishedAt": "3 months ago",
        "durationSeconds": 319,
        "views": 1999857,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try out Traycer’s orchestration tool to make your coding agents smarter - https://traycer.ai/fireship\n\nDeploy OpenClaw on a Hostinger VPS in one click. Use code FIRESHIP to get 67% off  -...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "M4TufsFlv_o",
        "title": "Bun in 100 Seconds",
        "publishedAt": "3 months ago",
        "durationSeconds": 166,
        "views": 455229,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Bun is a mega-fast JavaScript runtime for developers who want to nope out of their node modules folder. Let's run bun run. \n\n#coding #programming #softwaredevelopment \n\n🔗 Resources\n- https://bun...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9uW6B9LPntY",
        "title": "A brief history of programming...",
        "publishedAt": "3 months ago",
        "durationSeconds": 369,
        "views": 684005,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try out the Junie coding agent in your JetBrains IDE - https://jb.gg/Fireship-Junie-AI\n\nComputing has come a long way since we figured out that 1s and 0s were pretty useful. In today's video,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MFsYaRnrcPQ",
        "title": ".NET in 100 Seconds",
        "publishedAt": "3 months ago",
        "durationSeconds": 164,
        "views": 498077,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": ".NET is a free and open-source platform for creating high-performance software in virtually every domain, powered primarily by the C# programming language.\n\n#coding #programming #softwaredevelopmen...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EKOU3JWDNLI",
        "title": "The unhinged world of tech in 2026...",
        "publishedAt": "3 months ago",
        "durationSeconds": 551,
        "views": 1428524,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Brilliant for free for 30 days - https://brilliant.org/fireship and get 20% off a premium annual subscription.\n\nFrom household robots to quantum computing...  In today's video, we'll look...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rEvEXQvo-F8",
        "title": "OpenAI was dead… Then GPT-5.2 dropped",
        "publishedAt": "5 months ago",
        "durationSeconds": 241,
        "views": 639199,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Deploying on Railway feels like magic. Get $20 in free credits to try it out - https://railway.com/?referralCode=fireship\n\nSam Altman declared a code red, and OpenAI responded. GPT-5.2 is now...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 17,
      "uploadsLast90d": 29,
      "uploadCadenceWeekly": 2.26,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 825591,
      "viewsPerVideoP90Last90d": 1428524,
      "viewVelocityTrend": "rising"
    },
    "performanceBaseline": {
      "p50Views": 825591,
      "p90Views": 1428524,
      "p99Views": 1999857,
      "outperformingVideosLast90d": 4
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "brilliant.org"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "fireship.dev",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.93,
        "evidenceVideoIds": [
          "MtxP2pyCvYA",
          "lkifbWtxxlk",
          "d53Zk28esmU",
          "FM5-R4VPArw",
          "jeA-KBv0b68"
        ]
      },
      {
        "label": "fireship",
        "share": 0.83,
        "evidenceVideoIds": [
          "MtxP2pyCvYA",
          "lkifbWtxxlk",
          "d53Zk28esmU",
          "FM5-R4VPArw",
          "jeA-KBv0b68"
        ]
      },
      {
        "label": "coding",
        "share": 0.5,
        "evidenceVideoIds": [
          "MtxP2pyCvYA",
          "lkifbWtxxlk",
          "d53Zk28esmU",
          "FM5-R4VPArw",
          "jeA-KBv0b68"
        ]
      },
      {
        "label": "get",
        "share": 0.47,
        "evidenceVideoIds": [
          "MtxP2pyCvYA",
          "d53Zk28esmU",
          "FM5-R4VPArw",
          "jeA-KBv0b68",
          "o7NYXvYohYk"
        ]
      },
      {
        "label": "programming",
        "share": 0.47,
        "evidenceVideoIds": [
          "MtxP2pyCvYA",
          "lkifbWtxxlk",
          "d53Zk28esmU",
          "FM5-R4VPArw",
          "jeA-KBv0b68"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Tuesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "B",
      "rationale": "strong views-per-subscriber ratio, consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "strong",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 42,
      "reason": "growth rising last 90d",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.85
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "rising 90d view velocity. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Fireship — 4.2M subs, B-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 42,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.68,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": true,
      "requiresEnrichment": true,
      "priorityQueue": "medium"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "B-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "c1eecca22aebff8ddc60c47b8b4e98bb76098bc0ace72b7c981fe6b3b4c8432c",
      "inputsHash": "5a83c22721ac31d181c806840f1e23c7ff1f55c8f483d552a6d486a7d4598ac3",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-rising",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:28.199Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "b8be3a4c0a07e2278896b43c459c1644d53eb625e1b8415f286776896ca90dcf",
    "channelId": "UCvjgXvBlbQiydffZU7m1_aw",
    "channelHandle": "@TheCodingTrain",
    "channelName": "The Coding Train",
    "channelUrl": "https://www.youtube.com/@TheCodingTrain",
    "description": "All aboard! The Coding Train is on its way with creative coding video tutorials on subjects ranging from the basics of programming languages like JavaScript to algorithmic art, machine learning, simulation, generative poetry, and more. Choo choo!",
    "joinDate": null,
    "location": null,
    "subscribers": 1760000,
    "totalVideos": 1200,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/jx7pgOZeAW4tzBUOW3WVTCi8_RJEWZkJS4AiThnYvoS8TaL5zPwOk0gqBftyya9EMhOm80Yhgw=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "thecodingtrain.com",
        "url": "https://thecodingtrain.com"
      },
      {
        "platform": "go.nebula.tv",
        "url": "https://go.nebula.tv/codingtrain"
      },
      {
        "platform": "discord",
        "url": "https://discord.gg/hPuGy2g"
      },
      {
        "platform": "standard.tv",
        "url": "https://standard.tv/collections/the-coding-train"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/the.coding.train/"
      },
      {
        "platform": "twitter",
        "url": "http://twitter.com/thecodingtrain"
      }
    ],
    "recentVideos": [
      {
        "videoId": "s2jm2Z22ibA",
        "title": "Coding Challenge 188: Voice Chatbot",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 2368,
        "views": 17880,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this coding challenge, I build a conversational voice chatbot entirely in the browser with p5.js. I combine three pieces: speech-to-text with OpenAI's Whisper model, text-to-speech with Kokoro TTS, and a \"brain\" for the bot. I also explore the transformers.js pipeline API and the Web Audio API. For the bot's brain, I start with a simple ELIZA-style therapist, then incorporate a RiveScript number-guessing game, and finally a local LLM. Code: https://thecodingtrain.com/challenges...\n\n🚀 Watch this video ad-free on Nebula https://nebula.tv/videos/codingtrain-...\n\np5.js Web Editor Sketches:\n🕹️ LLM Chatbot: https://editor.p5js.org/codingtrain/s...\n🕹️ Number Guessing Bot: https://editor.p5js.org/codingtrain/s...\n🕹️ Therapy Bot: https://editor.p5js.org/codingtrain/s...\n🕹️ Model Loading Bars: https://editor.p5js.org/codingtrain/s...\n🕹️ Waveform of Recording: https://editor.p5js.org/codingtrain/s...\n🕹️ Real Time Waveform: https://editor.p5js.org/codingtrain/s...\n\n🎥 Previous:    • Coding Challenge 187: Bayes Theorem  \n🎥 All:    • Coding Challenges  \n\nReferences:\n📓 p5.2 Reference: https://beta.p5js.org\n📓 Introducing Whisper: https://cdn.openai.com/papers/whisper...\n📓 Model Cards for Model Reporting: https://arxiv.org/abs/1810.03993\n📓 Open Neural Network Exchange: https://onnx.ai\n📓 Onnx-community Whisper-tiny.en model: https://huggingface.co/onnx-community...\n📓 Xenova: https://github.com/xenova\n📓 Transformers.js: https://huggingface.co/docs/transform...\n📓 Announcing the new p5.sound.js library!:   / announcing-the-new-p5-sound-js-library  \n📓 getUserMedia() documentation: https://developer.mozilla.org/en-US/d...\n📓 MediaRecorder() documentation: https://developer.mozilla.org/en-US/d...\n📓 Kokoro Repo: https://github.com/hexgrad/kokoro\n📓 KokoroTTS Model: https://huggingface.co/hexgrad/Kokoro...\n📓 ELIZA: https://en.wikipedia.org/wiki/ELIZA\n📓 Rivescript: https://www.rivescript.com\n📓 SmolLM3: https://huggingface.co/HuggingFaceTB/...\n📓 Running models on WebGPU: https://huggingface.co/docs/transform...\n📓 Using quantized models (dtypes): https://huggingface.co/docs/transform...\n\nVideos:\n🚂    • What's new in p5.js 2!  \n🚂    • What is Transformers.js?  \n\nLive Stream Archives:\n🔴    • Coding Challenge Session: Local Browser Co...  \n\nRelated Coding Challenges:\n🚂    • Coding Challenge #42: Markov Chains - Part 1  \n🚂    • Coding Challenge #43: Context-Free Grammar  \n🚂    • Coding Challenge #80: Voice Chatbot with p...  \n\nTimestamps:\n0:00:00 Hello!\n0:00:35 Mapping out the pieces: speech-to-text, text-to-speech, and the brain\n0:01:07 Thoughts on AI and creative exploration\n0:02:44 Choosing the tools: Whisper and Kokoro TTS\n0:04:06 Building a push-to-talk UI in p5.js\n0:04:51 Finding models on Hugging Face with Transformers.js\n0:05:36 About the Whisper model and model cards\n0:06:55 Loading the Whisper pipeline in p5.js\n0:09:04 Accessing the microphone with getUserMedia\n0:10:44 Capturing audio with MediaRecorder\n0:12:05 Processing audio chunks into a waveform\n0:15:55 Speech-to-text working!\n0:16:36 Building the chatbot brain (ELIZA-style therapist)\n0:18:50 Setting up Kokoro TTS for text-to-speech\n0:21:07 Playing synthesized audio with AudioBufferSource\n0:23:41 Text-to-speech working!\n0:25:32 Handling playback events\n0:26:56 Swapping in a RiveScript number-guessing brain\n0:31:22 Adding a language model (SmolLM2) as the brain\n0:38:33 Final demo: the random number chatbot\n0:39:03 Goodbye!\n\nEditing by Mathieu Blanchette\nAnimations by Jason Heglund\nMusic from Epidemic Sound\n\n🚂 Website: https://thecodingtrain.com/\n👾 Share Your Creation! https://thecodingtrain.com/guides/pas...\n🚩 Suggest Topics: https://github.com/CodingTrain/Sugges...\n💡 GitHub: https://github.com/CodingTrain\n💬 Discord: https://thecodingtrain.com/discord\n💖 Membership: http://youtube.com/thecodingtrain/join\n🛒 Store: https://standard.tv/codingtrain\n🖋️ Twitter:   / thecodingtrain  \n📸 Instagram:   / the.coding.train  \n\n🎥    • Coding Challenges  \n🎥    • Start learning here!  \n\n🔗 p5.js: https://p5js.org\n🔗 p5.js Web Editor: https://editor.p5js.org/\n🔗 Processing: https://processing.org\n\n📄 Code of Conduct: https://github.com/CodingTrain/Code-o...\n\nThis description was auto-generated. If you see a problem, please open an issue: https://github.com/CodingTrain/thecod...\n\n#texttospeech #speechtotext #chatbot #rivescript #llms #agents #ai #transformersjs #webaudioapi #javascript #p5js",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "d0GgzjCFWq0",
        "title": "What the font?!?!",
        "publishedAt": "1 month ago",
        "durationSeconds": 1253,
        "views": 18289,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Let's explore new typography features in p5.js 2.0! In this video, I cover how to work with variable fonts, convert text to 3D models with textModel(), extract contours with textContours(), and control the detail of your typography with sampleFactor and simplifyThreshold. Code: https://thecodingtrain.com/tracks/p5j...\n\n🚀 Watch this video ad-free on Nebula https://nebula.tv/videos/codingtrain-...\n\np5.js Web Editor Sketches:\n🕹️ Variable Font Weights: https://editor.p5js.org/codingtrain/s...\n🕹️ textContours(): https://editor.p5js.org/codingtrain/s...\n🕹️ textModel() - 3D Text: https://editor.p5js.org/codingtrain/s...\n🕹️ Coding Challenge 59 - p5.js 2.0: https://editor.p5js.org/codingtrain/s...\n🕹️ One Letter, Two Contours: https://editor.p5js.org/codingtrain/s...\n🕹️ sampleFactor Diagram: https://editor.p5js.org/codingtrain/s...\n🕹️ simplifyThreshold Demo: https://editor.p5js.org/codingtrain/s...\n\n🎥 Previous:    • How to Load Data with p5.js (2.0)  \n🎥 Next:    • p5.js 2.0 with Kit Kuksenok  \n\nReferences:\n📖 p5.js 2.0: You Are Here & How to Contribute!: https://discourse.processing.org/t/de...\n🔤 Google Fonts: https://fonts.google.com\n🐞 Typography questions and possible bugs (Issue #8177): https://github.com/processing/p5.js/i...\n🐞 Reference errors: textToContours() and textToModel() (Issue #8623): https://github.com/processing/p5.js/i...\n📖 loadFont() Reference: https://beta.p5js.org/reference/p5/lo...\n📖 textWeight() Reference: https://beta.p5js.org/reference/p5/te...\n📖 textContours() Reference: https://beta.p5js.org/reference/p5/te...\n📖 textModel() Reference: https://beta.p5js.org/reference/p5/te...\n\nVideos:\n🎥    • p5.js 2.0 with Kit Kuksenok  \n🚂    • What's new in p5.js 2!  \n🚂    • How to Load Data with p5.js (2.0)  \n🚂    • How to Rotate Shapes in p5.js (translate, ...  \n🎯    • Coding Challenge #59: Steering Behaviors  \n\nRelated Coding Challenges:\n🚂    • Coding Challenge #59: Steering Behaviors  \n\nTimestamps:\n0:00 Welcome!\n0:49 Finding Fonts (Google Fonts)\n1:01 Loading Fonts with Async/Await\n2:30 Variable Fonts\n3:17 textWeight()\n4:03 Animated Text Weight\n4:31 Coding Challenge 59 - Steering Behaviors\n5:15 textContours() Introduction\n6:00 sampleFactor and simplifyThreshold\n9:00 sampleFactor Explained\n12:00 simplifyThreshold Explained\n14:00 Updating Challenge 59 to p5.js 2.0\n15:00 Angle Property of Contours\n17:00 textModel() for 3D Text\n19:00 Extrude Option\n20:11 Goodbye!\n\nEditing by Mathieu Blanchette\nAnimations by Jason Heglund\nMusic from Epidemic Sound\n\n🚂 Website: https://thecodingtrain.com/\n👾 Share Your Creation! https://thecodingtrain.com/guides/pas...\n🚩 Suggest Topics: https://github.com/CodingTrain/Sugges...\n💡 GitHub: https://github.com/CodingTrain\n💬 Discord: https://thecodingtrain.com/discord\n💖 Membership: http://youtube.com/thecodingtrain/join\n🛒 Store: https://standard.tv/codingtrain\n🖋️ Twitter:   / thecodingtrain  \n📸 Instagram:   / the.coding.train  \n\n🎥    • Coding Challenges  \n🎥    • Start learning here!  \n\n🔗 p5.js: https://p5js.org\n🔗 p5.js Web Editor: https://editor.p5js.org/\n🔗 Processing: https://processing.org\n\n📄 Code of Conduct: https://github.com/CodingTrain/Code-o...\n\nThis description was auto-generated. If you see a problem, please open an issue: https://github.com/CodingTrain/thecod...\n\n#typography #fonts #text #p5js2 #variablefonts #3dtext #textcontours #p5js #javascript",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KR61bXsPlLU",
        "title": "What is Transformers.js?",
        "publishedAt": "6 months ago",
        "durationSeconds": 1757,
        "views": 48829,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Welcome to a new series all about working with machine learning models in JavaScript in the browser using the Transformers.js library! In this introduction, I cover what Transformers.js is, how to load it into a p5.js sketch, explain the pipeline API, and demonstrate sentiment analysis and language detection examples. Code: https://thecodingtrain.com/tracks/tra...\n\n🚀 Watch this video ad-free on Nebula https://nebula.tv/videos/codingtrain-...\n\np5.js Web Editor Sketches:\n🕹️ Sentiment Analysis: https://editor.p5js.org/codingtrain/s...\n🕹️ Language Detection: https://editor.p5js.org/codingtrain/s...\n\n\nReferences:\n💻 Transformers.js Documentation: https://huggingface.co/docs/transform...\n🤗 Hugging Face: https://huggingface.co/\n🤗 Hugging Face Models: https://huggingface.co/models?library...\n🤗 Xenova on Hugging Face: https://huggingface.co/Xenova\n🤗 Whisper Web: https://huggingface.co/spaces/Xenova/...\n💻 p5.js 2.0 reference: https://beta.p5js.org/\n📓 ES6 Modules: https://developer.mozilla.org/en-US/d...\n📓 Quantization: https://huggingface.co/docs/optimum/c...\n\nVideos:\n🚂    • Beginners Guide to Machine Learning in Jav...  \n🚂    • What's new in p5.js 2!  \n\nTimestamps:\n0:00 Welcome!\n1:53 Why JavaScript and not Python?\n3:01 What is Hugging Face?\n4:03 Transformers.js Documentation\n4:18 Pipeline API\n5:41 import syntax and ES6 modules\n8:34 Object Destructuring\n11:33 Creating a Pipeline\n13:18 Sentiment Analysis Example\n19:04 Tasks and Models on Hugging Face\n20:20 Language Detection Example\n22:27 Device: WebGPU, CPU and more\n24:25 Data Types and Quantization\n27:54 See you next time!\n\nEditing by Mathieu Blanchette\nAnimations by Jason Heglund\nMusic from Epidemic Sound\n\n🚂 Website: https://thecodingtrain.com/\n👾 Share Your Creation! https://thecodingtrain.com/guides/pas...\n🚩 Suggest Topics: https://github.com/CodingTrain/Sugges...\n💡 GitHub: https://github.com/CodingTrain\n💬 Discord: https://thecodingtrain.com/discord\n💖 Membership: http://youtube.com/thecodingtrain/join\n🛒 Store: https://standard.tv/codingtrain\n🖋️ Twitter:   / thecodingtrain  \n📸 Instagram:   / the.coding.train  \n\n🎥    • Coding Challenges  \n🎥    • Start learning here!  \n\n🔗 p5.js: https://p5js.org\n🔗 p5.js Web Editor: https://editor.p5js.org/\n🔗 Processing: https://processing.org\n\n📄 Code of Conduct: https://github.com/CodingTrain/Code-o...\n\nThis description was auto-generated. If you see a problem, please open an issue: https://github.com/CodingTrain/thecod...\n\n#machinelearning #transformersjs #huggingface #sentimentanalysis #languagedetection #naturallanguageprocessing #pipelineapi #asyncawait #es6modules #javascript #p5js #transformersjs",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "g3-PXyF8U70",
        "title": "Coding Challenge 187: Bayes Theorem",
        "publishedAt": "7 months ago",
        "durationSeconds": 3218,
        "views": 39521,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this coding challenge, I struggle my way through implementing a Naive Bayes text classifier in JavaScript using p5.js. I explain Bayes' theorem, demonstrate word frequency analysis, implement Laplacian smoothing, and build a working sentiment classifier that runs entirely in the browser. Code: https://thecodingtrain.com/challenges...\n\n🚀 Watch this video ad-free on Nebula https://nebula.tv/videos/codingtrain-...\n\np5.js Web Editor Sketches:\n🕹️ Text Classifier - Initial Version: https://editor.p5js.org/codingtrain/s...\n🕹️ Text Classifier - Refactored Version: https://editor.p5js.org/codingtrain/s...\n🕹️ Text Classifier - File Loading Version: https://editor.p5js.org/codingtrain/s...\n\n🎥 Previous:    • Coding Challenge 186: Wave Function Collapse  \n🎥 All:    • Coding Challenges  \n\nReferences:\n📓 Naive Bayes Classifier: https://en.wikipedia.org/wiki/Naive_B...\n📓 Laplacian Smoothing: https://en.wikipedia.org/wiki/Additiv...\n\nVideos:\n🚂    • Coding Challenge #40.1: Word Counter in Ja...  \n🚂    • 2.1: Introduction to Regular Expressions -...  \n📺    • Bayes theorem, the geometry of changing be...  \n🚂    • What's new in p5.js 2!  \n\nLive Stream Archives:\n🔴 https://youtube.com/live/TsBDm0P0qaA\n\nRelated Coding Challenges:\n🚂    • Coding Challenge #40.1: Word Counter in Ja...  \n🚂    • Coding Challenge #42: Markov Chains - Part 1  \n\nTimestamps:\n0:00:00 Hello!\n0:03:34 Explaining Bayes' Theorem\n0:12:07 What is Naive Bayes?\n0:13:49 Setting up the Classifier in p5.js\n0:15:41 Coding the train() function\n0:22:14 Coding the classify() Function\n0:24:45 Revising the train() function\n0:29:06 Implementing Probability Calculations\n0:33:24 Laplacian (Additive) Smoothing\n0:42:21 Ignoring the enominator (Normalization)\n0:45:36 Quick User Interface\n0:49:42 Final thoughts and next steps.\n\nEditing by Mathieu Blanchette\nAnimations by Jason Heglund\nMusic from Epidemic Sound\n\n🚂 Website: https://thecodingtrain.com/\n👾 Share Your Creation! https://thecodingtrain.com/guides/pas...\n🚩 Suggest Topics: https://github.com/CodingTrain/Sugges...\n💡 GitHub: https://github.com/CodingTrain\n💬 Discord: https://thecodingtrain.com/discord\n💖 Membership: http://youtube.com/thecodingtrain/join\n🛒 Store: https://standard.tv/codingtrain\n🖋️ Twitter:   / thecodingtrain  \n📸 Instagram:   / the.coding.train  \n\n🎥    • Coding Challenges  \n🎥    • Start learning here!  \n\n🔗 p5.js: https://p5js.org\n🔗 p5.js Web Editor: https://editor.p5js.org/\n🔗 Processing: https://processing.org\n\n📄 Code of Conduct: https://github.com/CodingTrain/Code-o...\n\nThis description was auto-generated. If you see a problem, please open an issue: https://github.com/CodingTrain/thecod...\n\n#bayestheorem #textclassification #naivebayes #sentimentanalysis #naturallanguageprocessing #machinelearning #wordfrequency #laplaciansmoothing #javascript #p5js",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qhs-xppFRgE",
        "title": "What's next?",
        "publishedAt": "7 months ago",
        "durationSeconds": 505,
        "views": 16511,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, I'm sharing my plans for the fall semester, which is broken down into three main categories: updating the p5.js beginner series for version 2.0, exploring new p5.js 2.0 features like variable fonts and splines, and diving deeper into machine learning with transformers.js. I'd love to hear your feedback and ideas in the comments below!\n\n0:00 - Hi!\n1:20 - Next videos\n3:07 - Roadmap\n3:35 - Plans for p5.js 2.0 Features \n4:04 - Refreshing the p5.js Beginner Series \n6:38 - Plans for Machine Learning\n7:59 - Let me know what you think!\n\nEditing by Mathieu Blanchette\n\n🚂 Website: https://thecodingtrain.com/\n👾 Share Your Creation! https://thecodingtrain.com/guides/pas...\n🚩 Suggest Topics: https://github.com/CodingTrain/Sugges...\n💡 GitHub: https://github.com/CodingTrain\n💬 Discord: https://thecodingtrain.com/discord\n💖 Membership: http://youtube.com/thecodingtrain/join\n🛒 Store: https://standard.tv/codingtrain\n🖋️ Twitter:   / thecodingtrain  \n📸 Instagram:   / the.coding.train  \n\n🎥    • Coding Challenges  \n🎥    • Start learning here!  \n\n🔗 p5.js: https://p5js.org\n🔗 p5.js Web Editor: https://editor.p5js.org/\n🔗 Processing: https://processing.org",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "25omXt_OjD4",
        "title": "How to Load Data with p5.js (2.0)",
        "publishedAt": "7 months ago",
        "durationSeconds": 1062,
        "views": 11057,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This video covers how to load external assets like images, JSON files, and data from APIs into your p5.js 2.0 sketches. Learn the fundamentals of asynchronous operations in p5.js using Promises with async/await. Code: https://thecodingtrain.com/tracks/p5j...\n\n🚀 Watch this video ad-free on Nebula https://nebula.tv/videos/codingtrain-...\n\np5.js Web Editor Sketches:\n🕹️ Loading a Single Image: https://editor.p5js.org/codingtrain/s...\n🕹️ Sequential Loading: https://editor.p5js.org/codingtrain/s...\n🕹️ API and Loading Animation: https://editor.p5js.org/codingtrain/s...\n🕹️ Parallel Loading with Promise.all: https://editor.p5js.org/codingtrain/s...\n🕹️ Loading images with placeholders exercise: https://editor.p5js.org/codingtrain/s...\n\n🎥 Previous:    • What's new in p5.js 2!  \n🎥 Next:    • p5.js 2.0 with Kit Kuksenok  \n\nReferences:\n📖 p5.js 2.0 Beta: https://beta.p5js.org/\n📖 Promise.all: https://developer.mozilla.org/en-US/d...\n🎨 Dog API: https://dog.ceo/dog-api/\n\nVideos:\n🚂    • What's new in p5.js 2!  \n🚂    • 16.11: Promises Part 1 - Topics of JavaScr...  \n🚂    • 16.12: Promises Part 2 - Topics of JavaScr...  \n\nTimestamps:\n0:00:00 Hello!\n0:00:54 How to Load an Image in p5.js\n0:02:16 Asynchronous Code: promises, async, and await\n0:04:10 Common Mistakes to Avoid\n0:05:51 Loading Data from a Live API\n0:08:21 Loading Multiple Items in a Sequence\n0:09:12 Creating a Custom Loading Animation\n0:13:39 Faster Parallel Loading with Promise.all()\n0:16:48 Challenge for you!\n\nEditing by Mathieu Blanchette\nAnimations by Jason Heglund\nMusic from Epidemic Sound\n\n🚂 Website: https://thecodingtrain.com/\n👾 Share Your Creation! https://thecodingtrain.com/guides/pas...\n🚩 Suggest Topics: https://github.com/CodingTrain/Sugges...\n💡 GitHub: https://github.com/CodingTrain\n💬 Discord: https://thecodingtrain.com/discord\n💖 Membership: http://youtube.com/thecodingtrain/join\n🛒 Store: https://standard.tv/codingtrain\n🖋️ Twitter:   / thecodingtrain  \n📸 Instagram:   / the.coding.train  \n\n🎥    • Coding Challenges  \n🎥    • Start learning here!  \n\n🔗 p5.js: https://p5js.org\n🔗 p5.js Web Editor: https://editor.p5js.org/\n🔗 Processing: https://processing.org\n\n📄 Code of Conduct: https://github.com/CodingTrain/Code-o...\n\nThis description was auto-generated. If you see a problem, please open an issue: https://github.com/CodingTrain/thecod...\n\n#asyncawait #promises #p5js2 #loadingimages #api #json #promiseall #p5js #javascript\n=====================================================",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0Ad5Frf8NBM",
        "title": "What's new in p5.js 2!",
        "publishedAt": "7 months ago",
        "durationSeconds": 1386,
        "views": 27451,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This video tackles one of the bigger changes in p5.js 2: loading data with async and await! Fear not, I'll cover how to transition from preload and callbacks in p5.js 1.0 to using promises with async/await in 2.0. Code: https://thecodingtrain.com/tracks/p5j...\n\n🚀 Watch this video ad-free on Nebula https://nebula.tv/videos/codingtrain-...\n\np5.js Web Editor Sketches:\n🕹️ p5.js 2 - async and await: https://editor.p5js.org/codingtrain/s...\n🕹️ p5.js 2 - loading animation: https://editor.p5js.org/codingtrain/s...\n🕹️ p5.js 2 - loading in a sequence: https://editor.p5js.org/codingtrain/s...\n\n🎥 Next:    • p5.js 2.0 with Kit Kuksenok  \n\nReferences:\n📖 p5.js 2.0 Beta: https://beta.p5js.org/\n📖 p5.js 2.0: https://github.com/processing/p5.js/i...\n📖 p5.js 2.0: You Are Here & How to Contribute!: https://discourse.processing.org/t/de...\n🎨 Dog API: https://dog.ceo/dog-api/\n\nVideos:\n🚂    • 16.11: Promises Part 1 - Topics of JavaScr...  \n🚂    • 16.12: Promises Part 2 - Topics of JavaScr...  \n\nTimestamps:\n0:00:00 p5.js 2.0!\n0:03:00 Switching versions in the web editor\n0:05:02 Loading with p5.js 1\n0:06:11 Synchronous vs Asynchronous Code\n0:08:37 Promises!\n0:11:29 switching from preload to async setup()\n0:13:57 Loading with callbacks in p5.js 1.0\n0:17:15 Sequencing loading data in p5.js 1.0\n0:19:26 Sequencing with async and await in p5.js 2.0\n0:20:09 Creating a custom Async Function\n0:22:13 Thank you for watching!\n\nMusic from Epidemic Sound\n\n🚂 Website: https://thecodingtrain.com/\n👾 Share Your Creation! https://thecodingtrain.com/guides/pas...\n🚩 Suggest Topics: https://github.com/CodingTrain/Sugges...\n💡 GitHub: https://github.com/CodingTrain\n💬 Discord: https://thecodingtrain.com/discord\n💖 Membership: http://youtube.com/thecodingtrain/join\n🛒 Store: https://standard.tv/codingtrain\n🖋️ Twitter:   / thecodingtrain  \n📸 Instagram:   / the.coding.train  \n\n🎥    • Coding Challenges  \n🎥    • Start learning here!  \n\n🔗 p5.js: https://p5js.org\n🔗 p5.js Web Editor: https://editor.p5js.org/\n🔗 Processing: https://processing.org\n\n📄 Code of Conduct: https://github.com/CodingTrain/Code-o...\n\nThis description was auto-generated. If you see a problem, please open an issue: https://github.com/CodingTrain/thecod...\n\n#asyncawait #promises #p5js2 #preload #callbacks #p5js #javascript",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5iSAvzU2WYY",
        "title": "Coding Challenge 186: Wave Function Collapse",
        "publishedAt": "1 year ago",
        "durationSeconds": 5529,
        "views": 99457,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Wave Function Collapse is an algorithm for procedural image generation. In this long overdue follow-up to my tiled model video, I dive into the overlapping model, coding it step by step (complete with struggles and messy debugging interludes) in JavaScript with p5.js. Code: https://thecodingtrain.com/challenges...\n\n🚀 Watch this video ad-free on Nebula https://nebula.tv/videos/codingtrain-...\n\n💻 Github Repo: https://github.com/CodingTrain/Wave-F...\n\np5.js Web Editor Sketches:\n🕹️ Wave Function Collapse: Overlapping Model: https://editor.p5js.org/codingtrain/s...\n🕹️ WFC Overlapping Model Refactored: https://editor.p5js.org/codingtrain/s...\n🕹️ WFC Overlapping Model: Shannon entropy: https://editor.p5js.org/codingtrain/s...\n🕹️ WFC Overlapping Model: More tiles!: https://editor.p5js.org/codingtrain/s...\n\n🎥 Previous:    • Coding Challenge 185: Unfolding Fractals  \n🎥 All:    • Coding Challenges  \n\nReferences:\n🗄 Wave Function Collapse GitHub Repo: https://github.com/mxgmn/WaveFunction...\n🗄 Model Synthesis: https://paulmerrell.org/model-synthesis/\n🗄 Procedural Generation with Wave Function Collapse: https://www.gridbugs.org/wave-functio...\n🗄 Wave Function Collapse: https://github.com/CodingTrain/Wave-F...\n🔗 p5.js copy(): https://p5js.org/reference/p5/copy/\n🔗 p5.js web editor console log GitHub issue: https://github.com/processing/p5.js-w...\n🔗 JavaScript concat() method: https://developer.mozilla.org/en-US/d...\n🔗 p5.js randomSeed(): https://p5js.org/reference/p5/randomS...\n\nVideos:\n🎥    • 11.3: The Pixel Array - p5.js Tutorial  \n🎥    • Guest Tutorial #6: The Modulo Operator wit...  \n🎥    • 16.8: Array Functions: filter() - Topics o...  \n🎥    • 16.3: ES6 Arrow Function - Topics of JavaS...  \n\nCreative Works Featured:\n🎨 Townscaper: https://www.townscapergame.com/\n🎨 unity-wave-function-collapse: https://selfsame.itch.io/unitywfc\n🎨 Super Mario WFC: https://observablehq.com/@makio135/su...\n🎨 Zelda WFC: https://observablehq.com/@makio135/ze...\n🎨 Infinite procedurally generated city: https://marian42.de/article/wfc/\n\nRelated Coding Challenges:\n🚂    • Coding Challenge 10: Maze Generator  \n🚂    • Coding Challenge 165: Slide Puzzle  \n🚂    • Coding Challenge 171: Wave Function Collapse  \n\nTimestamps:\n0:00:00 Introduction\n0:01:12 The Nature of Code book!\n0:02:20 WFC Resources and References\n0:08:19 Extracting tiles from a source image\n0:21:30 Calculating adjacency rules for tiles\n0:24:34 Checking for overlapping pixel colors\n0:32:20 Debugging tile adjacencies\n0:43:30 Creating a Cell class\n0:46:21 Incorporate code from WFC tile model\n0:50:50 Reduce entropy of neighboring tiles\n0:55:56 Rendering the center pixel for each tile\n0:58:05 Cross checking valid tile options\n1:01:57 Recursive entropy reduction\n1:05:32 Limit recursion depth\n1:06:32 Challenge complete?\n1:08:26 Bugs found between Day 1 and Day 2\n1:09:13 Starting Day 2\n1:10:02 Correcting pixel color if statement\n1:11:16 Refactoring redundant code\n1:17:26 Running out of tile options\n1:21:24 Optimizing the code\n1:23:47 Rendering average pixel color of remaining tile options\n1:26:23 How to handle redundant tiles?\n1:28:30 More tiles with rotations and reflections\n1:29:39 Additional performance optimizations\n1:31:40 Thanks for watching!\n\nEditing by Mathieu Blanchette\nAnimations by Jason Heglund\nMusic from Epidemic Sound\n\n🚂 Website: https://thecodingtrain.com/\n👾 Share Your Creation! https://thecodingtrain.com/guides/pas...\n🚩 Suggest Topics: https://github.com/CodingTrain/Sugges...\n💡 GitHub: https://github.com/CodingTrain\n💬 Discord: https://thecodingtrain.com/discord\n💖 Membership: http://youtube.com/thecodingtrain/join\n🛒 Store: https://standard.tv/codingtrain\n🖋️ Twitter:   / thecodingtrain  \n📸 Instagram:   / the.coding.train  \n\n🎥    • Coding Challenges  \n🎥    • Start learning here!  \n\n🔗 p5.js: https://p5js.org\n🔗 p5.js Web Editor: https://editor.p5js.org/\n🔗 Processing: https://processing.org\n\n📄 Code of Conduct: https://github.com/CodingTrain/Code-o...\n\nThis description was auto-generated. If you see a problem, please open an issue: https://github.com/CodingTrain/thecod...\n\n#wavefunctioncollapse #overlappingmodel #proceduralgeneration #p5js #javascript",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IF414I26_K8",
        "title": "3D Pose Estimation with ml5.js",
        "publishedAt": "1 year ago",
        "durationSeconds": 850,
        "views": 33959,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Building on BodyPose in ml5.js, this video explores the 3D capabilities of the BlazePose model, visualizing poses in a 3D space using WEBGL in p5.js. Code: https://thecodingtrain.com/tracks/ml5...\n\n🚀 Watch this video ad-free on Nebula https://nebula.tv/videos/codingtrain-...\n\np5.js Web Editor Sketches:\n🕹️ BlazePose 3D: https://editor.p5js.org/codingtrain/s...\n🕹️ BlazePose Lerp: https://editor.p5js.org/codingtrain/s...\n\n🎥 Previous:    • Pose Estimation with ml5.js  \n🎥 Next:    • Hand Pose Detection with ml5.js  \n🎥 All:    • Beginners Guide to Machine Learning in Jav...  \n\nReferences:\n💻 ml5.js: BodyPose: https://docs.ml5js.org/#/reference/bo...\n📄 On-device, Real-time Body Pose Tracking with MediaPipe BlazePose: https://research.google/blog/on-devic...\n📄 3D Pose Detection with MediaPipe BlazePose GHUM and TensorFlow.js: https://blog.tensorflow.org/2021/08/3...\n📄 BlazePose GHUM Holistic:: https://arxiv.org/pdf/2206.11678\n\nVideos:\n🚂    • Pose Estimation with ml5.js  \n🚂    • 9.22: Custom Shapes - p5.js Tutorial  \n🚂    • How to Rotate Shapes in p5.js (translate, ...  \n\nTimestamps:\n0:00 Introduction\n2:00 Incorporating BlazePose model\n2:37 What are the xyz values?\n4:30 Replace live camera with recorded video.\n5:49 Render with p5.js WEBGL\n7:48 Use scale() to expand range of xyz values\n9:00 Creating 3D scene\n9:58 Rotating scene.\n11:24 Using orbitControl()\n12:22 Using 3D shapes\n13:42 Goodbye!\n\nEditing by Mathieu Blanchette\nAnimations by Jason Heglund\nMusic from Epidemic Sound\n\n🚂 Website: https://thecodingtrain.com/\n👾 Share Your Creation! https://thecodingtrain.com/guides/pas...\n🚩 Suggest Topics: https://github.com/CodingTrain/Sugges...\n💡 GitHub: https://github.com/CodingTrain\n💬 Discord: https://thecodingtrain.com/discord\n💖 Membership: http://youtube.com/thecodingtrain/join\n🛒 Store: https://standard.tv/codingtrain\n🖋️ Twitter:   / thecodingtrain  \n📸 Instagram:   / the.coding.train  \n\n🎥    • Coding Challenges  \n🎥    • Start learning here!  \n\n🔗 p5.js: https://p5js.org\n🔗 p5.js Web Editor: https://editor.p5js.org/\n🔗 Processing: https://processing.org\n\n📄 Code of Conduct: https://github.com/CodingTrain/Code-o...\n\nThis description was auto-generated. If you see a problem, please open an issue: https://github.com/CodingTrain/thecod...\n\n#machinelearningml #webcam #posedetection #ml5js #movenet #blazepose #ml5js #javascript",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "R5UZsIwPbJA",
        "title": "Face Mesh Detection with ml5.js",
        "publishedAt": "1 year ago",
        "durationSeconds": 1906,
        "views": 37820,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, I explore the FaceMesh model using ml5.js. I demonstrate how to track all 468 face landmark positions as well as texture map an image onto the triangular mesh with uv coordinates. Code: https://thecodingtrain.com/tracks/ml5...\n\n🚀 Watch this video ad-free on Nebula https://nebula.tv/videos/codingtrain-...\n\np5.js Web Editor Sketches:\n🕹️ FaceMesh - Keypoints: https://editor.p5js.org/codingtrain/s...\n🕹️ FaceMesh - Part: https://editor.p5js.org/codingtrain/s...\n🕹️ FaceMesh - Custom List (Lips): https://editor.p5js.org/codingtrain/s...\n🕹️ FaceMesh - Centered Face: https://editor.p5js.org/codingtrain/s...\n🕹️ FaceMesh - Triangles: https://editor.p5js.org/codingtrain/s...\n🕹️ FaceMesh - Texture Map: https://editor.p5js.org/codingtrain/s...\n🕹️ FaceMesh - 3D: https://editor.p5js.org/codingtrain/s...\n🕹️ FaceMesh - Blow Bubbles: https://editor.p5js.org/codingtrain/s...\n🕹️ FaceMesh - Stretch and Skew: https://editor.p5js.org/codingtrain/s...\n\n🎥 Previous:    • Hand Pose Detection with ml5.js  \n🎥 Next:    • ml5.js 1.0 and Guest Conductor Patt Vira  \n🎥 All:    • Beginners Guide to Machine Learning in Jav...  \n\nReferences:\n💻 ml5.js: https://ml5js.org/\n🎹 Mouth Controlled Synteszier: https://jackbdu.com/blog/mouth-contro...\n📄 Face and hand tracking in the browser with MediaPipe and TensorFlow.js: https://blog.tensorflow.org/2020/03/f...\n📄 Real-time Facial Surface Geometry from Monocular Video on Mobile GPUs: https://arxiv.org/pdf/1907.06724\n📄 Face Mesh Model Card: https://drive.google.com/file/d/1VFC_...\n▵ Face Mesh UV Keypoints Map: https://developers.google.com/static/...\n📄 Destructuring Assignment: https://developer.mozilla.org/en-US/d...\n☁️ Clouds From Plane Window: https://en.wikipedia.org/wiki/File:Cl...\n\nVideos:\n🎥    • p5.js Coding Tutorial | Interactive Dandel...  \n🚂    • 11.3: The Pixel Array - p5.js Tutorial  \n\nRelated Coding Challenges:\n🚂    • Coding Challenge 181: Weighted Voronoi Sti...  \n🚂    • Coding Challenge 63: Texturing Cloth  \n\nTimestamps:\n0:00 Introduction\n1:15 Technical background for the model\n2:30 Related projects and inspiration.\n3:01 Adapting handpose example to facemesh.\n5:29 Keypoints and parts of the facemesh.\n11:28 Face bounding box.\n13:36 What is a mesh? Rendering the triangles\n21:19 Texturing mapping with UV coordinates\n30:48 FaceMesh in 3D\n31:10 Goodbye!\n\nEditing by Mathieu Blanchette\nAnimations by Jason Heglund\nMusic from Epidemic Sound\n\n🚂 Website: https://thecodingtrain.com/\n👾 Share Your Creation! https://thecodingtrain.com/guides/pas...\n🚩 Suggest Topics: https://github.com/CodingTrain/Sugges...\n💡 GitHub: https://github.com/CodingTrain\n💬 Discord: https://thecodingtrain.com/discord\n💖 Membership: http://youtube.com/thecodingtrain/join\n🛒 Store: https://standard.tv/codingtrain\n🖋️ Twitter:   / thecodingtrain  \n📸 Instagram:   / the.coding.train  \n\n🎥    • Coding Challenges  \n🎥    • Start learning here!  \n\n🔗 p5.js: https://p5js.org\n🔗 p5.js Web Editor: https://editor.p5js.org/\n🔗 Processing: https://processing.org\n\n📄 Code of Conduct: https://github.com/CodingTrain/Code-o...\n\nThis description was auto-generated. If you see a problem, please open an issue: https://github.com/CodingTrain/thecod...\n\n#machinelearningml #facemesh #ml5js #texture #uvcoordinates #ml5js #javascript",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vfNHdVbE-l4",
        "title": "Hand Pose Detection with ml5.js",
        "publishedAt": "1 year ago",
        "durationSeconds": 956,
        "views": 42455,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, I explore the HandPose model using ml5.js. I'll demonstrate how to track hand keypoints and create an interactive painting sketch using gestures. Code: https://thecodingtrain.com/tra...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "T99fNXTUUaQ",
        "title": "Pose Estimation with ml5.js",
        "publishedAt": "1 year ago",
        "durationSeconds": 1286,
        "views": 40898,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Strike a pose! In this video, I explore the BodyPose model in ml5.js with MoveNet and BlazePose, showing how to track body keypoints and visualize 'skeleton' connections using live video. Code:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pbjR20eTLVs",
        "title": "Image Classification with ml5.js",
        "publishedAt": "1 year ago",
        "durationSeconds": 1910,
        "views": 37603,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This video covers image classification in ml5.js 1.0. I demonstrate both the default MobileNet model as well as how to train your own classifier with transfer leraning and teachable machine....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MazpwQNdJYQ",
        "title": "Coding Challenge 185: Unfolding Fractals",
        "publishedAt": "1 year ago",
        "durationSeconds": 1864,
        "views": 55278,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "25% off The Nature of Code book with code CHOOCHOO at https://natureofcode.com (comes with exclusive sticker+bookmark).\n\nThe Dragon Curve fractal is created by repeatedly folding a strip of...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2h8VArJ3gnQ",
        "title": "ml5.js 1.0 and Guest Conductor Patt Vira",
        "publishedAt": "1 year ago",
        "durationSeconds": 3314,
        "views": 34300,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The ml5.js library recently celebrated it's 1.0 release! In this video, I provide an overview of the new release and cover how to use the FaceMesh model. Guest Conductor Patt Vira (http://youtube.c...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dJNFPv9Mj-Y",
        "title": "Coding Challenge 184: Collisions Without a Physics Library!",
        "publishedAt": "1 year ago",
        "durationSeconds": 1865,
        "views": 192284,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "What happens when two circles collide in a p5.js canvas? In this video, I examine the math and implement idealized elastic collisions in a JavaScript physics simulation. This video supplements...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "p7IGZTjC008",
        "title": "Coding Challenge 183: Paper Marbling Algorithm",
        "publishedAt": "2 years ago",
        "durationSeconds": 1930,
        "views": 92465,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "All aboard as I attempt to simulate the artistic process of paper marbling. The algorithm is based on the paper 'Mathematical Marbling' by S. Lu, A. Jaffer, X. Jin, H. Zhao, and X. Mao. The...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6UlGLB_jiCs",
        "title": "Coding Challenge 182: Apollonian Gasket Fractal",
        "publishedAt": "2 years ago",
        "durationSeconds": 3408,
        "views": 101669,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Happy Pi Day 2024! In this video, I attempt to create an Apollonian Gasket using the Descartes Circle Theorem and complex numbers. So many circles! Code: https://thecodingtrain.com/challenges/182-a...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Bxdt6T_1qgc",
        "title": "Coding Challenge 181: Weighted Voronoi Stippling",
        "publishedAt": "2 years ago",
        "durationSeconds": 1739,
        "views": 211009,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Stippling is an artistic technique that uses numerous dots to craft an image. In this coding challenge I attempt to implement a weighted Voronoi stippling algorithm with p5.js along with the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "L4u7Zy_b868",
        "title": "Coding Challenge 180: Falling Sand",
        "publishedAt": "2 years ago",
        "durationSeconds": 1380,
        "views": 1343966,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "It's Genuary 2024! Watch as I attempt to build a falling sand simulation in p5.js using a grid of pixels and simple rules. Code: https://thecodingtrain.com/challenges/180-falling-sand\n\n🚀...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Ggxt06qSAe4",
        "title": "Coding Challenge 179: Elementary Cellular Automata",
        "publishedAt": "2 years ago",
        "durationSeconds": 1301,
        "views": 181149,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How is nature hidden in a pile of 0s and 1s? Let's find out by coding a p5.js visualization of the Wolfram Elementary Cellular Automaton! Code: https://thecodingtrain.com/challenges/179-wolfram-ca...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AvQcTjB3gPg",
        "title": "I made a Discord Bot that says Choo Choo",
        "publishedAt": "2 years ago",
        "durationSeconds": 1995,
        "views": 45894,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn to create a Discord bot using Discord.js in Node.js. This video walks through setting up a node project, creating a Discord application, and writing code for authentication, slash commands,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wM3TEvQn2hw",
        "title": "How to Set Up a Node.js Project",
        "publishedAt": "2 years ago",
        "durationSeconds": 1484,
        "views": 103301,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to set up a Node.js project, run JavaScript code outside the browser, and use npm for package management! Code: https://thecodingtrain.com/tracks/discord-bots/discord/setup-node-project...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "46WOuOrMwTQ",
        "title": "Workflow: Terminal, Shell, Node.js, VSCode",
        "publishedAt": "2 years ago",
        "durationSeconds": 1410,
        "views": 80877,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This video covers tools and configurations to set up a JavaScript development environment with Node.js, Visual Studio Code, and shell/terminal access. This is step 1 along the way to creating...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4JzDttgdILQ",
        "title": "Creative Coding for Beginners - Full Course!",
        "publishedAt": "2 years ago",
        "durationSeconds": 18377,
        "views": 344395,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Choo choo! Welcome aboard to the world of creative coding! Join me in this beginner-friendly video series learning to code with Processing! https://thecodingtrain.com/tracks/learning-processing/pro...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5O2Yw_ldRjA",
        "title": "All aboard the new Coding Train website!",
        "publishedAt": "2 years ago",
        "durationSeconds": 343,
        "views": 36101,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The Coding Train has a new website! https://thecodingtrain.com\nDesign Systems International: https://designsystems.international\nCoding Train Case Study: https://designsystems.international/work/th...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rVBTxnRyOuE",
        "title": "Coding Challenge 178: Climate Spiral",
        "publishedAt": "3 years ago",
        "durationSeconds": 2467,
        "views": 96592,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn to create your own climate spiral using p5.js and temperature data. Originally designed by the climate scientist Ed Hawkins, the climate spiral is a visual representation of the changing...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IxdGyqhppis",
        "title": "Coding Challenge 177: Soft Body Physics",
        "publishedAt": "3 years ago",
        "durationSeconds": 1749,
        "views": 180594,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Embark on a squishy adventure as I attempt to create a soft body physics simulation for a character with toxiclibs.js and p5.js! Code: https://thecodingtrain.com/challenges/177-soft-body-character...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "h5ZNcAPXxew",
        "title": "Coding Challenge 176: Buffon's Needle",
        "publishedAt": "3 years ago",
        "durationSeconds": 1504,
        "views": 108768,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How do toothpicks approximate the value of pi? I'll show you by coding a simulation in p5.js! Code: https://thecodingtrain.com/challenges/176-buffon-needle\n\n🚀 Watch this video ad-free on...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PHfKCxjsmos",
        "title": "Coding Challenge: 3D on Apple II",
        "publishedAt": "3 years ago",
        "durationSeconds": 2740,
        "views": 378765,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Take a trip back in time and watch me attempt to build a 3D graphics engine in AppleSoft BASIC on a restored Apple II+ computer! Can I render a spinning cube? Code: https://thecodingtrain.com/chall...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 2,
      "uploadsLast90d": 2,
      "uploadCadenceWeekly": 0.16,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 17880,
      "viewsPerVideoP90Last90d": 17880,
      "viewVelocityTrend": "stable"
    },
    "performanceBaseline": {
      "p50Views": 17880,
      "p90Views": 17880,
      "p99Views": 17880,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "ai-saas",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:thecodingtrain"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "thecodingtrain.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "coding",
        "share": 0.77,
        "evidenceVideoIds": [
          "s2jm2Z22ibA",
          "d0GgzjCFWq0",
          "KR61bXsPlLU",
          "g3-PXyF8U70",
          "qhs-xppFRgE"
        ]
      },
      {
        "label": "code",
        "share": 0.73,
        "evidenceVideoIds": [
          "s2jm2Z22ibA",
          "d0GgzjCFWq0",
          "KR61bXsPlLU",
          "g3-PXyF8U70",
          "25omXt_OjD4"
        ]
      },
      {
        "label": "https",
        "share": 0.7,
        "evidenceVideoIds": [
          "s2jm2Z22ibA",
          "d0GgzjCFWq0",
          "KR61bXsPlLU",
          "g3-PXyF8U70",
          "qhs-xppFRgE"
        ]
      },
      {
        "label": "com",
        "share": 0.7,
        "evidenceVideoIds": [
          "s2jm2Z22ibA",
          "d0GgzjCFWq0",
          "KR61bXsPlLU",
          "g3-PXyF8U70",
          "qhs-xppFRgE"
        ]
      },
      {
        "label": "thecodingtrain",
        "share": 0.67,
        "evidenceVideoIds": [
          "s2jm2Z22ibA",
          "d0GgzjCFWq0",
          "KR61bXsPlLU",
          "g3-PXyF8U70",
          "qhs-xppFRgE"
        ]
      },
      {
        "label": "machine learning",
        "share": 0.07,
        "evidenceVideoIds": [
          "KR61bXsPlLU",
          "qhs-xppFRgE"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Tuesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 36,
      "reason": "fits ai-saas",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.55
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.35
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "fits ai-saas. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "The Coding Train — 1.8M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 36,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.74,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "ai-saas",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "b8be3a4c0a07e2278896b43c459c1644d53eb625e1b8415f286776896ca90dcf",
      "inputsHash": "4ae57b500158df88225f3c40cb41eeb2a7fc03591b35c32e4fe104af28b252aa",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-stable",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:29.231Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "34a8e17c5d75292fceb32a942c4b93bb03982df7d354698874ba861c32b5663d",
    "channelId": "UCFbNIlppjAuEX4znoulh0Cw",
    "channelHandle": "@WebDevSimplified",
    "channelName": "Web Dev Simplified",
    "channelUrl": "https://www.youtube.com/@WebDevSimplified",
    "description": "Web Dev Simplified is all about teaching web development skills and techniques in an efficient and practical manner. If you are just getting started in web development Web Dev Simplified has all the tools you need to learn the newest and most popular technologies to convert you from a no stack to full stack developer. Web Dev Simplified also deep dives into advanced topics using the latest best practices for you seasoned web developers.\n\nI started Web Dev Simplified in order to share my passion for web development, and do what I truly love. Teach and inspire new web developers. I have been in love with full stack web development since 2015 when I did my first internship as a web developer. Ever since then I have pursued my passion, learning everything there is to know about web development. Over the years I have taught many colleagues and friends the joys of web development, and cannot wait to teach you.\n\nThank you for watching!",
    "joinDate": null,
    "location": null,
    "subscribers": 1770000,
    "totalVideos": 853,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_nO3F7DfVXaf6wsHPS_hF327ggeWUCwZSELb5DCWBL1aw=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "courses.webdevsimplified.com",
        "url": "https://courses.webdevsimplified.com"
      },
      {
        "platform": "blog.webdevsimplified.com",
        "url": "https://blog.webdevsimplified.com"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/DevSimplified"
      },
      {
        "platform": "github",
        "url": "https://github.com/WebDevSimplified"
      },
      {
        "platform": "patreon.com",
        "url": "https://www.patreon.com/WebDevSimplified"
      },
      {
        "platform": "discord",
        "url": "https://discord.gg/7StTjnR"
      }
    ],
    "recentVideos": [
      {
        "videoId": "UngVdAsQEiU",
        "title": "The Best Local Agentic Coding Workflow (Complete Guide)",
        "publishedAt": "1 day ago",
        "durationSeconds": 2697,
        "views": 83267,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Setting up a local AI model can be intimidating, which is why I created this video. In this video I will show you everything you need to know about setting up local AI models from the basics of how local AI models work, to how to optimize local AI models for your hardware, and even how to use these local AI models in real world agentic environments.\n\n\n📚 Materials/References:\n\nLM Studio: https://lmstudio.ai/\nHugging Face: https://huggingface.co/\nPi Coding Agent: https://pi.dev/\n\n\n🌎 Find Me Here:\n\nMy Blog: https://blog.webdevsimplified.com/\nMy Courses: https://courses.webdevsimplified.com/\nPatreon:   / webdevsimplified  \nTwitter:   / devsimplified  \nDiscord:   / discord  \nGitHub: https://github.com/WebDevSimplified\nCodePen: https://codepen.io/WebDevSimplified\n\n\n⏱️ Timestamps:\n\n00:00 - Introduction\n01:08 - How Local AI Works\n05:33 - Picking Models\n11:46 - Configuring Your Model\n21:57 - Using Local Models In Your IDE\n34:17 - Using Local Models With Copilot\n38:17 - Using Local Models With Pi\n40:55 - Comparing Local Models to Anthropic Models\n\n\n#LocalAI #WDS #AgenticCoding",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9aTRnV6g0eQ",
        "title": "Learn React With This One Project",
        "publishedAt": "8 days ago",
        "durationSeconds": 6315,
        "views": 22071,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "React Simplified Course: https://learn.webdevsimplified.com/re...\nFREE React Hooks Course: https://courses.webdevsimplified.com/...\n\nLearning React is hard, especially if you are just getting started. In this video I will show you how to build out a full React application while also explaining every single important React concept you need to know.\n\n\n📚 Materials/References:\n\nGitHub Code: https://github.com/WebDevSimplified/r...\nReact Simplified Course: https://learn.webdevsimplified.com/re...\nFREE React Hooks Course: https://courses.webdevsimplified.com/...\n\n\n🌎 Find Me Here:\n\nMy Blog: https://blog.webdevsimplified.com/\nMy Courses: https://courses.webdevsimplified.com/\nPatreon:   / webdevsimplified  \nTwitter:   / devsimplified  \nDiscord:   / discord  \nGitHub: https://github.com/WebDevSimplified\nCodePen: https://codepen.io/WebDevSimplified\n\n\n⏱️ Timestamps:\n\n00:00:00 - Introduction\n00:01:02 - Setup React\n00:04:24 - Setup Tailwind\n00:06:27 - Thinking in Components\n00:08:15 - Custom Components\n00:14:26 - Props\n00:19:20 - Form Custom Component\n00:22:40 - Habit List Custom Component\n00:24:40 - Rendering Arrays\n00:28:15 - Habit Item Component\n00:37:00 - Advanced Props\n00:47:55 - useState Hook\n01:10:30 - Conditional Rendering\n01:11:50 - useContext Hook\n01:22:46 - Making UI Reactive\n01:32:51 - Rules of Hooks Hooks\n01:34:30 - Custom Hooks\n01:37:18 - useEffect Hook\n\n\n#TypeScript #WDS #ReactJS",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ULS7LHNScHc",
        "title": "Stop Using Context in React - Use This Instead",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 1189,
        "views": 28763,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Master every React hook with my FREE React Hooks Course - 25+ videos 👉 https://courses.webdevsimplified.com/...\nBecome a mid-level React developer with my Full React Course - 40+ hours, 200+ videos 👉 https://reactsimplified.com/?utm_sour...\n\nState management in React is incredibly important and the tools built into React are only able to get you so far. In this video I will show you how to use Zustand in your code to simplify your state management and make scaling your applications easier.\n\n\n📚 Materials/References:\n\nFREE React Hooks Course: https://courses.webdevsimplified.com/...\nReact Simplified Course: https://reactsimplified.com/?utm_sour...\nContext Video:    • Learn useContext In 13 Minutes  \nContext Article: https://blog.webdevsimplified.com/202...\n\n\n🌎 Find Me Here:\n\nMy Blog: https://blog.webdevsimplified.com/\nMy Courses: https://courses.webdevsimplified.com/\nPatreon:   / webdevsimplified  \nTwitter:   / devsimplified  \nDiscord:   / discord  \nGitHub: https://github.com/WebDevSimplified\nCodePen: https://codepen.io/WebDevSimplified\n\n\n⏱️ Timestamps:\n\n00:00 - Introduction\n00:28 - Starting Code\n02:38 - Zustand Basics\n11:48 - Zustand Best Practices\n14:55 - Advanced Zustand Features\n\n\n#Zustand #WDS #ReactJS",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vmzt6I1IZg8",
        "title": "Can I Build This UI In 10 Minutes",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 1540,
        "views": 8441,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Master CSS selectors with my FREE CSS Selector Cheat Sheet - 30+ selectors 👉 https://webdevsimplified.com/specific...\nBecome a CSS Developer with my CSS Simplified Course - 100+ videos, 20+ projects, 16+ hours 👉 https://courses.webdevsimplified.com/...\n\nAm I still able to create CSS designs in a quick time? In this video I challenge myself with a complicated CSS design where I only have 10 minutes to create it. Can I do it?\n\n\n📚 Materials/References:\n\nCSS Daily Challenge: https://cssdaily.dev/challenge/2026-0...\nFREE CSS Selector Cheat Sheet: https://webdevsimplified.com/specific...\nCSS Simplified Course: https://courses.webdevsimplified.com/...\n\n\n🌎 Find Me Here:\n\nMy Blog: https://blog.webdevsimplified.com/\nMy Courses: https://courses.webdevsimplified.com/\nPatreon:   / webdevsimplified  \nTwitter:   / devsimplified  \nDiscord:   / discord  \nGitHub: https://github.com/WebDevSimplified\nCodePen: https://codepen.io/WebDevSimplified\n\n\n⏱️ Timestamps:\n\n00:00 - Introduction\n00:15 - Challenge Prep\n03:21 - Challenge Start\n13:24 - Challenge Extension\n23:06 - AI Solution\n\n\n#CSS #WDS #CSSDaily",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "NBjycPpPHQQ",
        "title": "Why Does No One Use The Right React Hook",
        "publishedAt": "1 month ago",
        "durationSeconds": 910,
        "views": 32358,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Master every React hook with my FREE React Hooks Course - 25+ videos 👉 https://courses.webdevsimplified.com/... \nBecome a mid-level React developer with my Full React Course - 40+ hours, 200+ videos 👉 https://reactsimplified.com/?utm_sour... \n\nThe useSyncExternalStore hook is a hook most people never learn, but it is incredibly useful for working with data stored outside of React. In this video I will show you everything you need to know about this hook as well as show you practical use cases for this hook.\n\n📚 Materials/References:\n\nFREE React Hooks Course: https://courses.webdevsimplified.com/...\nDialog Video:    • The New dialog HTML Element Changes Modals...  \nDialog Blog Article: https://blog.webdevsimplified.com/202...\n\n\n🌎 Find Me Here:\n\nMy Blog: https://blog.webdevsimplified.com/\nMy Courses: https://courses.webdevsimplified.com/\nPatreon:   / webdevsimplified  \nTwitter:   / devsimplified  \nDiscord:   / discord  \nGitHub: https://github.com/WebDevSimplified\nCodePen: https://codepen.io/WebDevSimplified\n\n\n⏱️ Timestamps:\n\n00:00 - Introduction\n00:48 - Basic usage\n05:15 - Another example\n09:30 - Advanced usage\n\n\n#ReactJS #WDS #JavaScript",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AhBL2MYlQj0",
        "title": "New CSS Property corner-shape Is Amazing",
        "publishedAt": "1 month ago",
        "durationSeconds": 614,
        "views": 22073,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The new CSS corner-shape property may seem niche in use, but it allows you to do some crazy things in CSS that used to be entirely impossible! In this video I will show you how this property works all the way from the basics to the more advanced use cases.\n\n\n🌎 Find Me Here:\n\nMy Blog: https://blog.webdevsimplified.com/\nMy Courses: https://courses.webdevsimplified.com/\nPatreon:   / webdevsimplified  \nTwitter:   / devsimplified  \nDiscord:   / discord  \nGitHub: https://github.com/WebDevSimplified\nCodePen: https://codepen.io/WebDevSimplified\n\n\n⏱️ Timestamps:\n\n00:00 - Introduction\n00:26 - corner-shape Basics\n02:30 - superellipse\n04:10 - Animation Example\n05:12 - Icon Example\n06:44 - Speech Bubble Example\n08:15 - Funky Shape Example\n09:15 - Browser Support\n\n\n#CSS #WDS #AdvancedCSS",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "35cESnxXH6o",
        "title": "Strict TypeScript Isn't Enough Anymore",
        "publishedAt": "1 month ago",
        "durationSeconds": 1285,
        "views": 45758,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Become a senior TypeScript developer with my Full TypeScript Course - 60+ videos, 12+ hours+ 👉 https://learn.webdevsimplified.com/ty...\n\nThe TSConfig is a confusing file with tons of options in it. In this video I will breakdown which options are actually important for you to use and master so you can write cleaner and better TypeScript code.\n\n\n📚 Materials/References:\n\nTypeScript Simplified Course: https://learn.webdevsimplified.com/ty...\n\n\n🌎 Find Me Here:\n\nMy Blog: https://blog.webdevsimplified.com/\nMy Courses: https://courses.webdevsimplified.com/\nPatreon:   / webdevsimplified  \nTwitter:   / devsimplified  \nDiscord:   / discord  \nGitHub: https://github.com/WebDevSimplified\nCodePen: https://codepen.io/WebDevSimplified\n\n\n⏱️ Timestamps:\n\n00:00 - Introduction\n01:36 - Must Have Settings\n08:36 - Optional Settings\n14:32 - Personal Preference Settings\n18:59 - JavaScript Settings\n\n\n#WebDevelopment #WDS #TypeScript",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PRBlLjHIV74",
        "title": "This is the New NPM",
        "publishedAt": "1 month ago",
        "durationSeconds": 452,
        "views": 27923,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The npm site is a great place to find information about the packages you use, but has many glaring issues. The biggest is that npm’s search feature is terrible and makes finding packages nearly impossible and this is only compounded with the advent of AI which leads to so many more packages being released than ever before. In this video I will show you why I think npmx will replace npm and why it is such a better package repository.\n\n\n📚 Materials/References:\n\nNpmx: https://npmx.dev\nTanstack Hotkeys Video:    • NEW Tankstack Library is a Must Include in...  \n\n\n🌎 Find Me Here:\n\nMy Blog: https://blog.webdevsimplified.com/\nMy Courses: https://courses.webdevsimplified.com/\nPatreon:   / webdevsimplified  \nTwitter:   / devsimplified  \nDiscord:   / discord  \nGitHub: https://github.com/WebDevSimplified\nCodePen: https://codepen.io/WebDevSimplified\n\n\n⏱️ Timestamps:\n\n00:00 - Introduction\n00:33 - What is Npmx\n02:25 - Extra Npmx Package Information\n05:29 - Npmx Bonus Features\n\n\n#Npmx #WDS #npm",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "S26VdcWQzRQ",
        "title": "NEW Tankstack Library is a Must Include in Every Project",
        "publishedAt": "2 months ago",
        "durationSeconds": 903,
        "views": 17696,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Master TypeScript utility types with my FREE TS Util Types Cheat Sheet - 18+ types 👉 https://webdevsimplified.com/ts-utili...\nBecome a senior TypeScript developer with my Full TypeScript Course - 50+ videos, 10+ hours+ 👉 https://courses.webdevsimplified.com/...\n\n\nHotkeys are something every site can utilize in some way, but setting up good quality hotkeys isn’t as easy as it seems. This leads most developer to completely skip hotkeys on their site, but this is a terrible idea since hotkeys elevate your site in ways that most other things cannot. In this video I will show you how to use the new Tanstack Hotkeys library by going through 5 examples of increasing complexity. We will cover everything from setting up simple hotkeys all the way to creating fully customizable hotkey recording settings pages.\n\n\n📚 Materials/References:\n\nFREE TS Utility Types Cheat Sheet: https://webdevsimplified.com/ts-utili...\nTypeScript Simplified Course: https://courses.webdevsimplified.com/...\nTanstack Hotkeys Docs: https://tanstack.com/hotkeys\n\n\n🌎 Find Me Here:\n\nMy Blog: https://blog.webdevsimplified.com/\nMy Courses: https://courses.webdevsimplified.com/\nPatreon:   / webdevsimplified  \nTwitter:   / devsimplified  \nDiscord:   / discord  \nGitHub: https://github.com/WebDevSimplified\nCodePen: https://codepen.io/WebDevSimplified\n\n\n⏱️ Timestamps:\n\n00:00 - Introduction\n00:42 - Basic Hotkeys\n03:38 - Fancy TypeScript Example\n05:41 - Hotkey Options\n09:41 - Key State Hook\n10:53 - Key Sequence Shortcuts\n12:02 - Hotkey Recording\n\n\n#Tanstack #WDS #TanstackHotkeys",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "63m2vvB4wo4",
        "title": "Stop Writing TypeScript Code Like This",
        "publishedAt": "2 months ago",
        "durationSeconds": 732,
        "views": 26250,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Master TypeScript utility types with my FREE TS Util Types Cheat Sheet - 18+ types 👉 https://webdevsimplified.com/ts-utili...\nBecome a senior TypeScript developer with my Full TypeScript Course - 50+ videos, 10+ hours+ 👉 https://courses.webdevsimplified.com/...\n\n\nOne of the best features of TypeScript is its inference, but that inference can also be a negative. In this video I talk all about why you may want to use explicit return types in TypeScript since it can solve many common typing issues and in some cases is even required by TypeScript.\n\n\n📚 Materials/References:\n\nFREE TS Utility Types Cheat Sheet: https://webdevsimplified.com/ts-utili...\nTypeScript Simplified Course: https://courses.webdevsimplified.com/...\n\n\n🌎 Find Me Here:\n\nMy Blog: https://blog.webdevsimplified.com/\nMy Courses: https://courses.webdevsimplified.com/\nPatreon:   / webdevsimplified  \nTwitter:   / devsimplified  \nDiscord:   / discord  \nGitHub: https://github.com/WebDevSimplified\nCodePen: https://codepen.io/WebDevSimplified\n\n\n⏱️ Timestamps:\n\n00:00 - Introduction\n00:46 - Recursive functions\n01:32 - Catching errors\n04:01 - When to use vs not use return types\n07:00 - Optionally very useful return types\n\n\n#TSReturnTypes #WDS #TypeScript",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Sh5B7ApPh7k",
        "title": "JavaScript Is Dead - What You Need To Do",
        "publishedAt": "2 months ago",
        "durationSeconds": 1151,
        "views": 33640,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "*Master TypeScript utility types* with my *FREE TS Util Types Cheat Sheet* - _18+ types_ 👉 https://webdevsimplified.com/ts-utility-types-cheat-sheet.html\n*Become a senior TypeScript developer*...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Y7nhXvJ7yH8",
        "title": "How to Handle Accessibility Like a Senior Dev",
        "publishedAt": "2 months ago",
        "durationSeconds": 1233,
        "views": 21019,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "*FREE Accessibility Checklist* - _80+ items, 12+ categories_ 👉 https://webdevsimplified.com/accessibility-checklist.html\n*Become a web developer* with my *FREE Web Development Roadmap* -...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ovnyeq-Xxrc",
        "title": "How To Handle Errors Like A Senior Dev",
        "publishedAt": "3 months ago",
        "durationSeconds": 1941,
        "views": 78947,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "*Become a web developer* with my *FREE Web Development Roadmap* - _260+ videos, 120+ projects, 60+ articles_ 👉 https://webdevsimplified.com/web-dev-roadmap.html\n*Master TypeScript utility...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Xm_VGeTpS2Q",
        "title": "This Amazing TypeScript Feature Has NO Docs!",
        "publishedAt": "3 months ago",
        "durationSeconds": 685,
        "views": 54109,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "FREE TypeScript Utility Types Cheat Sheet: https://webdevsimplified.com/ts-utility-types-cheat-sheet.html\nTypeScript Simplified Course: https://courses.webdevsimplified.com/typescript-simplified/?u...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CFI1ZnlHEFM",
        "title": "My Honest Thoughts on AI and the Job Market in 2026",
        "publishedAt": "3 months ago",
        "durationSeconds": 1001,
        "views": 203529,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "*Become a web developer* with my *FREE Web Development Roadmap* - _260+ videos, 120+ projects, 60+ articles_ 👉 https://webdevsimplified.com/web-dev-roadmap.html\n\nThe last few years have...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "HXIHpDnsizk",
        "title": "NEW CSS Scroll Features are Game Changers",
        "publishedAt": "3 months ago",
        "durationSeconds": 970,
        "views": 32448,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "FREE CSS Selector Cheat Sheet: https://webdevsimplified.com/specificity-cheat-sheet.html\nFREE Web Dev Roadmap: https://webdevsimplified.com/web-dev-roadmap.html\n\nThese new CSS scroll features...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nQrUeK0n1qw",
        "title": "Every Project Needs This NEW Tanstack Library",
        "publishedAt": "4 months ago",
        "durationSeconds": 868,
        "views": 60011,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Tanstack has been releasing tons of libraries in the last year and the newest Pacer library is yet another incredible library that I will use in nearly every project I work on. In this video...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bP8mrNdR-hs",
        "title": "I Love the NEW CSS Functions",
        "publishedAt": "4 months ago",
        "durationSeconds": 670,
        "views": 30892,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "FREE CSS Selector Cheat Sheet: https://webdevsimplified.com/specificity-cheat-sheet.html\n\nCSS has received dozens of monumental updates in the last few years, and this new CSS functions update...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SQTij8_Kwl4",
        "title": "Everyone Is Missing What Makes NEW Shadcn Update Amazing",
        "publishedAt": "4 months ago",
        "durationSeconds": 452,
        "views": 21024,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This new Shadcn update brings some really exciting changes and also some over hyped features. In this video I want to talk about what this new update actually does, what makes it important,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "quoNVa88XfE",
        "title": "NEW Tanstack AI Library is Amazing!",
        "publishedAt": "4 months ago",
        "durationSeconds": 691,
        "views": 34105,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Creating apps that utilize AI is almost a necessity at this point and the brand new Tanstack AI library makes this process so much smoother. This library takes all the best parts of the Vercel...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "aP6w2OzidYM",
        "title": "Stop Writing Your ID Types Like This",
        "publishedAt": "5 months ago",
        "durationSeconds": 949,
        "views": 41042,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Branded types are a niche TypeScript feature that don’t make much sense in small projects, but as soon as your project grows in size or complexity they are a must have. In this video I explain...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Ubbb1RK7iFs",
        "title": "Stop Writing React Code Like This",
        "publishedAt": "5 months ago",
        "durationSeconds": 629,
        "views": 117110,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "*Master every React hook* with my *FREE React Hooks Course* - _25+ videos_ 👉 https://courses.webdevsimplified.com/react-hooks-simplified?utm_source=youtube&utm_medium=video-description&utm_term=...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KsHbs5RMVYU",
        "title": "Learn Tanstack Start In 60 Minutes",
        "publishedAt": "5 months ago",
        "durationSeconds": 3789,
        "views": 112525,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "*Become a web developer* with my *FREE Web Development Roadmap* - _260+ videos, 120+ projects, 60+ articles_ 👉 https://webdevsimplified.com/web-dev-roadmap.html\n\nTanstack Start is a new...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "aAppWoTlw74",
        "title": "If You Code with AI You Need to Follow this 10 Step Process",
        "publishedAt": "5 months ago",
        "durationSeconds": 2711,
        "views": 19307,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "With the power of AI we can write code faster than ever, but that means we also need to spend more time reviewing code. In this video I will show you my proven 10 step process for reviewing...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "BhNSauna0eo",
        "title": "You are a Junior Dev if You Don’t Know These 18 TypeScript Utility Types",
        "publishedAt": "6 months ago",
        "durationSeconds": 1330,
        "views": 107061,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "*Master TypeScript utility types* with my *FREE TS Util Types Cheat Sheet* - _18+ types_ 👉 https://webdevsimplified.com/ts-utility-types-cheat-sheet.html\n*Become a senior TypeScript developer*...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gL3BJ8_5Jz8",
        "title": "How to Build a Permission System that Scales to Enterprise",
        "publishedAt": "6 months ago",
        "durationSeconds": 3345,
        "views": 28639,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Every app needs to handle authorization (aka permission), but doing so in an easy to extend and clean way is very hard. In this video I will show you how to build an incredibly robust permission...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5MQb6pVkQHA",
        "title": "Build an Advanced Realtime Chat Project with Supabase",
        "publishedAt": "6 months ago",
        "durationSeconds": 7853,
        "views": 23206,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Supabase: https://supabase.plug.dev/rZx5wtt\n\nIn this video I will show you how to create an advanced realtime chat application that supports public/private rooms, a full permission system,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gjrXeqgxbas",
        "title": "I Will Never Use Shadcn Form Components Again",
        "publishedAt": "6 months ago",
        "durationSeconds": 4288,
        "views": 63419,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Shadcn’s new Field component replaces the old Form component, but it is quite a bit different. In this video I will show you how all the new Field components work and more importantly I will...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dyiVsjLTFv0",
        "title": "Will I Survive These Advanced TypeScript Challenges?",
        "publishedAt": "6 months ago",
        "durationSeconds": 1780,
        "views": 24090,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "FREE TypeScript Utility Types Cheat Sheet: https://webdevsimplified.com/ts-utility-types-cheat-sheet.html\n\nUsing TypeScript is relatively easy, but writing complex TypeScript types is incredibly...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "x5kwmIaPty8",
        "title": "I Will Never Use Prettier or ESLint Again",
        "publishedAt": "7 months ago",
        "durationSeconds": 904,
        "views": 135168,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "*Become a web developer* with my *FREE Web Development Roadmap* - _260+ videos, 120+ projects, 60+ articles_ 👉 https://webdevsimplified.com/web-dev-roadmap.html\n\nBiome is a tool that aims...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 8,
      "uploadsLast90d": 16,
      "uploadCadenceWeekly": 1.24,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 28763,
      "viewsPerVideoP90Last90d": 78947,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 28763,
      "p90Views": 78947,
      "p99Views": 83267,
      "outperformingVideosLast90d": 3
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "web-services",
          "confidence": 0.3,
          "evidence": [
            "topic-pillar:webdevsimplified",
            "topic-pillar:web development"
          ]
        },
        {
          "category": "developer-tools",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:developer"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "courses.webdevsimplified.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.77,
        "evidenceVideoIds": [
          "UngVdAsQEiU",
          "9aTRnV6g0eQ",
          "ULS7LHNScHc",
          "vmzt6I1IZg8",
          "NBjycPpPHQQ"
        ]
      },
      {
        "label": "webdevsimplified",
        "share": 0.73,
        "evidenceVideoIds": [
          "UngVdAsQEiU",
          "9aTRnV6g0eQ",
          "ULS7LHNScHc",
          "vmzt6I1IZg8",
          "NBjycPpPHQQ"
        ]
      },
      {
        "label": "com",
        "share": 0.73,
        "evidenceVideoIds": [
          "UngVdAsQEiU",
          "9aTRnV6g0eQ",
          "ULS7LHNScHc",
          "vmzt6I1IZg8",
          "NBjycPpPHQQ"
        ]
      },
      {
        "label": "become",
        "share": 0.43,
        "evidenceVideoIds": [
          "ULS7LHNScHc",
          "vmzt6I1IZg8",
          "NBjycPpPHQQ",
          "35cESnxXH6o",
          "S26VdcWQzRQ"
        ]
      },
      {
        "label": "developer",
        "share": 0.43,
        "evidenceVideoIds": [
          "ULS7LHNScHc",
          "vmzt6I1IZg8",
          "NBjycPpPHQQ",
          "35cESnxXH6o",
          "S26VdcWQzRQ"
        ]
      },
      {
        "label": "web development",
        "share": 0.17,
        "evidenceVideoIds": [
          "Y7nhXvJ7yH8",
          "ovnyeq-Xxrc",
          "CFI1ZnlHEFM",
          "KsHbs5RMVYU",
          "x5kwmIaPty8"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "moderate",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 32,
      "reason": "fits web-services",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.5
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "fits web-services. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Web Dev Simplified — 1.8M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 32,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.78,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "web-services",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "34a8e17c5d75292fceb32a942c4b93bb03982df7d354698874ba861c32b5663d",
      "inputsHash": "9e12c946ac90d90dd420e5a622785c54dbf94466e60bf1e016081d79d8cfe187",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:29.335Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "72aaab49b3ad0f3b1410eb3b6d92a48e668632c88e77b8a0345a9c421a0892a7",
    "channelId": "UC29ju8bIPH5as8OGnQzwJyA",
    "channelHandle": "@TraversyMedia",
    "channelName": "Traversy Media",
    "channelUrl": "https://www.youtube.com/@TraversyMedia",
    "description": "Traversy Media features the best online web development and programming tutorials for all of the latest web technologies from the building blocks of HTML, CSS & JavaScript to frontend frameworks like React and Vue to backend technologies like Node.js, Python and PHP",
    "joinDate": null,
    "location": null,
    "subscribers": 2410000,
    "totalVideos": 1000,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_mLysKc36lc_FVk2j777olWvLOjgDz6NCNGdiQBnAKRENM=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "traversymedia.com",
        "url": "https://traversymedia.com"
      },
      {
        "platform": "twitter",
        "url": "http://twitter.com/traversymedia"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/traversymedia/"
      },
      {
        "platform": "linkedin",
        "url": "https://www.linkedin.com/in/bradtraversy"
      },
      {
        "platform": "paypal.com",
        "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=KLVYJVNUJ5NV4"
      }
    ],
    "recentVideos": [
      {
        "videoId": "jcBzuuZvLCE",
        "title": "Tanstack Start Course Course",
        "publishedAt": "6 days ago",
        "durationSeconds": 1857,
        "views": 12529,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to build and deploy your first Tanstack Start app in 30 minutes.\n\nRender $50 Coupon code: RENDER-TRAVERSYMEDIA\n\nTimestamps:\n\n00:00 - Introduction\n1:35 - What is Tanstack Start\n3:33 - Project Setup\n6:09 - Pages & Navigation\n8:19 - Dynamic Route Paths\n10:37 - Understanding the Router\n12:54 - Fetching Data with Loaders\n16:22 - Code Execution Model\n19:46 - Server Functions\n22:27-  Server (API) Routes",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "K6CO0S5ql_A",
        "title": "OpenClaw Crash Course For Beginners",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 2383,
        "views": 39816,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to get OpenClaw up and running and create your own AI assistant\n\nManaged OpenClaw VPS - Code TRAVERSYMEDIA for 10% 0ff!\nhttps://www.hostinger.com/traversymedia\n\nPrompts From Video:\nhttps://gist.github.com/bradtraversy/...\n\nOpenClaw Devsheet:\nhttps://devsheets.io/sheets/openclaw\n\nTimestamps:\n0:00 - Intro\n1:34 - What Is OpenClaw?\n5:40 - Local or VPS?\n7:14 - Hostinger VPS Options\n8:46 - Installing OpenClaw\n9:58 - Selecting A Model\n11:44 - Open AI Authentication\n12:27 - Telegram Bot Token Setup\n14:08 - Finish Onboarding\n16:07 - Open Web UI\n17:13 - Pairing Telegram\n18:20 - The Core Files\n20:15 - Add Initial Info\n22:05 - Content Digest Workflow\n24:40 - Getting Today's Digest\n26:05 - Creating Cron Jobs\n28:09 - Skills\n30:58 - Security\n32:05 - My OpenClaw/Claude/Obsidian Workflow\n36:40 - Agent Task Sharing",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XCifkDC0yXA",
        "title": "React Native Crash Course 2026 - Build a Complete Mobile App",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 5916,
        "views": 56060,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to build native mobile apps from scratch with React Native and Expo.\n\nCreate your account at https://try.expo.dev/traversy\n\nProject Repo\nhttps://github.com/bradtraversy/macro...\n\nSteps & Complete Walkthrough:\nhttps://github.com/bradtraversy/macro...\n\nTimestamps:\n0:00 - Intro\n1:05 - What Is React Native\n4:15 - How It Works\n7:53 - What Is Expo?\n10:00 - Running In Development\n11:30 - Project Resources\n13:17 - Expo Account & EAS CLI\n15:10 - Generating an App\n18:50 - Running On iOS & Web\n21:34 - Running On Android\n22:40 - Reset Project Script\n23:59 - Native Components\n26:46 - Platform & Device Info\n28:25 - Styling In React Native\n30:38 - Screen Stack & Header Title\n32:00 - Global Styles\n34:10 - Home Header Component\n36:03 - Expo Router & Screens\n38:05 - Navigation Links\n38:58 - Back Button & Hide Headers\n40:40 - Add Meal Screen (Challenge)\n42:24 - Tabs\n46:45 - MacroCard & MacroGrid Components\n51:00 - MealItem & RecentMeals Components\n53:33 - Add Meal Form\n56:12 - AsyncStorage Intro\n58:33 - Storage Handler\n1:02:17 - Hook Up Form\n1:05:12 - Get Meals From Storage\n1:08:56 - Update MacroGrid With Storage\n1:11:00 - Delete Meals From Storage\n1:14:53 - All Meals Screen\n1:16:07 - Clear All Meals\n1:17:53 - Expo Haptics\n1:20:40 - Share API\n1:23:27 - Expo Clipboard\n1:25:47 - Expo Notifications\n1:28:26 - Reminder Toggle Component\n1:32:05 - Build With EAS Build",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Wr3Sw8KwznE",
        "title": "A lot of you NEED to hear this",
        "publishedAt": "1 month ago",
        "durationSeconds": 553,
        "views": 151732,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I've been coding for 20 years and I still feel behind with AI. The truth is, everybody over exaggerates, or just lies. \n\nCheck out my coding with AI course: https://www.codingwithaicourse.com/\n\nFollow Neon to not miss course giveaways:\nX/Twitter: https://x.com/neondatabase\nLinkedin:   / neondatabase",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ChaQ_tZDBFg",
        "title": "You Can Build The Craziest Things with Claudes Agent SDK",
        "publishedAt": "1 month ago",
        "durationSeconds": 865,
        "views": 35059,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A crash course on the Claude Agent SDK. Add Claude Code directly into your apps, and learn how it can make building AI powered apps easier than ever.\n\nTry Warp today and get 1,000 free credits: https://oz.dev/traversyyt\n\nClaude Agent SDK documentation: https://platform.claude.com/docs/en/a...\n\nFollow the Traversy Media team on X/Twitter:\nBrad Traversy: https://x.com/traversymedia\nDennis Ivy: https://x.com/dennisivy11\nSulamita Ivanov: https://x.com/sulamitaivanov",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pCcblPDJDwc",
        "title": "New 16-Hour AI Course! Build A Full-Stack SaaS With My AI Workflow",
        "publishedAt": "2 months ago",
        "durationSeconds": 355,
        "views": 58777,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Promo Links ($20):\nhttps://codingwithaicourse.com\nOr On Udemy:\nhttps://www.udemy.com/course/coding-with-ai/?couponCode=CODEAI20",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UaB0gWFwuEU",
        "title": "Developers are forced to use AI",
        "publishedAt": "3 months ago",
        "durationSeconds": 494,
        "views": 90301,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Developers are left with no choice, companies are making them use AI now.\n\nTry Tuple for free for 2 weeks at https://tuple.app/traversy and use code TRAVERSY for 90% off your team's first 2 months post-trial.\n\nFind all Traversy Media courses at https://www.traversymedia.com/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nGxpctRd2OQ",
        "title": "AI Generated Code Has a Security Problem",
        "publishedAt": "3 months ago",
        "durationSeconds": 1038,
        "views": 28309,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "With everything starting to use AI, there are some serious concerns about the results.\n\nCheck out Code Rabbit:  https://coderabbit.link/traversymedia\n\nFind all Traversy Media courses at https://www.traversymedia.com/\n\nTimestamps:\n\n00:00 - Intro\n00:46 - 32% of devs ship AI code\n1:52 - 45% of code is insecure\n2:30 - CodeRabbit report\n5:05 - Why issues are happening\n6:57 - Code reviews\n8:41 - AI code review tools\n10:45 - Using code rabbit",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8TMQcRcBnW8",
        "title": "FastAPI Crash Course - Modern Python API Development",
        "publishedAt": "4 months ago",
        "durationSeconds": 3621,
        "views": 55578,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn the fundamentals of creating APIs with Python using the FastAPI framework.\n\nCheck out our sponsor Code Rabbit:\nhttps://coderabbit.link/traversymedia\n\nFinal Code & Docs:\nhttps://github.com/bradtraversy/fasta...\n\nDevsheets.io FastAPI Cheat Sheet:\nhttps://www.devsheets.io/sheets/fastapi\n\nTimestamps:\n0:00 - Introduction\n1:06 - Sponsor (Code Rabbit)\n2:45 - What Is FastAPI? (Slides)\n8:25 - High Level Overview\n10:11 - Virtual Environment Setup\n11:43 - FastAPI Install & Basic Setup\n13:32 - Your First Route\n15:09 - Swagger Interactive Docs\n16:07 - Basic Item Route Examples\n19:00 - POST Requests\n20:50 - API Router Setup\n24:00 - JSON Storage Module\n28:39 - Pydantic Schemas\n36:10 - Issue GET Route\n37:50 - Issue POST Route\n43:26 - Issue PUT Route\n45:17 - Issue DELETE Route\n47:00 - Middleware (Timing Example)\n52:50 - CORS\n54:37 - Deploying to Render",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WCGTQBCE3FA",
        "title": "Why I stopped making coding tutorials",
        "publishedAt": "4 months ago",
        "durationSeconds": 483,
        "views": 242807,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out Okara at https://okara.ai, first month at $1 with code TRAVERSY\n\n20% off all courses and memberships until Dec 26th\nCode: CHRISTMAS20\nhttps://www.traversymedia.com/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gQnBetuyktk",
        "title": "Learning to code has changed",
        "publishedAt": "5 months ago",
        "durationSeconds": 1019,
        "views": 172985,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://coderabbit.link/traversymedia \n\nDocument referred to in video: https://link.excalidraw.com/readonly/PvQOdHmPsUObYpXGyrjm\n\nLeading tech companies have been forcing developers to embrace...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AFkoZTEKOiM",
        "title": "Coding Before AI Wasn’t The Stone Age",
        "publishedAt": "6 months ago",
        "durationSeconds": 734,
        "views": 24890,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Lets stop exaggerating how bad things were before LLMs started generating code. \n\nhttps://t.co/2eX54NAbTe\n\nCheck out the NEW Modern React Course 👉 https://modernreactcourse.com/\n\nFollow...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lvFswfNez2o",
        "title": "The Junior Dev Role Will Look Different With AI",
        "publishedAt": "7 months ago",
        "durationSeconds": 454,
        "views": 162271,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out AgentSea at https://agentsea.com/, first month at $1 with code TRAVERSY \n\nLeading tech companies have been forcing developers to embrace AI, some have gone to the point of replacing...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "oIx7ObcfdlU",
        "title": "My Current Tech Stack",
        "publishedAt": "8 months ago",
        "durationSeconds": 728,
        "views": 72692,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Lets talk about the tech stack I am using for projects today.\n\nProjects mentioned: \n- https://webutils.io\n- https://www.devsheets.io\n- https://apimocker.com\n- https://apiprobe.dev\n\nTraversy...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Y_JQti8YLn0",
        "title": "Developers have a problem with side projects",
        "publishedAt": "8 months ago",
        "durationSeconds": 456,
        "views": 60611,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The truth is most side projects we work on will never see the light of day. Let's talk about why.\n\nTraversy Media courses: https://www.traversymedia.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5zR1ZE5aqho",
        "title": "Cursor Crash Course & AI Coding For Beginners",
        "publishedAt": "8 months ago",
        "durationSeconds": 3161,
        "views": 91956,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, we'll explore the Cursor AI editor and my workflow for coding with AI. We will talk about context, rules, tab completion, the chat interface, and more.\n\nCheck out Sevalla for...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fyxoI-3cpEo",
        "title": "I'm Really Starting To Like Coding With AI",
        "publishedAt": "9 months ago",
        "durationSeconds": 602,
        "views": 55386,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I have been using AI tools like Cursor and Claude Code, and I'm really enjoying them. Of course, learning the fundamentals is key, but once you know how to code, using these tools can be really...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hdEDKwI46_E",
        "title": "Figma Oversimplified",
        "publishedAt": "9 months ago",
        "durationSeconds": 829,
        "views": 39642,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn Figma in 13 minutes by covering all the core concepts you need to get started. This tutorial is the ultimate mini crash course to get you started before diving deeper into figma.\n\nFigma:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1tF-vTlJ3xg",
        "title": "This is what I've been working on",
        "publishedAt": "9 months ago",
        "durationSeconds": 365,
        "views": 45579,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Promo Code: REACTNOW\nhttps://modernreactcourse.com\n\nUdemy:\nhttps://www.udemy.com/course/modern-react-from-the-beginning/?couponCode=REACTNOW",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sqGr_Eais-I",
        "title": "What happened to Brad Traversy?",
        "publishedAt": "10 months ago",
        "durationSeconds": 527,
        "views": 84051,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Many of you have been wondering what happened to Brad and the channel. Here's an update and a vision for its future.\n\nCheck out the NEW Modern React Course 👉 https://modernreactcourse.com/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vcM84VxSXAM",
        "title": "How Voice AI Business are Making Money",
        "publishedAt": "11 months ago",
        "durationSeconds": 2118,
        "views": 35044,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The voice AI space is one of the easiest and most practical AI services you can begin selling today, in this video. Let's see why and how to build your own voice AI assistant.\n\nVAPI WEBSITE:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "NKiTlo_dgb8",
        "title": "NextJS + Postgres and Error Monitoring  - Full Stack Support Ticketing System",
        "publishedAt": "1 year ago",
        "durationSeconds": 12191,
        "views": 39121,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this project, we will create a support ticket system with Next.js, Neon PostgreSQL, Prisma and we will implement error tracking and logging with Sentry.\n\nSentry:\nhttps://sentry.io/signup/??utm_s...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bjh7EYdFTo4",
        "title": "I Tried Vibe Coding - Here Are My Thoughts",
        "publishedAt": "1 year ago",
        "durationSeconds": 438,
        "views": 144367,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I have been \"vibe coding\" with some of my side projects over the past few months. I think there are pros and cons to this new style of programming. \n\nCheck out our courses:\nhttps://traversymedia.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VR3p7almo_c",
        "title": "Build & Deploy An AI-Powered Chat App | Vue, Node, TypeScript,  Open AI, Stream & Neon Database",
        "publishedAt": "1 year ago",
        "durationSeconds": 9981,
        "views": 32275,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this project, we will build a full stack app that works similar to ChatGPT and answers prompts and keeps the context throughout the conversation. We will use Vue.js with Pinia for state...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PoFkd42WvQA",
        "title": "Freelance Web Developer Roadmap",
        "publishedAt": "1 year ago",
        "durationSeconds": 2633,
        "views": 174446,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, we go through a 6-step process to becoming a successful freelance Web Developer. Everything from the technologies to learn to setting up a business and business types to proposals...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bCpFbERgj7s",
        "title": "React Native Crash Course+ | Build a Mobile App In 3 Hours",
        "publishedAt": "1 year ago",
        "durationSeconds": 11009,
        "views": 134183,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this 3-hour course, we will learn all about React Native for building iOS and Android apps. We will discuss the fundamentals and then build a notes application with full CRUD and authentication...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZDRZvFNK-ek",
        "title": "Full Stack JavaScript Developer Roadmap 2025",
        "publishedAt": "1 year ago",
        "durationSeconds": 2493,
        "views": 209722,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This is my complete roadmap to become a full stack JavaScript web developer. It takes you from the very begining, learning HTML, CSS and JS to frameworks, to backend and career deevelopment....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "V0P3Opf-zUs",
        "title": "TTS & Translate App | Serverless Functions, Google Translate & Web Speech API",
        "publishedAt": "1 year ago",
        "durationSeconds": 2722,
        "views": 18652,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We will build a JavaScript web app that takes in some text and does TTS as well as the option to select a language to translate to. We will use the Vercel CLI and a serverless function fot...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vA5TTz6BXhY",
        "title": "Git & GitHub Crash Course 2025",
        "publishedAt": "1 year ago",
        "durationSeconds": 2969,
        "views": 280427,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This is a crash course to learn the fundamentals of Git version control and the Github platform. Learn all of the core commands and the workflow to start learning Git.\n\nSample Project Files:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PyaSnpXssks",
        "title": "React Admin Crash Course 2025",
        "publishedAt": "1 year ago",
        "durationSeconds": 2711,
        "views": 41482,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to create a full-featured admin panel for your APIs while writing very little code  using React Admin.  We will create a CRUD interface for blog posts with pagination, filtering,...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 5,
      "uploadsLast90d": 8,
      "uploadCadenceWeekly": 0.62,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 39816,
      "viewsPerVideoP90Last90d": 90301,
      "viewVelocityTrend": "stable"
    },
    "performanceBaseline": {
      "p50Views": 39816,
      "p90Views": 90301,
      "p99Views": 90301,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "ai-saas",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:AI assistants"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "traversymedia.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.6,
        "evidenceVideoIds": [
          "K6CO0S5ql_A",
          "XCifkDC0yXA",
          "Wr3Sw8KwznE",
          "ChaQ_tZDBFg",
          "pCcblPDJDwc"
        ]
      },
      {
        "label": "com",
        "share": 0.57,
        "evidenceVideoIds": [
          "K6CO0S5ql_A",
          "XCifkDC0yXA",
          "Wr3Sw8KwznE",
          "ChaQ_tZDBFg",
          "pCcblPDJDwc"
        ]
      },
      {
        "label": "course",
        "share": 0.53,
        "evidenceVideoIds": [
          "jcBzuuZvLCE",
          "K6CO0S5ql_A",
          "XCifkDC0yXA",
          "Wr3Sw8KwznE",
          "ChaQ_tZDBFg"
        ]
      },
      {
        "label": "code",
        "share": 0.43,
        "evidenceVideoIds": [
          "jcBzuuZvLCE",
          "K6CO0S5ql_A",
          "ChaQ_tZDBFg",
          "UaB0gWFwuEU",
          "nGxpctRd2OQ"
        ]
      },
      {
        "label": "learn",
        "share": 0.33,
        "evidenceVideoIds": [
          "jcBzuuZvLCE",
          "K6CO0S5ql_A",
          "XCifkDC0yXA",
          "ChaQ_tZDBFg",
          "8TMQcRcBnW8"
        ]
      },
      {
        "label": "AI assistants",
        "share": 0.07,
        "evidenceVideoIds": [
          "K6CO0S5ql_A",
          "vcM84VxSXAM"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 36,
      "reason": "fits ai-saas",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.55
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.35
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "fits ai-saas. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Traversy Media — 2.4M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 36,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.74,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "ai-saas",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "72aaab49b3ad0f3b1410eb3b6d92a48e668632c88e77b8a0345a9c421a0892a7",
      "inputsHash": "d9cd990474906adca92c97a8be4ffdd2cd75ef369c07ba725d35efbcd739942f",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-stable",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:31.182Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "8cfc1d26292dcee88eeb27a5365f0dd1d9d1c2466f4efd0c44299d580cbc17df",
    "channelId": "UCW5YeuERMmlnqo4oq8vwUpg",
    "channelHandle": "@NetNinja",
    "channelName": "Net Ninja",
    "channelUrl": "https://www.youtube.com/@NetNinja",
    "description": "Black-belt your web development skills. Over 2000 free programming tutorial videos about:\n\n- Modern JavaScript (beginner to advanced)\n- Node.js\n- React\n- Vue.js\n- Firebase\n- MongoDB\n- HTML & CSS\n- PHP & MySQL\n- Laravel\n- React Native\n- Flutter\n- Open AI\n- SolidJS\n\n...And many more topics as well :)",
    "joinDate": null,
    "location": null,
    "subscribers": 1880000,
    "totalVideos": 2700,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_mk2Ex-8sW03SBlBX7D1EC5skH0kv9rS3rU9IXq2I-q2Zg=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "netninja.dev",
        "url": "https://netninja.dev"
      },
      {
        "platform": "udemy.com",
        "url": "https://www.udemy.com/user/47fd83f6-5e4a-4e87-a0f0-519ac51f91b6/"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/thenetninja/"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/thenetninjauk"
      },
      {
        "platform": "tiktok",
        "url": "https://www.tiktok.com/@thenetninjauk"
      },
      {
        "platform": "paypal.me",
        "url": "https://www.paypal.me/thenetninja"
      },
      {
        "platform": "facebook",
        "url": "https://www.facebook.com/thenetninjauk/"
      },
      {
        "platform": "patreon.com",
        "url": "https://www.patreon.com/thenetninja"
      }
    ],
    "recentVideos": [
      {
        "videoId": "1akdIvoZKvk",
        "title": "Astro Crash Course #13 - Deploying to Netlify",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 312,
        "views": 1958,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Astro tutorial series, you'll learn how to use the Astro web framework to make a content-driven website. You'll also learn how to add React components to the site, and deploy the finished application to Netlify.\n\n🍿👇 Get early access to the whole course on NetNinja.dev\nhttps://netninja.dev/p/astro-crash-co... \n\n🔥👇 Get access to ALL Masterclasses & premium courses with a Net Ninja Pro membership:\nhttps://netninja.dev/p/net-ninja-pro/...\n\n🔗👇 Course files on GitHub:\nhttps://github.com/iamshaunjp/Astro-C... \n\n🔗👇 Astro Docs:\nhttps://docs.astro.build/en/getting-s...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gGGU4-9fuPA",
        "title": "Astro Crash Course #12 - Client Islands (React)",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 452,
        "views": 1745,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Astro tutorial series, you'll learn how to use the Astro web framework to make a content-driven website. You'll also learn how to add React components to the site, and deploy the finished application to Netlify.\n\n🍿👇 Get early access to the whole course on NetNinja.dev\nhttps://netninja.dev/p/astro-crash-co... \n\n🔥👇 Get access to ALL Masterclasses & premium courses with a Net Ninja Pro membership:\nhttps://netninja.dev/p/net-ninja-pro/...\n\n🔗👇 Course files on GitHub:\nhttps://github.com/iamshaunjp/Astro-C... \n\n🔗👇 Astro Docs:\nhttps://docs.astro.build/en/getting-s...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "HDo9BNE0pH4",
        "title": "Astro Crash Course #11 - Server Side Rendering",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 371,
        "views": 1655,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Astro tutorial series, you'll learn how to use the Astro web framework to make a content-driven website. You'll also learn how to add React components to the site, and deploy the finished application to Netlify.\n\n🍿👇 Get early access to the whole course on NetNinja.dev\nhttps://netninja.dev/p/astro-crash-co... \n\n🔥👇 Get access to ALL Masterclasses & premium courses with a Net Ninja Pro membership:\nhttps://netninja.dev/p/net-ninja-pro/...\n\n🔗👇 Course files on GitHub:\nhttps://github.com/iamshaunjp/Astro-C... \n\n🔗👇 Astro Docs:\nhttps://docs.astro.build/en/getting-s...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dxRwFTbgIwY",
        "title": "Astro Crash Course #10 - Dynamic Routes",
        "publishedAt": "1 month ago",
        "durationSeconds": 483,
        "views": 1834,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Astro tutorial series, you'll learn how to use the Astro web framework to make a content-driven website. You'll also learn how to add React components to the site, and deploy the finished application to Netlify.\n\n🍿👇 Get early access to the whole course on NetNinja.dev\nhttps://netninja.dev/p/astro-crash-co... \n\n🔥👇 Get access to ALL Masterclasses & premium courses with a Net Ninja Pro membership:\nhttps://netninja.dev/p/net-ninja-pro/...\n\n🔗👇 Course files on GitHub:\nhttps://github.com/iamshaunjp/Astro-C... \n\n🔗👇 Astro Docs:\nhttps://docs.astro.build/en/getting-s...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "T9PQ05F9GEk",
        "title": "Astro Crash Course #9 - Content Collections (with Markdown)",
        "publishedAt": "1 month ago",
        "durationSeconds": 311,
        "views": 1933,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Astro tutorial series, you'll learn how to use the Astro web framework to make a content-driven website. You'll also learn how to add React components to the site, and deploy the finished application to Netlify.\n\n🍿👇 Get early access to the whole course on NetNinja.dev\nhttps://netninja.dev/p/astro-crash-co... \n\n🔥👇 Get access to ALL Masterclasses & premium courses with a Net Ninja Pro membership:\nhttps://netninja.dev/p/net-ninja-pro/...\n\n🔗👇 Course files on GitHub:\nhttps://github.com/iamshaunjp/Astro-C... \n\n🔗👇 Astro Docs:\nhttps://docs.astro.build/en/getting-s...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7GB-EyxxMp8",
        "title": "Astro Crash Course #8 - Content Collections (with JSON)",
        "publishedAt": "1 month ago",
        "durationSeconds": 634,
        "views": 2005,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Astro tutorial series, you'll learn how to use the Astro web framework to make a content-driven website. You'll also learn how to add React components to the site, and deploy the finished application to Netlify.\n\n🍿👇 Get early access to the whole course on NetNinja.dev\nhttps://netninja.dev/p/astro-crash-co... \n\n🔥👇 Get access to ALL Masterclasses & premium courses with a Net Ninja Pro membership:\nhttps://netninja.dev/p/net-ninja-pro/...\n\n🔗👇 Course files on GitHub:\nhttps://github.com/iamshaunjp/Astro-C... \n\n🔗👇 Astro Docs:\nhttps://docs.astro.build/en/getting-s...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SmMo1vt0xHc",
        "title": "Astro Crash Course #7 - Reusable Components",
        "publishedAt": "1 month ago",
        "durationSeconds": 387,
        "views": 2021,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Astro tutorial series, you'll learn how to use the Astro web framework to make a content-driven website. You'll also learn how to add React components to the site, and deploy the finished application to Netlify.\n\n🍿👇 Get early access to the whole course on NetNinja.dev\nhttps://netninja.dev/p/astro-crash-co... \n\n🔥👇 Get access to ALL Masterclasses & premium courses with a Net Ninja Pro membership:\nhttps://netninja.dev/p/net-ninja-pro/...\n\n🔗👇 Course files on GitHub:\nhttps://github.com/iamshaunjp/Astro-C... \n\n🔗👇 Astro Docs:\nhttps://docs.astro.build/en/getting-s...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Q67n7V1NqFk",
        "title": "Astro Crash Course #6 - Outputting Lists",
        "publishedAt": "1 month ago",
        "durationSeconds": 278,
        "views": 2353,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Astro tutorial series, you'll learn how to use the Astro web framework to make a content-driven website. You'll also learn how to add React components to the site, and deploy the finished application to Netlify.\n\n🍿👇 Get early access to the whole course on NetNinja.dev\nhttps://netninja.dev/p/astro-crash-co... \n\n🔥👇 Get access to ALL Masterclasses & premium courses with a Net Ninja Pro membership:\nhttps://netninja.dev/p/net-ninja-pro/...\n\n🔗👇 Course files on GitHub:\nhttps://github.com/iamshaunjp/Astro-C... \n\n🔗👇 Astro Docs:\nhttps://docs.astro.build/en/getting-s...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "93WnK4cpwFk",
        "title": "Astro Crash Course #5 - Templating",
        "publishedAt": "1 month ago",
        "durationSeconds": 433,
        "views": 2397,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Astro tutorial series, you'll learn how to use the Astro web framework to make a content-driven website. You'll also learn how to add React components to the site, and deploy the finished application to Netlify.\n\n🍿👇 Get early access to the whole course on NetNinja.dev\nhttps://netninja.dev/p/astro-crash-co... \n\n🔥👇 Get access to ALL Masterclasses & premium courses with a Net Ninja Pro membership:\nhttps://netninja.dev/p/net-ninja-pro/...\n\n🔗👇 Course files on GitHub:\nhttps://github.com/iamshaunjp/Astro-C... \n\n🔗👇 Astro Docs:\nhttps://docs.astro.build/en/getting-s...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "yDx7ActarLk",
        "title": "Astro Crash Course #4 - Styles",
        "publishedAt": "1 month ago",
        "durationSeconds": 486,
        "views": 2894,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Astro tutorial series, you'll learn how to use the Astro web framework to make a content-driven website. You'll also learn how to add React components to the site, and deploy the finished application to Netlify.\n\n🍿👇 Get early access to the whole course on NetNinja.dev\nhttps://netninja.dev/p/astro-crash-co... \n\n🔥👇 Get access to ALL Masterclasses & premium courses with a Net Ninja Pro membership:\nhttps://netninja.dev/p/net-ninja-pro/...\n\n🔗👇 Course files on GitHub:\nhttps://github.com/iamshaunjp/Astro-C... \n\n🔗👇 Astro Docs:\nhttps://docs.astro.build/en/getting-s...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "w_WDsqIWJPc",
        "title": "Astro Crash Course #3 - Layouts",
        "publishedAt": "1 month ago",
        "durationSeconds": 354,
        "views": 3208,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Astro tutorial series, you'll learn how to use the Astro web framework to make a content-driven website. You'll also learn how to add React components to the site, and deploy the finished...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-pdhkOAK67M",
        "title": "Astro Crash Course #2 - Pages & Routes",
        "publishedAt": "1 month ago",
        "durationSeconds": 295,
        "views": 3605,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Astro tutorial series, you'll learn how to use the Astro web framework to make a content-driven website. You'll also learn how to add React components to the site, and deploy the finished...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CF3drb6H3Yw",
        "title": "Astro Crash Course #1 - Why Astro? (& Setup)",
        "publishedAt": "1 month ago",
        "durationSeconds": 624,
        "views": 11283,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Astro tutorial series, you'll learn how to use the Astro web framework to make a content-driven website. You'll also learn how to add React components to the site, and deploy the finished...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1QNrxuUu5CU",
        "title": "Git Worktrees Tutorial #5 - Worktrees in Agentic Coding Workflows",
        "publishedAt": "2 months ago",
        "durationSeconds": 252,
        "views": 4186,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this series, you’ll learn how to use Git worktrees, a feature that lets you check out multiple branches at the same time in separate working directories.\n\n🍿👇 Get the FULL Git & GitHub...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "O-aBwXN200s",
        "title": "Git Worktrees Tutorial #4 - Worktree- First Approach",
        "publishedAt": "2 months ago",
        "durationSeconds": 477,
        "views": 5707,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this series, you’ll learn how to use Git worktrees, a feature that lets you check out multiple branches at the same time in separate working directories.\n\n🍿👇 Get the FULL Git & GitHub...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "c4JVm4QAB5g",
        "title": "Git Worktrees Tutorial #3 - Bare Repositories",
        "publishedAt": "2 months ago",
        "durationSeconds": 288,
        "views": 5528,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this series, you’ll learn how to use Git worktrees, a feature that lets you check out multiple branches at the same time in separate working directories.\n\n🍿👇 Get the FULL Git & GitHub...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5RB7RJ-d7Zk",
        "title": "Git Worktrees Tutorial #2 - Adding Git Worktrees",
        "publishedAt": "2 months ago",
        "durationSeconds": 423,
        "views": 8513,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this series, you’ll learn how to use Git worktrees, a feature that lets you check out multiple branches at the same time in separate working directories.\n\n🍿👇 Get the FULL Git & GitHub...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Vf_0QpLsFRs",
        "title": "Git Worktrees Tutorial #1 - What are Git Worktrees?",
        "publishedAt": "2 months ago",
        "durationSeconds": 470,
        "views": 19475,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this series, you’ll learn how to use Git worktrees, a feature that lets you check out multiple branches at the same time in separate working directories.\n\n🍿👇 Get the FULL Git & GitHub...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MisYP3rDcA4",
        "title": "Content Roadmap - 2026",
        "publishedAt": "2 months ago",
        "durationSeconds": 202,
        "views": 6804,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "There's a lot of content I want to add to the channel (and the pro site) this year. In this video I'll go over my plans for the coming months. As always, let me know in the comments if there's...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "BdDuVOfE0eQ",
        "title": "Spec Driven Workflow with Claude Code #4 - Implementing the Plan",
        "publishedAt": "2 months ago",
        "durationSeconds": 730,
        "views": 7630,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "in this series, you'll learn how to implement a spec-driven workflow using Claude Code.\n\n🍿👇 Get the FULL Claude Code Masterclass:\nhttps://netninja.dev/p/claude-code-masterclass\n\nUse promo...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CmrmmszC_F4",
        "title": "Spec Driven Workflow with Claude Code #3 - Using Plan Mode",
        "publishedAt": "2 months ago",
        "durationSeconds": 607,
        "views": 16068,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "in this series, you'll learn how to implement a spec-driven workflow using Claude Code.\n\n🍿👇 Get the FULL Claude Code Masterclass:\nhttps://netninja.dev/p/claude-code-masterclass\n\nUse promo...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JnHUZ8037zE",
        "title": "Spec Driven Workflow with Claude Code #2 - Creating a New Spec",
        "publishedAt": "2 months ago",
        "durationSeconds": 296,
        "views": 12603,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "in this series, you'll learn how to implement a spec-driven workflow using Claude Code.\n\n🍿👇 Get the FULL Claude Code Masterclass:\nhttps://netninja.dev/p/claude-code-masterclass\n\nUse promo...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "e_D9M_MJ9Hs",
        "title": "Spec Driven Workflow with Claude Code #1 - Making a /spec Command",
        "publishedAt": "2 months ago",
        "durationSeconds": 606,
        "views": 56410,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "in this series, you'll learn how to implement a spec-driven workflow using Claude Code.\n\n🍿👇 Get the FULL Claude Code Masterclass:\nhttps://netninja.dev/p/claude-code-masterclass\n\nUse promo...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Lr37J1ZUeZI",
        "title": "New Claude Code Masterclass!",
        "publishedAt": "3 months ago",
        "durationSeconds": 338,
        "views": 222464,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Claude Code masterclass, you'll learn how to fully maximize Claude in an AI & spec-driven workflow, to maximise your productivity as a developer.\n\n🔥🔥 Get the full masterclass...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "snAzb5bKFww",
        "title": "Gemini CLI Tutorial #10 - Using the Nanobanana Extension",
        "publishedAt": "4 months ago",
        "durationSeconds": 468,
        "views": 10559,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Gemini CLI Crash Course series, I'll show you how to get up an running wth the CLI in a project, use extensions & MCP servers, add an API key to access Gemini 3 models and more.\n\n🍿👇...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SwDofnGOwsU",
        "title": "Gemini CLI Tutorial #9 - MCP Servers & Extensions",
        "publishedAt": "4 months ago",
        "durationSeconds": 785,
        "views": 12627,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Gemini CLI Crash Course series, I'll show you how to get up an running wth the CLI in a project, use extensions & MCP servers, add an API key to access Gemini 3 models and more.\n\n🍿👇...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "z7xEiXI1v24",
        "title": "Gemini CLI Tutorial #8 - Running Shell Commands",
        "publishedAt": "4 months ago",
        "durationSeconds": 385,
        "views": 7982,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Gemini CLI Crash Course series, I'll show you how to get up an running wth the CLI in a project, use extensions & MCP servers, add an API key to access Gemini 3 models and more.\n\n🍿👇...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "txezKEvSvlU",
        "title": "Gemini CLI Tutorial #7 - Custom Commands",
        "publishedAt": "4 months ago",
        "durationSeconds": 698,
        "views": 9022,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Gemini CLI Crash Course series, I'll show you how to get up an running wth the CLI in a project, use extensions & MCP servers, add an API key to access Gemini 3 models and more.\n\n🍿👇...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RXOPjpvTEZM",
        "title": "Gemini CLI Tutorial #6 - Adding an API Key",
        "publishedAt": "4 months ago",
        "durationSeconds": 454,
        "views": 11347,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Gemini CLI Crash Course series, I'll show you how to get up an running wth the CLI in a project, use extensions & MCP servers, add an API key to access Gemini 3 models and more.\n\n🍿👇...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KfaOzVY3Luw",
        "title": "Gemini CLI Tutorial #5 - Managing Context",
        "publishedAt": "4 months ago",
        "durationSeconds": 793,
        "views": 12627,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Gemini CLI Crash Course series, I'll show you how to get up an running wth the CLI in a project, use extensions & MCP servers, add an API key to access Gemini 3 models and more.\n\n🍿👇...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 13,
      "uploadsLast90d": 24,
      "uploadCadenceWeekly": 1.87,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 3605,
      "viewsPerVideoP90Last90d": 16068,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 3605,
      "p90Views": 16068,
      "p99Views": 56410,
      "outperformingVideosLast90d": 4
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "netninja.dev",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "series",
        "share": 0.93,
        "evidenceVideoIds": [
          "1akdIvoZKvk",
          "gGGU4-9fuPA",
          "HDo9BNE0pH4",
          "dxRwFTbgIwY",
          "T9PQ05F9GEk"
        ]
      },
      {
        "label": "get",
        "share": 0.87,
        "evidenceVideoIds": [
          "1akdIvoZKvk",
          "gGGU4-9fuPA",
          "HDo9BNE0pH4",
          "dxRwFTbgIwY",
          "T9PQ05F9GEk"
        ]
      },
      {
        "label": "learn",
        "share": 0.77,
        "evidenceVideoIds": [
          "1akdIvoZKvk",
          "gGGU4-9fuPA",
          "HDo9BNE0pH4",
          "dxRwFTbgIwY",
          "T9PQ05F9GEk"
        ]
      },
      {
        "label": "add",
        "share": 0.67,
        "evidenceVideoIds": [
          "1akdIvoZKvk",
          "gGGU4-9fuPA",
          "HDo9BNE0pH4",
          "dxRwFTbgIwY",
          "T9PQ05F9GEk"
        ]
      },
      {
        "label": "crash",
        "share": 0.63,
        "evidenceVideoIds": [
          "1akdIvoZKvk",
          "gGGU4-9fuPA",
          "HDo9BNE0pH4",
          "dxRwFTbgIwY",
          "T9PQ05F9GEk"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Tuesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 29,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Net Ninja — 1.9M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 29,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.81,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "8cfc1d26292dcee88eeb27a5365f0dd1d9d1c2466f4efd0c44299d580cbc17df",
      "inputsHash": "23b25ae8e0e1def515619d13b8fa3fdfc79cf600a2d0d7f8cdf5518f3c67dc17",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:31.583Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "05e6b01f0a3dbd46635ebe842aa4afe7d420bba40d29ff410ba81efe72546f55",
    "channelId": "UCJZv4d5rbIKd4QHMPkcABCw",
    "channelHandle": "@KevinPowell",
    "channelName": "Kevin Powell",
    "channelUrl": "https://www.youtube.com/@KevinPowell",
    "description": "Helping you learn how to make the web, and make it look good while you're at it.\n\nWith weekly videos and shorts, I'll be bringing you How Tos and Tutorials, as well as simple tips and tricks, with a big focus on helping people see how wonderful CSS is!",
    "joinDate": null,
    "location": null,
    "subscribers": 1000000,
    "totalVideos": 1000,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/gABekKWtQFmLIjVuhKwoPfd9nIRxAPPhyymO3XaOCc9wko28S9R_8CO125NFjZToZuLlSyfdrak=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "kevinpowell.co",
        "url": "http://kevinpowell.co/newsletter"
      },
      {
        "platform": "zencastr.com",
        "url": "https://zencastr.com/z/i72fh3wx"
      },
      {
        "platform": "patreon.com",
        "url": "https://www.patreon.com/kevinpowell"
      },
      {
        "platform": "bsky.app",
        "url": "https://bsky.app/profile/kevinpowell.co"
      },
      {
        "platform": "front-end.social",
        "url": "https://front-end.social/@kevinpowell"
      }
    ],
    "recentVideos": [
      {
        "videoId": "JEJbSGtZxOw",
        "title": "Build bulletproof color systems",
        "publishedAt": "11 hours ago",
        "durationSeconds": 634,
        "views": 6019,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Start writing CSS with confidence: https://thecascade.dev/courses/css-de...\n\n🔗 Links\n✅ light-dark() video:    • New way to handle light/dark themes with CSS   (short) \n✅ color-mix() video:    • A deep dive into CSS color-mix()  \n✅ CSS Day: https://cssday.nl/\n✅ ZurichJS: https://conf.zurichjs.com/\n\n✉ Keep up to date with everything I'm up to  https://www.kevinpowell.co/newsletter\n💬 Come hang out with other devs in my Discord Community   / discord  \n⭐ Are you a beginner? HTML & CSS for absolute beginners is for you: https://learn.kevinpowell.co\n🎓 Start writing CSS with confidence with CSS Demystified: [https://cssdemystified.com](https://cssdemystified.com/)\n🚀 Already mastered CSS? Check out my advanced course, Beyond CSS: https://www.beyondcss.dev/\n\n---\n\nHelp support my channel\n👨‍🎓 Get a course: https://www.kevinpowell.co/courses\n👕 Buy a shirt: https://cottonbureau.com/people/kevin...\n💖 Support me on Patreon:   / kevinpowell   or through YT memberships:    / @kevinpowell  \n\n---\n\n🧑‍💻 My editors:\nIn most videos, I’m using CodePen these days: https://codepen.io/ - with High Contrast Dark theme and the font Commit Mono\nAnd if not CodePen, then I’m probably using Zed: https://zed.dev/ with the theme Ayu Dark, and the font ZedMono\nIn older videos, I was using VS Code - https://code.visualstudio.com/ with the theme One Dark Pro Var, and the font Cascadia\n\n---\n\n⌚ Timestamps:\n00:00 - Intro\n00:58 - The basics of contrast-color()\n03:15 - Using it with a more robust setup\n\n---\n\nI'm on some other places on the internet too!\n\nIf you'd like a behind the scenes and previews of what's coming up on my YouTube channel:\n\nBluesky: https://bsky.app/profile/kevinpowell.co\nCodepen: https://codepen.io/kevinpowell/\nGithub: https://github.com/kevin-powell\n\n---\n\nAnd whatever you do, don't forget to keep on making your corner of the internet just a little bit more awesome!\n\n#css",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MVsG4agTS94",
        "title": "CSS Battle: 10 minutes to 100%",
        "publishedAt": "7 days ago",
        "durationSeconds": 1556,
        "views": 7913,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Start writing CSS with confidence: https://thecascade.dev/courses/css-de...\n\n🔗 Links\n✅ The CSS Battles I did in this video; https://cssbattle.dev/battle/38\n\n✉ Keep up to date with everything I'm up to  https://www.kevinpowell.co/newsletter\n💬 Come hang out with other devs in my Discord Community   / discord  \n⭐ Are you a beginner? HTML & CSS for absolute beginners is for you: https://learn.kevinpowell.co\n🎓 Start writing CSS with confidence with CSS Demystified: [https://cssdemystified.com](https://cssdemystified.com/)\n🚀 Already mastered CSS? Check out my advanced course, Beyond CSS: https://www.beyondcss.dev/\n\n---\n\nHelp support my channel\n👨‍🎓 Get a course: https://www.kevinpowell.co/courses\n👕 Buy a shirt: https://cottonbureau.com/people/kevin...\n💖 Support me on Patreon:   / kevinpowell   or through YT memberships:    / @kevinpowell  \n\n---\n\n🧑‍💻 My editors:\nIn most videos, I’m using CodePen these days: https://codepen.io/ - with High Contrast Dark theme and the font Commit Mono\nAnd if not CodePen, then I’m probably using Zed: https://zed.dev/ with the theme Ayu Dark, and the font ZedMono\nIn older videos, I was using VS Code - https://code.visualstudio.com/ with the theme One Dark Pro Var, and the font Cascadia\n\n---\n\n⌚ Timestamps:\n00:00 - Intro\n00:35 - The ground rules\n00:55 - Battle 1 planning\n01:26 - Battle 1\n08:05 - Battle 2 planning\n08:56 - Battle 2\n16:30 - Battle 3 planning\n17:06 - Battle 3\n\n---\n\nI'm on some other places on the internet too!\n\nIf you'd like a behind the scenes and previews of what's coming up on my YouTube channel:\n\nBluesky: https://bsky.app/profile/kevinpowell.co\nCodepen: https://codepen.io/kevinpowell/\nGithub: https://github.com/kevin-powell\n\n---\n\nAnd whatever you do, don't forget to keep on making your corner of the internet just a little bit more awesome!\n\n#css",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "R1kiLX-Z-Io",
        "title": "Handy CSS layout patterns, and fun ways to elevate them",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 1145,
        "views": 25592,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Start writing CSS with confidence with my course CSS Demystified: https://thecascade.dev/courses/css-de...\n\n🔗 Links\n✅ Code from this video: https://codepen.io/editor/kevinpowell...\n✅ More info on corner shape: https://frontendmasters.com/blog/unde...\n✅ The difference between auto-fit and auto-fill:    • The magic of auto-fit and auto-fill (and t...  \n✅ More on scroll-driven animations:    • Incredible scroll-based animations with CS...  \n\n✉ Keep up to date with everything I'm up to  https://www.kevinpowell.co/newsletter\n💬 Come hang out with other devs in my Discord Community   / discord  \n⭐ Are you a beginner? HTML & CSS for absolute beginners is for you: https://learn.kevinpowell.co\n🎓 Start writing CSS with confidence with CSS Demystified: [https://cssdemystified.com](https://cssdemystified.com/)\n🚀 Already mastered CSS? Check out my advanced course, Beyond CSS: https://www.beyondcss.dev/\n\n⌚ Timestamps\n00:00 - Introduction\n00:20 - overscroll scroller\n05:05 - auto-grid and preventing overflow with it\n09:30 - adaptive layouts with container queries\n13:09 - CSS Demystified\n13:53 - bonus: scooped corners\n15:08 - bonus: overscroll animation with scroll-driven animation\n\n#css\n\n---\n\nHelp support my channel\n👨‍🎓 Get a course: https://www.kevinpowell.co/courses\n👕 Buy a shirt: https://cottonbureau.com/people/kevin...\n💖 Support me on Patreon:   / kevinpowell   or through YT memberships:    / @kevinpowell  \n\n---\n\n🧑‍💻 My editor: VS Code - https://code.visualstudio.com/\n\n🌈 My theme: One Dark Pro Var Night\n🔤 My font: Cascadia Code\n\n---\n\nI'm on some other places on the internet too!\n\nIf you'd like a behind the scenes and previews of what's coming up on my YouTube channel:\n\nBluesky: https://bsky.app/profile/kevinpowell.co\nCodepen: https://codepen.io/kevinpowell/\nGithub: https://github.com/kevin-powell\n\n---\n\nAnd whatever you do, don't forget to keep on making your corner of the internet just a little bit more awesome!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4DqIW-gZbHA",
        "title": "No more magic numbers for your breakpoints",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 352,
        "views": 28606,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Start writing CSS with confidence: https://thecascade.dev/courses/css-de...\n\n🔗 Links\n✅ Code from this video: https://codepen.io/editor/kevinpowell...\n✅ CSS Day: https://cssday.nl/\n✅ Web you want (free conference!): https://the-web-you-want.org/\n\n✉ Keep up to date with everything I'm up to  https://www.kevinpowell.co/newsletter\n💬 Come hang out with other devs in my Discord Community   / discord  \n⭐ Are you a beginner? HTML & CSS for absolute beginners is for you: https://learn.kevinpowell.co\n🎓 Start writing CSS with confidence with CSS Demystified: [https://cssdemystified.com](https://cssdemystified.com/)\n🚀 Already mastered CSS? Check out my advanced course, Beyond CSS: https://www.beyondcss.dev/\n\n---\n\nHelp support my channel\n👨‍🎓 Get a course: https://www.kevinpowell.co/courses\n👕 Buy a shirt: https://cottonbureau.com/people/kevin...\n💖 Support me on Patreon:   / kevinpowell   or through YT memberships:    / @kevinpowell  \n\n---\n\n🧑‍💻 My editors:\nIn most videos, I’m using CodePen these days: https://codepen.io/ - with High Contrast Dark theme and the font Commit Mono\nAnd if not CodePen, then I’m probably using Zed: https://zed.dev/ with the theme Ayu Dark, and the font ZedMono\nIn older videos, I was using VS Code - https://code.visualstudio.com/ with the theme One Dark Pro Var, and the font Cascadia\n\n---\n\n⌚ Timestamps:\n00:00 - Intro\n01:15 - the problem with media queries\n02:00 - defining a container\n02:30 - using a container query instead\n03:00 - changing the unit to create a content-first breakpoint\n\n---\n\nI'm on some other places on the internet too!\n\nIf you'd like a behind the scenes and previews of what's coming up on my YouTube channel:\n\nBluesky: https://bsky.app/profile/kevinpowell.co\nCodepen: https://codepen.io/kevinpowell/\nGithub: https://github.com/kevin-powell\n\n---\n\nAnd whatever you do, don't forget to keep on making your corner of the internet just a little bit more awesome!\n\n#css",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9XKWnvpdSlU",
        "title": "Wrap detection with a few lines of CSS",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 581,
        "views": 17338,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If you thought this was good, then you should check out CSS Demystified! Want to step up your CSS game? https://thecascade.dev/courses/css-de...\n\n🔗 Links\n✅ The blog post by Andy Bell that I mentioned: https://piccalil.li/blog/reality-chec...\n\n⌚ Timestamps\n00:00 - Introduction\n0:30 - The setup\n02:05 - Setting up the container query\n03:18 - Using container query units with a container query\n06:00 - Bigger layout changes with this technique\n\n#css\n\n✉ Keep up to date with everything I'm up to  https://www.kevinpowell.co/newsletter\n💬 Come hang out with other devs in my Discord Community   / discord  \n⭐ Are you a beginner? HTML & CSS for absolute beginners is for you: https://learn.kevinpowell.co\n🎓 Start writing CSS with confidence with CSS Demystified: [https://cssdemystified.com](https://cssdemystified.com/)\n🚀 Already mastered CSS? Check out my advanced course, Beyond CSS: https://www.beyondcss.dev/\n\n---\n\nHelp support my channel\n👨‍🎓 Get a course: https://www.kevinpowell.co/courses\n👕 Buy a shirt: https://cottonbureau.com/people/kevin...\n💖 Support me on Patreon:   / kevinpowell   or through YT memberships:    / @kevinpowell  \n\n---\n\n🧑‍💻 My editor: VS Code - https://code.visualstudio.com/\n\n🌈 My theme: One Dark Pro Var Night\n🔤 My font: Cascadia Code\n\n---\n\nI'm on some other places on the internet too!\n\nIf you'd like a behind the scenes and previews of what's coming up on my YouTube channel:\n\nBluesky: https://bsky.app/profile/kevinpowell.co\nCodepen: https://codepen.io/kevinpowell/\nGithub: https://github.com/kevin-powell\n\n---\n\nAnd whatever you do, don't forget to keep on making your corner of the internet just a little bit more awesome!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bwn1lIQUPLE",
        "title": "Can I code up this UI in 10 minutes?",
        "publishedAt": "1 month ago",
        "durationSeconds": 842,
        "views": 33628,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want to step up your CSS game? https://thecascade.dev/courses/css-de...\n\n🔗 Links\n✅ Can you beat me at the challenge? https://cssdaily.dev/challenge/2026-0...\n\n⌚ Timestamps\n00:00 - Introduction\n00:55 - Analyzing and planning\n02:20 - Writing the code\n\n#css\n\n✉ Keep up to date with everything I'm up to  https://www.kevinpowell.co/newsletter\n💬 Come hang out with other devs in my Discord Community   / discord  \n⭐ Are you a beginner? HTML & CSS for absolute beginners is for you: https://learn.kevinpowell.co\n🎓 Start writing CSS with confidence with CSS Demystified: [https://cssdemystified.com](https://cssdemystified.com/)\n🚀 Already mastered CSS? Check out my advanced course, Beyond CSS: https://www.beyondcss.dev/\n\n---\n\nHelp support my channel\n👨‍🎓 Get a course: https://www.kevinpowell.co/courses\n👕 Buy a shirt: https://cottonbureau.com/people/kevin...\n💖 Support me on Patreon:   / kevinpowell   or through YT memberships:    / @kevinpowell  \n\n---\n\n🧑‍💻 My editor: VS Code - https://code.visualstudio.com/\n\n🌈 My theme: One Dark Pro Var Night\n🔤 My font: Cascadia Code\n\n---\n\nI'm on some other places on the internet too!\n\nIf you'd like a behind the scenes and previews of what's coming up on my YouTube channel:\n\nBluesky: https://bsky.app/profile/kevinpowell.co\nCodepen: https://codepen.io/kevinpowell/\nGithub: https://github.com/kevin-powell\n\n---\n\nAnd whatever you do, don't forget to keep on making your corner of the internet just a little bit more awesome!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qI5rXLJnxco",
        "title": "3 modern CSS properties to add to your reset",
        "publishedAt": "1 month ago",
        "durationSeconds": 535,
        "views": 28253,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Start writing CSS with confidence, CSS Demystified V2 is here - 20% off through April 7th: https://thecascade.dev/courses/css-de...\n\n🔗 Links\n✅ Sticky footer video:    • Easy sticky footer - stop a footer from fl...  \n✅ Bramus article on the change to vw: https://www.bram.us/2026/01/15/100vw-...\n✅ Animating details summary:    • Animate details & summary with a few lines...  \n\n\n⌚ Timestamps\n00:00 - Introduction\n00:20 - min-block-size (or height) 100svh\n02:55 - scrollbar-gutter: stable\n04:50 - interpolate-size: allow-keywords\n\n\n#css\n\n✉ Keep up to date with everything I'm up to  https://www.kevinpowell.co/newsletter\n💬 Come hang out with other devs in my Discord Community   / discord  \n⭐ Are you a beginner? HTML & CSS for absolute beginners is for you: https://learn.kevinpowell.co\n🎓 Start writing CSS with confidence with CSS Demystified: [https://cssdemystified.com](https://cssdemystified.com/)\n🚀 Already mastered CSS? Check out my advanced course, Beyond CSS: https://www.beyondcss.dev/\n\n---\n\nHelp support my channel\n👨‍🎓 Get a course: https://www.kevinpowell.co/courses\n👕 Buy a shirt: https://cottonbureau.com/people/kevin...\n💖 Support me on Patreon:   / kevinpowell   or through YT memberships:    / @kevinpowell  \n\n---\n\n🧑‍💻 My editor: VS Code - https://code.visualstudio.com/\n\n🌈 My theme: One Dark Pro Var Night\n🔤 My font: Cascadia Code\n\n---\n\nI'm on some other places on the internet too!\n\nIf you'd like a behind the scenes and previews of what's coming up on my YouTube channel:\n\nBluesky: https://bsky.app/profile/kevinpowell.co\nCodepen: https://codepen.io/kevinpowell/\nGithub: https://github.com/kevin-powell\n\n---\n\nAnd whatever you do, don't forget to keep on making your corner of the internet just a little bit more awesome!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DoPq7pH1BKg",
        "title": "Stop fighting with CSS, forever",
        "publishedAt": "1 month ago",
        "durationSeconds": 554,
        "views": 10013,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 CSS Demystified V2 is here - 20% off through April 7th: https://thecascade.dev/courses/css-de...\n\nThe original course was still great (in my opinion anyway 😅), but it was old and needed a refresh. Instead of updating it, I completely rebuilt the course from scratch, and on top of that, I built a custom course platform to host it on as well.\n\nThe updated version has over 60 lessons, with more than 200 videos, but it’s more than just a bunch of videos.\n\nI rebuilt it from scratch on a custom platform because I wanted to create a real learning experience, not just a video series.\n\nThe course is mixed-media, with text, video, interactive demos, and a ton of challenges that let you see concepts in action and put what you are learning into action to make sure that you really are learning as you go through the course.\n\n#css\n\n✉ Keep up to date with everything I'm up to  https://www.kevinpowell.co/newsletter\n💬 Come hang out with other devs in my Discord Community   / discord  \n⭐ Are you a beginner? HTML & CSS for absolute beginners is for you: https://learn.kevinpowell.co\n🎓 Start writing CSS with confidence with CSS Demystified: [https://cssdemystified.com](https://cssdemystified.com/)\n🚀 Already mastered CSS? Check out my advanced course, Beyond CSS: https://www.beyondcss.dev/\n\n---\n\nHelp support my channel\n👨‍🎓 Get a course: https://www.kevinpowell.co/courses\n👕 Buy a shirt: https://cottonbureau.com/people/kevin...\n💖 Support me on Patreon:   / kevinpowell   or through YT memberships:    / @kevinpowell  \n\n---\n\n🧑‍💻 My editor: VS Code - https://code.visualstudio.com/\n\n🌈 My theme: One Dark Pro Var Night\n🔤 My font: Cascadia Code\n\n---\n\nI'm on some other places on the internet too!\n\nIf you'd like a behind the scenes and previews of what's coming up on my YouTube channel:\n\nBluesky: https://bsky.app/profile/kevinpowell.co\nCodepen: https://codepen.io/kevinpowell/\nGithub: https://github.com/kevin-powell\n\n---\n\nAnd whatever you do, don't forget to keep on making your corner of the internet just a little bit more awesome!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nJWBU7M6RdA",
        "title": "Neat container query unit trick",
        "publishedAt": "1 month ago",
        "durationSeconds": 236,
        "views": 11403,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "CSS Demystified will be launching in 1 week! Sign up for updates so you don't miss it: https://cssdemystified.com\n\n🔗 Links\n✅ The code: https://codepen.io/editor/kevinpowell...\n\n#css\n\n✉ Keep up to date with everything I'm up to  https://www.kevinpowell.co/newsletter\n💬 Come hang out with other devs in my Discord Community   / discord  \n⭐ Are you a beginner? HTML & CSS for absolute beginners is for you: https://learn.kevinpowell.co\n🎓 Start writing CSS with confidence with CSS Demystified: [https://cssdemystified.com](https://cssdemystified.com/)\n🚀 Already mastered CSS? Check out my advanced course, Beyond CSS: https://www.beyondcss.dev/\n\n---\n\nHelp support my channel\n👨‍🎓 Get a course: https://www.kevinpowell.co/courses\n👕 Buy a shirt: https://cottonbureau.com/people/kevin...\n💖 Support me on Patreon:   / kevinpowell   or through YT memberships:    / @kevinpowell  \n\n---\n\n🧑‍💻 My editor: VS Code - https://code.visualstudio.com/\n\n🌈 My theme: One Dark Pro Var Night\n🔤 My font: Cascadia Code\n\n---\n\nI'm on some other places on the internet too!\n\nIf you'd like a behind the scenes and previews of what's coming up on my YouTube channel:\n\nBluesky: https://bsky.app/profile/kevinpowell.co\nCodepen: https://codepen.io/kevinpowell/\nGithub: https://github.com/kevin-powell\n\n---\n\nAnd whatever you do, don't forget to keep on making your corner of the internet just a little bit more awesome!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CAK5kTApkMU",
        "title": "Simplifying CSS animations",
        "publishedAt": "1 month ago",
        "durationSeconds": 336,
        "views": 19390,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "✉ Keep up to date with everything I'm up to  https://www.kevinpowell.co/newsletter\n\n🔗 Links\n✅ A great animation trick:    • I never thought of using CSS animations li...  \n✅ The code from this video: https://codepen.io/editor/kevinpowell...\n\n✉ Keep up to date with everything I'm up to  https://www.kevinpowell.co/newsletter\n💬 Come hang out with other devs in my Discord Community   / discord  \n⭐ Are you a beginner? HTML & CSS for absolute beginners is for you: https://learn.kevinpowell.co\n🎓 Start writing CSS with confidence with CSS Demystified: [https://cssdemystified.com](https://cssdemystified.com/)\n🚀 Already mastered CSS? Check out my advanced course, Beyond CSS: https://www.beyondcss.dev/\n\n---\n\nHelp support my channel\n👨‍🎓 Get a course: https://www.kevinpowell.co/courses\n👕 Buy a shirt: https://cottonbureau.com/people/kevin...\n💖 Support me on Patreon:   / kevinpowell   or through YT memberships:    / @kevinpowell  \n\n---\n\n🧑‍💻 My editor: VS Code - https://code.visualstudio.com/\n\n🌈 My theme: One Dark Pro Var Night\n🔤 My font: Cascadia Code\n\n---\n\n⌚ Timestamps\n00:00 - Introduction\n00:55 - reduce the number of keyframe declarations\n01:35 - you don’t always need starting and ending keyframes\n03:15 - mixing a transform and the individual properties\n\n#css\n\nI'm on some other places on the internet too!\n\nIf you'd like a behind the scenes and previews of what's coming up on my YouTube channel:\n\nBluesky: https://bsky.app/profile/kevinpowell.co\nCodepen: https://codepen.io/kevinpowell/\nGithub: https://github.com/kevin-powell\n\n---\n\nAnd whatever you do, don't forget to keep on making your corner of the internet just a little bit more awesome!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "yW9gbo0haww",
        "title": "Thank you",
        "publishedAt": "2 months ago",
        "durationSeconds": 309,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": null,
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "oj9uVsdJ-8Q",
        "title": "More CSS quick tips",
        "publishedAt": "2 months ago",
        "durationSeconds": 859,
        "views": 16276,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Step up your CSS Game: https://thecascade.dev/\n\n🔗 Links\n✅ Color scheme toggle video: https://youtu.be/fyuao3G-2qg\n\n✉ Keep up to date with everything I'm up to  https://www.kevinpowell.co/new...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IXC8GaFkFEA",
        "title": "Create a reflective glow effect with CSS",
        "publishedAt": "2 months ago",
        "durationSeconds": 1001,
        "views": 14208,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Starting with something similar to what I covered in this video, https://youtu.be/8_NQ7ARXz8c, I then try to create a reflective effect on some borders on the top and bottom of the buttons....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rI1SHm4aXzc",
        "title": "Members-only monthly update",
        "publishedAt": "2 months ago",
        "durationSeconds": 556,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "There's too much to do! 🫠 😆",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PBDU2krty0M",
        "title": "F1 Website Championship",
        "publishedAt": "2 months ago",
        "durationSeconds": 3323,
        "views": 25500,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "With the F1 season coming up, I had the idea of ranking all of their websites in a championship-style approach, with rounds for design, performance, accessibility, and CSS.\n\nThe design rankings...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Y-3tPDZCk2o",
        "title": "CSS is too powerful now",
        "publishedAt": "2 months ago",
        "durationSeconds": 1100,
        "views": 28233,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out Temani Afif's mindblowing CodePen: https://codepen.io/t_afif/pen/YPWMmOP\n\nThings are getting out of hand with all the stuff you can do with modern CSS 😅.\n\nIn this one, I try to...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "J_cnZa6UzVI",
        "title": "5 CSS fouls that I see way too often",
        "publishedAt": "2 months ago",
        "durationSeconds": 799,
        "views": 34054,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 CSS Demystified: https://thecascade.dev/courses/css-demystified/\n\n🔗 Links\n✅ The Bramus article on viewport units that I mentioned: https://www.bram.us/2026/01/15/100vw-horizontal-overflow...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6LJuWf4ySCI",
        "title": "How I made the slide in nav on my website",
        "publishedAt": "3 months ago",
        "durationSeconds": 1037,
        "views": 37703,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "✅ The live site: https://kevinpowell.co\n✅ The button effect: https://youtu.be/bjw0ka0raMA\n✅ The navigation: https://youtu.be/8_NQ7ARXz8c\n✅ The light/dark transition: https://youtu.be/f_aqzy...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OGH9LwPUEsI",
        "title": "Quick win with viewport units",
        "publishedAt": "3 months ago",
        "durationSeconds": 215,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Members-only video where I take a quick look at a fun use case I discovered for viewport units!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dQ8_F4LPCs8",
        "title": "CSS properties that solve annoying problems",
        "publishedAt": "3 months ago",
        "durationSeconds": 865,
        "views": 23079,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 CSS Demystified: https://thecascade.dev/courses/css-demystified/\nℹ️ The more in-depth video on the button with fit-content: https://youtu.be/3ugXM3ZDUuE\n✅ Examples from this video:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lXS2P3xtAUY",
        "title": "A couple of great anchor positioning use cases",
        "publishedAt": "3 months ago",
        "durationSeconds": 1201,
        "views": 18564,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Anchor positioning is great at a lot more than just tooltips!\n\n🔗 Links\n✅ OddBird article I mentioned on fixes for when anchor positioning doesn't work: Here’s Why Your Anchor Positioning...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Rp0XsRIrkRU",
        "title": "Build modals in minutes with the dialog element",
        "publishedAt": "3 months ago",
        "durationSeconds": 1884,
        "views": 21489,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "✉ Keep up to date with everything I'm up to  https://www.kevinpowell.co/newsletter\n✅ Video where I look at popover: https://www.youtube.com/watch?v=DNXEORSk4GU\n✅ a11yproject on visually...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dag6qCNH0Nw",
        "title": "Named media query hack",
        "publishedAt": "3 months ago",
        "durationSeconds": 387,
        "views": 14485,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "So this is definitely a bit of a hack to get named queries, and as I look at, there is a bit of a drawback, I think? But the advantage is that @layer has good support these days https://caniuse.com...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "THx4iwpgj1A",
        "title": "Can I recreate this animated gradient button?",
        "publishedAt": "3 months ago",
        "durationSeconds": 3474,
        "views": 11477,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥Get 5% off any of Autonomous's products with POWELLK5 at checkout. Check out the ErgoChair Pro here: https://www.autonomous.ai/office-chairs/ergonomic-chair?utm_source=pr&utm_medium=influencer&...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ncAqYntEDGE",
        "title": "Has AI killed Tailwind?",
        "publishedAt": "4 months ago",
        "durationSeconds": 1058,
        "views": 25754,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Here's the thread: https://github.com/tailwindlabs/tailwindcss.com/pull/2388#issuecomment-3717222957\n\nI knew about the impacts on education, but hadn't realized AI was impacting Tailwind like...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sL64_xP-Djo",
        "title": "Members-only monthly update - January",
        "publishedAt": "4 months ago",
        "durationSeconds": 441,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Holy crap, it's 2026 already! To ring in the new year, a long-overdue monthly update.\n\nIn this one, I talk about how I'm in the process of setting up a new desk, recording new content, a new...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vGfTyHPWZLE",
        "title": "Build smarter color systems with relative colors",
        "publishedAt": "4 months ago",
        "durationSeconds": 641,
        "views": 17733,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Relative colors are one of my favorite new features in CSS, and in this video I take a bit of time exploring why.\n\n(this video is reposted, the original one was missing the last 2 minutes!)...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7OrtUkPgHLA",
        "title": "Why CSS Grid feels complex, and how to keep it simple",
        "publishedAt": "4 months ago",
        "durationSeconds": 358,
        "views": 21928,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "✉ Keep up to date with everything I'm up to  https://www.kevinpowell.co/newsletter\n💬 Come hang out with other devs in my Discord Community https://discord.gg/nTYCvrK\n⭐ Are you a beginner?...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Uynb7Ci8JMg",
        "title": "Stop using the legacy color syntax",
        "publishedAt": "4 months ago",
        "durationSeconds": 445,
        "views": 29587,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get rid of that \"a\" and drop those commas!\n\n🔗 Links\n✅ A pragmatic guide to modern CSS colours - part one: https://piccalil.li/blog/a-pragmatic-guide-to-modern-css-colours-part-one/\n✅...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hiwvjsmD2iY",
        "title": "3 powerful CSS nesting tricks",
        "publishedAt": "5 months ago",
        "durationSeconds": 692,
        "views": 17784,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "CSS nesting is a nice developer experience improvement in general, but if we get a little more creative with how it works, we can do a little more to help organize our stylesheets than you...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 10,
      "uploadsLast90d": 24,
      "uploadCadenceWeekly": 1.87,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 19390,
      "viewsPerVideoP90Last90d": 33628,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 19390,
      "p90Views": 33628,
      "p99Views": 34054,
      "outperformingVideosLast90d": 3
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "kevinpowell.co",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.73,
        "evidenceVideoIds": [
          "JEJbSGtZxOw",
          "MVsG4agTS94",
          "R1kiLX-Z-Io",
          "4DqIW-gZbHA",
          "9XKWnvpdSlU"
        ]
      },
      {
        "label": "css",
        "share": 0.67,
        "evidenceVideoIds": [
          "JEJbSGtZxOw",
          "MVsG4agTS94",
          "R1kiLX-Z-Io",
          "4DqIW-gZbHA",
          "9XKWnvpdSlU"
        ]
      },
      {
        "label": "www",
        "share": 0.5,
        "evidenceVideoIds": [
          "JEJbSGtZxOw",
          "MVsG4agTS94",
          "R1kiLX-Z-Io",
          "4DqIW-gZbHA",
          "9XKWnvpdSlU"
        ]
      },
      {
        "label": "kevinpowell",
        "share": 0.47,
        "evidenceVideoIds": [
          "JEJbSGtZxOw",
          "MVsG4agTS94",
          "R1kiLX-Z-Io",
          "4DqIW-gZbHA",
          "9XKWnvpdSlU"
        ]
      },
      {
        "label": "get",
        "share": 0.47,
        "evidenceVideoIds": [
          "JEJbSGtZxOw",
          "MVsG4agTS94",
          "R1kiLX-Z-Io",
          "4DqIW-gZbHA",
          "9XKWnvpdSlU"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Friday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 29,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Kevin Powell — 1.0M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 29,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.81,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "05e6b01f0a3dbd46635ebe842aa4afe7d420bba40d29ff410ba81efe72546f55",
      "inputsHash": "f2cabee52737469644ee47ea8c3cd627ef1784ded753ade50a5ce44dc4b93df0",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:32.072Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "4f97b2f568127a690cb3784fee1f63d3c961f211490369a0871765742b811106",
    "channelId": "UCbRP3c757lWg9M-U7TyEkXA",
    "channelHandle": "@t3dotgg",
    "channelName": "Theo - t3․gg",
    "channelUrl": "https://www.youtube.com/@t3dotgg",
    "description": "Software dev, AI nerd, TypeScript sympathizer, creator of T3 Chat and the T3 Stack.",
    "joinDate": null,
    "location": null,
    "subscribers": 535000,
    "totalVideos": 1000,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/Y6jut5A-dhWRlv7W81kGxVFPtZGjZN97IhBP75uLnx2AVV7ZEJUUUxBKHlFw9GcwILxkz1E_cLc=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "twitter",
        "url": "https://twitter.com/theo"
      },
      {
        "platform": "t3.gg",
        "url": "https://t3.gg"
      },
      {
        "platform": "twitch",
        "url": "https://twitch.tv/theo"
      }
    ],
    "recentVideos": [
      {
        "videoId": "S9EGx6ik-18",
        "title": "Stop letting your agents write Markdown.",
        "publishedAt": "18 hours ago",
        "durationSeconds": 2166,
        "views": 57478,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We've all started using markdown a lot more lately, but what if instead we used HTML?\n\nThank you CopilotKit for sponsoring! Check them out at: https://soydev.link/copilotkit\n\nSOURCES\nhttps://x.com/trq212/status/205281160...\nhttps://x.com/karpathy/status/2053872...\n\nWant to sponsor a video? Learn more here: https://soydev.link/sponsor-me\n\nCheck out my Twitch, Twitter, Discord more at https://t3.gg\n\nS/O @Ph4seon3 for the awesome edit 🙏",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gILMoijqeGA",
        "title": "I wish this was clickbait",
        "publishedAt": "1 day ago",
        "durationSeconds": 1650,
        "views": 73759,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "They re-wrote all of Bun with Rust in about a week. And it's probably going to ship...\n\nThank you WorkOS for sponsoring! Check them out at: https://soydev.link/workos\n\nAlso the best place to use Codex, Claude Code, and more: https://soydev.link/code\n\nSOURCES\nhttps://x.com/jarredsumner/status/205...\nhttps://x.com/jarredsumner/status/205...\nhttps://wwj.dev/posts/i-am-worried-ab...\n\nWant to sponsor a video? Learn more here: https://soydev.link/sponsor-me\n\nCheck out my Twitch, Twitter, Discord more at https://t3.gg\n\nS/O @Ph4seon3 for the awesome edit 🙏",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lNVa33qUzZ8",
        "title": "We all fell for it…",
        "publishedAt": "2 days ago",
        "durationSeconds": 3403,
        "views": 187565,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Coding with agents is really fun, and really productive. But there are downsides...\n\nThank you Browserbase for sponsoring! Check them out at: https://soydev.link/browserbase\n\nSOURCE\nhttps://larsfaye.com/articles/agentic...\n\nWant to sponsor a video? Learn more here: https://soydev.link/sponsor-me\n\nCheck out my Twitch, Twitter, Discord more at https://t3.gg\n\nS/O @Ph4seon3 for the awesome edit 🙏",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3pkz-Ie_k_c",
        "title": "Anthropic just…wait what",
        "publishedAt": "6 days ago",
        "durationSeconds": 2113,
        "views": 157214,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Anthropic's been struggling to get compute lately, but it seems like they've finally solved it by buying compute from xAI?\n\nThank you Coderabbit for sponsoring! Check them out at: https://soydev.link/coderabbit\n\nSOURCES:\nhttps://x.com/claudeai/status/2052060...\nhttps://www.anthropic.com/news/higher...\nhttps://x.com/nvidiaai/status/2052082...\n\nWant to sponsor a video? Learn more here: https://soydev.link/sponsor-me\n\nCheck out my Twitch, Twitter, Discord more at https://t3.gg\n\nS/O @Ph4seon3 for the awesome edit 🙏",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "HuE7OvOckfE",
        "title": "Get In, We're Leaving GitHub",
        "publishedAt": "7 days ago",
        "durationSeconds": 3046,
        "views": 88080,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "GitHub was my home for over a decade. I think it's time to explore future options. Forgejo, Gitlab, Gitea, Codeberg, Bitbucket and more. Where do we go now?\n\nThank you WorkOS for sponsoring! Check them out at: https://soydev.link/workos\n\nSOURCES:\n-https://x.com/jasonbcox0/status/20492...\n-https://x.com/mitchellh/status/198389...\n\nWant to sponsor a video? Learn more here: https://soydev.link/sponsor-me\n\nCheck out my Twitch, Twitter, Discord more at https://t3.gg\n\nS/O @Ph4seon3 for the awesome edit 🙏",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VDPMXSAxiWk",
        "title": "Prime is (mostly) right about AI",
        "publishedAt": "8 days ago",
        "durationSeconds": 2472,
        "views": 127752,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Prime's takes on the AI Economy are mostly right, but there's a couple things worth going deeper on...\n\nThank you Blacksmith for sponsoring! Check them out at: https://soydev.link/blacksmith\n\nSOURCE\n   • The AI Economy is about to change  \n\nWant to sponsor a video? Learn more here: https://soydev.link/sponsor-me\n\nCheck out my Twitch, Twitter, Discord more at https://t3.gg\n\nS/O @Ph4seon3 for the awesome edit 🙏",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fxxpQhJyupQ",
        "title": "Microsoft and OpenAI break up (Amazon is pumped)",
        "publishedAt": "9 days ago",
        "durationSeconds": 2206,
        "views": 110086,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "OpenAI and Microsoft's partnership is ending...\n\nThank you Browserbase for sponsoring! Check them out at: https://soydev.link/browserbase\n\nSource:\nhttps://x.com/OpenAINewsroom/status/2...\n\nWant to sponsor a video? Learn more here: https://soydev.link/sponsor-me\n\nCheck out my Twitch, Twitter, Discord more at https://t3.gg\n\nS/O @Ph4seon3 for the awesome edit 🙏",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "J8O9LLpJNrg",
        "title": "Seriously, Anthropic??",
        "publishedAt": "12 days ago",
        "durationSeconds": 2079,
        "views": 118111,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Anthropic's doing shady stuff again.\n\nThanks to our sponsor: \nKilo, The Open Source AI Coding Agent: https://soydev.link/kilo\n\nSOURCES:\nhttps://x.com/om_patel5/status/204820...\n\nWant to sponsor a video? Learn more here: https://soydev.link/sponsor-me\n\nCheck out my Twitch, Twitter, Discord more at https://t3.gg\n\nS/O @Ph4seon3 for the awesome edit 🙏",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "R7ex-Gt8dtw",
        "title": "Github is Falling Apart",
        "publishedAt": "13 days ago",
        "durationSeconds": 2111,
        "views": 93266,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github is a platform that means a lot to me. It hurts to see it fall apart like this.\n\nThank you blacksmith for sponsoring! Check them out at: https://soydev.link/blacksmith\n\nSOURCES:\nhttps://x.com/mitchellh/status/204921...\nhttps://x.com/sagitz_/status/20491532...\nhttps://x.com/GergelyOrosz/status/204...\nhttps://x.com/stevederico/status/2048... \nhttps://x.com/jasonbcox0/status/20492...\nhttps://x.com/mitchellh/status/198389...\n\nWant to sponsor a video? Learn more here: https://soydev.link/sponsor-me\n\nCheck out my Twitch, Twitter, Discord more at https://t3.gg\n\nS/O @Ph4seon3 for the awesome edit 🙏",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "v1MptV67kSI",
        "title": "Claude Code's favorite tech stack",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 2339,
        "views": 79962,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "So what does Claude Code actually recommend when you ask it \"add a db\" or \"host my app\"?\n\nThank you Depot & G2i for sponsoring!\nDepot: https://soydev.link/depot\nG2i: https://soydev.link/g2i\n\nSOURCES:\nhttps://amplifying.ai/research/claude...\nhttps://x.com/matijagrcic/status/2041...\nhttps://simonwillison.net/2026/Mar/9/...\nhttps://x.com/mitchellh/status/204156...\n\nWant to sponsor a video? Learn more here: https://soydev.link/sponsor-me\n\nCheck out my Twitch, Twitter, Discord more at https://t3.gg\n\nS/O @Ph4seon3 for the awesome edit 🙏",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "88qc67oYDl4",
        "title": "Realistic advice about software dev right now",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 3247,
        "views": 161780,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Breaking into the dev world has never been harder, but you still can do it...\n\nThank you Browserbase for sponsoring! Check them out at: https://soydev.link/browserbase\n\nWant to sponsor a video?...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DWcqbPm_Rn4",
        "title": "Markdown is a terrible language",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 1326,
        "views": 151154,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We're all using markdown way more lately and it's mostly good. Mostly...\n\nThank you RWX for sponsoring! Check them out at: https://soydev.link/rwx\n\nSOURCES: \nWhy the heck are we still using...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "P6u0K3-z2p4",
        "title": "Why people spend millions on Github stars",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 2212,
        "views": 54562,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github stars are a great way to see what people are using. Well, they WERE a great way…\n\nThank you to today's sponsors!\n\nWisprflow: https://soydev.link/wisprflow\n\nSOURCES: \nhttps://awesomeagents....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "HUsDzyJ3H64",
        "title": "I don’t really like GPT-5.5…",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 1629,
        "views": 131044,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "GPT-5.5 is an incredible model. Kind of…\n\nThank you Rork for sponsoring! Check them out at: soydev.link/rork\n\nWant to sponsor a video? Learn more here: https://soydev.link/sponsor-me\n\nCheck...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YY04jVCKeB4",
        "title": "Open source is dead now?",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 1581,
        "views": 80925,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Cal.com is no longer fully open source. So where is this going...\n\nThank you WorkOS for sponsoring! Check them out at: soydev.link/workos\n\nSOURCES:\nhttps://x.com/tannerlinsley/status/20445375677571...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wDgq9aiuL-w",
        "title": "Did Anthropic just kill Figma?",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 2274,
        "views": 121860,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I know I've been harsh on Anthropic lately, but they did a really good job on Claude Design.\n\nThank you to today's sponsors!\n\nClerk, the best DX in auth: https://soydev.link/clerk\nInfinite...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KFisvc-AMII",
        "title": "Did Claude really get dumber again?",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 2655,
        "views": 112881,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "People have been complaining for a long time about Claude models degrading over time. Well today we're gonna investigate...\n\nThank you to today's sponsors!\n\nGreptile, the most tasteful AI code...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zd6tBbCwkks",
        "title": "This model is kind of a disaster.",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 2280,
        "views": 165589,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Opus 4.7 is here, and it's most definitely a model of all time.\n\nThank you to today's sponsors:\n- Depot: https://soydev.link/depot\n- WorkOS: https://soydev.link/workos\n\nSOURCES\nhttps://x.com/i/stat...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WkHdkwDQJ5o",
        "title": "Claude's new Cursor killer just dropped",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 1807,
        "views": 123758,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The Claude Code desktop app is here, and it's a total disaster...\n\nThank you CodeRabbit for sponsoring! Check them out at: https://soydev.link/coderabbit\n\nIf you want a much better desktop...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "G1xqTjoihfo",
        "title": "A letter to tech CEOs",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 2384,
        "views": 59790,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A lot of people thought that AI would kill open source, but I actually think it's making open source the only viable path forward...\n\nThank you RWX for sponsoring! Check them out at: https://soydev...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ysS8GDwsaK8",
        "title": "Anthropic thinks they're Apple. They're actually hypocrites.",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 1411,
        "views": 120451,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Anthropic just made it so you can text your Claude Code instance with iMessage, which is great! Except for the fact that it's against Apple's TOS and we know how Anthropic feels about TOS......",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "I82j7AzMU80",
        "title": "How does Claude Code *actually* work?",
        "publishedAt": "1 month ago",
        "durationSeconds": 2363,
        "views": 179663,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We keep talking about Codex, Claude Code, Cursor, etc. But how do they actually work?\n\nThank you Macroscope for sponsoring! Check them out at: https://soydev.link/macroscope\n\nSOURCES\nhttps://ampcod...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ND9CSuzvrIY",
        "title": "I’m scared about the future of security",
        "publishedAt": "1 month ago",
        "durationSeconds": 2023,
        "views": 61163,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "AI can hack basically anything at this point (note: this was filmed before the Mythos announcement)\n\nThank you Posthog for sponsoring! Check them out at: https://soydev.link/posthog\n\nSOURCES...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3DNkDIVKtK8",
        "title": "Crashing out at Anthropic and getting Pi pilled",
        "publishedAt": "1 month ago",
        "durationSeconds": 4908,
        "views": 71192,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Talking about everything that went wrong with Anthropic last week (source code leak, rate limits, banning openclaw, and so much more) + our new favorite coding agent Pi.\n\nThank you to this...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "aFcVKzfkJPk",
        "title": "Claude Mythos and the end of software",
        "publishedAt": "1 month ago",
        "durationSeconds": 1585,
        "views": 286929,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I....yeah. It's all over now.\n\nThank you Blacksmith for sponsoring! Check them out at: https://soydev.link/blacksmith\n\nSOURCES\nhttps://www-cdn.anthropic.com/53566bf5440a10affd749724787c8913a2ae0841...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TilDSWeiAlw",
        "title": "The language holding our agents back.",
        "publishedAt": "1 month ago",
        "durationSeconds": 1943,
        "views": 87367,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Giving agent's a bash tool is great. The things it can do are insane, but what if we went further. What if we let it write and run typescript?\n\nThank you Browserbase for sponsoring! Check them...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "stZr6U_7S90",
        "title": "Claude Code is unusable now",
        "publishedAt": "1 month ago",
        "durationSeconds": 1463,
        "views": 211750,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I'm tired of talking about Anthropic, but I feel like I have to because things keep getting worse\n\nThank you Clerk for sponsoring! Check them out at: https://soydev.link/clerk\n\nSOURCES\nhttps://x.co...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "08NqrRQArNw",
        "title": "I’m serious.",
        "publishedAt": "1 month ago",
        "durationSeconds": 2385,
        "views": 94346,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I love open source, but that never stopped me from using a ton of closed source stuff. That's starting to change...\n\nThank you WorkOS for sponsoring! Check them out at: https://soydev.link/workos...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "j_kJNYLI6Tw",
        "title": "We need to talk about the Claude Code rate limits",
        "publishedAt": "1 month ago",
        "durationSeconds": 1977,
        "views": 125411,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Anthropic just made the limits on the Claude Max/Pro plans a lot worse...\n\nThank you Depot for sponsoring! Check them out at: https://soydev.link/depot\n\nSOURCES\nhttps://x.com/trq212/status/20329166...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "icu0GZcSb58",
        "title": "I got DMCA'd by Anthropic (not a joke)",
        "publishedAt": "1 month ago",
        "durationSeconds": 977,
        "views": 113666,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Well, the Claude Code drama continues. I got DMCA'd by Anthropic. There's a twist though. Enjoy this ride with me.\n\nThank you Clerk for sponsoring! Check them out at: https://soydev.link/clerk...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 30,
      "uploadsLast90d": 30,
      "uploadCadenceWeekly": 2.33,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 113666,
      "viewsPerVideoP90Last90d": 179663,
      "viewVelocityTrend": "rising"
    },
    "performanceBaseline": {
      "p50Views": 113666,
      "p90Views": 179663,
      "p99Views": 211750,
      "outperformingVideosLast90d": 4
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "t3.gg",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.87,
        "evidenceVideoIds": [
          "S9EGx6ik-18",
          "gILMoijqeGA",
          "lNVa33qUzZ8",
          "3pkz-Ie_k_c",
          "HuE7OvOckfE"
        ]
      },
      {
        "label": "soydev",
        "share": 0.87,
        "evidenceVideoIds": [
          "S9EGx6ik-18",
          "gILMoijqeGA",
          "lNVa33qUzZ8",
          "3pkz-Ie_k_c",
          "HuE7OvOckfE"
        ]
      },
      {
        "label": "link",
        "share": 0.83,
        "evidenceVideoIds": [
          "S9EGx6ik-18",
          "gILMoijqeGA",
          "lNVa33qUzZ8",
          "3pkz-Ie_k_c",
          "HuE7OvOckfE"
        ]
      },
      {
        "label": "check",
        "share": 0.8,
        "evidenceVideoIds": [
          "S9EGx6ik-18",
          "gILMoijqeGA",
          "lNVa33qUzZ8",
          "3pkz-Ie_k_c",
          "HuE7OvOckfE"
        ]
      },
      {
        "label": "sponsoring",
        "share": 0.77,
        "evidenceVideoIds": [
          "S9EGx6ik-18",
          "gILMoijqeGA",
          "lNVa33qUzZ8",
          "3pkz-Ie_k_c",
          "HuE7OvOckfE"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Thursday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "B",
      "rationale": "strong views-per-subscriber ratio, consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "strong",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 42,
      "reason": "growth rising last 90d",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.85
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "rising 90d view velocity. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Theo - t3․gg — 0.5M subs, B-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 42,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.68,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": true,
      "requiresEnrichment": true,
      "priorityQueue": "medium"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "B-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "4f97b2f568127a690cb3784fee1f63d3c961f211490369a0871765742b811106",
      "inputsHash": "29baff3086b80678870f014f5bdf31b080cc9d970bcabb78305fe00a7f14ba6e",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-rising",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:32.292Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "3253115d8980d540519050a73e01a78aa6dd5fc96cef69dd085329aeaa203bab",
    "channelId": "UC6vRUjYqDuoUsYsku86Lrsw",
    "channelHandle": "@jherr",
    "channelName": "Jack Herrington",
    "channelUrl": "https://www.youtube.com/@jherr",
    "description": "Frontend videos from basic to very advanced; tutorials, technology deep dives. You'll love it!",
    "joinDate": null,
    "location": null,
    "subscribers": 211000,
    "totalVideos": 510,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_kGCkFeDznNTPpHJCV01GxQVeJQ4HYIYgDSyzQPJue8q2s=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "pronextjs.dev",
        "url": "https://pronextjs.dev"
      },
      {
        "platform": "discord",
        "url": "https://discord.gg/KRVwpJUG6p"
      },
      {
        "platform": "twitter",
        "url": "http://twitter.com/jherr"
      },
      {
        "platform": "github",
        "url": "http://github.com/jherr"
      }
    ],
    "recentVideos": [
      {
        "videoId": "3dpqz8oPBJ0",
        "title": "Prompt to Dashboard in One AI Tool Call",
        "publishedAt": "2 days ago",
        "durationSeconds": 495,
        "views": 2683,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Using Code Mode for database access reduce token costs, increases accuracy and is way faster than using tradition LLM tools.\n\nNetlify Database: https://www.netlify.com/blog/netlify-...\nCode: https://github.com/jherr/db-with-code...\n\n👉 Don't forget to subscribe to this channel for more updates: https://bit.ly/2E7drfJ\n👉 Discord server signup:   / discord  \n👉 VS Code theme and font? Night Wolf [black] and BitstromWera Nerd Font Mono\n👉 Terminal Theme and font? oh-my-posh with custom prompt and BitstromWera Nerd Font Mono.\n\n00:00 Introduction\n02:01 Netlify Database Setup\n05:31 Code Mode Database Queries\n06:20 Generative UI\n07:29 Outroduction",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pqlPqIgufEI",
        "title": "WebMCP Is A Free AI In Your App",
        "publishedAt": "9 days ago",
        "durationSeconds": 411,
        "views": 6859,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Lets us TanStack Start and WebMCP to create a 3D modeling application for Multiboard that has integrated AI support.\n\nCode: https://github.com/jherr/webmcp-openscad\nMCP-B Extension: https://chromewebstore.google.com/det...\n\n👉 Don't forget to subscribe to this channel for more updates: https://bit.ly/2E7drfJ\n👉 Discord server signup:   / discord  \n👉 VS Code theme and font? Night Wolf [black] and BitstromWera Nerd Font Mono\n👉 Terminal Theme and font? oh-my-posh with custom prompt and BitstromWera Nerd Font Mono.\n\n00:00 Introduction\n00:42 WebMCP Demo\n03:36 Registering Tools\n04:48 Connecting To The Store\n06:15 Outroduction",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "t9xB8xvySyo",
        "title": "Partial Page Caching Using React Server Components",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 548,
        "views": 3140,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A Blue Collar Coder deep dive video on an ideal use case for React Server Components (RSCs).\n\nCode: https://github.com/jherr/tanstack-ppc\n\n👉 Don't forget to subscribe to this channel for more updates: https://bit.ly/2E7drfJ\n👉 Discord server signup:   / discord  \n👉 VS Code theme and font? Night Wolf [black] and BitstromWera Nerd Font Mono\n👉 Terminal Theme and font? oh-my-posh with custom prompt and BitstromWera Nerd Font Mono.\n\n00:00 Introduction\n01:25 A CDN-ed Content Site\n03:18 The RSC Implementation\n05:55 Why JSON Isn't Enough\n06:35 Blending Interactive Code\n07:57 Outroduction",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PX3QlADinIE",
        "title": "5 Ways To SSR/RSC on TanStack Start",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 606,
        "views": 5527,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "TanStack Start has 5 different ways to do SSR and RSC. Do you know them all?\n\nCode: https://github.com/jherr/tanstack-sta...\n\n👉 Don't forget to subscribe to this channel for more updates: https://bit.ly/2E7drfJ\n👉 Discord server signup:   / discord  \n👉 VS Code theme and font? Night Wolf [black] and BitstromWera Nerd Font Mono\n👉 Terminal Theme and font? oh-my-posh with custom prompt and BitstromWera Nerd Font Mono.\n\n00:00 Introduction\n00:20 React Has Always Had SSR\n01:27 Client-0Side Rendering\n03:07 Server-Side Rendering\n04:21 Data-only Rendering\n05:35 RSC Low Level API\n07:36 Composite Components\n09:41 Outroduction",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-dbvAMsRKi0",
        "title": "React2Shell on TanStack Start?!?",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 233,
        "views": 5040,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "TanStack Start now supports React Server Components (RSCs). Does that make it vulnerable to the React2Shell exploit? No. Lets talk about how R2S works and how TanStack Start is immune.\n\n00:00 Introduction\n00:36 How React2Shell Works\n02:11 Why TanStack Start Isn't Vulnerable\n03:26 Outroduction",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "s9Cs_RmkVPg",
        "title": "Introducing TanStack AI Code Mode",
        "publishedAt": "1 month ago",
        "durationSeconds": 460,
        "views": 12076,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Code Mode revolutionizes how you use tools with your LLM in your apps. It's faster, uses less context, and is more accurate. What's not to like?\n\nCode mode blog: https://tanstack.com/blog/tanstack-ai...\nTanStack AI Monorepo: https://github.com/tanstack/ai\n\n👉 Don't forget to subscribe to this channel for more updates: https://bit.ly/2E7drfJ\n👉 Discord server signup:   / discord  \n👉 VS Code theme and font? Night Wolf [black] and BitstromWera Nerd Font Mono\n👉 Terminal Theme and font? oh-my-posh with custom prompt and BitstromWera Nerd Font Mono.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xMmaScSyaaU",
        "title": "Netlify.new - AI Builder for TanStack Start Apps!",
        "publishedAt": "1 month ago",
        "durationSeconds": 144,
        "views": 2448,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Netlify.new builds you a new TanStack Start application using Claude Code, Codex or Gemini, and of course, hosts that app in production. Check it out!\n\n👉 Don't forget to subscribe to this channel for more updates: https://bit.ly/2E7drfJ\n👉 Discord server signup:   / discord  \n👉 VS Code theme and font? Night Wolf [black] and BitstromWera Nerd Font Mono\n👉 Terminal Theme and font? oh-my-posh with custom prompt and BitstromWera Nerd Font Mono.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YOa99Wpzd3o",
        "title": "Generating Images With TanStack AI",
        "publishedAt": "2 months ago",
        "durationSeconds": 206,
        "views": 3126,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Don't forget to subscribe to this channel for more updates: https://bit.ly/2E7drfJ\n👉 Discord server signup:   / discord  \n👉 VS Code theme and font? Night Wolf [black] and BitstromWera Nerd Font Mono\n👉 Terminal Theme and font? oh-my-posh with custom prompt and BitstromWera Nerd Font Mono.\n\n00:00 Introduction\n01:07 Making The Image Request\n02:29 Formatting The Response\n03:04 Outroduction",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EnzKA0fQkBM",
        "title": "TanStack Start SSR: 3 Reasons To Love It",
        "publishedAt": "2 months ago",
        "durationSeconds": 352,
        "views": 8652,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Code: https://github.com/jherr/tanstack-sta...\n\n👉 Don't forget to subscribe to this channel for more updates: https://bit.ly/2E7drfJ\n👉 Discord server signup:   / discord  \n👉 VS Code theme and font? Night Wolf [black] and BitstromWera Nerd Font Mono\n👉 Terminal Theme and font? oh-my-posh with custom prompt and BitstromWera Nerd Font Mono.\n\n00:00 Introduction\n00:32 #1 - SSR Is Easy\n01:27 Loading Data\n02:00 Server Functions\n03:13 Strong Typing\n03:30 #2 - SSR Is Easy (To Turn Off)\n04:10 #3 - Data-Only\n05:29 Outroduction",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IAfrzel524s",
        "title": "WebMCP is MCP for Single Page Apps!",
        "publishedAt": "2 months ago",
        "durationSeconds": 332,
        "views": 14417,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Code: https://github.com/jherr/webmcp-demo\n\n👉 Don't forget to subscribe to this channel for more updates: https://bit.ly/2E7drfJ\n👉 Discord server signup:   / discord  \n👉 VS Code theme and font? Night Wolf [black] and BitstromWera Nerd Font Mono\n👉 Terminal Theme and font? oh-my-posh with custom prompt and BitstromWera Nerd Font Mono.\n\n00:00 What is WebMCP?\n00:44 WebMCP Demo\n01:42 Zustand Store\n02:25 Integrating WebMCP\n03:41 Claude and MCP-B\n04:42 Outroduction",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "FL_UiNpGgEg",
        "title": "How to Build a Multi‑User AI Chat App with Convex",
        "publishedAt": "3 months ago",
        "durationSeconds": 693,
        "views": 3504,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Let's build a AI enabled multi-user chat with Convex. It's so easy you won't believe it!\n\nThis video was sponsored by Convex: https://convex.dev\n\nCode: https://github.com/jherr/convex-dinner...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "25SEY7xo94w",
        "title": "TanStack AI: What You Need To Know To Start",
        "publishedAt": "3 months ago",
        "durationSeconds": 707,
        "views": 11177,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Everything you need to know to get started with the TanStack AI library\n\n00:00 Introduction\n00:17 TanStack AI Intro\n01:56 Creating An AI App\n03:15 Server Side\n05:57 Chat UI\n08:35 Server Tools...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "HodoLoXxMv8",
        "title": "ChatGPT Apps on TanStack and Railway",
        "publishedAt": "5 months ago",
        "durationSeconds": 1027,
        "views": 4794,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This video was sponsored by Railway.\n\nRailway: https://railway.com?referralCode=DjeBij\n\nCode: https://github.com/jherr/ts-chatgptapp\n\n00:00 Introduction\n00:33 TanStack On Railway\n04:30 Adding...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-3-17PRN7jg",
        "title": "React Compiler 1.0 with TanStack Start!",
        "publishedAt": "6 months ago",
        "durationSeconds": 586,
        "views": 17200,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Using React Compiler with TanStack Start means serious performance gains. Large parts of your component tree will be auto-memoized and your app will get a lot snappier!\n\nCode: https://github.com/jh...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hT2yWeHU37U",
        "title": "React 19.2 New useEffectEvent Hook: Game Changer or Gimmick?",
        "publishedAt": "6 months ago",
        "durationSeconds": 688,
        "views": 17231,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn about React 19.2's useEffectEvent, useEvent, and useRef.\n\nCode: https://github.com/jherr/uee-intro\n\n👉 Don't forget to subscribe to this channel for more updates: https://bit.ly/2E7drfJ...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KI4gjUrOfOs",
        "title": "Master React 19.2 Async Everywhere — Boost Performance",
        "publishedAt": "6 months ago",
        "durationSeconds": 618,
        "views": 73111,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "React 19 adds components and hooks that make async work a whole lot cleaner and easier. Let's get an overview with the state of async in 19.2\n\nCode: https://github.com/jherr/react-19-2-async...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gD0-FTkRmx8",
        "title": "You Only Need ONE AI Tool?",
        "publishedAt": "7 months ago",
        "durationSeconds": 541,
        "views": 6188,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Original Article: https://lucumr.pocoo.org/2025/8/18/code-mcps/\n\n👉 Don't forget to subscribe to this channel for more updates: https://bit.ly/2E7drfJ\n👉 Discord server signup: https://discord....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qbvlcJ0WPuc",
        "title": "React Foundation: Solving Reacts Existential Problems",
        "publishedAt": "7 months ago",
        "durationSeconds": 280,
        "views": 14300,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "React's new Foundation is how we solve the existential issues that React has had since its beginnings.\n\nFoundation blog entry: https://react.dev/blog/2025/10/07/introducing-the-react-foundation...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "abUakCmxZw0",
        "title": "AI Migration: NextJS to TanStack Start",
        "publishedAt": "7 months ago",
        "durationSeconds": 720,
        "views": 12139,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Let's use agent coding to port a NextJS Pages Router app to TanStack Start, and learn about TanStack Start in the process.\n\nGithhub repo: https://github.com/jherr/pages-2-tanstack-converter...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Aaj6Ru1Lt0k",
        "title": "Postman + TanStack = Amazing MCP!",
        "publishedAt": "7 months ago",
        "durationSeconds": 601,
        "views": 7891,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Postman has MCP debugging, and a no-code MCP server system with full deployment. https://bit.ly/3Iqmb1C\n\nCode: https://github.com/jherr/postman-ts-mcp\n\n👉 ProNextJS Course: https://pronextjs.dev...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "t_dF8peufSw",
        "title": "Hosting MCP-UI Servers on TanStack Start",
        "publishedAt": "7 months ago",
        "durationSeconds": 291,
        "views": 6072,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Code: https://github.com/jherr/mcp-ui-on-tanstack\n\n👉 ProNextJS Course: https://pronextjs.dev\n👉 Don't forget to subscribe to this channel for more updates: https://bit.ly/2E7drfJ\n👉...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XgZ7mtbCrqk",
        "title": "I Switched! Claude Code to Cursor CLI",
        "publishedAt": "7 months ago",
        "durationSeconds": 481,
        "views": 19642,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I've switched from Claude Code to Cursor CLI, let's talk about why!\n\nCursor CLI: https://cursor.com/cli\nTanStack MCP: pnpx create-start-app@latest --mcp\n\n👉 ProNextJS Course: https://pronextjs.de...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "O1WlMuFR1NM",
        "title": "Is Warp Code The Best Terminal In 2025?",
        "publishedAt": "8 months ago",
        "durationSeconds": 531,
        "views": 16503,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Warp Code is a terminal, and a CLI coding tool, and an editor, all in one. Is this a terminal walking backwards into an IDE? What's going on here?\n\nWarp site: https://warp.dev\n\n👉 ProNextJS...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "yVXxv_8pC44",
        "title": "MCP-UI + TanStack = Next Gen Web",
        "publishedAt": "8 months ago",
        "durationSeconds": 797,
        "views": 56360,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This video was sponsored by StormMCP. https://stormmcp.ai/home\n\nCode: https://github.com/jherr/mcp-ui-on-tanstack\n\n👉 ProNextJS Course: https://pronextjs.dev\n👉 Don't forget to subscribe...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "obppWNA4NyI",
        "title": "AI SDK Version 5 on TanStack Start!",
        "publishedAt": "8 months ago",
        "durationSeconds": 840,
        "views": 8491,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Code: https://github.com/jherr/ts-ai-v5\n\n👉 ProNextJS Course: https://pronextjs.dev\n👉 Don't forget to subscribe to this channel for more updates: https://bit.ly/2E7drfJ\n👉 Discord server...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EujzNb2iu3w",
        "title": "3 Amazing New TanStack Query Features!",
        "publishedAt": "8 months ago",
        "durationSeconds": 716,
        "views": 27394,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Let's look at useInfiniteQuery, streamedQuery and broadcastQueryClient features in TanStack Query.\n\nInfinite Queries: https://tanstack.com/query/latest/docs/framework/react/guides/infinite-queries...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bfOmM1FKsaQ",
        "title": "TanStack DB In 15 Minutes! ORM or State Manager?",
        "publishedAt": "9 months ago",
        "durationSeconds": 961,
        "views": 35823,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This video was sponsored by Infinite Red: https://infinite.red\n\n👉 ProNextJS Course: https://pronextjs.dev\n👉 Don't forget to subscribe to this channel for more updates: https://bit.ly/2E7drfJ...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_oHJUxkAM1w",
        "title": "tRPC vs oRPC: Typesafe API battle!",
        "publishedAt": "9 months ago",
        "durationSeconds": 1006,
        "views": 28319,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 ProNextJS Course: https://pronextjs.dev\n👉 Don't forget to subscribe to this channel for more updates: https://bit.ly/2E7drfJ\n👉 Discord server signup: https://discord.gg/ddMZFtTDa5...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6P-2urhScwk",
        "title": "Zod VS Valibot: JS/TS Validator Battle!",
        "publishedAt": "9 months ago",
        "durationSeconds": 748,
        "views": 20401,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "What are JS/TS validators for? Which one is the best between Zod and Valibot? Let's find out.\n\nCode: https://github.com/jherr/valibot-vs-zod\n\n👉 ProNextJS Course: https://pronextjs.dev\n👉...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uGp5kTPWaqY",
        "title": "Figma MCP vs Claude: UI Building Battle!",
        "publishedAt": "9 months ago",
        "durationSeconds": 516,
        "views": 40828,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Which is going to turn Figma into functioning React (on TanStack Start) better; Figma MCP or Claude Code?\n\n00:00 Introduction\n01:05 Letting Claude Cook\n01:40 Setting Up Figma MCP\n02:39 Using...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 7,
      "uploadsLast90d": 12,
      "uploadCadenceWeekly": 0.93,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 5040,
      "viewsPerVideoP90Last90d": 11177,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 5040,
      "p90Views": 11177,
      "p99Views": 12076,
      "outperformingVideosLast90d": 3
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 1,
      "sponsorBrandsDetected": [
        "Convex",
        "Railway",
        "StormMCP",
        "Infinite Red"
      ],
      "affiliateLinkHosts": [
        "bit.ly"
      ],
      "sponsorshipFrequencyPercent": 8,
      "lastSponsoredVideoDate": "2026-02-13",
      "detectionDetail": [
        {
          "brand": "Convex",
          "videoId": "FL_UiNpGgEg",
          "confidence": 0.7,
          "evidence": "description: sponsored by Convex",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:35.406Z"
        },
        {
          "brand": "Railway",
          "videoId": "HodoLoXxMv8",
          "confidence": 0.7,
          "evidence": "description: sponsored by Railway.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:35.406Z"
        },
        {
          "brand": "StormMCP",
          "videoId": "yVXxv_8pC44",
          "confidence": 0.7,
          "evidence": "description: sponsored by StormMCP. https",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:35.406Z"
        },
        {
          "brand": "Infinite Red",
          "videoId": "bfOmM1FKsaQ",
          "confidence": 0.7,
          "evidence": "description: sponsored by Infinite Red",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:35.406Z"
        }
      ]
    },
    "sponsorshipMaturity": {
      "tier": "occasional",
      "evidence": {
        "sponsoredVideoCountLast90d": 1,
        "uniqueSponsorBrandsLast90d": 4,
        "firstSponsoredVideoDate": "2026-05-14"
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "developer-tools",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:github"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "pronextjs.dev",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "medium",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": true,
        "affiliateLinksPresent": true
      },
      "interpretation": "Reachable but with gaps: missing one or more of email validation, sponsor history, or external website."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.9,
        "evidenceVideoIds": [
          "3dpqz8oPBJ0",
          "pqlPqIgufEI",
          "t9xB8xvySyo",
          "PX3QlADinIE",
          "s9Cs_RmkVPg"
        ]
      },
      {
        "label": "code",
        "share": 0.77,
        "evidenceVideoIds": [
          "3dpqz8oPBJ0",
          "pqlPqIgufEI",
          "t9xB8xvySyo",
          "PX3QlADinIE",
          "s9Cs_RmkVPg"
        ]
      },
      {
        "label": "com",
        "share": 0.67,
        "evidenceVideoIds": [
          "3dpqz8oPBJ0",
          "pqlPqIgufEI",
          "t9xB8xvySyo",
          "PX3QlADinIE",
          "s9Cs_RmkVPg"
        ]
      },
      {
        "label": "tanstack",
        "share": 0.67,
        "evidenceVideoIds": [
          "pqlPqIgufEI",
          "t9xB8xvySyo",
          "PX3QlADinIE",
          "-dbvAMsRKi0",
          "s9Cs_RmkVPg"
        ]
      },
      {
        "label": "github",
        "share": 0.6,
        "evidenceVideoIds": [
          "3dpqz8oPBJ0",
          "pqlPqIgufEI",
          "t9xB8xvySyo",
          "PX3QlADinIE",
          "s9Cs_RmkVPg"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Thursday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "moderate",
        "postingCadenceSignal": "moderate",
        "sponsorshipHistorySignal": "occasional"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 49,
      "reason": "fits developer-tools",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.5
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.6
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.35
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.6,
      "level": "medium",
      "coldStart": false
    },
    "whyThisMatters": "fits developer-tools. Channel is in the active outreach window.",
    "whyNow": "Last sponsored video 90 days ago — within typical sponsorship-decision lookback for similar creators.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Jack Herrington — 0.2M subs, C-tier sponsorship readiness, medium contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 49,
      "readyForOutreach": false,
      "blockers": [
        "contactability:medium — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.61,
      "urgency": 0,
      "noiseRisk": 0.4
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": true,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "occasional sponsor history + no business email typically correlates with higher outreach responsiveness for mid-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:occasional",
        "email-line-type:none",
        "channel-tier:mid"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mid-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mid",
      "sponsorCategory": "developer-tools",
      "historicalTypicalReplyRange": "5-12%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mid-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": [
        "lastSponsored<90d"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "late",
      "reason": "Last sponsored video 90 days ago; past typical 14-30d decision-cycle for similar creators.",
      "decayRisk": 0.9
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 52,
      "reasons": [
        "Active sponsor history within last 90d (1 videos)"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "3253115d8980d540519050a73e01a78aa6dd5fc96cef69dd085329aeaa203bab",
      "inputsHash": "8ea7961abb55c51c822c1a7a54f505f37201e16b5b18b1bcf4cf9f8cea65c07f",
      "rulesApplied": [
        "sponsorship-history-occasional",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:34.430Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "9de9399b6cb0b04320ca851a3f7f9926c0121a637fea17009eae8cc83ddb5234",
    "channelId": "UCHRp19HU7Y2LwfI0Ai6WAGQ",
    "channelHandle": "@LearnWebCode",
    "channelName": "LearnWebCode",
    "channelUrl": "https://www.youtube.com/@LearnWebCode",
    "description": "I make videos about CSS, JavaScript, and WordPress. I also teach premium courses which are available on my website.",
    "joinDate": null,
    "location": null,
    "subscribers": 353000,
    "totalVideos": 217,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_n6R7J2xrV33Fiqh68fKvoqUgtsPU3SYYeyOFwT6tx3Kg=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "learnwebcode.com",
        "url": "https://learnwebcode.com/"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/learnwebcode"
      },
      {
        "platform": "twitch",
        "url": "https://www.twitch.tv/learnwebcode"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/javaschiff/"
      },
      {
        "platform": "facebook",
        "url": "https://www.facebook.com/Brad-Schiff-1542576316048470/"
      }
    ],
    "recentVideos": [
      {
        "videoId": "FpeUCpCSjaM",
        "title": "The Joy Of A Boring CMS (WordPress, Drupal, Statamic)",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 613,
        "views": 2961,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A love letter to all of the content management systems out there and the developers that build with them. There isn't much love or hype thrown towards the CMS but it's a legitimately joyful part of the job.\n\nHere's how you can support my channel:\nUse my DreamHost link http://click.dreamhost.com/aff_c?offe...\nJoin my courses https://learnwebcode.com/\n\nInstagram:   / javaschiff  \nTwitter:   / learnwebcode  \nFacebook:   / brad-schiff-1542576316048470  \nMy Site: https://learnwebcode.com/\nTwitch:   / learnwebcode",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hnIq2mXWvqA",
        "title": "How I'd Learn WordPress Development If I Could Start Over in 2026",
        "publishedAt": "1 month ago",
        "durationSeconds": 1387,
        "views": 8086,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "My website is https://learnwebcode.com/\n\nQuick links from this video:\nhttps://localwp.com/\nhttps://wordpress.org/plugins/advance...\nhttps://code.visualstudio.com/\nhttps://nodejs.org/en\nhttps://www.npmjs.com/package/@wordpr...\n   • WordPress Theme Development Tutorial (Clas...  \nhttps://underscores.me/\nhttps://roots.io/\nhttps://wordpress.org/plugins/members/\nhttps://wordpress.org/plugins/all-in-...\n   • Host Infinite WordPress Sites On Affordabl...  \n   • WordPress Staging & Deployment Guide (GitH...  \nDreamHost Hosting https://learnwebcode.com/dreamhost\n\nInstagram:   / javaschiff  \nTwitter:   / learnwebcode  \nFacebook:   / brad-schiff-1542576316048470  \nTwitch:   / learnwebcode",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6Q7rMFPnCvI",
        "title": "The Future of SEO In WordPress: Yoast Review",
        "publishedAt": "1 month ago",
        "durationSeconds": 640,
        "views": 1218,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Let's talk about SEO and Schema Aggregation in the AI era. How can we make our WordPress websites as easy to digest as possible? We also see Yoast AI Brand Insights reviewed in action.\n\nUse code \"brad15\" for a 15% discount during checkout on any Yoast product https://yoast.com/\n\nInstagram:   / javaschiff  \nTwitter:   / learnwebcode  \nFacebook:   / brad-schiff-1542576316048470  \nMy Site: https://learnwebcode.com/\nTwitch:   / learnwebcode",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "oxtoCL80HnI",
        "title": "Modern JavaScript You Actually Need For React",
        "publishedAt": "4 months ago",
        "durationSeconds": 825,
        "views": 2617,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "My complete React course https://learnwebcode.com/react/\n\n0:00 Intro\n0:21 Arrow functions\n1:53 Ternary Operator\n2:49 Logical AND operator (&&)\n4:00 array methods map and filter\n7:54 If you return what?\n8:26 Spread operator\n10:02 Destructuring\n11:27 Object property shorthand\n\nInstagram:   / javaschiff  \nTwitter:   / learnwebcode  \nFacebook:   / brad-schiff-1542576316048470  \nMy Site: https://learnwebcode.com/\nTwitch:   / learnwebcode",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "h6cZ-CAUlgg",
        "title": "React Is Just JavaScript (Simplest Explanation)",
        "publishedAt": "4 months ago",
        "durationSeconds": 1491,
        "views": 3802,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "My complete React course https://learnwebcode.com/react/\n\nInstagram:   / javaschiff  \nTwitter:   / learnwebcode  \nFacebook:   / brad-schiff-1542576316048470  \nMy Site: https://learnwebcode.com/\nTwitch:   / learnwebcode",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TnD5uicMXiM",
        "title": "I Let a Hosting Company Build My Website",
        "publishedAt": "4 months ago",
        "durationSeconds": 546,
        "views": 1026,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get your free website build from DreamHost https://learnwebcode.com/dreamhost\n\nSave up to 83 percent on Web Hosting with Launch, Growth, and Scale plans starting at only $1.99 per month. Plus, get a Free Handcrafted Starter Website Build included with all hosting plans.\n\nCheck out my mentoring & workshops https://weekends.learnwebcode.com/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WALGNL0szks",
        "title": "20 Years of Web Development History in 20 Minutes",
        "publishedAt": "5 months ago",
        "durationSeconds": 1159,
        "views": 6634,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out the RT82 keyboard here https://epomaker.com/products/epomake...\n\nCheck out my AI web dev course here https://learnwebcode.com/ai-course/\n\nGitHub for my example project in video: https://github.com/LearnWebCode/histo...\n\n0:00 Intro\n3:00 Floats\n4:56 It Was A Mess\n6:09 Scalable Inman Flash Replacement\n7:29 jQuery\n8:38 Grunty Gulpy Sassy\n11:36 My Example No Build Demo\n\nInstagram:   / javaschiff  \nTwitter: https://x.com/learnwebcode\nFacebook:   / brad-schiff-1542576316048470  \nMy Site: https://learnwebcode.com/\nTwitch:   / learnwebcode",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "t1PtMhrIEpQ",
        "title": "New GitHub Copilot AI & PHP Course",
        "publishedAt": "5 months ago",
        "durationSeconds": 681,
        "views": 2162,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Join the course on my platform https://learnwebcode.com/ai-course/\nJoin the course on Udemy https://www.udemy.com/course/ai-web-development-indie-hacking-bootcamp/?referralCode=52F0E0C13093E8751071",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QkmPe68UePg",
        "title": "VS Code Tutorial For Beginners (Free Copilot AI 2026)",
        "publishedAt": "5 months ago",
        "durationSeconds": 1385,
        "views": 29087,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "These are the core features of VS Code I would show a friend who was just starting in the dev industry.\n\nCheckout the Epomaker keyboard here https://epomaker.com/products/epomake...\n\nCheck out my new AI & PHP course https://learnwebcode.com/ai-course/\n\nInstagram:   / javaschiff  \nMy Website: https://learnwebcode.com/\nTwitter:   / learnwebcode  \nFacebook:   / brad-schiff-1542576316048470  \nTwitch:   / learnwebcode  \n\n0:00 Intro\n1:59 First Open\n3:22 Free Agentic AI Copilot Features\n7:21 Keyboard Shortcuts & Command Palette\n10:17 Customizing Your VS Code\n11:54 Color Theme\n14:39 Custom Fonts & Ligatures\n16:05 Emmet Tag Triggers\n17:42 Next Matching Selection (Multiple Cursors)\n18:17 Markdown Live Preview\n19:12 Split Panel Editing\n19:56 Automatic Indenting / Formatting",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "C7b6y6Mz0bg",
        "title": "Demoralization In The AI Era",
        "publishedAt": "11 months ago",
        "durationSeconds": 194,
        "views": 2673,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "My Site: https://learnwebcode.com/\nTwitter: https://twitter.com/learnwebcode\nFacebook: https://www.facebook.com/Brad-Schiff-1542576316048470/\nTwitch: https://www.twitch.tv/learnwebcode\nInstagram:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IWFpxhoVyxU",
        "title": "Deconstructing AI Hype & Nihilism",
        "publishedAt": "11 months ago",
        "durationSeconds": 599,
        "views": 3880,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Do I actually believe this or am I trying to sell my courses? Me: Yes.\n\n- My React Course https://learnwebcode.com/react/\n- My JavaScript Course https://learnwebcode.com/javascript/\n- My WordPress...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KcYh2iuabE8",
        "title": "Creating A Website Made My Dreams Come True",
        "publishedAt": "11 months ago",
        "durationSeconds": 677,
        "views": 4217,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "My link for you to create your own website https://learnwebcode.com/dreamhost\n\nCreating 1 website has changed my life forever. Hopefully this video provides you with a bit of inspiration or...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "w9r55wd2CAk",
        "title": "Simple As Possible TanStack Query Tutorial (React Query)",
        "publishedAt": "1 year ago",
        "durationSeconds": 810,
        "views": 17973,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Join my full React course here https://learnwebcode.com/react/\n\nLet's use TanStack Query (formerly React Query) to perform basic data fetching and caching for our traditional React SPA.\n\nBackend...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pXQgw2YeFYE",
        "title": "How I Use Motion in React (Exit Animations)",
        "publishedAt": "1 year ago",
        "durationSeconds": 352,
        "views": 3662,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Join my full React course here https://learnwebcode.com/react/\n\nI've recently switched from using React Transition Group to now using Motion.\n\nInstagram: https://www.instagram.com/javaschiff/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xxRAA0v2lvM",
        "title": "React Tutorial For Beginners",
        "publishedAt": "1 year ago",
        "durationSeconds": 8018,
        "views": 34131,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Join my full React course here https://learnwebcode.com/react/\n\nCodePen DOM Approach: https://codepen.io/learnwebcode/pen/qBEKBwx?editors=1010\nCodePen Data / Declarative Approach: https://codepen.i...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "azwJ7UjJykw",
        "title": "Create a WordPress Website with AI – Beginner Tutorial",
        "publishedAt": "1 year ago",
        "durationSeconds": 2489,
        "views": 16946,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Liftoff for free with hosting: https://learnwebcode.com/dreamhost/liftoff\nFree Setup Offer: Frustrated or short on time? DreamHost will build your site for FREE if you can’t with Liftoff...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Qs4kqqsAZ7E",
        "title": "Tailwind CSS v4.0 in WordPress",
        "publishedAt": "1 year ago",
        "durationSeconds": 569,
        "views": 17487,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I'm really enjoying Tailwind v4, and here's how I integrate it with my WordPress projects.\n\nCheck out my full WordPress course here https://learnwebcode.com/wordpress/\nNeed hosting? https://learnwe...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PMcRrXN-qSA",
        "title": "Post to WordPress From Node.js",
        "publishedAt": "1 year ago",
        "durationSeconds": 1415,
        "views": 5638,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Checkout the Epomaker Click here https://shortlink.ink/LearnWeb-click\n\nCheck out my full WordPress course here https://learnwebcode.com/wordpress/\nNeed hosting? https://learnwebcode.com/dreamhost...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "x615prLPIQA",
        "title": "WordPress JSON Fetching, Rewrite Rule & Transients Tutorial",
        "publishedAt": "1 year ago",
        "durationSeconds": 1536,
        "views": 5331,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out the Epomaker TH99 here https://shortlink.ink/LearnWeb-th99\n\nCheck out my full WordPress course here https://learnwebcode.com/wordpress/\nNeed hosting? https://learnwebcode.com/dreamhost...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "BrwdgJ0aGsA",
        "title": "WordPress Staging & Deployment Guide (GitHub Actions Workflow)",
        "publishedAt": "1 year ago",
        "durationSeconds": 2232,
        "views": 16839,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Here's how I use GitHub actions to setup smooth staging and live deployments for my WordPress projects.\n\nCheck out my full WordPress course here https://learnwebcode.com/wordpress/\nNeed hosting?...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "c0keQyJPyU4",
        "title": "WordPress REST API Tutorial (JavaScript Live Search Example)",
        "publishedAt": "1 year ago",
        "durationSeconds": 1350,
        "views": 11651,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Let's learn about the REST API by building a simple \"live search\" example with JavaScript.\n\nCheck out my full WordPress course here https://learnwebcode.com/wordpress/\nNeed hosting? https://learnwe...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KBF359_ZYZ0",
        "title": "WordPress Block Theme Development Tutorial",
        "publishedAt": "1 year ago",
        "durationSeconds": 1258,
        "views": 25516,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Let's learn how to code our own block theme and understand how FSE (full-site-editing) templates work.\n\nCheck out my full WordPress course here https://learnwebcode.com/wordpress/\nNeed hosting?...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UidNIrkqk-E",
        "title": "Add Custom Blocks To Your Classic Theme - WordPress Tutorial",
        "publishedAt": "1 year ago",
        "durationSeconds": 667,
        "views": 13132,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I use this approach when a client might want a bespoke feature that htey can sprinkle into various posts and pages. I find it more intuitive for clients than the older \"shortcode\" method.\n...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wUz69qRjN2s",
        "title": "WordPress Theme Development Tutorial (Classic Theme)",
        "publishedAt": "1 year ago",
        "durationSeconds": 1626,
        "views": 43542,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Classic themes are still my personal favorite way to build WordPress websites.\n\nCheck out my full WordPress course here https://learnwebcode.com/wordpress/\nNeed hosting? https://learnwebcode.com/dr...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dTApuVkXFxk",
        "title": "Create Your Own WordPress Theme",
        "publishedAt": "1 year ago",
        "durationSeconds": 802,
        "views": 61551,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to create your own theme in WordPress; with or without a plugin.\n\nCheck out my full WordPress course here https://learnwebcode.com/wordpress/\nNeed hosting? https://learnwebcode.com/dreamh...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qaetjPBm5x4",
        "title": "React JS in WordPress (Add Options to Block Type)",
        "publishedAt": "1 year ago",
        "durationSeconds": 1296,
        "views": 16597,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how React works inside the editor in WordPress.\n\nCheck out my full WordPress course here https://learnwebcode.com/wordpress/\nNeed hosting? https://learnwebcode.com/dreamhost\n\nLink to...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OA5JAmTcTz4",
        "title": "React JS Tutorial For Beginners 2025",
        "publishedAt": "1 year ago",
        "durationSeconds": 1244,
        "views": 39895,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Join my full React course here https://learnwebcode.com/react/\n\nInstagram: https://www.instagram.com/javaschiff/\nTwitter: https://twitter.com/learnwebcode\nFacebook: https://www.facebook.com/Brad-Sc...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rvom31steVo",
        "title": "JavaScript Tutorial For Beginners",
        "publishedAt": "1 year ago",
        "durationSeconds": 1456,
        "views": 7529,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Hands on practice with JavaScript building a temperature converter.\n\nCheck out my full JS course here https://learnwebcode.com/javascript/\n\nUse my DreamHost link http://click.dreamhost.com/aff_c?of...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kk1Q7xCXVrY",
        "title": "CSS Layout & Hover Fun: WordPress Block Type Tutorial",
        "publishedAt": "1 year ago",
        "durationSeconds": 1814,
        "views": 8308,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Create a two column layout with fun hover animation effects.\n\nCheck out my full WordPress course here https://learnwebcode.com/wordpress/\nNeed hosting? https://learnwebcode.com/dreamhost\n\nLink...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jGAW7Tv1tw0",
        "title": "PHP Tutorial: Creating a WordPress Block Type",
        "publishedAt": "1 year ago",
        "durationSeconds": 1280,
        "views": 13923,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Let's learn the very basics of PHP inside of WordPress.\n\nCheck out my full WordPress course here https://learnwebcode.com/wordpress/\nNeed hosting? https://learnwebcode.com/dreamhost\n\nLink to...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 3,
      "uploadsLast90d": 3,
      "uploadCadenceWeekly": 0.23,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 2961,
      "viewsPerVideoP90Last90d": 2961,
      "viewVelocityTrend": "rising"
    },
    "performanceBaseline": {
      "p50Views": 2961,
      "p90Views": 2961,
      "p99Views": 2961,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "click.dreamhost.com"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "web-services",
          "confidence": 0.3,
          "evidence": [
            "topic-pillar:learnwebcode",
            "topic-pillar:web development"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "learnwebcode.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "com",
        "share": 0.97,
        "evidenceVideoIds": [
          "FpeUCpCSjaM",
          "hnIq2mXWvqA",
          "6Q7rMFPnCvI",
          "oxtoCL80HnI",
          "h6cZ-CAUlgg"
        ]
      },
      {
        "label": "https",
        "share": 0.97,
        "evidenceVideoIds": [
          "FpeUCpCSjaM",
          "hnIq2mXWvqA",
          "6Q7rMFPnCvI",
          "oxtoCL80HnI",
          "h6cZ-CAUlgg"
        ]
      },
      {
        "label": "learnwebcode",
        "share": 0.97,
        "evidenceVideoIds": [
          "FpeUCpCSjaM",
          "hnIq2mXWvqA",
          "6Q7rMFPnCvI",
          "oxtoCL80HnI",
          "h6cZ-CAUlgg"
        ]
      },
      {
        "label": "course",
        "share": 0.73,
        "evidenceVideoIds": [
          "oxtoCL80HnI",
          "h6cZ-CAUlgg",
          "WALGNL0szks",
          "t1PtMhrIEpQ",
          "QkmPe68UePg"
        ]
      },
      {
        "label": "wordpress",
        "share": 0.57,
        "evidenceVideoIds": [
          "FpeUCpCSjaM",
          "hnIq2mXWvqA",
          "6Q7rMFPnCvI",
          "IWFpxhoVyxU",
          "azwJ7UjJykw"
        ]
      },
      {
        "label": "web development",
        "share": 0.03,
        "evidenceVideoIds": [
          "WALGNL0szks"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 45,
      "reason": "growth rising last 90d x fits web-services",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.85
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.5
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "rising 90d view velocity + fits web-services. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "LearnWebCode — 0.4M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 45,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.65,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "web-services",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "9de9399b6cb0b04320ca851a3f7f9926c0121a637fea17009eae8cc83ddb5234",
      "inputsHash": "57df5c57f61592019f4bcb6a5c6c5d7f0e4c7a8d8666079db3ff6c3619134ef2",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-rising",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:35.643Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "527dfe47ea5579a764317d7283494ca2f7b3b65f7525d198e513fda0efad4b20",
    "channelId": "UCZgt6AzoyjslHTC9dz0UoTw",
    "channelHandle": "@ByteByteGo",
    "channelName": "ByteByteGo",
    "channelUrl": "https://www.youtube.com/@ByteByteGo",
    "description": "Covering topics and trends in large-scale system design, from the authors of the best-selling System Design Interview book series. This channel is managed by Alex Xu and Sahn Lam.\n\nTo master system design, get our 158-page System Design PDF for free by subscribing to our weekly newsletter (10-min read): https://bit.ly/3tfAlYD\n\nTake our system design online course: https://bit.ly/3mlDSk9",
    "joinDate": null,
    "location": null,
    "subscribers": 1380000,
    "totalVideos": 165,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ZDRUyBUwc2WXZzvNKP9VS9myI6Mg2puQLaWyp4hibRu-owlsasZ3DVNGSQJwzO1IU-tqoMiGgdc=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "bytebytego.com",
        "url": "https://bytebytego.com/"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/bytebytego"
      },
      {
        "platform": "linkedin",
        "url": "https://www.linkedin.com/company/bytebytego"
      },
      {
        "platform": "blog.bytebytego.com",
        "url": "https://blog.bytebytego.com/"
      },
      {
        "platform": "bit.ly",
        "url": "https://bit.ly/3tfAlYD"
      },
      {
        "platform": "bit.ly",
        "url": "https://bit.ly/3mlDSk9"
      }
    ],
    "recentVideos": [
      {
        "videoId": "taSmwcqdkQk",
        "title": "What is a Data Lakehouse?",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 419,
        "views": 28825,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Start building a Data Lakehouse on Apache Iceberg in minutes: https://go.bytebytego.com/4cy8F77",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dUMsFQ8y3gM",
        "title": "Lessons from Building Cursor",
        "publishedAt": "2 months ago",
        "durationSeconds": 1534,
        "views": 15525,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "With Sualeh Asif (cofounder at Cursor) at The Pragmatic Summit. \n\nMore details in this accompanying article: https://newsletter.pragmaticengineer....\n\n0:00 Intro Composer 1.5 agentic model\n5:46 Cloud agents\n17:18 Software engineer 1 year from now\n20:59 Lessons learned while building a browser in one week\n24:00 Advice for engineers",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "z_NbVtbgBJw",
        "title": "What Is Redis Really About? Why Is It So Popular?",
        "publishedAt": "2 months ago",
        "durationSeconds": 541,
        "views": 94620,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Subscribe to our weekly newsletter to get a Free System Design PDF (368 pages): https://newsletter.bytebytego.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5kHpeVvO7cY",
        "title": "We Built a Driveway Derby Detector Using the New Ring Appstore APIs",
        "publishedAt": "4 months ago",
        "durationSeconds": 289,
        "views": 10451,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ring has announced a new Appstore and for the first time, third-party developers can request access to Ring APIs.We’re one of the first teams testing what developers can build with early access, starting with a Driveway Derby Detector. This is an early look at what developers can unlock by building on Ring.\n\nRequest early access: https://bit.ly/bbg-ring-developer\nExplore the Appstore: https://ring.com/appstore?utm_source=...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "avjX3QrYkls",
        "title": "Transformers Step-by-Step Explained (Attention Is All You Need)",
        "publishedAt": "5 months ago",
        "durationSeconds": 604,
        "views": 75463,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build better full-stack authentication and user management with Clerk: https://go.clerk.com/Q8BtT1n\n--\nWe just launched the all-in-one tech interview prep platform, covering coding, system design, OOD, and machine learning.\n\nLaunch sale: 50% off. Check it out: https://bit.ly/bbg-yt",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7_wkWQ9rB5I",
        "title": "System Design: Why is Kafka Popular?",
        "publishedAt": "6 months ago",
        "durationSeconds": 461,
        "views": 44281,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Warp for free at https://go.warp.dev/BYTEBYTEGO",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6u25GckPhLU",
        "title": "Design a Web Crawler: FAANG Interview Question",
        "publishedAt": "6 months ago",
        "durationSeconds": 341,
        "views": 43485,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build better full-stack authentication and user management with Clerk: https://go.clerk.com/Q8BtT1n",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YXkOdWBwqaA",
        "title": "Rate Limiter System Design: Token Bucket, Leaky Bucket, Scaling",
        "publishedAt": "6 months ago",
        "durationSeconds": 466,
        "views": 67647,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Warp is free to try but for a limited time, my friends at Warp are offering their Warp Pro plan for only $1. Use code BYTEBYTEGO to redeem here: https://go.warp.dev/BYTEBYTEGO",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "okrR1KXNLtA",
        "title": "FAANG System Design Interview: Design A Chat System (WhatsApp, Facebook Messenger, Discord, Slack)",
        "publishedAt": "7 months ago",
        "durationSeconds": 525,
        "views": 81959,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We just launched the all-in-one tech interview prep platform, covering coding, system design, OOD, and machine learning.\n\nLaunch sale: 50% off. Check it out: https://bit.ly/bytebyego-yt-desc",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jWRW2xGMqSw",
        "title": "System Design: Design YouTube",
        "publishedAt": "8 months ago",
        "durationSeconds": 433,
        "views": 54372,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We just launched the all-in-one tech interview prep platform, covering coding, system design, OOD, and machine learning.\n\nLaunch sale: 50% off. Check it out: https://bit.ly/bytebyego-yt-desc",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Dwt8R0KPu7k",
        "title": "How Key value Stores Work (Redis, DynamoDB, Memcached)?",
        "publishedAt": "8 months ago",
        "durationSeconds": 360,
        "views": 48888,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We just launched the all-in-one tech interview prep platform, covering coding, system design, OOD, and machine learning.\n\nLaunch sale: 50% off. Check it out: https://bit.ly/bytebyego-yt-desc",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "HHUi8F_qAXM",
        "title": "How Does a URL Shortener Work?",
        "publishedAt": "9 months ago",
        "durationSeconds": 404,
        "views": 166916,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We just launched the all-in-one tech interview prep platform, covering coding, system design, OOD, and machine learning.\n\nLaunch sale: 50% off. Check it out: https://bit.ly/bytebyego-yt-desc",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OvufRkoD-D0",
        "title": "System Design Interview – BIGGEST Mistakes to Avoid",
        "publishedAt": "9 months ago",
        "durationSeconds": 408,
        "views": 101826,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We just launched the all-in-one tech interview prep platform, covering coding, system design, OOD, and machine learning.\n\nLaunch sale: 50% off. Check it out: https://bit.ly/bytebyego-yt-desc",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uq-JpclPQV4",
        "title": "20 System Design Concepts You Must Know - Final Part",
        "publishedAt": "9 months ago",
        "durationSeconds": 565,
        "views": 89953,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We just launched the all-in-one tech interview prep platform, covering coding, system design, OOD, and machine learning.\n\nLaunch sale: 50% off. Check it out: https://bit.ly/bytebyego-yt-desc",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Qd9tJ3H_hPE",
        "title": "7 System Design Concepts Explained in 10 Minutes",
        "publishedAt": "10 months ago",
        "durationSeconds": 644,
        "views": 149718,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Checkout our bestselling System Design Interview books: \nVolume 1: https://amzn.to/3Ou7gkd\nVolume 2: https://amzn.to/3HqGozy\n\nThe digital version of System Design Interview books: https://bit.ly/3m...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nBvDtj-p6VM",
        "title": "Trillions of Web Pages: Where Does Google Store Them?",
        "publishedAt": "11 months ago",
        "durationSeconds": 516,
        "views": 50894,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Checkout our bestselling System Design Interview books: \nVolume 1: https://amzn.to/3Ou7gkd\nVolume 2: https://amzn.to/3HqGozy\n\nThe digital version of System Design Interview books: https://bit.ly/3m...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hltLrjabkiY",
        "title": "APIs Explained in 6 Minutes!",
        "publishedAt": "11 months ago",
        "durationSeconds": 401,
        "views": 156915,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Sign up now to access ChatLLM: https://bit.ly/42RlGDV\n\nGet a Free System Design PDF with 158 pages by subscribing to our weekly newsletter: https://bit.ly/bbg-social\n\nAnimation tools: Adobe...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2g1G8Jr88xU",
        "title": "System Design Was HARD - Until You Knew the Trade-Offs, Part 2",
        "publishedAt": "1 year ago",
        "durationSeconds": 372,
        "views": 56691,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Sign up now to access ChatLLM: https://bit.ly/42RlGDV\n\nGet a Free System Design PDF with 158 pages by subscribing to our weekly newsletter: https://bit.ly/bbg-social\n\nAnimation tools: Adobe...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1nENigGr-a0",
        "title": "System Design Was HARD - Until You Knew the Trade-Offs",
        "publishedAt": "1 year ago",
        "durationSeconds": 309,
        "views": 172282,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get a Free System Design PDF with 158 pages by subscribing to our weekly newsletter: https://bit.ly/bbg-social\n\nAnimation tools: Adobe Illustrator and After Effects.\n\nCheckout our bestselling...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_d0duu3dED4",
        "title": "Why Everyone’s Talking About MCP?",
        "publishedAt": "1 year ago",
        "durationSeconds": 303,
        "views": 452835,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Fixed 2:44–3:10 in the video uploaded to X (we’re unable to edit videos that are already uploaded to YouTube):  https://x.com/bytebytego/status/1907838355657863385\n\nGet a Free System Design...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eHEHE2fpnWQ",
        "title": "What Are AI Agents Really About?",
        "publishedAt": "1 year ago",
        "durationSeconds": 332,
        "views": 238567,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get a Free System Design PDF with 158 pages by subscribing to our weekly newsletter: https://bit.ly/bbg-social\n\nAnimation tools: Adobe Illustrator and After Effects.\n\nCheckout our bestselling...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hFURlsMwU7c",
        "title": "What Is the Most Popular Open-Source AI Stack?",
        "publishedAt": "1 year ago",
        "durationSeconds": 260,
        "views": 146388,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get a Free System Design PDF with 158 pages by subscribing to our weekly newsletter: https://bit.ly/bbg-social\n\nAnimation tools: Adobe Illustrator and After Effects.\n\nCheckout our bestselling...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3Lis4w4_bBc",
        "title": "8 Most Important Tips for Designing Fault-Tolerant System",
        "publishedAt": "1 year ago",
        "durationSeconds": 311,
        "views": 60316,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get a Free System Design PDF with 158 pages by subscribing to our weekly newsletter: https://bit.ly/bbg-social\n\nAnimation tools: Adobe Illustrator and After Effects.\n\nCheckout our bestselling...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3Kqal7QaCCM",
        "title": "How the Garbage Collector Works in Java, Python, and Go!",
        "publishedAt": "1 year ago",
        "durationSeconds": 309,
        "views": 96508,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get a Free System Design PDF with 158 pages by subscribing to our weekly newsletter: https://bit.ly/bbg-social\n\nAnimation tools: Adobe Illustrator and After Effects.\n\nCheckout our bestselling...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QEzbZKtLi-g",
        "title": "System Design: Why Is Docker Important?",
        "publishedAt": "1 year ago",
        "durationSeconds": 242,
        "views": 93724,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get a Free System Design PDF with 158 pages by subscribing to our weekly newsletter: https://bit.ly/bbg-social\n\nAnimation tools: Adobe Illustrator and After Effects.\n\nCheckout our bestselling...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LQuuoHTyYz8",
        "title": "What is a LOAD BALANCER really about?",
        "publishedAt": "1 year ago",
        "durationSeconds": 405,
        "views": 86370,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get a Free System Design PDF with 158 pages by subscribing to our weekly newsletter: https://bit.ly/bbg-social\n\nAnimation tools: Adobe Illustrator and After Effects.\n\nCheckout our bestselling...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GhX8sNyFo5w",
        "title": "API Vs SDK! What's the difference?",
        "publishedAt": "1 year ago",
        "durationSeconds": 292,
        "views": 133433,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get a Free System Design PDF with 158 pages by subscribing to our weekly newsletter: https://bit.ly/bbg-social\n\nAnimation tools: Adobe Illustrator and After Effects.\n\nCheckout our bestselling...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "BTjxUS_PylA",
        "title": "8 Most Important System Design Concepts You Should Know",
        "publishedAt": "1 year ago",
        "durationSeconds": 365,
        "views": 453145,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get a Free System Design PDF with 158 pages by subscribing to our weekly newsletter: https://bit.ly/bbg-social\n\nAnimation tools: Adobe Illustrator and After Effects.\n\nCheckout our bestselling...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-RDyEFvnTXI",
        "title": "Apache Kafka Fundamentals You Should Know",
        "publishedAt": "1 year ago",
        "durationSeconds": 295,
        "views": 370208,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get a Free System Design PDF with 158 pages by subscribing to our weekly newsletter: https://bit.ly/bbg-social\n\nAnimation tools: Adobe Illustrator and After Effects.\n\nCheckout our bestselling...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "14K_a2kKTxU",
        "title": "API Pagination: Making Billions of Products Scrolling Possible",
        "publishedAt": "1 year ago",
        "durationSeconds": 192,
        "views": 120120,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get a Free System Design PDF with 158 pages by subscribing to our weekly newsletter: https://bit.ly/bbg-social\n\nAnimation tools: Adobe Illustrator and After Effects.\n\nCheckout our bestselling...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 1,
      "uploadsLast90d": 3,
      "uploadCadenceWeekly": 0.23,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 28825,
      "viewsPerVideoP90Last90d": 28825,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 28825,
      "p90Views": 28825,
      "p99Views": 28825,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "bit.ly",
        "amzn.to"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "bytebytego.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 1,
        "evidenceVideoIds": [
          "taSmwcqdkQk",
          "dUMsFQ8y3gM",
          "z_NbVtbgBJw",
          "5kHpeVvO7cY",
          "avjX3QrYkls"
        ]
      },
      {
        "label": "design",
        "share": 0.9,
        "evidenceVideoIds": [
          "z_NbVtbgBJw",
          "avjX3QrYkls",
          "7_wkWQ9rB5I",
          "6u25GckPhLU",
          "YXkOdWBwqaA"
        ]
      },
      {
        "label": "system",
        "share": 0.87,
        "evidenceVideoIds": [
          "z_NbVtbgBJw",
          "avjX3QrYkls",
          "7_wkWQ9rB5I",
          "YXkOdWBwqaA",
          "okrR1KXNLtA"
        ]
      },
      {
        "label": "bit",
        "share": 0.77,
        "evidenceVideoIds": [
          "5kHpeVvO7cY",
          "avjX3QrYkls",
          "okrR1KXNLtA",
          "jWRW2xGMqSw",
          "Dwt8R0KPu7k"
        ]
      },
      {
        "label": "newsletter",
        "share": 0.5,
        "evidenceVideoIds": [
          "dUMsFQ8y3gM",
          "z_NbVtbgBJw",
          "hltLrjabkiY",
          "2g1G8Jr88xU",
          "1nENigGr-a0"
        ]
      },
      {
        "label": "machine learning",
        "share": 0.23,
        "evidenceVideoIds": [
          "avjX3QrYkls",
          "okrR1KXNLtA",
          "jWRW2xGMqSw",
          "Dwt8R0KPu7k",
          "HHUi8F_qAXM"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 29,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "ByteByteGo — 1.4M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 29,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.81,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "527dfe47ea5579a764317d7283494ca2f7b3b65f7525d198e513fda0efad4b20",
      "inputsHash": "dd4df18fca5b0b7c53c768a3ac9599a1dbf7e9973a0f1ec34508a4018f9d1627",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:35.782Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "accc09aaab7334a3a9e3bb910536c5ff7258a315fc479a35cf05b6735a99f590",
    "channelId": "UC8ENHE5xdFSwx71u3fDH5Xw",
    "channelHandle": "@ThePrimeagen",
    "channelName": "ThePrimeagen",
    "channelUrl": "https://www.youtube.com/@ThePrimeagen",
    "description": "Vim - Rust - TypeScript",
    "joinDate": null,
    "location": null,
    "subscribers": 542000,
    "totalVideos": 105,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_laY82JAzs_2edBDxrxLgLWshhMK04SpAqOfoEzexOBZg=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "twitch",
        "url": "https://twitch.tv/ThePrimeagen"
      },
      {
        "platform": "instagram",
        "url": "https://instagram.com/ThePrimeagen"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/ThePrimeagen"
      },
      {
        "platform": "tiktok",
        "url": "https://www.tiktok.com/@theprimeagen"
      }
    ],
    "recentVideos": [
      {
        "videoId": "taoAAcS5PSw",
        "title": "Musician turned Programmer turned Musician",
        "publishedAt": "9 months ago",
        "durationSeconds": 496,
        "views": 138002,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I made music... with crows, neovim, javascript and teej.\n\nDon't forget, check out our coffee shop if you live in the US!\nssh terminal.shop\n\nWe have more goodies and more ideas coming soon. Hope you enjoyed the video. See you all in the next one.\n\nThank You DJ Dave for the inspiration!\nhttps://linktr.ee/dj_dave\n\nTwitch :   / theprimeagen  \nDiscord:   / discord  \nSupport me (by becoming a backend dev): https://boot.dev/prime\n\n📌 Chapters:\n\n00:00:00 - From Gaming to Programming\n00:00:35 - High School Reality Check\n00:01:02 - The Social Network Effect\n00:01:27 - 16 Years of Pure Programming Life\n00:01:59 - The Algorithm Strikes: Discovering Strudel\n00:02:20 - JavaScript Music Programming\n00:02:53 - Playwright + Neovim\n00:03:25 - Building a DSL and Making First Sounds\n00:03:41 - Understanding Strudel Cycles and Mini Notation\n00:04:24 - Adding Bass, Structure, and Effects\n00:05:25 - Creating Musical Arrangements with Ranges\n00:06:07 - The Full Song Creation Process\n00:07:56 - Terminal Coffee",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZH3iKbEiks0",
        "title": "I was wrong btw",
        "publishedAt": "10 months ago",
        "durationSeconds": 1080,
        "views": 823881,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Thanks to our sponsor, https://blacksmith.sh today! Speed up your GitHub Actions💨 AND pay less!!\n\nTwitch   / theprimeagen  \nDiscord   / discord  \n\nBecome Backend Dev: https://boot.dev/prime\n(plus i make courses for them)\n\nif you need coffee\nssh terminal.shop\n\nThis is also the best way to support me is to support yourself becoming a better backend engineer. \n\n📌 Chapters:\n\n00:00:00 - Prime's Confession\n00:01:20 - Prime's Philosophy\n00:04:57 - Blacksmith.sh Sponsor!\n00:05:38 - Managing Windows\n00:06:47 - Why Prime is late to everything\n00:07:58 - It's hard being an Arch Boy\n00:09:05 - Organizing Workspaces\n00:10:54 - Never Abandon TMUX\n00:11:43 - I use vim btw\n00:13:20 - undotree is underrated\n00:15:23 - Navigation is key\n00:17:00 - I use arch btw\n\n📕 Content\n\nWhy PewDiePie unintentionally convinced me to use Arch\nHow I built a clean, fast developer workflow on Linux\nMy minimalist “rice” philosophy focused on speed over style\nThe real reason I still use tmux and Vim\nWhy fast navigation is more important than saving keystrokes\nHow I replaced annoying workflows with efficient tools\nMy Hyperland setup with no animations and no bloat\nThe importance of workspaces, consistent window management, and reducing friction\nWhy flashy configs are a distraction from good dev experience\nTips to cut mental overhead and stay in the zone",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "A_XGsAl-LqY",
        "title": "the worst man in tech",
        "publishedAt": "1 year ago",
        "durationSeconds": 385,
        "views": 158144,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Twitch : https://twitch.tv/ThePrimeagen\nDiscord: https://discord.gg/ThePrimeagen\nSupport me (by becoming a backend dev): https://boot.dev/prime\nGet production ready SQLite with Turso: https://turso...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GwcFxTuMYmU",
        "title": "I Went To DEFCON!",
        "publishedAt": "1 year ago",
        "durationSeconds": 985,
        "views": 432006,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Twitch : https://twitch.tv/ThePrimeagen\nDiscord: https://discord.gg/ThePrimeagen\nSupport me (by becoming a backend dev): https://boot.dev/prime\n\nGet production ready SQLite with Turso: https://turs...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3f9tbqSIm-E",
        "title": "1000 Players - One Game of Doom",
        "publishedAt": "1 year ago",
        "durationSeconds": 942,
        "views": 279820,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Twitch\nEverything is built live on twitch\nTwitch : https://bit.ly/3xhFO3E\nDiscord: discord.gg/ThePrimeagen\nSpotify DevHour: https://open.spotify.com/show/4MLaDrQ...\nEditor\n   / flipmediaprod    \n https://x.com/stxssx\n\nJoin this channel to get access to perks:\n   / @theprimeagen  \n\nLinks\nLinode: https://linode.com/prime\n  / discord  \nTwitch:   / theprimeagen  \nInsta:   / theprimeagen  \nTwitter:   / theprimeagen  \nVimRC & i3: https://github.com/ThePrimeagen/.dotf...\nKeyboard 15% off https://bit.ly/Prime360 USE CODE PRIME360  \n\n#coding #neovim  #typescript  #programming #vim #softwareengineering #codinglife #webdesign #webdevelopment #webdev #javascript #rustlang #rust #twitch #twitchstreamer #programmerhumor #codinghumor #software #softwareengineer #softwaredeveloper #softwaredevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UWb1dw_kbvo",
        "title": "This Is Goodbye",
        "publishedAt": "2 years ago",
        "durationSeconds": 261,
        "views": 521973,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Twitch\nEverything is built live on twitch\nTwitch : https://bit.ly/3xhFO3E\nDiscord: discord.gg/ThePrimeagen\nSpotify DevHour: https://open.spotify.com/show/4MLaDrQ...\nEditor\nAll my videos are edited by Flip.  Give him a follow!    / flipmediaprod    \n\nJoin this channel to get access to perks:\n   / @theprimeagen  \n\nLinks\nLinode: https://linode.com/prime\n  / discord  \nTwitch:   / theprimeagen  \nInsta:   / theprimeagen  \nTwitter:   / theprimeagen  \nVimRC & i3: https://github.com/ThePrimeagen/.dotf...\nKeyboard 15% off https://bit.ly/Prime360 USE CODE PRIME360  \n\n#coding #neovim  #typescript  #programming #vim #softwareengineering #codinglife #webdesign #webdevelopment #webdev #javascript #rustlang #rust #twitch #twitchstreamer #programmerhumor #codinghumor #software #softwareengineer #softwaredeveloper #softwaredevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "x7v6SNIgJpE",
        "title": "FULL Introduction To HTMX Using Golang",
        "publishedAt": "2 years ago",
        "durationSeconds": 7351,
        "views": 488433,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This was a live course for FrontEnd Masters.  They have been nice enough to let me put it on my channel.\n\nDuring the recording of this I was pretty new to Golang so forgive me for any non awesome go moves.  The reason i chose go was to show that you DONT have to use JS for your backend.  Its up to you to decide what backend\n\nInterested in MORE FEM?: https://frontendmasters.com/join/?cod... \n\ninterested in more of my courses?\nhttps://frontendmasters.com/teachers/...\n\nTwitch\nEverything is built live on twitch\nTwitch : https://bit.ly/3xhFO3E\nDiscord: discord.gg/ThePrimeagen\nSpotify DevHour: https://open.spotify.com/show/4MLaDrQ...\nEditor\nAll my videos are edited by Flip.  Give him a follow!    / flipmediaprod    \n\nJoin this channel to get access to perks:\n   / @theprimeagen  \n\nLinks\nLinode: https://linode.com/prime\n  / discord  \nTwitch:   / theprimeagen  \nInsta:   / theprimeagen  \nTwitter:   / theprimeagen  \nVimRC & i3: https://github.com/ThePrimeagen/.dotf...\nKeyboard 15% off https://bit.ly/Prime360 USE CODE PRIME360  \n\n#coding #neovim  #typescript  #programming #vim #softwareengineering #codinglife #webdesign #webdevelopment #webdev #javascript #rustlang #rust #twitch #twitchstreamer #programmerhumor #codinghumor #software #softwareengineer #softwaredeveloper #softwaredevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SCPVDpyApgQ",
        "title": "Are Developers Ok?",
        "publishedAt": "2 years ago",
        "durationSeconds": 706,
        "views": 203040,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Lets deep dive into the world of open source and github and ask the age old question, are developers ok?\n\nCheck out todays sponsor!\nhttps://gt.dev/prime\n\nDo you want to become a backend dev?\nDid you know I am about to make courses exclusively for boot dev?\ncheck out https://boot.dev/prime \n\nsign up, become a back end dev, and help me out :)\n\nTwitch\nEverything is built live on twitch\nTwitch : https://bit.ly/3xhFO3E\nDiscord: discord.gg/ThePrimeagen\nSpotify DevHour: https://open.spotify.com/show/4MLaDrQ...\nEditor\nAll my videos are edited by Flip.  Give him a follow!    / flipmediaprod    \n\nJoin this channel to get access to perks:\n   / @theprimeagen  \n\nLinks\nLinode: https://linode.com/prime\n  / discord  \nTwitch:   / theprimeagen  \nInsta:   / theprimeagen  \nTwitter:   / theprimeagen  \nVimRC & i3: https://github.com/ThePrimeagen/.dotf...\nKeyboard 15% off https://bit.ly/Prime360 USE CODE PRIME360  \n\n#coding #neovim  #typescript  #programming #vim #softwareengineering #codinglife #webdesign #webdevelopment #webdev #javascript #rustlang #rust #twitch #twitchstreamer #programmerhumor #codinghumor #software #softwareengineer #softwaredeveloper #softwaredevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6jPiuOXmxEc",
        "title": "What You Need To Learn 2023 (as a software engineer)",
        "publishedAt": "2 years ago",
        "durationSeconds": 225,
        "views": 292974,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Twitch\nEverything is built live on twitch\nTwitch : https://bit.ly/3xhFO3E\nDiscord: discord.gg/ThePrimeagen\nSpotify DevHour: https://open.spotify.com/show/4MLaDrQ...\nEditor\nAll my videos are edited by Flip.  Give him a follow!    / flipmediaprod    \n\nJoin this channel to get access to perks:\n   / @theprimeagen  \n\nLinks\nLinode: https://linode.com/prime\n  / discord  \nTwitch:   / theprimeagen  \nInsta:   / theprimeagen  \nTwitter:   / theprimeagen  \nVimRC & i3: https://github.com/ThePrimeagen/.dotf...\nKeyboard 15% off https://bit.ly/Prime360 USE CODE PRIME360  \n\n#coding #neovim  #typescript  #programming #vim #softwareengineering #codinglife #webdesign #webdevelopment #webdev #javascript #rustlang #rust #twitch #twitchstreamer #programmerhumor #codinghumor #software #softwareengineer #softwaredeveloper #softwaredevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "o462tY758CY",
        "title": "I Fixed Git",
        "publishedAt": "2 years ago",
        "durationSeconds": 290,
        "views": 119872,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Finally Git will be fixed.  We never have to worry about Git being the way it is with these changes and you can finally sleep assured that your life will be easier.\n\nTELL ME WHAT YOU HATE ABOUT C++ AND WE WILL FIX IT\n  / 1684206940086206466  \n\nLive on Twitch\nTwitch : https://bit.ly/3xhFO3E\n\nDegens Here\nDiscord: discord.gg/ThePrimeagen\nSpotify DevHour: https://open.spotify.com/show/4MLaDrQ...\nEditor\nAll my videos are edited by Flip.  Give him a follow!    / flipmediaprod    \n\nJoin this channel to get access to perks:\n   / @theprimeagen  \n\nLinks\nLinode: https://linode.com/prime\n  / discord  \nTwitch:   / theprimeagen  \nInsta:   / theprimeagen  \nTwitter:   / theprimeagen  \nVimRC & i3: https://github.com/ThePrimeagen/.dotf...\nKeyboard 15% off https://bit.ly/Prime360 USE CODE PRIME360  \n\n#coding #neovim  #typescript  #programming #vim #softwareengineering #codinglife #webdesign #webdevelopment #webdev #javascript #rustlang #rust #twitch #twitchstreamer #programmerhumor #codinghumor #software #softwareengineer #softwaredeveloper #softwaredevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "E8cM12jRH7k",
        "title": "How To Learn A New Programming Language",
        "publishedAt": "2 years ago",
        "durationSeconds": 384,
        "views": 376966,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "As a 20 Year veteran of the HTML programming language here is my guide to learning a language quickly.\n\nAre you ready to take your programming skills to the next level? s a 20 Year veteran...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TB0cXGvuw9A",
        "title": "Stepping Down From RustConf and Rust Project Controversy",
        "publishedAt": "2 years ago",
        "durationSeconds": 210,
        "views": 104594,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Björkus \"Fix It Or Die Trying\" Dorkus has stepped down from rust conf 2023 this year.  I read the article on twitch and here is my thoughts.\n\nPlease read it yourself and show some support...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PHvbLmLPX6s",
        "title": "This Lesson Taught Me How To Do Better Benchmarks",
        "publishedAt": "2 years ago",
        "durationSeconds": 359,
        "views": 72362,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This benchmark was HORRIBLE but once I pushed it to the server, something WILD happened instead. \n\n### Twitch\nEverything is built live on twitch\nTwitch : https://bit.ly/3xhFO3E\nDiscord: discord.gg/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gutR_LNoZw0",
        "title": "Rust Foundation IS DOING WHAT????",
        "publishedAt": "3 years ago",
        "durationSeconds": 497,
        "views": 360178,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The new proposed trademark policy of the rust foundation is absolutely nuts, lets go over it\n\nhttps://twitter.com/rust_foundation/status/1644132378858729474\n\n### Twitch\nEverything is built...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2gG08VUuwzg",
        "title": "Twitter's Algorithm Has MASSIVE Problems",
        "publishedAt": "3 years ago",
        "durationSeconds": 301,
        "views": 218927,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Twitter's Algorithm went Open-Source on GitHub...and it might just be the worst idea ever so Prime is here to react to it. Overdramatically. In the best way possible. \n\n### Twitch\nEverything...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "FrMRyXtiJkc",
        "title": "How to Vim in 2023: Tips and Tricks",
        "publishedAt": "3 years ago",
        "durationSeconds": 953,
        "views": 501687,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This is not another tutorial on how to do some key combos or how to install plugins, its about _using_ the plugins and everything together to have a complete experience!  I hope you enjoyed...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RDd71IUIgpg",
        "title": "CoPilot Review: My Thoughts After 6 Months",
        "publishedAt": "3 years ago",
        "durationSeconds": 585,
        "views": 574032,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I've been using CoPilot for 6 months now, and I wanted to share my thoughts on it. It's a great coding tool, but there are some shortcomings.\n\n### Twitch\nEverything is built live on twitch...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Epwlk4B90vk",
        "title": "RUST Enums ARE Better",
        "publishedAt": "3 years ago",
        "durationSeconds": 349,
        "views": 161660,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "RUST does ENUMS better than Typescript and that’s a fact, no matter what they say.\n\n### Twitch\nEverything is built live on twitch\nTwitch : https://bit.ly/3xhFO3E\nDiscord: discord.gg/ThePrimeagen...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TTjYjSEGHek",
        "title": "JSON, I hardly know 'er",
        "publishedAt": "3 years ago",
        "durationSeconds": 172,
        "views": 214023,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "### Twitch\nEverything is built live on twitch\nTwitch : https://bit.ly/3xhFO3E\nDiscord: discord.gg/ThePrimeagen\nSpotify DevHour: https://open.spotify.com/show/4MLaDrQcQ5mi3rsnvWkwPt\n### Editor...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ReeLQR7KCcM",
        "title": "What Next...Finding a New Job In Software",
        "publishedAt": "3 years ago",
        "durationSeconds": 225,
        "views": 196827,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "As a Netflix Developer, my job is fairly secure but in this video I wanted to give my best tips on how to get a job in tech or get rehired! \n\n### Twitch\nEverything is built live on twitch\nTwitch...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "boD0ReK62FI",
        "title": "Looking Under the Hood of JavaScript",
        "publishedAt": "3 years ago",
        "durationSeconds": 394,
        "views": 200725,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ever wonder what in the world is going on with JS?  Well in this we deep dive into v8, into the internals to figure out WTF IS GOING ON WITH SETTIMEOUT???\n\nSMI in v8?? https://v8.dev/blog/pointer-c...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "U16RnpV48KQ",
        "title": "This Algorithm is 1,606,240% FASTER",
        "publishedAt": "3 years ago",
        "durationSeconds": 811,
        "views": 952583,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "7 Steps it took to make an algorithm 1,606,242% faster!!!!\n\nBecome a backend engineer.  Its my favorite site\nhttps://boot.dev/?promo=PRIMEAGENYT\n\nThis is also the best way to support me is...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nMHxdz-N7EU",
        "title": "Primeagen Answers the Webs Most Asked Questions for a Software Engineer",
        "publishedAt": "3 years ago",
        "durationSeconds": 356,
        "views": 184986,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I just wanted to take some time and talk about my most asked question\n\n### Twitch\nEverything is built live on twitch\nTwitch : https://bit.ly/3xhFO3E\nDiscord: discord.gg/ThePrimeagen\nSpotify...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7ap3CkBEpOE",
        "title": "Faster than your favorite JS framework?",
        "publishedAt": "3 years ago",
        "durationSeconds": 330,
        "views": 129029,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "### vim royale (where this experiment was originally created in)\nhttps://github.com/theprimeagen/vim-royale\n\n### Twitch\nEverything is built live on twitch\nTwitch : https://bit.ly/3xhFO3E\nDiscord:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JjHFubUPLV0",
        "title": "From Meth To Netflix",
        "publishedAt": "3 years ago",
        "durationSeconds": 630,
        "views": 1333001,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This is just my story about how I went from a life totally under control to a life and control.\n\nBecome a backend engineer.  Its my favorite site\nhttps://boot.dev/?promo=PRIMEAGENYT\n\nThis is...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "w7i4amO_zaE",
        "title": "0 to LSP : Neovim RC From Scratch",
        "publishedAt": "3 years ago",
        "durationSeconds": 1847,
        "views": 1919733,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I setup the entire neovim experience from nothing to LSP!\n\nBecome a backend engineer.  Its my favorite site\nhttps://boot.dev/?promo=PRIMEAGENYT\n\nThis is also the best way to support me is to...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dQYXM4U831A",
        "title": "Will ChatGPT Terminate Your Job?",
        "publishedAt": "3 years ago",
        "durationSeconds": 282,
        "views": 128593,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "My thoughts on the future of programming and how to keep your job safe\n\n### Twitch\nEverything is built live on twitch\nTwitch : https://bit.ly/3xhFO3E\nDiscord: discord.gg/ThePrimeagen\nSpotify...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZNFdkTIzdXM",
        "title": "Rust for TypeScript devs : Borrow Checker",
        "publishedAt": "3 years ago",
        "durationSeconds": 529,
        "views": 249776,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Borrow checker is really difficult.  the goal of this video is to help you understand the borrow checker better.\n\n### ChiselStrike!\nGIVE THIS A STAR ALREADY!  It has some pretty incredible...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KfENDDEpCsI",
        "title": "Vim As Your Editor - Vertical Movements",
        "publishedAt": "3 years ago",
        "durationSeconds": 566,
        "views": 197661,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Everything Vertical Movements.  This will be an awesome guide to make you fast\n\n### Twitch\nEverything is built live on twitch\nTwitch : https://bit.ly/3xhFO3E\nDiscord: discord.gg/ThePrimeagen...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "461735zrjzY",
        "title": "React Is This Fast???",
        "publishedAt": "3 years ago",
        "durationSeconds": 433,
        "views": 111619,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "### Twitch\nEverything is built live on twitch\nTwitch : https://bit.ly/3xhFO3E\nDiscord: discord.gg/ThePrimeagen\nSpotify DevHour: https://open.spotify.com/show/4MLaDrQcQ5mi3rsnvWkwPt\n### Editor...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "bit.ly"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "twitch.tv",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.77,
        "evidenceVideoIds": [
          "taoAAcS5PSw",
          "ZH3iKbEiks0",
          "A_XGsAl-LqY",
          "GwcFxTuMYmU",
          "3f9tbqSIm-E"
        ]
      },
      {
        "label": "twitch",
        "share": 0.77,
        "evidenceVideoIds": [
          "taoAAcS5PSw",
          "ZH3iKbEiks0",
          "A_XGsAl-LqY",
          "GwcFxTuMYmU",
          "3f9tbqSIm-E"
        ]
      },
      {
        "label": "everything",
        "share": 0.63,
        "evidenceVideoIds": [
          "ZH3iKbEiks0",
          "3f9tbqSIm-E",
          "UWb1dw_kbvo",
          "x7v6SNIgJpE",
          "SCPVDpyApgQ"
        ]
      },
      {
        "label": "discord",
        "share": 0.6,
        "evidenceVideoIds": [
          "taoAAcS5PSw",
          "ZH3iKbEiks0",
          "A_XGsAl-LqY",
          "GwcFxTuMYmU",
          "3f9tbqSIm-E"
        ]
      },
      {
        "label": "live",
        "share": 0.57,
        "evidenceVideoIds": [
          "taoAAcS5PSw",
          "3f9tbqSIm-E",
          "UWb1dw_kbvo",
          "x7v6SNIgJpE",
          "SCPVDpyApgQ"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Monday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 32,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "ThePrimeagen — 0.5M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 32,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.78,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "accc09aaab7334a3a9e3bb910536c5ff7258a315fc479a35cf05b6735a99f590",
      "inputsHash": "493bb8cc113cb7eb5f79a8b7e2f4fe788a9e7c1ebd25b28534db0448abef5baa",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:36.717Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "375d9fc295460511575b57d53fc46352b282f096527d4e73be4a93e4f160a59d",
    "channelId": "UC_ML5xP23TOWKUcc-oAE_Eg",
    "channelHandle": "@hnasr",
    "channelName": "Hussein Nasser",
    "channelUrl": "https://www.youtube.com/@hnasr",
    "description": "Join me as we discuss various software engineering topics with examples and add fun elements to them. We always try to learn by example here in this educational Youtube channel which we believe is the right way to learn. I love Software engineering (especially the backend) and I strive to be a better software engineer every day. Join me on this journey and let us learn together.  \n\nAll opinions, suggestions, and tips I provide in all of this channel's content are my own. Information provided is for educational purposes only. \n\nConsider becoming a member to support the channel\nhttps://www.youtube.com/channel/UC_ML5xP23TOWKUcc-oAE_Eg/join\n\nMy book Root Cause\nhttps://amzn.to/4cKfZhe\n\nCheck out my courses\nhttps://courses.husseinnasser.com\n\nStay awesome!\nHussein Nasser,\nhttp://www.husseinnasser.com\nFeel free to shoot me an email h@husseinnasser.com\ntwitter: @hnasr",
    "joinDate": null,
    "location": null,
    "subscribers": 492000,
    "totalVideos": 1000,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/wdZxAigelIgebOT-NlWwVnvOijYuHttaa5jSpCuxlYajSEbfp75dVPSItmer-6jCrKACKChheAE=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "database.husseinnasser.com",
        "url": "https://database.husseinnasser.com"
      },
      {
        "platform": "courses.husseinnasser.com",
        "url": "https://courses.husseinnasser.com/bundle"
      },
      {
        "platform": "amzn.to",
        "url": "https://amzn.to/4cfQjJj"
      },
      {
        "platform": "amzn.to",
        "url": "https://amzn.to/4cKfZhe"
      },
      {
        "platform": "courses.husseinnasser.com",
        "url": "https://courses.husseinnasser.com"
      },
      {
        "platform": "husseinnasser.com",
        "url": "http://www.husseinnasser.com"
      }
    ],
    "recentVideos": [
      {
        "videoId": "Jx_4kfrQsiA",
        "title": "Root Cause, Two Decades of Backend Bugs",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 589,
        "views": 8771,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "My Book, Root Cause: Stories and Lessons from Two Decades of Backend Engineering Bugs \npaperback\nhttps://amzn.to/4cKfZhe\n\nebook\nhttps://amzn.to/4cfQjJj\n\nI wrote a new book that has been in the works for years. It is called Root Cause, and it is for those who enjoy the art of backend engineering.\n\nEarly in my career, 20 years ago, I built backend and database applications without fully grasping their inner mechanics. Performance issues, race conditions, bugs, and even data corruption often left me lost.\n\nSince that day, I resolved to truly understand how systems work. From networking protocols and intermediary proxies to backend services and various database engines. I made it a habit to follow every request on its journey through the dark alleys of the network, down to the bowels of the database engine, meanwhile interacting with various kernel data structures in the process at every hop, and back.\n\nI became obsessed with understanding what happens behind the scenes in software. Not just what breaks, and how but also why and what was the source of the bleed. \n\nRoot Cause is a collection of the most interesting bugs I encountered, ranging from performance bottlenecks and non-deterministic crashes to subtle data inconsistencies and incorrect results.\n\nThis book is for anyone curious about how production backend systems really behave under pressure, and how to debug them when they don’t. Even when you don’t have access to the source code.\n\nRoot cause consists of 15 chapters, each is a story about a backend bug, with investigation, diagrams, a section of a fundamental concept until the root cause is revealed.\n\nIntermediate and Advanced Backend Engineering Course Bundle\nhttps://courses.husseinnasser.com/bundle\n\n\nBackend, Database, OS Courses \nhttps://courses.husseinnasser.com\n\nFundamentals of Database Engineering \nhttps://database.husseinnasser.com\n\nFundamentals of Operating Systems Course \nhttps://oscourse.win\n\nNodeJS Internals and Architecture\nhttps://node.win \n\nFundamentals of Backend Engineering   \nhttps://backend.win\n\nFollow me on Substack\nhttps://hnasr.substack.com\n\nMembers Only Content\n   • Members-only videos  \n \nBecome a Member on YouTube\n   / @hnasr  \n\nStay Awesome,\nHussein",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "x9iHwoAbwiA",
        "title": "Socket Management in Backend System Design",
        "publishedAt": "3 months ago",
        "durationSeconds": 2726,
        "views": 12823,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video I introduce 5 different design patterns for building backend applications. Each mode explains how a socket listener is established, a connections are established and how threads and connections are managed to read, write and process requests. \n\nMy Book \npaperback\nhttps://amzn.to/4cKfZhe\n\nebook\nhttps://amzn.to/4cfQjJj\n\n\n0:00 Intro\n2:00 Single Thread\n6:00 Multiple Threads\n8:00 The problem with multi threading\n12:16 Socket Listener\n19:30 connection establishment \n26:30 Single Listener Single Thread Mode\n30:30 Single Listener Multiple Threads Mode\n35:00 Single Listener Load Balanced Threads Mode\n38:12 Multiple Listeners SO_REUSEPORT\n41:25 Multiple Single Threaded Backend\n\nFundamentals of Operating Systems Course \nhttps://courses.husseinnasser.com\n\nNodeJS Internals and Architecture\nhttps://node.win \n\nBackend Troubleshooting Course\nhttps://performance.husseinnasser.com\n\nFundamentals of Backend Engineering   \nhttps://backend.win\n\nFundamentals of Networking for Effective Backends udemy course (link redirects to udemy with coupon)\nhttps://network.husseinnasser.com\n\nFundamentals of Database Engineering udemy course (link redirects to udemy with coupon)\nhttps://database.husseinnasser.com\n\nFollow me on Medium\n  / membership  \n\n\nIntroduction to NGINX  (link redirects to udemy with coupon)\nhttps://nginx.husseinnasser.com\n\nPython on the Backend (link redirects to udemy with coupon)\nhttps://python.husseinnasser.com\n\nBecome a Member on YouTube\n   / @hnasr  \n\nBuy me a coffee if you liked this\nhttps://www.buymeacoffee.com/hnasr\n\nArabic Software Engineering Channel \n   / @husseinnasser  \n\n🔥 Members Only Content\n   • Members-only videos  \n \n\n\n🏭 Backend Engineering Videos in Order\nhttps://backend.husseinnasser.com\n\n💾 Database Engineering Videos\n   • Database Engineering  \n\n🎙️Listen to the Backend Engineering Podcast\nhttps://husseinnasser.com/podcast \n\nGears and tools used on the Channel (affiliates)\n\n🖼️ Slides and Thumbnail Design \nCanva\nhttps://partner.canva.com/c/2766475/6...\n \n\nStay Awesome,\nHussein",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "yg3gaQSNfQs",
        "title": "The genius of Linux Page Tables",
        "publishedAt": "4 months ago",
        "durationSeconds": 1304,
        "views": 2767,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Fundamentals of Operating Systems Course \nhttps://oscourse.win\n\nWatch full show here    • Page Tables | The Backend Engineering Show  \n\nNodeJS Internals and Architecture\nhttps://node.win \n\nBackend Troubleshooting Course\nhttps://performance.husseinnasser.com\n\nFundamentals of Backend Engineering   \nhttps://backend.win\n\nFundamentals of Networking for Effective Backends udemy course (link redirects to udemy with coupon)\nhttps://network.husseinnasser.com\n\nFundamentals of Database Engineering udemy course (link redirects to udemy with coupon)\nhttps://database.husseinnasser.com\n\nFollow me on Medium\n  / membership  \n\n\nIntroduction to NGINX  (link redirects to udemy with coupon)\nhttps://nginx.husseinnasser.com\n\nPython on the Backend (link redirects to udemy with coupon)\nhttps://python.husseinnasser.com\n\nBecome a Member on YouTube\n   / @hnasr  \n\nBuy me a coffee if you liked this\nhttps://www.buymeacoffee.com/hnasr\n\nArabic Software Engineering Channel \n   / @husseinnasser  \n\n🔥 Members Only Content\n   • Members-only videos  \n \n\n\n🏭 Backend Engineering Videos in Order\nhttps://backend.husseinnasser.com\n\n💾 Database Engineering Videos\n   • Database Engineering  \n\n🎙️Listen to the Backend Engineering Podcast\nhttps://husseinnasser.com/podcast \n\nGears and tools used on the Channel (affiliates)\n\n🖼️ Slides and Thumbnail Design \nCanva\nhttps://partner.canva.com/c/2766475/6...\n \n\nStay Awesome,\nHussein",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bP9yCSdMFXs",
        "title": "Translation Lookaside buffer",
        "publishedAt": "4 months ago",
        "durationSeconds": 718,
        "views": 1853,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Fundamentals of Operating Systems Course \nhttps://oscourse.win\n\nWatch full show here    • Page Tables | The Backend Engineering Show  \n\n\nNodeJS Internals and Architecture\nhttps://node.win \n\nBackend Troubleshooting Course\nhttps://performance.husseinnasser.com\n\nFundamentals of Backend Engineering   \nhttps://backend.win\n\nFundamentals of Networking for Effective Backends udemy course (link redirects to udemy with coupon)\nhttps://network.husseinnasser.com\n\nFundamentals of Database Engineering udemy course (link redirects to udemy with coupon)\nhttps://database.husseinnasser.com\n\nFollow me on Medium\n  / membership  \n\n\nIntroduction to NGINX  (link redirects to udemy with coupon)\nhttps://nginx.husseinnasser.com\n\nPython on the Backend (link redirects to udemy with coupon)\nhttps://python.husseinnasser.com\n\nBecome a Member on YouTube\n   / @hnasr  \n\nBuy me a coffee if you liked this\nhttps://www.buymeacoffee.com/hnasr\n\nArabic Software Engineering Channel \n   / @husseinnasser  \n\n🔥 Members Only Content\n   • Members-only videos  \n \n\n\n🏭 Backend Engineering Videos in Order\nhttps://backend.husseinnasser.com\n\n💾 Database Engineering Videos\n   • Database Engineering  \n\n🎙️Listen to the Backend Engineering Podcast\nhttps://husseinnasser.com/podcast \n\nGears and tools used on the Channel (affiliates)\n\n🖼️ Slides and Thumbnail Design \nCanva\nhttps://partner.canva.com/c/2766475/6...\n \n\nStay Awesome,\nHussein",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "FnMwGC2XHVM",
        "title": "All Kernel Page Faults Explained",
        "publishedAt": "4 months ago",
        "durationSeconds": 1157,
        "views": 2608,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Fundamentals of Operating Systems Course \nhttps://oscourse.win\n\nWatch Full show on Page faults here \n   • Page Faults | The Backend Engineering Show  \n\nNodeJS Internals and Architecture\nhttps://node.win \n\nBackend Troubleshooting Course\nhttps://performance.husseinnasser.com\n\nFundamentals of Backend Engineering   \nhttps://backend.win\n\nFundamentals of Networking for Effective Backends udemy course (link redirects to udemy with coupon)\nhttps://network.husseinnasser.com\n\nFundamentals of Database Engineering udemy course (link redirects to udemy with coupon)\nhttps://database.husseinnasser.com\n\nFollow me on Medium\n  / membership  \n\n\nIntroduction to NGINX  (link redirects to udemy with coupon)\nhttps://nginx.husseinnasser.com\n\nPython on the Backend (link redirects to udemy with coupon)\nhttps://python.husseinnasser.com\n\nBecome a Member on YouTube\n   / @hnasr  \n\nBuy me a coffee if you liked this\nhttps://www.buymeacoffee.com/hnasr\n\nArabic Software Engineering Channel \n   / @husseinnasser  \n\n🔥 Members Only Content\n   • Members-only videos  \n \n\n\n🏭 Backend Engineering Videos in Order\nhttps://backend.husseinnasser.com\n\n💾 Database Engineering Videos\n   • Database Engineering  \n\n🎙️Listen to the Backend Engineering Podcast\nhttps://husseinnasser.com/podcast \n\nGears and tools used on the Channel (affiliates)\n\n🖼️ Slides and Thumbnail Design \nCanva\nhttps://partner.canva.com/c/2766475/6...\n \n\nStay Awesome,\nHussein",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xZ4mrm6PuII",
        "title": "Why nobody watches YouTube tutorials anymore",
        "publishedAt": "4 months ago",
        "durationSeconds": 1394,
        "views": 34995,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video I talk about the state of educational content on YouTube.\n\nIntermediate and Advanced Backend Engineering Course Bundle\nhttps://courses.husseinnasser.com/bundle\n\nBackend, Database, OS Courses \nhttps://courses.husseinnasser.com\n\nFundamentals of Database Engineering \nhttps://database.husseinnasser.com\n\nFundamentals of Operating Systems Course \nhttps://oscourse.win\n\nNodeJS Internals and Architecture\nhttps://node.win \n\nFundamentals of Backend Engineering   \nhttps://backend.win\n\nFollow me on Substack\nhttps://hnasr.substack.com\n\nMembers Only Content\n   • Members-only videos  \n \nBecome a Member on YouTube\n   / @hnasr  \n\nStay Awesome,\nHussein",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KFcyF66IeuE",
        "title": "The Cost of Switching to Kernel Mode",
        "publishedAt": "4 months ago",
        "durationSeconds": 368,
        "views": 4321,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Fundamentals of Operating Systems Course \nhttps://oscourse.win\n\nWatch Full show on Page faults here \n   • Page Faults | The Backend Engineering Show  \n\n\nNodeJS Internals and Architecture\nhttps://node.win \n\nBackend Troubleshooting Course\nhttps://performance.husseinnasser.com\n\nFundamentals of Backend Engineering   \nhttps://backend.win\n\nFundamentals of Networking for Effective Backends udemy course (link redirects to udemy with coupon)\nhttps://network.husseinnasser.com\n\nFundamentals of Database Engineering udemy course (link redirects to udemy with coupon)\nhttps://database.husseinnasser.com\n\nFollow me on Medium\n  / membership  \n\n\nIntroduction to NGINX  (link redirects to udemy with coupon)\nhttps://nginx.husseinnasser.com\n\nPython on the Backend (link redirects to udemy with coupon)\nhttps://python.husseinnasser.com\n\nBecome a Member on YouTube\n   / @hnasr  \n\nBuy me a coffee if you liked this\nhttps://www.buymeacoffee.com/hnasr\n\nArabic Software Engineering Channel \n   / @husseinnasser  \n\n🔥 Members Only Content\n   • Members-only videos  \n \n\n\n🏭 Backend Engineering Videos in Order\nhttps://backend.husseinnasser.com\n\n💾 Database Engineering Videos\n   • Database Engineering  \n\n🎙️Listen to the Backend Engineering Podcast\nhttps://husseinnasser.com/podcast \n\nGears and tools used on the Channel (affiliates)\n\n🖼️ Slides and Thumbnail Design \nCanva\nhttps://partner.canva.com/c/2766475/6...\n \n\nStay Awesome,\nHussein",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DFTSYgKczhY",
        "title": "Why It took Postgres years to do async",
        "publishedAt": "4 months ago",
        "durationSeconds": 1240,
        "views": 12676,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Fundamentals of Operating Systems Course \nhttps://oscourse.win\n\nWatch full show here    • Asynchronous IO in Postgres 18 | The Backe...   \n\nNodeJS Internals and Architecture\nhttps://node.win \n\nBackend Troubleshooting Course\nhttps://performance.husseinnasser.com\n\nFundamentals of Backend Engineering   \nhttps://backend.win\n\nFundamentals of Networking for Effective Backends udemy course (link redirects to udemy with coupon)\nhttps://network.husseinnasser.com\n\nFundamentals of Database Engineering udemy course (link redirects to udemy with coupon)\nhttps://database.husseinnasser.com\n\nFollow me on Medium\n  / membership  \n\n\nIntroduction to NGINX  (link redirects to udemy with coupon)\nhttps://nginx.husseinnasser.com\n\nPython on the Backend (link redirects to udemy with coupon)\nhttps://python.husseinnasser.com\n\nBecome a Member on YouTube\n   / @hnasr  \n\nBuy me a coffee if you liked this\nhttps://www.buymeacoffee.com/hnasr\n\nArabic Software Engineering Channel \n   / @husseinnasser  \n\n🔥 Members Only Content\n   • Members-only videos  \n \n\n\n🏭 Backend Engineering Videos in Order\nhttps://backend.husseinnasser.com\n\n💾 Database Engineering Videos\n   • Database Engineering  \n\n🎙️Listen to the Backend Engineering Podcast\nhttps://husseinnasser.com/podcast \n\nGears and tools used on the Channel (affiliates)\n\n🖼️ Slides and Thumbnail Design \nCanva\nhttps://partner.canva.com/c/2766475/6...\n \n\nStay Awesome,\nHussein",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "aJpcysMJkvk",
        "title": "Page Tables | The Backend Engineering Show",
        "publishedAt": "4 months ago",
        "durationSeconds": 2707,
        "views": 4043,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Fundamentals of Operating Systems Course \nhttps://oscourse.win\n\nPage tables provide the mapping between virtual memory and physical memory for each process. This means it needs to be as efficient and as fast as possible. I explore the inner workings of page tables in this episode.\n\n0:00 Intro\n2:00 Virtual Memory\n- 8:00 MMU\n10:00 Page Tables\n-11:30 Single Table Byte Addressability  \n-- 16:00 Single Table Page addressability \n-19:00 Multi-level Paging (Radix tree)\n- 31:00 Huge Tables\n- 33:00 TLB\n- Summary\n\nResources \nIntel CPU Spec (pdf)\nhttps://cdrdv2-public.intel.com/83575...\n\nNodeJS Internals and Architecture\nhttps://node.win \n\nBackend Troubleshooting Course\nhttps://performance.husseinnasser.com\n\nFundamentals of Backend Engineering   \nhttps://backend.win\n\nFundamentals of Networking for Effective Backends udemy course (link redirects to udemy with coupon)\nhttps://network.husseinnasser.com\n\nFundamentals of Database Engineering udemy course (link redirects to udemy with coupon)\nhttps://database.husseinnasser.com\n\nFollow me on Medium\n  / membership  \n\n\nIntroduction to NGINX  (link redirects to udemy with coupon)\nhttps://nginx.husseinnasser.com\n\nPython on the Backend (link redirects to udemy with coupon)\nhttps://python.husseinnasser.com\n\nBecome a Member on YouTube\n   / @hnasr  \n\nBuy me a coffee if you liked this\nhttps://www.buymeacoffee.com/hnasr\n\nArabic Software Engineering Channel \n   / @husseinnasser  \n\n🔥 Members Only Content\n   • Members-only videos  \n \n\n\n🏭 Backend Engineering Videos in Order\nhttps://backend.husseinnasser.com\n\n💾 Database Engineering Videos\n   • Database Engineering  \n\n🎙️Listen to the Backend Engineering Podcast\nhttps://husseinnasser.com/podcast \n\nGears and tools used on the Channel (affiliates)\n\n🖼️ Slides and Thumbnail Design \nCanva\nhttps://partner.canva.com/c/2766475/6...\n \n\nStay Awesome,\nHussein",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ImaSgNgxu00",
        "title": "How HTTP/2 frees connections",
        "publishedAt": "5 months ago",
        "durationSeconds": 720,
        "views": 1946,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Fundamentals of Operating Systems Course \nhttps://oscourse.win\n\nWatch Full show here    • HTTP Graceful shutdown | The Backend Engin...  \n\nBackend Troubleshooting Course\nhttps://performance.husseinnasser.com\n\nNodeJS Internals and Architecture\nhttps://node.win \n\nBackend Troubleshooting Course\nhttps://performance.husseinnasser.com\n\nFundamentals of Backend Engineering   \nhttps://backend.win\n\nFundamentals of Networking for Effective Backends udemy course (link redirects to udemy with coupon)\nhttps://network.husseinnasser.com\n\nFundamentals of Database Engineering udemy course (link redirects to udemy with coupon)\nhttps://database.husseinnasser.com\n\nFollow me on Medium\n  / membership  \n\n\nIntroduction to NGINX  (link redirects to udemy with coupon)\nhttps://nginx.husseinnasser.com\n\nPython on the Backend (link redirects to udemy with coupon)\nhttps://python.husseinnasser.com\n\nBecome a Member on YouTube\n   / @hnasr  \n\nBuy me a coffee if you liked this\nhttps://www.buymeacoffee.com/hnasr\n\nArabic Software Engineering Channel \n   / @husseinnasser  \n\n🔥 Members Only Content\n   • Members-only videos  \n \n\n\n🏭 Backend Engineering Videos in Order\nhttps://backend.husseinnasser.com\n\n💾 Database Engineering Videos\n   • Database Engineering  \n\n🎙️Listen to the Backend Engineering Podcast\nhttps://husseinnasser.com/podcast \n\nGears and tools used on the Channel (affiliates)\n\n🖼️ Slides and Thumbnail Design \nCanva\nhttps://partner.canva.com/c/2766475/6...\n \n\nStay Awesome,\nHussein",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ezq8tIMkPB0",
        "title": "How Huge Pages Work in Linux",
        "publishedAt": "5 months ago",
        "durationSeconds": 909,
        "views": 2845,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Watch full show here https://youtu.be/aJpcysMJkvk\n\nFundamentals of Operating Systems Course \nhttps://oscourse.win\n\nNodeJS Internals and Architecture\nhttps://node.win \n\nBackend Troubleshooting...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-A7b_BXvRLg",
        "title": "TLS can be slow, this changes the game",
        "publishedAt": "5 months ago",
        "durationSeconds": 629,
        "views": 3462,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Fundamentals of Operating Systems Course \nhttps://oscourse.win\n\nKernel TLS show https://www.youtube.com/watch?v=SyrgSKEi4Sc\n\nNodeJS Internals and Architecture\nhttps://node.win \n\nBackend Troubleshoo...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rjx4XRvw9PY",
        "title": "Freeing HTTP/1.1 Connection",
        "publishedAt": "5 months ago",
        "durationSeconds": 375,
        "views": 2523,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Backend Troubleshooting Course\nhttps://performance.husseinnasser.com\n\nFundamentals of Operating Systems Course \nhttps://oscourse.win\n\nWatch Full show here https://youtu.be/abUaM6iuElU\n\nNodeJS...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tZQnafyuXUM",
        "title": "3 hours without DNS caused a day of outage",
        "publishedAt": "5 months ago",
        "durationSeconds": 369,
        "views": 3308,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Watch full show of the amazon outage\n\nThey finally posted the full details\nhttps://youtu.be/LZm9nTwsGi8",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tO5kZv5bQ7I",
        "title": "The state of Direct IO in Postgres",
        "publishedAt": "5 months ago",
        "durationSeconds": 405,
        "views": 2048,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Fundamentals of Operating Systems Course \nhttps://oscourse.win\n\nWatch full show here https://youtu.be/yGjGc21mmoU \n\nNodeJS Internals and Architecture\nhttps://node.win \n\nBackend Troubleshooting...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AsFxaZJ1M0k",
        "title": "Page Faults | The Backend Engineering Show",
        "publishedAt": "5 months ago",
        "durationSeconds": 2824,
        "views": 3785,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Fundamentals of Operating Systems Course \nhttps://oscourse.win\n\nPage faults occurs when the process tries to access a memory that isn’t backed by a physical page kernel raises a fault which...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1IYOmUzKg2s",
        "title": "Postgres 18 Async IO methods",
        "publishedAt": "5 months ago",
        "durationSeconds": 1296,
        "views": 6062,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Fundamentals of Database Engineering udemy course (link redirects to udemy with coupon)\nhttps://database.husseinnasser.com\n\nWatch full show here https://youtu.be/yGjGc21mmoU \n\nFundamentals...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kMy97TuFo0w",
        "title": "Virtual Memory Areas (VMAs)",
        "publishedAt": "5 months ago",
        "durationSeconds": 496,
        "views": 3124,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Fundamentals of Operating Systems Course \nhttps://oscourse.win\n\nNodeJS Internals and Architecture\nhttps://node.win \n\nWatch Full show on Page faults here \nhttps://youtu.be/AsFxaZJ1M0k\n\n\nBackend...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JW6oVpQW2hw",
        "title": "The rule of CPU in the Kernel",
        "publishedAt": "6 months ago",
        "durationSeconds": 630,
        "views": 4134,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Fundamentals of Operating Systems Course \nhttps://oscourse.win\n\nWatch full show here https://youtu.be/aJpcysMJkvk\n\nNodeJS Internals and Architecture\nhttps://node.win \n\nBackend Troubleshooting...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DZTq_ADss7U",
        "title": "Why you need to close sockets",
        "publishedAt": "6 months ago",
        "durationSeconds": 444,
        "views": 4867,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Fundamentals of Operating Systems Course \nhttps://oscourse.win\n\nWatch Full show here https://youtu.be/abUaM6iuElU\n\nNodeJS Internals and Architecture\nhttps://node.win \n\nBackend Troubleshooting...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vKiGo8aShyo",
        "title": "Database Synchronous vs Asynchronous IO",
        "publishedAt": "6 months ago",
        "durationSeconds": 559,
        "views": 7912,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Watch full show here https://youtu.be/yGjGc21mmoU \n\nFundamentals of Operating Systems Course \nhttps://oscourse.win\n\nNodeJS Internals and Architecture\nhttps://node.win \n\nBackend Troubleshooting...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "q1kBGyEsxdQ",
        "title": "What is Virtual memory?",
        "publishedAt": "6 months ago",
        "durationSeconds": 583,
        "views": 7117,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Watch Full show on Page faults here \nhttps://youtu.be/AsFxaZJ1M0k\n\nFundamentals of Operating Systems Course \nhttps://oscourse.win\n\nNodeJS Internals and Architecture\nhttps://node.win \n\nBackend...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "M6RjC20k3Ig",
        "title": "How 3 hours with no DNS caused a day of outage",
        "publishedAt": "6 months ago",
        "durationSeconds": 369,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Watch full video of how amazon us-east-1 went down  https://youtu.be/LZm9nTwsGi8\n\nFundamentals of Operating Systems Course \nhttps://oscourse.win\n\nNodeJS Internals and Architecture\nhttps://node.win...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LZm9nTwsGi8",
        "title": "We now know why the DNS failed",
        "publishedAt": "6 months ago",
        "durationSeconds": 1409,
        "views": 43303,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "On October 19 2025 AWS experienced an outage that lasted over a day,  10 days later we finally got the root cause analysis and we know exactly what caused the DNS to fail\n\n0:00 Summary \n5:30...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "yYhAOPc6MLQ",
        "title": "The problem with software engineering",
        "publishedAt": "6 months ago",
        "durationSeconds": 1060,
        "views": 19514,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Fundamentals of Backend Engineering Design patterns udemy course (link redirects to udemy with coupon)\nhttps://backend.husseinnasser.com\n\nFundamentals of Networking for Effective Backends udemy...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wsMF9j0dLYg",
        "title": "HTTP/3 over QUIC, HPACK and QPACK",
        "publishedAt": "6 months ago",
        "durationSeconds": 809,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Vlog discussing my recent research on hpack and qpack\n\nFundamentals of Networking for Effective Backends udemy course (link redirects to udemy with coupon)\nhttps://network.husseinnasser.com...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qWxAKSNdTrE",
        "title": "My Database Course",
        "publishedAt": "6 months ago",
        "durationSeconds": 539,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🎙️Listen to the Backend Engineering Podcast\nhttps://husseinnasser.com/podcast \n\n🏭 Backend Engineering Videos\nhttps://backend.husseinnasser.com\n\n💾 Database Engineering Videos\nhttps://www....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "olWfkVyPMa0",
        "title": "I discuss passion, time management and more",
        "publishedAt": "6 months ago",
        "durationSeconds": 812,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "* Upgraded Gear\n* New Born and timing and how many hours I put \n* The Course\n* Recent focus (database, trees)\n\n\n🎙️Listen to the Backend Engineering Podcast\nhttps://husseinnasser.com/podcast...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "iu40ThXsE8E",
        "title": "Long Polling - The Backend Engineering Show",
        "publishedAt": "6 months ago",
        "durationSeconds": 1556,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this episode of the backend engineering show, I'll discuss long polling technique of backend communication. I will also touch upon Polling and Pushing too and the pros and cons of each....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "iconx8bAmVk",
        "title": "Bloat in Databases",
        "publishedAt": "6 months ago",
        "durationSeconds": 778,
        "views": 2088,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": null,
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 1,
      "uploadsLast90d": 2,
      "uploadCadenceWeekly": 0.16,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 8771,
      "viewsPerVideoP90Last90d": 8771,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 8771,
      "p90Views": 8771,
      "p99Views": 8771,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "amzn.to",
        "partner.canva.com"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": "[REDACTED]",
      "businessEmailSource": "channel-about-section",
      "businessEmailMxValid": true,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "database.husseinnasser.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "high",
      "components": {
        "businessEmailPresent": true,
        "businessEmailValid": true,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Will likely respond to sponsorship outreach: business email validated + active sponsor history + external website live."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.9,
        "evidenceVideoIds": [
          "Jx_4kfrQsiA",
          "x9iHwoAbwiA",
          "yg3gaQSNfQs",
          "bP9yCSdMFXs",
          "FnMwGC2XHVM"
        ]
      },
      {
        "label": "course",
        "share": 0.87,
        "evidenceVideoIds": [
          "Jx_4kfrQsiA",
          "x9iHwoAbwiA",
          "yg3gaQSNfQs",
          "bP9yCSdMFXs",
          "FnMwGC2XHVM"
        ]
      },
      {
        "label": "backend",
        "share": 0.8,
        "evidenceVideoIds": [
          "Jx_4kfrQsiA",
          "x9iHwoAbwiA",
          "yg3gaQSNfQs",
          "bP9yCSdMFXs",
          "FnMwGC2XHVM"
        ]
      },
      {
        "label": "fundamentals",
        "share": 0.8,
        "evidenceVideoIds": [
          "Jx_4kfrQsiA",
          "x9iHwoAbwiA",
          "yg3gaQSNfQs",
          "bP9yCSdMFXs",
          "FnMwGC2XHVM"
        ]
      },
      {
        "label": "systems",
        "share": 0.7,
        "evidenceVideoIds": [
          "Jx_4kfrQsiA",
          "x9iHwoAbwiA",
          "yg3gaQSNfQs",
          "bP9yCSdMFXs",
          "FnMwGC2XHVM"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Saturday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "business email validated.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "strong",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 45,
      "reason": "validated business email",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.95
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.8,
      "level": "high",
      "coldStart": false
    },
    "whyThisMatters": "validated business email. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Hussein Nasser — 0.5M subs, C-tier sponsorship readiness, high contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": true,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 45,
      "readyForOutreach": false,
      "blockers": [],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.65,
      "urgency": 0,
      "noiseRisk": 0.2
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": {
      "isValidFormat": true,
      "canonical": "h@husseinnasser.com",
      "domain": "husseinnasser.com",
      "lineType": "corporate",
      "mxValid": true,
      "confidence": 0.9,
      "originalInput": "h@husseinnasser.com",
      "email": null
    },
    "allEmailValidations": [
      {
        "isValidFormat": true,
        "canonical": "h@husseinnasser.com",
        "domain": "husseinnasser.com",
        "lineType": "corporate",
        "mxValid": true,
        "confidence": 0.9,
        "originalInput": "h@husseinnasser.com",
        "email": null
      }
    ],
    "contactabilityScore": {
      "score": 88,
      "level": "high",
      "components": {
        "presence": 25,
        "sourceQuality": 18,
        "validationQuality": 18,
        "identityStrength": 14,
        "freshness": 8,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "email",
      "secondary": "agency-form",
      "reason": "Validated business email + active sponsor history — email-first maximises response rate."
    },
    "sequenceFit": {
      "directOutreachAllowed": true,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "channel-about",
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.88
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.88,
      "gap": 0.06,
      "howToClose": [
        "Run ryanclinton/person-enrichment-lookup against 'h@husseinnasser.com' to identify the inbox owner."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "high",
      "score": 0.85,
      "factors": [
        "business-email-validated",
        "external-website-active",
        "corporate-email-domain"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + validated corporate business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:corporate",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [],
      "safeChannels": [
        "email",
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [
      {
        "email": "[REDACTED]",
        "rank": 1,
        "reason": "corporate-domain email",
        "role": "business"
      }
    ],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": false,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": [
        "contactability:high"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 64,
      "reasons": [
        "Validated business email (MX confirmed)",
        "Low confidence-conflict count in scoring trace"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "375d9fc295460511575b57d53fc46352b282f096527d4e73be4a93e4f160a59d",
      "inputsHash": "364a9eabbbdb0b5b45df3f55f4356c94db9e5ed3a4fc39b24d1c1da37820ddad",
      "rulesApplied": [
        "business-email-validated",
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:37.648Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "ff2ab3516d6a4bbf926bd1a82b7579ddb7eb2dff014e357738dd3514bc25901b",
    "channelId": "UCXUPKJO5MZQN11PqgIvyuvQ",
    "channelHandle": "@AndrejKarpathy",
    "channelName": "Andrej Karpathy",
    "channelUrl": "https://www.youtube.com/@AndrejKarpathy",
    "description": null,
    "joinDate": null,
    "location": null,
    "subscribers": 1410000,
    "totalVideos": 17,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_nDvyq2NoPL626bk1IbxQ94SfQsD-B0qgZchghtQNkLWoEz=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "twitter",
        "url": "https://x.com/karpathy"
      },
      {
        "platform": "karpathy.ai",
        "url": "https://karpathy.ai"
      },
      {
        "platform": "discord",
        "url": "https://discord.gg/3zy8kqD9Cp"
      },
      {
        "platform": "eurekalabs.ai",
        "url": "https://eurekalabs.ai/"
      }
    ],
    "recentVideos": [
      {
        "videoId": "EWvNQjAaOHw",
        "title": "How I use LLMs",
        "publishedAt": "1 year ago",
        "durationSeconds": 7872,
        "views": 2420722,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The example-driven, practical walkthrough of Large Language Models and their growing list of related features, as a new entry to my general audience series on LLMs. In this more practical followup, I take you through the many ways I use LLMs in my own life.\n\nChapters\n00:00:00 Intro into the growing LLM ecosystem\n00:02:54 ChatGPT interaction under the hood\n00:13:12 Basic LLM interactions examples\n00:18:03 Be aware of the model you're using, pricing tiers\n00:22:54 Thinking models and when to use them\n00:31:00 Tool use: internet search\n00:42:04 Tool use: deep research\n00:50:57 File uploads, adding documents to context\n00:59:00 Tool use: python interpreter, messiness of the ecosystem\n01:04:35 ChatGPT Advanced Data Analysis, figures, plots\n01:09:00 Claude Artifacts, apps, diagrams\n01:14:02 Cursor: Composer, writing code\n01:22:28 Audio (Speech) Input/Output\n01:27:37 Advanced Voice Mode aka true audio inside the model\n01:37:09 NotebookLM, podcast generation\n01:40:20 Image input, OCR\n01:47:02 Image output, DALL-E, Ideogram, etc.\n01:49:14 Video input, point and talk on app\n01:52:23 Video output, Sora, Veo 2, etc etc.\n01:53:29 ChatGPT memory, custom instructions\n01:58:38 Custom GPTs\n02:06:30 Summary\n\nLinks\nTiktokenizer https://tiktokenizer.vercel.app/\nOpenAI's ChatGPT https://chatgpt.com/\nAnthropic's Claude https://claude.ai/\nGoogle's Gemini https://gemini.google.com/\nxAI's Grok https://grok.com/\nPerplexity https://www.perplexity.ai/\nGoogle's NotebookLM https://notebooklm.google.com/\nCursor https://www.cursor.com/\nHistories of Mysteries AI podcast on Spotify  https://open.spotify.com/show/3K4LRyM...\n\nThe visualization UI I was using in the video: https://excalidraw.com/\nThe specific file of Excalidraw we built up: https://drive.google.com/file/d/1DN3L...\nDiscord channel for Eureka Labs and this video:   / discord  \n\nEducational Use Licensing\nThis video is freely available for educational and internal training purposes. Educators, students, schools, universities, nonprofit institutions, businesses, and individual learners may use this content freely for lessons, courses, internal training, and learning activities, provided they do not engage in commercial resale, redistribution, external commercial use, or modify content to misrepresent its intent.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7xTGNNLPyMI",
        "title": "Deep Dive into LLMs like ChatGPT",
        "publishedAt": "1 year ago",
        "durationSeconds": 12684,
        "views": 6356583,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This is a general audience deep dive into the Large Language Model (LLM) AI technology that powers ChatGPT and related products. It is covers the full training stack of how the models are developed, along with mental models of how to think about their \"psychology\", and how to get the best use them in practical applications. I have one \"Intro to LLMs\" video already from ~year ago, but that is just a re-recording of a random talk, so I wanted to loop around and do a lot more comprehensive version.\n\nInstructor\nAndrej was a founding member at OpenAI (2015) and then Sr. Director of AI at Tesla (2017-2022), and is now a founder at Eureka Labs, which is building an AI-native school. His goal in this video is to raise knowledge and understanding of the state of the art in AI, and empower people to effectively use the latest and greatest in their work.\nFind more at https://karpathy.ai/ and https://x.com/karpathy\n\nChapters\n00:00:00 introduction\n00:01:00 pretraining data (internet)\n00:07:47 tokenization\n00:14:27 neural network I/O\n00:20:11 neural network internals\n00:26:01 inference\n00:31:09 GPT-2: training and inference\n00:42:52 Llama 3.1 base model inference\n00:59:23 pretraining to post-training\n01:01:06 post-training data (conversations)\n01:20:32 hallucinations, tool use, knowledge/working memory\n01:41:46 knowledge of self\n01:46:56 models need tokens to think\n02:01:11 tokenization revisited: models struggle with spelling\n02:04:53 jagged intelligence\n02:07:28 supervised finetuning to reinforcement learning\n02:14:42 reinforcement learning\n02:27:47 DeepSeek-R1\n02:42:07 AlphaGo\n02:48:26 reinforcement learning from human feedback (RLHF)\n03:09:39 preview of things to come\n03:15:15 keeping track of LLMs\n03:18:34 where to find LLMs\n03:21:46 grand summary\n\nLinks\nChatGPT https://chatgpt.com/\nFineWeb (pretraining dataset): https://huggingface.co/spaces/Hugging...\nTiktokenizer: https://tiktokenizer.vercel.app/\nTransformer Neural Net 3D visualizer: https://bbycroft.net/llm\nllm.c Let's Reproduce GPT-2 https://github.com/karpathy/llm.c/dis...\nLlama 3 paper from Meta: https://arxiv.org/abs/2407.21783\nHyperbolic, for inference of base model: https://app.hyperbolic.xyz/\nInstructGPT paper on SFT: https://arxiv.org/abs/2203.02155\nHuggingFace inference playground: https://huggingface.co/spaces/hugging...\nDeepSeek-R1 paper: https://arxiv.org/abs/2501.12948\nTogetherAI Playground for open model inference: https://api.together.xyz/playground\nAlphaGo paper (PDF): https://discovery.ucl.ac.uk/id/eprint...\nAlphaGo Move 37 video:    • Video  \nLM Arena for model rankings: https://lmarena.ai/\nAI News Newsletter: https://buttondown.com/ainews\nLMStudio for local inference https://lmstudio.ai/\n\nThe visualization UI I was using in the video: https://excalidraw.com/\nThe specific file of Excalidraw we built up: https://drive.google.com/file/d/1EZh5...\nDiscord channel for Eureka Labs and this video:   / discord  \n\nEducational Use Licensing\nThis video is freely available for educational and internal training purposes. Educators, students, schools, universities, nonprofit institutions, businesses, and individual learners may use this content freely for lessons, courses, internal training, and learning activities, provided they do not engage in commercial resale, redistribution, external commercial use, or modify content to misrepresent its intent.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "l8pRSuU81PU",
        "title": "Let's reproduce GPT-2 (124M)",
        "publishedAt": "1 year ago",
        "durationSeconds": 14486,
        "views": 1072482,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We reproduce the GPT-2 (124M) from scratch. This video covers the whole process: First we build the GPT-2 network, then we optimize its training to be really fast, then we set up the training run following the GPT-2 and GPT-3 paper and their hyperparameters, then we hit run, and come back the next morning to see our results, and enjoy some amusing model generations. Keep in mind that in some places this video builds on the knowledge from earlier videos in the Zero to Hero Playlist (see my channel). You could also see this video as building my nanoGPT repo, which by the end is about 90% similar.\n\nLinks:\nbuild-nanogpt GitHub repo, with all the changes in this video as individual commits: https://github.com/karpathy/build-nan...\nnanoGPT repo: https://github.com/karpathy/nanoGPT\nllm.c repo: https://github.com/karpathy/llm.c\nmy website: https://karpathy.ai\nmy twitter:   / karpathy  \nour Discord channel:   / discord  \n\nSupplementary links:\nAttention is All You Need paper: https://arxiv.org/abs/1706.03762\nOpenAI GPT-3 paper: https://arxiv.org/abs/2005.14165 - OpenAI GPT-2 paper: https://d4mucfpksywv.cloudfront.net/b... The GPU I'm training the model on is from Lambda GPU Cloud, I think the best and easiest way to spin up an on-demand GPU instance in the cloud that you can ssh to: https://lambdalabs.com \n\nChapters:\n00:00:00 intro: Let’s reproduce GPT-2 (124M)\n00:03:39 exploring the GPT-2 (124M) OpenAI checkpoint\n00:13:47 SECTION 1: implementing the GPT-2 nn.Module\n00:28:08 loading the huggingface/GPT-2 parameters\n00:31:00 implementing the forward pass to get logits\n00:33:31 sampling init, prefix tokens, tokenization\n00:37:02 sampling loop\n00:41:47 sample, auto-detect the device\n00:45:50 let’s train: data batches (B,T) → logits (B,T,C)\n00:52:53 cross entropy loss\n00:56:42 optimization loop: overfit a single batch\n01:02:00 data loader lite\n01:06:14 parameter sharing wte and lm_head\n01:13:47 model initialization: std 0.02, residual init\n01:22:18 SECTION 2: Let’s make it fast. GPUs, mixed precision, 1000ms\n01:28:14 Tensor Cores, timing the code, TF32 precision, 333ms\n01:39:38 float16, gradient scalers, bfloat16, 300ms\n01:48:15 torch.compile, Python overhead, kernel fusion, 130ms\n02:00:18 flash attention, 96ms\n02:06:54 nice/ugly numbers. vocab size 50257 → 50304, 93ms\n02:14:55 SECTION 3: hyperpamaters, AdamW, gradient clipping\n02:21:06 learning rate scheduler: warmup + cosine decay\n02:26:21 batch size schedule, weight decay, FusedAdamW, 90ms\n02:34:09 gradient accumulation\n02:46:52 distributed data parallel (DDP)\n03:10:21 datasets used in GPT-2, GPT-3, FineWeb (EDU)\n03:23:10 validation data split, validation loss, sampling revive\n03:28:23 evaluation: HellaSwag, starting the run\n03:43:05 SECTION 4: results in the morning! GPT-2, GPT-3 repro\n03:56:21 shoutout to llm.c, equivalent but faster code in raw C/CUDA\n03:59:39 summary, phew, build-nanogpt github repo\n\nCorrections:\nI will post all errata and followups to the build-nanogpt GitHub repo (link above)\n\nSuperThanks:\nI experimentally enabled them on my channel yesterday. Totally optional and only use if rich. All revenue goes to to supporting my work in AI + Education.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zduSFxRajkE",
        "title": "Let's build the GPT Tokenizer",
        "publishedAt": "2 years ago",
        "durationSeconds": 8015,
        "views": 1092952,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The Tokenizer is a necessary and pervasive component of Large Language Models (LLMs), where it translates between strings and tokens (text chunks). Tokenizers are a completely separate stage of the LLM pipeline: they have their own training sets, training algorithms (Byte Pair Encoding), and after training implement two fundamental functions: encode() from strings to tokens, and decode() back from tokens to strings. In this lecture we build from scratch the Tokenizer used in the GPT series from OpenAI. In the process, we will see that a lot of weird behaviors and problems of LLMs actually trace back to tokenization. We'll go through a number of these issues, discuss why tokenization is at fault, and why someone out there ideally finds a way to delete this stage entirely.\n\nChapters:\n00:00:00 intro: Tokenization, GPT-2 paper, tokenization-related issues\n00:05:50 tokenization by example in a Web UI (tiktokenizer)\n00:14:56 strings in Python, Unicode code points\n00:18:15 Unicode byte encodings, ASCII, UTF-8, UTF-16, UTF-32\n00:22:47 daydreaming: deleting tokenization\n00:23:50 Byte Pair Encoding (BPE) algorithm walkthrough\n00:27:02 starting the implementation\n00:28:35 counting consecutive pairs, finding most common pair\n00:30:36 merging the most common pair\n00:34:58 training the tokenizer: adding the while loop, compression ratio\n00:39:20 tokenizer/LLM diagram: it is a completely separate stage\n00:42:47 decoding tokens to strings\n00:48:21 encoding strings to tokens\n00:57:36 regex patterns to force splits across categories\n01:11:38 tiktoken library intro, differences between GPT-2/GPT-4 regex\n01:14:59 GPT-2 encoder.py released by OpenAI walkthrough\n01:18:26 special tokens, tiktoken handling of, GPT-2/GPT-4 differences\n01:25:28 minbpe exercise time! write your own GPT-4 tokenizer\n01:28:42 sentencepiece library intro, used to train Llama 2 vocabulary\n01:43:27 how to set vocabulary set? revisiting gpt.py transformer\n01:48:11 training new tokens, example of prompt compression\n01:49:58 multimodal [image, video, audio] tokenization with vector quantization\n01:51:41 revisiting and explaining the quirks of LLM tokenization\n02:10:20 final recommendations\n02:12:50 ??? :)\n\nExercises:\nAdvised flow: reference this document and try to implement the steps before I give away the partial solutions in the video. The full solutions if you're getting stuck are in the minbpe code https://github.com/karpathy/minbpe/bl...\n\nLinks:\nGoogle colab for the video: https://colab.research.google.com/dri...\nGitHub repo for the video: minBPE https://github.com/karpathy/minbpe\nPlaylist of the whole Zero to Hero series so far:    • The spelled-out intro to neural networks a...  \nour Discord channel:   / discord  \nmy Twitter:   / karpathy  \n\nSupplementary links:\ntiktokenizer https://tiktokenizer.vercel.app\ntiktoken from OpenAI: https://github.com/openai/tiktoken\nsentencepiece from Google https://github.com/google/sentencepiece",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zjkBMFhNj_g",
        "title": "[1hr Talk] Intro to Large Language Models",
        "publishedAt": "2 years ago",
        "durationSeconds": 3588,
        "views": 3646462,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This is a 1 hour general-audience introduction to Large Language Models: the core technical component behind systems like ChatGPT, Claude, and Bard. What they are, where they are headed, comparisons and analogies to present-day operating systems, and some of the security-related challenges of this new computing paradigm.\nAs of November 2023 (this field moves fast!).\n\nContext: This video is based on the slides of a talk I gave recently at the AI Security Summit. The talk was not recorded but a lot of people came to me after and told me they liked it. Seeing as I had already put in one long weekend of work to make the slides, I decided to just tune them a bit, record this round 2 of the talk and upload it here on YouTube. Pardon the random background, that's my hotel room during the thanksgiving break.\n\nSlides as PDF: https://drive.google.com/file/d/1pxx_... (42MB)\nSlides. as Keynote: https://drive.google.com/file/d/1FPUp... (140MB)\n\nFew things I wish I said (I'll add items here as they come up):\nThe dreams and hallucinations do not get fixed with finetuning. Finetuning just \"directs\" the dreams into \"helpful assistant dreams\". Always be careful with what LLMs tell you, especially if they are telling you something from memory alone. That said, similar to a human, if the LLM used browsing or retrieval and the answer made its way into the \"working memory\" of its context window, you can trust the LLM a bit more to process that information into the final answer. But TLDR right now, do not trust what LLMs say or do. For example, in the tools section, I'd always recommend double-checking the math/code the LLM did.\nHow does the LLM use a tool like the browser? It emits special words, e.g. |BROWSER|. When the code \"above\" that is inferencing the LLM detects these words it captures the output that follows, sends it off to a tool, comes back with the result and continues the generation. How does the LLM know to emit these special words? Finetuning datasets teach it how and when to browse, by example. And/or the instructions for tool use can also be automatically placed in the context window (in the “system message”).\nYou might also enjoy my 2015 blog post \"Unreasonable Effectiveness of Recurrent Neural Networks\". The way we obtain base models today is pretty much identical on a high level, except the RNN is swapped for a Transformer. http://karpathy.github.io/2015/05/21/...\nWhat is in the run.c file? A bit more full-featured 1000-line version hre: https://github.com/karpathy/llama2.c/...\n\nChapters:\nPart 1: LLMs\n00:00:00 Intro: Large Language Model (LLM) talk\n00:00:20 LLM Inference\n00:04:17 LLM Training\n00:08:58 LLM dreams\n00:11:22 How do they work?\n00:14:14 Finetuning into an Assistant\n00:17:52 Summary so far\n00:21:05 Appendix: Comparisons, Labeling docs, RLHF, Synthetic data, Leaderboard\nPart 2: Future of LLMs\n00:25:43 LLM Scaling Laws\n00:27:43 Tool Use (Browser, Calculator, Interpreter, DALL-E)\n00:33:32 Multimodality (Vision, Audio)\n00:35:00 Thinking, System 1/2\n00:38:02 Self-improvement, LLM AlphaGo\n00:40:45 LLM Customization, GPTs store\n00:42:15 LLM OS\nPart 3: LLM Security\n00:45:43 LLM Security Intro\n00:46:14 Jailbreaks\n00:51:30 Prompt Injection\n00:56:23 Data poisoning\n00:58:37 LLM Security conclusions\nEnd\n00:59:23 Outro\n\nEducational Use Licensing\nThis video is freely available for educational and internal training purposes. Educators, students, schools, universities, nonprofit institutions, businesses, and individual learners may use this content freely for lessons, courses, internal training, and learning activities, provided they do not engage in commercial resale, redistribution, external commercial use, or modify content to misrepresent its intent.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kCc8FmEb1nY",
        "title": "Let's build GPT: from scratch, in code, spelled out.",
        "publishedAt": "3 years ago",
        "durationSeconds": 6980,
        "views": 7200752,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We build a Generatively Pretrained Transformer (GPT), following the paper \"Attention is All You Need\" and OpenAI's GPT-2 / GPT-3. We talk about connections to ChatGPT, which has taken the world by storm. We watch GitHub Copilot, itself a GPT, help us write a GPT (meta :D!) . I recommend people watch the earlier makemore videos to get comfortable with the autoregressive language modeling framework and basics of tensors and PyTorch nn, which we take for granted in this video.\n\nLinks:\nGoogle colab for the video: https://colab.research.google.com/dri...\nGitHub repo for the video: https://github.com/karpathy/ng-video-...\nPlaylist of the whole Zero to Hero series so far:    • The spelled-out intro to neural networks a...  \nnanoGPT repo: https://github.com/karpathy/nanoGPT\nmy website: https://karpathy.ai\nmy twitter:   / karpathy  \nour Discord channel:   / discord  \n\nSupplementary links:\nAttention is All You Need paper: https://arxiv.org/abs/1706.03762\nOpenAI GPT-3 paper: https://arxiv.org/abs/2005.14165 \nOpenAI ChatGPT blog post: https://openai.com/blog/chatgpt/\nThe GPU I'm training the model on is from Lambda GPU Cloud, I think the best and easiest way to spin up an on-demand GPU instance in the cloud that you can ssh to: https://lambdalabs.com . If you prefer to work in notebooks, I think the easiest path today is Google Colab.\n\nSuggested exercises:\nEX1: The n-dimensional tensor mastery challenge: Combine the `Head` and `MultiHeadAttention` into one class that processes all the heads in parallel, treating the heads as another batch dimension (answer is in nanoGPT).\nEX2: Train the GPT on your own dataset of choice! What other data could be fun to blabber on about? (A fun advanced suggestion if you like: train a GPT to do addition of two numbers, i.e. a+b=c. You may find it helpful to predict the digits of c in reverse order, as the typical addition algorithm (that you're hoping it learns) would proceed right to left too. You may want to modify the data loader to simply serve random problems and skip the generation of train.bin, val.bin. You may want to mask out the loss at the input positions of a+b that just specify the problem using y=-1 in the targets (see CrossEntropyLoss ignore_index). Does your Transformer learn to add? Once you have this, swole doge project: build a calculator clone in GPT, for all of +-*/. Not an easy problem. You may need Chain of Thought traces.)\nEX3: Find a dataset that is very large, so large that you can't see a gap between train and val loss. Pretrain the transformer on this data, then initialize with that model and finetune it on tiny shakespeare with a smaller number of steps and lower learning rate. Can you obtain a lower validation loss by the use of pretraining?\nEX4: Read some transformer papers and implement one additional feature or change that people seem to use. Does it improve the performance of your GPT?\n\nChapters:\n00:00:00 intro: ChatGPT, Transformers, nanoGPT, Shakespeare\nbaseline language modeling, code setup\n00:07:52 reading and exploring the data\n00:09:28 tokenization, train/val split\n00:14:27 data loader: batches of chunks of data\n00:22:11 simplest baseline: bigram language model, loss, generation\n00:34:53 training the bigram model\n00:38:00 port our code to a script\nBuilding the \"self-attention\"\n00:42:13 version 1: averaging past context with for loops, the weakest form of aggregation\n00:47:11 the trick in self-attention: matrix multiply as weighted aggregation\n00:51:54 version 2: using matrix multiply\n00:54:42 version 3: adding softmax\n00:58:26 minor code cleanup\n01:00:18 positional encoding\n01:02:00 THE CRUX OF THE VIDEO: version 4: self-attention\n01:11:38 note 1: attention as communication\n01:12:46 note 2: attention has no notion of space, operates over sets\n01:13:40 note 3: there is no communication across batch dimension\n01:14:14 note 4: encoder blocks vs. decoder blocks\n01:15:39 note 5: attention vs. self-attention vs. cross-attention\n01:16:56 note 6: \"scaled\" self-attention. why divide by sqrt(head_size)\nBuilding the Transformer\n01:19:11 inserting a single self-attention block to our network\n01:21:59 multi-headed self-attention\n01:24:25 feedforward layers of transformer block\n01:26:48 residual connections\n01:32:51 layernorm (and its relationship to our previous batchnorm)\n01:37:49 scaling up the model! creating a few variables. adding dropout\nNotes on Transformer\n01:42:39 encoder vs. decoder vs. both (?) Transformers\n01:46:22 super quick walkthrough of nanoGPT, batched multi-headed self-attention\n01:48:53 back to ChatGPT, GPT-3, pretraining vs. finetuning, RLHF\n01:54:32 conclusions\n\nCorrections: \n00:57:00 Oops \"tokens from the future cannot communicate\", not \"past\". Sorry! :)\n01:20:05 Oops I should be using the head_size for the normalization, not C",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "t3YJ5hKiMQ0",
        "title": "Building makemore Part 5: Building a WaveNet",
        "publishedAt": "3 years ago",
        "durationSeconds": 3382,
        "views": 273242,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We take the 2-layer MLP from previous video and make it deeper with a tree-like structure, arriving at a convolutional neural network architecture similar to the WaveNet (2016) from DeepMind. In the WaveNet paper, the same hierarchical architecture is implemented more efficiently using causal dilated convolutions (not yet covered). Along the way we get a better sense of torch.nn and what it is and how it works under the hood, and what a typical deep learning development process looks like (a lot of reading of documentation, keeping track of multidimensional tensor shapes, moving between jupyter notebooks and repository code, ...).\n\nLinks:\nmakemore on github: https://github.com/karpathy/makemore\njupyter notebook I built in this video: https://github.com/karpathy/nn-zero-t...\ncollab notebook: https://colab.research.google.com/dri...\nmy website: https://karpathy.ai\nmy twitter:   / karpathy  \nour Discord channel:   / discord  \n\nSupplementary links:\nWaveNet 2016 from DeepMind https://arxiv.org/abs/1609.03499\nBengio et al. 2003 MLP LM https://www.jmlr.org/papers/volume3/b... \n\nChapters:\nintro\n00:00:00 intro\n00:01:40 starter code walkthrough\n00:06:56 let’s fix the learning rate plot\n00:09:16 pytorchifying our code: layers, containers, torch.nn, fun bugs\nimplementing wavenet\n00:17:11 overview: WaveNet\n00:19:33 dataset bump the context size to 8\n00:19:55 re-running baseline code on block_size 8\n00:21:36 implementing WaveNet\n00:37:41 training the WaveNet: first pass\n00:38:50 fixing batchnorm1d bug\n00:45:21 re-training WaveNet with bug fix\n00:46:07 scaling up our WaveNet\nconclusions\n00:46:58 experimental harness\n00:47:44 WaveNet but with “dilated causal convolutions”\n00:51:34 torch.nn\n00:52:28 the development process of building deep neural nets\n00:54:17 going forward\n00:55:26 improve on my loss! how far can we improve a WaveNet on this data?",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "q8SA3rM6ckI",
        "title": "Building makemore Part 4: Becoming a Backprop Ninja",
        "publishedAt": "3 years ago",
        "durationSeconds": 6924,
        "views": 341909,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We take the 2-layer MLP (with BatchNorm) from the previous video and backpropagate through it manually without using PyTorch autograd's loss.backward(): through the cross entropy loss, 2nd linear layer, tanh, batchnorm, 1st linear layer, and the embedding table. Along the way, we get a strong intuitive understanding about how gradients flow backwards through the compute graph and on the level of efficient Tensors, not just individual scalars like in micrograd. This helps build competence and intuition around how neural nets are optimized and sets you up to more confidently innovate on and debug modern neural networks.\n\n!!!!!!!!!!!!\nI recommend you work through the exercise yourself but work with it in tandem and whenever you are stuck unpause the video and see me give away the answer. This video is not super intended to be simply watched. The exercise is here:\nhttps://colab.research.google.com/dri...\n!!!!!!!!!!!!\n\nLinks:\nmakemore on github: https://github.com/karpathy/makemore\njupyter notebook I built in this video: https://github.com/karpathy/nn-zero-t...\ncollab notebook: https://colab.research.google.com/dri...\nmy website: https://karpathy.ai\nmy twitter:   / karpathy  \nour Discord channel:   / discord  \n\nSupplementary links:\nYes you should understand backprop:   / yes-you-should-understand-backprop  \nBatchNorm paper: https://arxiv.org/abs/1502.03167\nBessel’s Correction: http://math.oxford.emory.edu/site/mat...\nBengio et al. 2003 MLP LM https://www.jmlr.org/papers/volume3/b... \n\nChapters:\n00:00:00 intro: why you should care & fun history\n00:07:26 starter code\n00:13:01 exercise 1: backproping the atomic compute graph\n01:05:17 brief digression: bessel’s correction in batchnorm\n01:26:31 exercise 2: cross entropy loss backward pass\n01:36:37 exercise 3: batch norm layer backward pass\n01:50:02 exercise 4: putting it all together\n01:54:24 outro",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "P6sfmUTpUmc",
        "title": "Building makemore Part 3: Activations & Gradients, BatchNorm",
        "publishedAt": "3 years ago",
        "durationSeconds": 6958,
        "views": 498685,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We dive into some of the internals of MLPs with multiple layers and scrutinize the statistics of the forward pass activations, backward pass gradients, and some of the pitfalls when they are improperly scaled. We also look at the typical diagnostic tools and visualizations you'd want to use to understand the health of your deep network. We learn why training deep neural nets can be fragile and introduce the first modern innovation that made doing so much easier: Batch Normalization. Residual connections and the Adam optimizer remain notable todos for later video.\n\nLinks:\nmakemore on github: https://github.com/karpathy/makemore\njupyter notebook I built in this video: https://github.com/karpathy/nn-zero-t...\ncollab notebook: https://colab.research.google.com/dri...\nmy website: https://karpathy.ai\nmy twitter:   / karpathy  \nDiscord channel:   / discord  \n\nUseful links:\n\"Kaiming init\" paper: https://arxiv.org/abs/1502.01852\nBatchNorm paper: https://arxiv.org/abs/1502.03167\nBengio et al. 2003 MLP language model paper (pdf): https://www.jmlr.org/papers/volume3/b...\nGood paper illustrating some of the problems with batchnorm in practice: https://arxiv.org/abs/2105.07576\n\nExercises:\nE01: I did not get around to seeing what happens when you initialize all weights and biases to zero. Try this and train the neural net. You might think either that 1) the network trains just fine or 2) the network doesn't train at all, but actually it is 3) the network trains but only partially, and achieves a pretty bad final performance. Inspect the gradients and activations to figure out what is happening and why the network is only partially training, and what part is being trained exactly.\nE02: BatchNorm, unlike other normalization layers like LayerNorm/GroupNorm etc. has the big advantage that after training, the batchnorm gamma/beta can be \"folded into\" the weights of the preceeding Linear layers, effectively erasing the need to forward it at test time. Set up a small 3-layer MLP with batchnorms, train the network, then \"fold\" the batchnorm gamma/beta into the preceeding Linear layer's W,b by creating a new W2, b2 and erasing the batch norm. Verify that this gives the same forward pass during inference. i.e. we see that the batchnorm is there just for stabilizing the training, and can be thrown out after training is done! pretty cool.\n\nChapters:\n00:00:00 intro\n00:01:22 starter code\n00:04:19 fixing the initial loss \n00:12:59 fixing the saturated tanh\n00:27:53 calculating the init scale: “Kaiming init”\n00:40:40 batch normalization\n01:03:07 batch normalization: summary\n01:04:50 real example: resnet50 walkthrough\n01:14:10 summary of the lecture\n01:18:35 just kidding: part2: PyTorch-ifying the code\n01:26:51 viz #1: forward pass activations statistics\n01:30:54 viz #2: backward pass gradient statistics\n01:32:07 the fully linear case of no non-linearities\n01:36:15 viz #3: parameter activation and gradient statistics\n01:39:55 viz #4: update:data ratio over time\n01:46:04 bringing back batchnorm, looking at the visualizations\n01:51:34 summary of the lecture for real this time",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TCH_1BHY58I",
        "title": "Building makemore Part 2: MLP",
        "publishedAt": "3 years ago",
        "durationSeconds": 4540,
        "views": 535094,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We implement a multilayer perceptron (MLP) character-level language model. In this video we also introduce many basics of machine learning (e.g. model training, learning rate tuning, hyperparameters, evaluation, train/dev/test splits, under/overfitting, etc.).\n\nLinks:\nmakemore on github: https://github.com/karpathy/makemore\njupyter notebook I built in this video: https://github.com/karpathy/nn-zero-t...\ncollab notebook (new)!!!: https://colab.research.google.com/dri...\nBengio et al. 2003 MLP language model paper (pdf): https://www.jmlr.org/papers/volume3/b...\nmy website: https://karpathy.ai\nmy twitter:   / karpathy  \n(new) Neural Networks: Zero to Hero series Discord channel:   / discord   , for people who'd like to chat more and go beyond youtube comments\n\nUseful links:\nPyTorch internals ref http://blog.ezyang.com/2019/05/pytorc...\n\nExercises:\nE01: Tune the hyperparameters of the training to beat my best validation loss of 2.2\nE02: I was not careful with the intialization of the network in this video. (1) What is the loss you'd get if the predicted probabilities at initialization were perfectly uniform? What loss do we achieve? (2) Can you tune the initialization to get a starting loss that is much more similar to (1)?\nE03: Read the Bengio et al 2003 paper (link above), implement and try any idea from the paper. Did it work?\n\nChapters:\n00:00:00 intro\n00:01:48 Bengio et al. 2003 (MLP language model) paper walkthrough\n00:09:03 (re-)building our training dataset\n00:12:19 implementing the embedding lookup table\n00:18:35 implementing the hidden layer + internals of torch.Tensor: storage, views\n00:29:15 implementing the output layer\n00:29:53 implementing the negative log likelihood loss\n00:32:17 summary of the full network\n00:32:49 introducing F.cross_entropy and why\n00:37:56 implementing the training loop, overfitting one batch\n00:41:25 training on the full dataset, minibatches\n00:45:40 finding a good initial learning rate\n00:53:20 splitting up the dataset into train/val/test splits and why\n01:00:49 experiment: larger hidden layer\n01:05:27 visualizing the character embeddings\n01:07:16 experiment: larger embedding size\n01:11:46 summary of our final code, conclusion\n01:13:24 sampling from the model\n01:14:55 google collab (new!!) notebook advertisement",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PaCmpygFfXo",
        "title": "The spelled-out intro to language modeling: building makemore",
        "publishedAt": "3 years ago",
        "durationSeconds": 7065,
        "views": 1147901,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We implement a bigram character-level language model, which we will further complexify in followup videos into a modern Transformer language model, like GPT. In this video, the focus is on...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kVpDARqZdrQ",
        "title": "Stable diffusion dreams of psychedelic faces",
        "publishedAt": "3 years ago",
        "durationSeconds": 242,
        "views": 49906,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Prompt: \"psychedelic faces\"\nStable diffusion takes a noise vector as input and samples an image. To create this video I smoothly (spherically) interpolate between randomly chosen noise vectors...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2oKjtvYslMY",
        "title": "Stable diffusion dreams of steampunk brains",
        "publishedAt": "3 years ago",
        "durationSeconds": 1166,
        "views": 35317,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Prompt: \"ultrarealistic steam punk neural network machine in the shape of a brain, placed on a pedestal, covered with neurons made of gears. dramatic lighting. #unrealengine\"\nStable diffusion...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sM9bozW295Q",
        "title": "Stable diffusion dreams of tattoos",
        "publishedAt": "3 years ago",
        "durationSeconds": 106,
        "views": 95408,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Dreams of tattoos. (There are a few discrete jumps in the video because I had to erase portions that got just a little 🌶️, believe I got most of it)\n\nLinks\n- Stable diffusion: https://stabilit...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VMj-3S1tku0",
        "title": "The spelled-out intro to neural networks and backpropagation: building micrograd",
        "publishedAt": "3 years ago",
        "durationSeconds": 8752,
        "views": 3487784,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This is the most step-by-step spelled-out explanation of backpropagation and training of neural networks. It only assumes basic knowledge of Python and a vague recollection of calculus from...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vEnetcj_728",
        "title": "Stable diffusion dreams of \"blueberry spaghetti\" for one night",
        "publishedAt": "3 years ago",
        "durationSeconds": 303,
        "views": 81608,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Prompt: \"blueberry spaghetti\"\nStable diffusion takes a noise vector as input and samples an image. To create this video I simply smoothly interpolate between randomly chosen noise vectors and...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Jv1ayv-04H4",
        "title": "Stable diffusion dreams of steam punk neural networks",
        "publishedAt": "3 years ago",
        "durationSeconds": 155,
        "views": 62563,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A stable diffusion dream. The prompt was \"ultrarealistic steam punk neural network machine in the shape of a brain, placed on a pedestal, covered with neurons made of gears. dramatic lighting....",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "karpathy.ai",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "intro",
        "share": 0.71,
        "evidenceVideoIds": [
          "EWvNQjAaOHw",
          "7xTGNNLPyMI",
          "l8pRSuU81PU",
          "zduSFxRajkE",
          "zjkBMFhNj_g"
        ]
      },
      {
        "label": "https",
        "share": 0.65,
        "evidenceVideoIds": [
          "EWvNQjAaOHw",
          "7xTGNNLPyMI",
          "l8pRSuU81PU",
          "zduSFxRajkE",
          "zjkBMFhNj_g"
        ]
      },
      {
        "label": "neural",
        "share": 0.65,
        "evidenceVideoIds": [
          "7xTGNNLPyMI",
          "zduSFxRajkE",
          "zjkBMFhNj_g",
          "kCc8FmEb1nY",
          "t3YJ5hKiMQ0"
        ]
      },
      {
        "label": "chapters",
        "share": 0.59,
        "evidenceVideoIds": [
          "EWvNQjAaOHw",
          "7xTGNNLPyMI",
          "l8pRSuU81PU",
          "zduSFxRajkE",
          "zjkBMFhNj_g"
        ]
      },
      {
        "label": "links",
        "share": 0.59,
        "evidenceVideoIds": [
          "EWvNQjAaOHw",
          "7xTGNNLPyMI",
          "l8pRSuU81PU",
          "zduSFxRajkE",
          "kCc8FmEb1nY"
        ]
      },
      {
        "label": "machine learning",
        "share": 0.06,
        "evidenceVideoIds": [
          "TCH_1BHY58I"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Monday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 32,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Andrej Karpathy — 1.4M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 32,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.78,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "ff2ab3516d6a4bbf926bd1a82b7579ddb7eb2dff014e357738dd3514bc25901b",
      "inputsHash": "6288f9f78f1449d1fff3b5830f355b62b28d4fbb395363a9eabd8f3e700492de",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:38.093Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "fcd0ba5017182438ba4366679219d34f582e7dfeaaace7f789fbbe51f479a6c0",
    "channelId": "UCaSCt8s_4nfkRglWCvNSDrg",
    "channelHandle": "@CodeAesthetic",
    "channelName": "CodeAesthetic",
    "channelUrl": "https://www.youtube.com/@CodeAesthetic",
    "description": null,
    "joinDate": null,
    "location": null,
    "subscribers": 438000,
    "totalVideos": 8,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/fKq1-wK3gkERFz9MH5bEvF73k9NUORswE2wxQ6YkCWzY7yMyYvRleubgUt_a8B8tpIyh_KGX=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [],
    "recentVideos": [
      {
        "videoId": "nuML9SmdbJ4",
        "title": "Dear Functional Bros",
        "publishedAt": "2 years ago",
        "durationSeconds": 1010,
        "views": 724674,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Access experiments at CodeAesthetic.io\n\nDiscord, deleted scenes, song names and more at patreon.com/CodeAesthetic",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "J1f5b4vcxCQ",
        "title": "Dependency Injection, The Best Pattern",
        "publishedAt": "2 years ago",
        "durationSeconds": 796,
        "views": 1125489,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try using the attachment service at https://www.patreon.com/codeaesthetic\n\nYou'll also find deleted scenes, song names and more",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tKbV6BpH-C8",
        "title": "Premature Optimization",
        "publishedAt": "3 years ago",
        "durationSeconds": 759,
        "views": 990224,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "When should you optimize your code?\n\nAccess to code examples, deleted scenes, song names and more at https://www.patreon.com/codeaesthetic",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Bf7vDBBOBUA",
        "title": "Don't Write Comments",
        "publishedAt": "3 years ago",
        "durationSeconds": 355,
        "views": 949039,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Why you shouldn't write comments in your code (write documentation)\n\nAccess to code examples, discord, song names and more at https://www.patreon.com/codeaesthetic\n\nReferences:\n\nhttps://www.commits...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hxGOiiR9ZKg",
        "title": "The Flaws of Inheritance",
        "publishedAt": "3 years ago",
        "durationSeconds": 601,
        "views": 1272849,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Let's discuss the tradeoffs between Inheritance and Composition \n\nAccess to code examples, discord, song names and more at   / codeaesthetic  \n\n0:00 Introduction\n0:25 Inheritance\n3:32 Composition\n5:22 Abstracting with Inheritance\n6:52 Abstracting with Interfaces\n8:20 When to use Inheritance",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CFRhGnuXG-4",
        "title": "Why You Shouldn't Nest Your Code",
        "publishedAt": "3 years ago",
        "durationSeconds": 510,
        "views": 3300546,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I'm a Never Nester and you should too. \n\nAccess to code examples, discord, song names and more at   / codeaesthetic  \n\nCorrection: At 2:20 the inversion should be \"less than or equal\", not \"less than\"",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-J3wNP6u5YU",
        "title": "Naming Things in Code",
        "publishedAt": "3 years ago",
        "durationSeconds": 445,
        "views": 2859779,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "It's hard to come up with good names in code, but its also easy to get wrong. By looking at some examples, we can get 80% of the way there. Access to code examples, discord, song names and more at   / codeaesthetic  \n\n0:00 Introduction\n0:31 Variables with a single letter\n1:08 Never Abbreviate\n2:06 Types in your names\n2:36 Units in your variable names\n3:37 Types in your types\n4:30 Naming a class \"Base\" or \"Abstract\"\n5:45 Don't name code \"Utils\"\n7:09 Conclusion\n \n#softwaredesign  #code #programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rQlMtztiAoA",
        "title": "Abstraction Can Make Your Code Worse",
        "publishedAt": "3 years ago",
        "durationSeconds": 313,
        "views": 807231,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Support me on   / codeaesthetic  . Access to code examples, discord, song names and more at   / codeaesthetic  \n\nAdding abstraction to your code always feels like the right thing to do. But when you add abstraction, you add coupling which can often undermine the value of the abstraction.\n\n#programming #code #design #softwaredesign",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": null,
      "additionalContacts": []
    },
    "contactability": {
      "tier": "none",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": false,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Not reachable through public business channels. No published business email and no external website detected."
    },
    "topicPillars": [
      {
        "label": "codeaesthetic",
        "share": 1,
        "evidenceVideoIds": [
          "nuML9SmdbJ4",
          "J1f5b4vcxCQ",
          "tKbV6BpH-C8",
          "Bf7vDBBOBUA",
          "hxGOiiR9ZKg"
        ]
      },
      {
        "label": "song",
        "share": 1,
        "evidenceVideoIds": [
          "nuML9SmdbJ4",
          "J1f5b4vcxCQ",
          "tKbV6BpH-C8",
          "Bf7vDBBOBUA",
          "hxGOiiR9ZKg"
        ]
      },
      {
        "label": "names",
        "share": 1,
        "evidenceVideoIds": [
          "nuML9SmdbJ4",
          "J1f5b4vcxCQ",
          "tKbV6BpH-C8",
          "Bf7vDBBOBUA",
          "hxGOiiR9ZKg"
        ]
      },
      {
        "label": "access",
        "share": 0.88,
        "evidenceVideoIds": [
          "nuML9SmdbJ4",
          "tKbV6BpH-C8",
          "Bf7vDBBOBUA",
          "hxGOiiR9ZKg",
          "CFRhGnuXG-4"
        ]
      },
      {
        "label": "discord",
        "share": 0.75,
        "evidenceVideoIds": [
          "nuML9SmdbJ4",
          "Bf7vDBBOBUA",
          "hxGOiiR9ZKg",
          "CFRhGnuXG-4",
          "-J3wNP6u5YU"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Monday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "D",
      "rationale": "limited sponsorship signals (never maturity, none contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 26,
      "reason": "tier D composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.05
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.36,
      "level": "very-low",
      "coldStart": false
    },
    "whyThisMatters": "Tier D — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 30,
    "failureType": null,
    "summary": "CodeAesthetic — 0.4M subs, D-tier sponsorship readiness, none contactability, respond within 30 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 26,
      "readyForOutreach": false,
      "blockers": [
        "contactability:none — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.84,
      "urgency": 0,
      "noiseRisk": 0.64
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 2,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 2
      }
    },
    "channelStrategy": {
      "primary": "enrichment",
      "secondary": "linkedin",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [],
      "missedOpportunities": [
        "no-external-website-detected",
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.02
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.02,
      "gap": 0.92,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "unknown",
      "score": 0,
      "factors": [],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "none"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "ignore",
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": {
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "gaps": [
        "tier:D",
        "contactability:none"
      ]
    },
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "fcd0ba5017182438ba4366679219d34f582e7dfeaaace7f789fbbe51f479a6c0",
      "inputsHash": "7f2405947a645543aa732fcb8f095e21dc751261a1fdf44fb76fd19dcec2b82c",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:38.441Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "a13601ae6f6e3deb36e8f67dc9240a67efbafc2930eda84eec699c41abbfec8b",
    "channelId": "UCbfYPyITQ-7l4upoX8nvctg",
    "channelHandle": "@TwoMinutePapers",
    "channelName": "Two Minute Papers",
    "channelUrl": "https://www.youtube.com/@TwoMinutePapers",
    "description": "What a time to be alive - with Dr. Károly Zsolnai-Fehér.",
    "joinDate": null,
    "location": null,
    "subscribers": 1810000,
    "totalVideos": 1000,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_ljAkSpv16cJNUsE_rI1X-Kz9s78w1WNojUga-aZ1uVzEQ=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "users.cg.tuwien.ac.at",
        "url": "https://users.cg.tuwien.ac.at/zsolnai/"
      },
      {
        "platform": "patreon.com",
        "url": "https://www.patreon.com/TwoMinutePapers"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/twominutepapers"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/twominutepapers/"
      }
    ],
    "recentVideos": [
      {
        "videoId": "4wC8hnQawiA",
        "title": "NVIDIA New AI Is An Efficiency Monster",
        "publishedAt": "8 hours ago",
        "durationSeconds": 342,
        "views": 19951,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 The paper is available here:\nhttps://arxiv.org/abs/2604.24954\nhttps://developer.nvidia.com/blog/nvi...\nhttps://huggingface.co/blog/nvidia/ne...\n\nOur Patreon if you wish to support us:   / twominutepapers  \n\n🙏 We would like to thank our generous Patreon supporters who make Two Minute Papers possible:\nAdam Bridges, Benji Rabhan, B Shang, Cameron Navor, Charles Ian Norman Venn, Christian Ahlin, Eric T, Fred R, Gordon Child, Juan Benet, Michael Tedder, Owen Skarpness, Richard Sundvall, Ryan Stankye, Shawn Becker, Steef, Taras Bobrovytsky, Tazaur Sagenclaw, Tybie Fitzhugh, Ueli Gallizzi\n \nMy research: https://cg.tuwien.ac.at/~zsolnai/\nThumbnail design: https://felicia.hu\n\n#nvidia",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4nQnhjimB4Y",
        "title": "OpenAI's ChatGPT 5.5 Instant: The Good, The Bad And The Insane",
        "publishedAt": "5 days ago",
        "durationSeconds": 488,
        "views": 60470,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 GPT 5.5 Instant:\nhttps://deploymentsafety.openai.com/g...\nhttps://openai.com/index/gpt-5-5-inst...\n\nClassifiers paper: https://arxiv.org/pdf/2501.18837\n\nOur Patreon if you wish to support us:   / twominutepapers  \n\n🙏 We would like to thank our generous Patreon supporters who make Two Minute Papers possible:\nAdam Bridges, Benji Rabhan, B Shang, Cameron Navor, Charles Ian Norman Venn, Christian Ahlin, Eric T, Fred R, Gordon Child, Juan Benet, Michael Tedder, Owen Skarpness, Richard Sundvall, Ryan Stankye, Shawn Becker, Steef, Taras Bobrovytsky, Tazaur Sagenclaw, Tybie Fitzhugh, Ueli Gallizzi\n \nMy research: https://cg.tuwien.ac.at/~zsolnai/\nThumbnail design: https://felicia.hu\n\n#chatgpt",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "p7K3xfViWCE",
        "title": "DeepSeek V4 AI Beats Billion Dollar Systems…For Free",
        "publishedAt": "7 days ago",
        "durationSeconds": 604,
        "views": 172329,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 Check out DeepSeek here:\nhttps://www.deepseek.com/en/\n\nDeepSeek Engram:    • DeepSeek Just Fixed One Of The Biggest Pro...  \n\nSources:\nhttps://www.wikihow.com/Write-a-Book-...\nhttps://cmosshoptalk.com/2022/01/18/d...\nhttps://www.book-editing.com/why-book...\nhttps://x.com/awnihannun/status/20234...\nhttps://x.com/khalidwarsa/status/2050...\n\nOur Patreon if you wish to support us:   / twominutepapers  \n\n🙏 We would like to thank our generous Patreon supporters who make Two Minute Papers possible:\nAdam Bridges, Benji Rabhan, B Shang, Cameron Navor, Charles Ian Norman Venn, Christian Ahlin, Eric T, Fred R, Gordon Child, Juan Benet, Michael Tedder, Owen Skarpness, Richard Sundvall, Ryan Stankye, Shawn Becker, Steef, Taras Bobrovytsky, Tazaur Sagenclaw, Tybie Fitzhugh, Ueli Gallizzi\n \nMy research: https://cg.tuwien.ac.at/~zsolnai/\nThumbnail design: https://felicia.hu",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eCw33snvoNI",
        "title": "NVIDIA's New AI Turns One Photo Into A World That Never Breaks",
        "publishedAt": "10 days ago",
        "durationSeconds": 592,
        "views": 52887,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 The paper is available here:\nhttps://research.nvidia.com/labs/sil/...\n\nOur Patreon if you wish to support us:   / twominutepapers  \n\n🙏 We would like to thank our generous Patreon supporters who make Two Minute Papers possible:\nAdam Bridges, Benji Rabhan, B Shang, Cameron Navor, Charles Ian Norman Venn, Christian Ahlin, Eric T, Fred R, Gordon Child, Juan Benet, Michael Tedder, Owen Skarpness, Richard Sundvall, Ryan Stankye, Shawn Becker, Steef, Taras Bobrovytsky, Tazaur Sagenclaw, Tybie Fitzhugh, Ueli Gallizzi\n \nMy research: https://cg.tuwien.ac.at/~zsolnai/\nThumbnail design: https://felicia.hu\n\n#nvidia",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QzZ4VwDHAT4",
        "title": "Sakana AI’s God Simulator Is Brilliant",
        "publishedAt": "12 days ago",
        "durationSeconds": 462,
        "views": 42141,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 Try it out! The paper is available here:\nhttps://pub.sakana.ai/digital-ecosystem/\n\nOur Patreon if you wish to support us:   / twominutepapers  \n\n🙏 We would like to thank our generous Patreon supporters who make Two Minute Papers possible:\nAdam Bridges, Benji Rabhan, B Shang, Cameron Navor, Charles Ian Norman Venn, Christian Ahlin, Eric T, Fred R, Gordon Child, Juan Benet, Michael Tedder, Owen Skarpness, Richard Sundvall, Ryan Stankye, Shawn Becker, Steef, Taras Bobrovytsky, Tazaur Sagenclaw, Tybie Fitzhugh, Ueli Gallizzi\n \nMy research: https://cg.tuwien.ac.at/~zsolnai/\nThumbnail design: https://felicia.hu",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "yzajLZXh9JU",
        "title": "Solved: The Bug That Haunted AI Video For Years",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 575,
        "views": 44044,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 The paper is available here:\nhttps://research.nvidia.com/labs/sil/...\n\nOur Patreon if you wish to support us:   / twominutepapers  \n\n🙏 We would like to thank our generous Patreon supporters who make Two Minute Papers possible:\nAdam Bridges, Benji Rabhan, B Shang, Cameron Navor, Charles Ian Norman Venn, Christian Ahlin, Eric T, Fred R, Gordon Child, Juan Benet, Michael Tedder, Owen Skarpness, Richard Sundvall, Ryan Stankye, Shawn Becker, Steef, Taras Bobrovytsky, Tazaur Sagenclaw, Tybie Fitzhugh, Ueli Gallizzi\n \nMy research: https://cg.tuwien.ac.at/~zsolnai/\nThumbnail design: https://felicia.hu",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Xf_v62TQOx4",
        "title": "NVIDIA's New AI Broke My Brain",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 592,
        "views": 70099,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 The paper  is available here:\nhttps://nvlabs.github.io/GEAR-SONIC/\n\nOur Patreon if you wish to support us:   / twominutepapers  \n\n🙏 We would like to thank our generous Patreon supporters who make Two Minute Papers possible:\nAdam Bridges, Benji Rabhan, B Shang, Cameron Navor, Charles Ian Norman Venn, Christian Ahlin, Eric T, Fred R, Gordon Child, Juan Benet, Michael Tedder, Owen Skarpness, Richard Sundvall, Ryan Stankye, Shawn Becker, Steef, Taras Bobrovytsky, Tazaur Sagenclaw, Tybie Fitzhugh, Ueli Gallizzi\n \nMy research: https://cg.tuwien.ac.at/~zsolnai/\nThumbnail design: https://felicia.hu\n\n#nvidia",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Sk9tvyRSCgY",
        "title": "DeepMind’s New AI: A Gift To Humanity",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 716,
        "views": 141715,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\nLinks:\nhttps://deepmind.google/models/gemma/...\nhttps://ai.google.dev/gemma/docs/core...\n\nFine tuning with Matt Mireles: https://x.com/mattmireles/status/2041...\n\nOther sources:\nhttps://x.com/googlegemma/status/2041...\nhttps://x.com/nakazakifam/status/2041...\nhttps://x.com/measure_plan/status/203...\nhttps://x.com/maddiedreese/status/204...\nhttps://x.com/steipete/status/2042615...\nhttps://x.com/maziyarpanahi/status/20...\nhttps://x.com/adrgrondin/status/20419...\nhttps://x.com/evgeniymikholap/status/...\n   • OpenClaw Tutorial for Beginners - Crash Co...  \n  / implementing_gemma_3_and_sliding_window_at...  \n  / claude_ban_for_no_reason  \nhttps://www.tldrlegal.com/license/apa...\nhttps://x.com/MaziyarPanahi/status/20...\n\nOur Patreon if you wish to support us:   / twominutepapers  \n\n🙏 We would like to thank our generous Patreon supporters who make Two Minute Papers possible:\nAdam Bridges, Benji Rabhan, B Shang, Cameron Navor, Charles Ian Norman Venn, Christian Ahlin, Eric T, Fred R, Gordon Child, Juan Benet, Michael Tedder, Owen Skarpness, Richard Sundvall, Ryan Stankye, Shawn Becker, Steef, Taras Bobrovytsky, Tazaur Sagenclaw, Tybie Fitzhugh, Ueli Gallizzi\n \nMy research: https://cg.tuwien.ac.at/~zsolnai/\nThumbnail design: https://felicia.hu",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Ersv1ogj7Jo",
        "title": "Anthropic’s New AI Solves Problems…By Cheating",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 571,
        "views": 164002,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 The paper is available here:\nhttps://www.anthropic.com/claude-myth...\n\nLinks and sources:\nhttps://debugml.github.io/cheating-ag...\nhttps://x.com/bstnxbt/status/20429672...\n\nOur Patreon if you wish to support us:   / twominutepapers  \n\n🙏 We would like to thank our generous Patreon supporters who make Two Minute Papers possible:\nAdam Bridges, Benji Rabhan, B Shang, Cameron Navor, Charles Ian Norman Venn, Christian Ahlin, Eric T, Fred R, Gordon Child, Juan Benet, Michael Tedder, Owen Skarpness, Richard Sundvall, Ryan Stankye, Shawn Becker, Steef, Taras Bobrovytsky, Tazaur Sagenclaw, Tybie Fitzhugh, Ueli Gallizzi\n \nMy research: https://cg.tuwien.ac.at/~zsolnai/\nThumbnail design: https://felicia.hu\n#anthropic #mythos",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mFSFvKquXwI",
        "title": "NVIDIA’s New AI Shouldn’t Work…But It Does",
        "publishedAt": "1 month ago",
        "durationSeconds": 549,
        "views": 54422,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Weights & Biases and sign up for a free demo here: https://wandb.me/papers\n\n📝 The paper is available here:\nhttps://dreamdojo-world.github.io/\n\nOur Patreon if you wish to support us:   / twominutepapers  \n\n🙏 We would like to thank our generous Patreon supporters who make Two Minute Papers possible:\nAdam Bridges, Benji Rabhan, B Shang, Cameron Navor, Charles Ian Norman Venn, Christian Ahlin, Eric T, Fred R, Gordon Child, Juan Benet, Michael Tedder, Owen Skarpness, Richard Sundvall, Ryan Stankye, Shawn Becker, Steef, Taras Bobrovytsky, Tazaur Sagenclaw, Tybie Fitzhugh, Ueli Gallizzi\n \nMy research: https://cg.tuwien.ac.at/~zsolnai/\nThumbnail design: https://felicia.hu\n\n#NVIDIA",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZQAz_HrUq68",
        "title": "NVIDIA’s New AI Just Changed Everything",
        "publishedAt": "1 month ago",
        "durationSeconds": 491,
        "views": 182142,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 The #NVIDIA paper on Nemotron 3 Super is available here:\nhttps://research.nvidia.com/labs/nemotron/files...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7YVrb3-ABYE",
        "title": "Google’s New AI Just Broke My Brain",
        "publishedAt": "1 month ago",
        "durationSeconds": 514,
        "views": 166063,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 The TurboQuant paper is available here:\nhttps://arxiv.org/abs/2504.19874\n\nReproductions: \nhttps://github...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Io_GqmbNBbY",
        "title": "DeepMind’s New AI Just Changed Science Forever",
        "publishedAt": "1 month ago",
        "durationSeconds": 608,
        "views": 242125,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 The paper is available here:\nhttps://arxiv.org/abs/2602.10177\n\nSource:\nhttps://www.youtube.com/watch?v=6...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XL5bq8DRn64",
        "title": "The Algorithm That Made Me Cry",
        "publishedAt": "1 month ago",
        "durationSeconds": 470,
        "views": 35258,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\nFree course on Ray Tracing:\nhttps://users.cg.tuwien.ac.at/zsolnai/gfx/rendering-course/\n\nSong only version:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DmtoVnTkQnM",
        "title": "DeepSeek Just Fixed One Of The Biggest Problems With AI",
        "publishedAt": "1 month ago",
        "durationSeconds": 587,
        "views": 169376,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 The #DeepSeek paper is available here:\nhttps://github.com/deepseek-ai/Engram\nhttps://arxiv.org/abs/2601....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RDQ4vHAPNls",
        "title": "This Physics Breakthrough Looks Impossible",
        "publishedAt": "2 months ago",
        "durationSeconds": 578,
        "views": 90832,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 The paper is available here:\nhttps://xuan-li.github.io/pdf/publications/li2024dynamicduo.pdf\n\nSources:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "s9SnEE7JXU4",
        "title": "NVIDIA’s New AI Just Cracked The Hardest Part Of Self Driving",
        "publishedAt": "2 months ago",
        "durationSeconds": 540,
        "views": 52803,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 The paper is available here:\nhttps://github.com/NVlabs/alpamayo\n\nResearch panel I will be at GTC:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qF_tfIieeE0",
        "title": "The Physics Bug That Stumped Everyone Is Finally Gone!",
        "publishedAt": "2 months ago",
        "durationSeconds": 611,
        "views": 105565,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 The paper is available here:\nhttps://www.geometry.caltech.edu/pubs/LD23.pdf\n\nSource:\nhttps://www.youtube...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ssbHkYB0jYM",
        "title": "How DeepMind’s New AI Predicts What It Cannot See",
        "publishedAt": "2 months ago",
        "durationSeconds": 642,
        "views": 72524,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 The paper is available here:\nhttps://d4rt-paper.github.io/\n\nOur Gaussian Material Synthesis paper:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "j-B8ymGWlIE",
        "title": "Adobe & NVIDIA’s New Tech Shouldn’t Be Real Time. But It Is.",
        "publishedAt": "2 months ago",
        "durationSeconds": 592,
        "views": 86649,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 The paper is available here:\nhttps://perso.telecom-paristech.fr/boubek/papers/Glinty/\n\nWeb demo:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "B6GJjvR6txg",
        "title": "The Most Realistic Fire Simulation Ever",
        "publishedAt": "2 months ago",
        "durationSeconds": 698,
        "views": 55202,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Weights & Biases and sign up for a free demo here: https://wandb.me/papers\n\n📝 The paper is available here:\nhttps://helgewrede.github.io/firex/\n\nOur Patreon if you wish to...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WNsSzX0L4Es",
        "title": "NVIDIA’s Insane AI Found The Math Of Reality",
        "publishedAt": "2 months ago",
        "durationSeconds": 550,
        "views": 202769,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 The paper is available here: https://research.nvidia.com/labs/sil/projects/ppisp/\n\nOur Patreon if...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eGpIXJ0C4ds",
        "title": "Anthropic Found Out Why AIs Go Insane",
        "publishedAt": "3 months ago",
        "durationSeconds": 572,
        "views": 247058,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 The paper is available here:\nhttps://www.anthropic.com/research/assistant-axis\n\nOur Patreon if you...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vsK4Gb7Eys8",
        "title": "Physics Simulation Just Crossed A Line",
        "publishedAt": "3 months ago",
        "durationSeconds": 574,
        "views": 55527,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 The paper is available here:\nhttps://sig25ddmpd.github.io/\n\nOur Patreon if you wish to support us:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RaNay3x0Fmk",
        "title": "NVIDIA’s New AI: Erasing Reality",
        "publishedAt": "3 months ago",
        "durationSeconds": 554,
        "views": 67958,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 The paper and the code are now available here:\nhttps://dvirsamuel.github.io/omnimattezero.github.io/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fFL7la73RO4",
        "title": "New DeepSeek Research - The Future Is Here!",
        "publishedAt": "3 months ago",
        "durationSeconds": 755,
        "views": 293673,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\nI use DeepSeek there by running an instance with enough GPU VRAM and using ollama.\n\n📝 The #DeepSeek...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4RtUJkjrKMI",
        "title": "Surprise Video - What A Time To Be Alive!",
        "publishedAt": "3 months ago",
        "durationSeconds": 305,
        "views": 41120,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Thank you so much everyone, this was amazing fun!\n\nVocals: Carolina Padrón\nDrums: Federico Gucciardo\nBass: Lagos Bfingerz\n\nGuitar tab is available here for free, no paywall nonsense: https://www.d...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "opghSX24clM",
        "title": "This Broke My Brain - These Humans Aren’t Real",
        "publishedAt": "3 months ago",
        "durationSeconds": 501,
        "views": 124826,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 The paper is available here:\nhttps://neuralbodies.github.io/RFGCA/\n\nOur Patreon if you wish to support...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9Mcv9vpGW5Q",
        "title": "They Said It Was Impossible… This Simulation Solved It",
        "publishedAt": "3 months ago",
        "durationSeconds": 854,
        "views": 86650,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Lambda here and sign up for their GPU Cloud: https://lambda.ai/papers\n\n📝 The paper is available here:\nhttps://visualcomputing.ist.ac.at/publications/2025/HomogenizedSand/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "O7q52WxYZN8",
        "title": "This Fluid Simulation Should Not Be Possible",
        "publishedAt": "3 months ago",
        "durationSeconds": 478,
        "views": 132577,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Check out Weights & Biases and sign up for a free demo here: https://wandb.me/papers\n\n📝 The paper \"Fast Octree Neighborhood Search for SPH Simulations\" is available here:\nhttps://andreasl...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 15,
      "uploadsLast90d": 30,
      "uploadCadenceWeekly": 2.33,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 86649,
      "viewsPerVideoP90Last90d": 202769,
      "viewVelocityTrend": "stable"
    },
    "performanceBaseline": {
      "p50Views": 86649,
      "p90Views": 202769,
      "p99Views": 247058,
      "outperformingVideosLast90d": 4
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "users.cg.tuwien.ac.at",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 1,
        "evidenceVideoIds": [
          "4wC8hnQawiA",
          "4nQnhjimB4Y",
          "p7K3xfViWCE",
          "eCw33snvoNI",
          "QzZ4VwDHAT4"
        ]
      },
      {
        "label": "check",
        "share": 0.97,
        "evidenceVideoIds": [
          "4wC8hnQawiA",
          "4nQnhjimB4Y",
          "p7K3xfViWCE",
          "eCw33snvoNI",
          "QzZ4VwDHAT4"
        ]
      },
      {
        "label": "sign",
        "share": 0.97,
        "evidenceVideoIds": [
          "4wC8hnQawiA",
          "4nQnhjimB4Y",
          "p7K3xfViWCE",
          "eCw33snvoNI",
          "QzZ4VwDHAT4"
        ]
      },
      {
        "label": "papers",
        "share": 0.97,
        "evidenceVideoIds": [
          "4wC8hnQawiA",
          "4nQnhjimB4Y",
          "p7K3xfViWCE",
          "eCw33snvoNI",
          "QzZ4VwDHAT4"
        ]
      },
      {
        "label": "lambda",
        "share": 0.87,
        "evidenceVideoIds": [
          "4wC8hnQawiA",
          "4nQnhjimB4Y",
          "p7K3xfViWCE",
          "eCw33snvoNI",
          "QzZ4VwDHAT4"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Friday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 36,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.55
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Two Minute Papers — 1.8M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 36,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.74,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "a13601ae6f6e3deb36e8f67dc9240a67efbafc2930eda84eec699c41abbfec8b",
      "inputsHash": "81c5fe97eceb6a1c7f5053d6e7b73b8abad3c53c960984951146d253aa8408fa",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-stable",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:39.963Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "a103a92cd4756a416f09c44d1d4d3b0aa9ba2c3c6cdc60f904d3ce16828c937a",
    "channelId": "UC2WHjPDvbE6O328n17ZGcfg",
    "channelHandle": "@fknight",
    "channelName": "ForrestKnight",
    "channelUrl": "https://www.youtube.com/@fknight",
    "description": "Software engineer, Linux distro hopper, Java apologist. I use arch, btw.",
    "joinDate": null,
    "location": null,
    "subscribers": 694000,
    "totalVideos": 411,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/TzjkRGVvMc1M9xCgoqMK8MOVxd6tLOhSdqnhx5AjVcWEgZGXtbZQY5Ji9Yj23aBc6GOANwjD=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "twitter",
        "url": "https://x.com/ForrestPKnight"
      },
      {
        "platform": "devnotesdaily.com",
        "url": "https://devnotesdaily.com"
      },
      {
        "platform": "github",
        "url": "https://github.com/ForrestKnight"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/forrestpknight"
      }
    ],
    "recentVideos": [
      {
        "videoId": "HhPs2sKlQYg",
        "title": "Wait, I thought Java was dead?",
        "publishedAt": "12 days ago",
        "durationSeconds": 1725,
        "views": 78994,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Kotlin is a really good programming language, try it! https://jetty.to/kotlin (sponsored by JetBrains)\n\nEverything at Netflix is built on Java - from the backend to the server racks at your ISP. Java Champion and Staff Software Engineer at Netflix, Paul Bakker, has talked about how Netflix uses Java at scale for at least three years in a row. We went over all of that last year:    • Netflix is Built on Java  \n\nThis year, however, there's a new twist: AI. Netflix has a few very interesting ways they use AI to help them with Java at Netflix.\n\nWatch the original video:    • How Netflix Uses Java - 2026 Edition  \n\nA portion of this video was sponsored by JetBrains.\n\nHow Netflix Uses Java is Insane\nEverything at Netflix is Built on Java\nNetflix is Built on Java (with AI)\n\nIf you're a developer, sign up to my free newsletter Dev Notes 👉 https://www.devnotesdaily.com/\n\nIf you're a student, checkout my Notion template Studious: https://notionstudent.com\n\nDon't know why you'd want to follow me on other socials. I don't even post. But here you go.\n🐱‍🚀 GitHub: https://github.com/forrestknight\n🐦 Twitter:   / forrestpknight  \n💼 LinkedIn:   / forrestpknight  \n📸 Instagram:   / forrestpknight",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "t-DM44d-qhU",
        "title": "GitHub is Falling Apart",
        "publishedAt": "13 days ago",
        "durationSeconds": 1438,
        "views": 45828,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Depot really is that good, you should try it: https://jetty.to/depot\n\nGitHub is falling apart. I am sad to see it happen, and I am mad at how Microsoft is running GitHub into the ground and lying about the actual reason.\n\nTo elaborate/clarify: So y'all may notice in the video where I added some segments after the fact (after I shaved lol) because I wanted to really clarify my intent with this video, which wasn't to simply dunk on GitHub, but that I want GitHub to actually fix these issues... but I may be quickly changing my mind. I was gonna record even more today to address and emphasize all of these new things, but figured I'd just leave it here as a comment.\n\nThe way they've been going about controlling the narrative around this whole thing is really pissing me off. They're trying to push the idea that this is solely due to GitHub facing unprecedented scale from AI agents, so we must cut them slack. And so many others are parroting this idea. I'm tired of it. These issues started LONG before this started happening (see image at 18:15).\n\nWhat about all of the downtime last year? Or the year before that? Or almost every single year since Microsoft acquired GitHub? Can't use the same excuse and expect grace.\n\nThere's no denying the fact that they are facing unprecedented scale, but there's obviously a bigger issue here that needs to be fixed. So GitHub, stop gaslighting the public into thinking it's simply due to increased traffic. It's not.\n\nAnd I don't think there would be as much blow back if Microsoft and GitHub weren't on the \"AI can do your job\" train, laying off  thousands of devs, then saying \"oh no, AI is the reason our product isn't working.\" Because wait a minute, I thought AI was supposed to FIX all of these issues, not cause them. So which is it?\n\nALSO, GitHub is being intentionally deceiving in their chart from their post-mortem by using the good ol' Anthropic trick. \n\nYou're telling me there were nearly 0 PRs merged, commits, and new repos in 2023? Of course not, but I guess that's why y'all left out the y-axis.\n\nI absolutely hate deception like this.\n\nI know I somewhat mentioned these things in the video, but I really wanted to emphasize just how ridiculous it all is. And address the fact that I re-recorded a few clips to try to ensure I wasn't just simply dunking on GitHub because I felt bad about doing that. But I don't anymore. They deserve the criticism.\n\nWith that said, I will still be using GitHub for now lol. I know, I'm a hypocrite in this regard, but I WILL be actively searching for alternatives, and I sure hope Depot, or anyone else for that matter, can make one that's actually good.\n\nAlso, at 15:23, there is an error listed under \"Pull Requests\" for April 23rd, so maybe that's addressing the merge queue issue. But I honestly don't know. There are so many issues with GitHub now, that it could be any number of things.\n\nIf you're a developer, sign up to my free newsletter Dev Notes 👉 https://www.devnotesdaily.com/\n\nIf you're a student, checkout my Notion template Studious: https://notionstudent.com\n\nDon't know why you'd want to follow me on other socials. I don't even post. But here you go.\n🐱‍🚀 GitHub: https://github.com/forrestknight\n🐦 Twitter:   / forrestpknight  \n💼 LinkedIn:   / forrestpknight  \n📸 Instagram:   / forrestpknight",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ESwH-_xFS_M",
        "title": "So Claude Code's Source Code Was Just Leaked...",
        "publishedAt": "1 month ago",
        "durationSeconds": 1757,
        "views": 104073,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out Greptile, the best AI code reviewer I've ever used: https://jetty.to/greptile\n\nSo Claude Code's source code has been leaked. A person by the name of Chaofan Shou found that Claude Code's npm package included a source map file. Which is a JSON file that, well, quite literally contains all of the original source code embedded inside it.\n\nSources\nChaofan Shou's original post: https://x.com/Fried_rice/status/20388...\nKuber Mehta writeup: https://kuber.studio/blog/AI/Claude-C...\nRust/Python rewrite (claw-code): https://github.com/instructkr/claw-code\nVentureBeat analysis: https://venturebeat.com/technology/cl...\nFortune coverage (source leak): https://fortune.com/2026/03/31/anthro...\nFortune coverage (CMS leak): https://fortune.com/2026/03/26/anthro...\nThe Register (with Anthropic statement): https://www.theregister.com/2026/03/3...\nAlex Kim's technical breakdown: https://alex000kim.com/posts/2026-03-...\nRohan's code quality analysis: https://x.com/rohan_2502/status/20389...\nBun bug discussion: https://github.com/oven-sh/bun/issues...\n\nIf you're a developer, sign up to my free newsletter Dev Notes 👉 https://www.devnotesdaily.com/\n\nIf you're a student, checkout my Notion template Studious: https://notionstudent.com\n\nDon't know why you'd want to follow me on other socials. I don't even post. But here you go.\n🐱‍🚀 GitHub: https://github.com/forrestknight\n🐦 Twitter:   / forrestpknight  \n💼 LinkedIn:   / forrestpknight  \n📸 Instagram:   / forrestpknight",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "44JBZwAsfJI",
        "title": "AI Has Broken the Internet",
        "publishedAt": "1 month ago",
        "durationSeconds": 1037,
        "views": 189826,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Depot CI really is that good, you should try it: https://jetty.to/depot-ci\n\nSo the web has been breaking a lot lately. Vercel is down. GitHub is down. Claude is down. Cloudflare is down. AWS is down. Everything is down and it's making me lose my freaking mind. And to no one's surprise, it seems to be AI's fault. But not exactly how you'd expect.\n\nIf you're a developer, sign up to my free newsletter Dev Notes 👉 https://www.devnotesdaily.com/\n\nIf you're a student, checkout my Notion template Studious: https://notionstudent.com\n\nDon't know why you'd want to follow me on other socials. I don't even post. But here you go.\n🐱‍🚀 GitHub: https://github.com/forrestknight\n🐦 Twitter:   / forrestpknight  \n💼 LinkedIn:   / forrestpknight  \n📸 Instagram:   / forrestpknight",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Q2QmQTNA7vs",
        "title": "Coding with Opus 4.6 and Codex 5.3 is actually insane",
        "publishedAt": "3 months ago",
        "durationSeconds": 1334,
        "views": 105652,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Only click if you want to experience the best code editor ever made, Zed: https://jetty.to/zed\n\nEveryone's telling me Codex 5.3 is better at coding than Opus 4.6, but my experience has been different. So here are my first impressions with both models in 3 different codebases: TypeScript, Rust, and Java.\n\nIf you're a developer, sign up to my free newsletter Dev Notes 👉 https://www.devnotesdaily.com/\n\nIf you're a student, checkout my Notion template Studious: https://notionstudent.com\n\nDon't know why you'd want to follow me on other socials. I don't even post. But here you go.\n🐱‍🚀 GitHub: https://github.com/forrestknight\n🐦 Twitter:   / forrestpknight  \n💼 LinkedIn:   / forrestpknight  \n📸 Instagram:   / forrestpknight",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-8JOlCvA4Qs",
        "title": "I Can't Believe Rust is Replacing Java",
        "publishedAt": "3 months ago",
        "durationSeconds": 465,
        "views": 160751,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "To try everything Brilliant has to offer for free, visit https://brilliant.org/ForrestKnight and get 20% off Brilliant’s annual premium subscription.\n\nRust was supposed to replace C and C++, not Java and Scala. What's going on?? \n\nIf you're a developer, sign up to my free newsletter Dev Notes 👉 https://www.devnotesdaily.com/\n\nIf you're a student, checkout my Notion template Studious: https://notionstudent.com\n\nDon't know why you'd want to follow me on other socials. I don't even post. But here you go.\n🐱‍🚀 GitHub: https://github.com/forrestknight\n🐦 Twitter:   / forrestpknight  \n💼 LinkedIn:   / forrestpknight  \n📸 Instagram:   / forrestpknight",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XhLMS47l8Bw",
        "title": "33 CLI Tools You Need to Try",
        "publishedAt": "4 months ago",
        "durationSeconds": 987,
        "views": 33398,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Start learning cyber security with TryHackMe: https://tryhackme.com/forrestknight Use my code \"FORREST25\" to get 25% off on annual subscription!\n\nThis video is about Linux commands... that's it. My hope is that you take away at least one or two commands that help you as a developer or otherwise. Or just continue waiting on the AI to process your prompt to then hopefully run the correct command after 10+ seconds of thinking... but that's completely up to you.\n\nA portion of this video is sponsored by TryHackMe.\n\nIf you're a developer, sign up to my free newsletter Dev Notes 👉 https://www.devnotesdaily.com/\n\nIf you're a student, checkout my Notion template Studious: https://notionstudent.com\n\nDon't know why you'd want to follow me on other socials. I don't even post. But here you go.\n🐱‍🚀 GitHub: https://github.com/forrestknight\n🐦 Twitter:   / forrestpknight  \n💼 LinkedIn:   / forrestpknight  \n📸 Instagram:   / forrestpknight",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3lvofS5vktc",
        "title": "Rust Changed How I Code Forever",
        "publishedAt": "5 months ago",
        "durationSeconds": 906,
        "views": 83082,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get 40% off for 3 months of Coursera Plus - https://imp.i384100.net/c/1459666/341...\n\nSo last year, I took on the challenge to learn Rust. My plan was to read through a bit of the Rust book (which I did), do a couple of challenges (which I did), and ultimately complete every single day of Advent of Code (which I didn't do). So I spent a good amount of time this year playing around with Rust, building a couple things, and just learning how it works. And there are a handful of things I’ve pulled from Rust that I now implement, or are at least cognizant of when I’m writing Java, or TypeScript.\n\n0:00 i tried learning rust\n1:35 Ownership & Control\n4:52 Borrowing & Shared State\n7:27 Types & Inference\n9:10 Error Handling\n10:34 Concurrency\n12:28 Enums\n14:38 everything should be written in rust\n\nIf you're a developer, sign up to my free newsletter Dev Notes 👉 https://www.devnotesdaily.com/\n\nIf you're a student, checkout my Notion template Studious: https://notionstudent.com\n\nDon't know why you'd want to follow me on other socials. I don't even post. But here you go.\n🐱‍🚀 GitHub: https://github.com/forrestknight\n🐦 Twitter:   / forrestpknight  \n💼 LinkedIn:   / forrestpknight  \n📸 Instagram:   / forrestpknight",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "yz4i8vD-Klc",
        "title": "I Tried Coding on Every OS // Here’s What I Learned",
        "publishedAt": "6 months ago",
        "durationSeconds": 1455,
        "views": 295579,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Shop Micro Center’s Monthly Sales: https://micro.center/2e4ec6\n\nI've coded on Windows, WSL2, macOS, Linux of various flavors like Ubuntu, Arch Linux, and more operating systems over the past decade, so with all of the hype and talk surrounding all of these operating systems, I wanted to share my general thoughts based on my experience with them. And that's all this video is - it's not what you should do, or what operating system is best, but just my thoughts and what I've learned.\n\nCheck out Micro Center’s Newest Store: https://micro.center/4a9879\nRead up Micro Center News: https://micro.center/f033f1\n\n[TIMESTAMPS]\n\nA portion of this video is sponsored by Micro Center.\n\nIf you're a developer, sign up to my free newsletter Dev Notes 👉 https://www.devnotesdaily.com/\n\nIf you're a student, checkout my Notion template Studious: https://notionstudent.com\n\nDon't know why you'd want to follow me on other socials. I don't even post. But here you go.\n🐱‍🚀 GitHub: https://github.com/forrestknight\n🐦 Twitter:   / forrestpknight  \n💼 LinkedIn:   / forrestpknight  \n📸 Instagram:   / forrestpknight",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UZuWeLjyT3c",
        "title": "Java Isn't Verbose // we just suck",
        "publishedAt": "6 months ago",
        "durationSeconds": 1275,
        "views": 54223,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get certified by Nvidia and showcase your skills: https://nvda.ws/4nz7712 (use code “ForrestK20” for 20% off Certification Exams)\n\nI already knew I sucked but didn't realize that's what was making Java verbose. And while watching this video, keep in mind what I say at 11m16s.\n\nOriginal Article by \"Adam - The Developer\": https://dev.to/adamthedeveloper/java-...\n\nA portion of this video is sponsored by Nvidia.\n\nDon't know why you'd want to follow me on other socials. I don't even post. But here you go.\n🐱‍🚀 GitHub: https://github.com/forrestknight\n🐦 Twitter:   / forrestpknight  \n💼 LinkedIn:   / forrestpknight  \n📸 Instagram:   / forrestpknight",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5fhcklZe-qE",
        "title": "Everything You Need to Know About Coding with AI // NOT vibe coding",
        "publishedAt": "6 months ago",
        "durationSeconds": 795,
        "views": 161104,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Warp is free to try but for a limited time, you can try Warp Pro free for 7 days with 2,500 AI credits - no card required. Use my link https://go.warp.dev/forrestytcow\n\nEveryone seems to be...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YLCrAm-aGI8",
        "title": "Java just got cleaner",
        "publishedAt": "7 months ago",
        "durationSeconds": 449,
        "views": 85350,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Java 25 cleans house with the additions of 18 new JEPs that include flexible constructor bodies, scoped values, structured concurency, primitive pattern matching, compact object headers, new...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "spJwsa4KFrU",
        "title": "Java is 30 Years Old // Here’s Why It’s Still Winning",
        "publishedAt": "8 months ago",
        "durationSeconds": 574,
        "views": 73933,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "To try everything Brilliant has to offer for free, visit http://brilliant.org/ForrestKnight/ and get 20% off Brilliant’s annual premium subscription.\n\nJava just turned 30. For a language...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "meEXag1XCFw",
        "title": "Why Everyone's Switching to Rust (And Why You Shouldn't)",
        "publishedAt": "8 months ago",
        "durationSeconds": 884,
        "views": 464440,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Rust is everywhere.\n\nBuild, Upgrade, and Save All Month Long at Micro Center: https://micro.center/a8050d\nSign-Up for VIP Days at Micro Center Phoenix: https://micro.center/477d78\nShop 50 Series...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3VQhdXcQ5qI",
        "title": "AI Has Changed How We Build Software // What You Need to Know",
        "publishedAt": "9 months ago",
        "durationSeconds": 1710,
        "views": 82440,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try out Director by Browserbase: https://browserbase.plug.dev/G5zQA47\nLearn more about Browserbase: https://browserbase.plug.dev/hmVE7Uh\n\nI know AI is everywhere, and overwhelming, and annoying....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ukgmp6uxQJc",
        "title": "Everything You NEED to Know About TECH DEBT",
        "publishedAt": "9 months ago",
        "durationSeconds": 1533,
        "views": 62291,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try out monday.com's monday magic today: https://bit.ly/4nIkYma\n\nTechnical debt is one of those things every software engineer deals with, but not everyone fully understands. It's not just...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "T3sax7PB0vw",
        "title": "My Linux Ubuntu Setup for Software Development",
        "publishedAt": "10 months ago",
        "durationSeconds": 1283,
        "views": 334551,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "After NixOS beat me up, I switched my software engineering setup to Ubuntu with Omakub. This video is a look into my dev setup and tools I use for my development work.\n\nShop Micro Center's...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Aw3_hOG3BzE",
        "title": "I Overengineered 3 Buttons to Explain Software Architecture",
        "publishedAt": "10 months ago",
        "durationSeconds": 851,
        "views": 20402,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out Warp 2.0, the Agentic Development Environment: https://go.warp.dev/forrestknight and get 2 months free of Warp Pro using my promo code \"FORRESTKNIGHT\" (there are only so many redeems,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YMxTTTBZhYM",
        "title": "i'm sorry nixOS, i've failed you. maybe next time.",
        "publishedAt": "11 months ago",
        "durationSeconds": 902,
        "views": 107791,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "To try everything Brilliant has to offer for free, visit http://brilliant.org/ForrestKnight/ and get 20% off Brilliant’s annual premium subscription.\n\nNixOS just isn't for me.\n\nIf you're...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eQMge4nIfbg",
        "title": "This Is Programmer Heaven! // What It’s Like Inside Micro Center in Silicon Valley",
        "publishedAt": "11 months ago",
        "durationSeconds": 630,
        "views": 20399,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Take a tour of the brand new grand reopening of the Silicon Valley Micro Center (Santa Clara). Man, I love this place.\n\nMicro Center Santa Clara is Officially OPEN: https://micro.center/a71cec...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jqHXJ3O7WGw",
        "title": "My Favorite Way to Learn a New Codebase",
        "publishedAt": "11 months ago",
        "durationSeconds": 1096,
        "views": 48733,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Augment Code is awesome for large codebases (try it out for free): https://www.augmentcode.com/?utm_source=forrestknight&utm_medium=youtube&utm_campaign=influencer\n\nI often have to learn new...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lhjGDKqutB0",
        "title": "Coding with Claude 4 is actually insane",
        "publishedAt": "11 months ago",
        "durationSeconds": 1187,
        "views": 114411,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Zed: code at the speed of thought: https://zed.dev/?y=62\n\nI coded with Anthropic's Claude Sonnet 4 and Claude Opus 4, and unlike 3.7 was to 3.5, this is definitely an upgrade.\n\n0:00 claude...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gNta-P4Vf7Q",
        "title": "This One Idea Changed Web Dev Forever",
        "publishedAt": "1 year ago",
        "durationSeconds": 509,
        "views": 24854,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you attend Snyk Launch 2025 on May 28th: https://snyk.plug.dev/nZdYkWM\n\nAll modern JavaScript frameworks - React, Vue, Svelte, Solid, Qwik, Angular - exist for one reason... to stop...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sMPMiy0NsUs",
        "title": "Netflix is Built on Java",
        "publishedAt": "1 year ago",
        "durationSeconds": 813,
        "views": 182958,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Shop Micro Center's Desktop Deals: https://micro.center/4e0b51\n\nEverything at Netflix is built on Java - from the backend to the server racks at your ISP. Java Champion and Staff Software Engineer...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AOs_iA1wJcM",
        "title": "Linux officially won.",
        "publishedAt": "1 year ago",
        "durationSeconds": 3036,
        "views": 79078,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "i love that pewdiepie is so stoked about linux that i just wanted to watch this video with y'all. it's different from my normal content, but i like to try new things from time to time. pretty...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KIi0FOP9Qe4",
        "title": "Why You Never Finish Your Programming Projects",
        "publishedAt": "1 year ago",
        "durationSeconds": 649,
        "views": 34623,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try out monday.com for free today: https://bit.ly/424DBqu\n\nSo you have a lot of unfinished programming projects, huh? Yea, me too. It's something I’ve been dealing with lately.\n\nI have 4...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "t3GQiZMLPUg",
        "title": "OpenAI ACTUALLY made something open source.",
        "publishedAt": "1 year ago",
        "durationSeconds": 587,
        "views": 21431,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "OpenAI has had an insane week. They released GPT-4.1 (which is pretty good at coding), o3 and o4-mini (solid upgrade), Codex CLI (actually open source!), and they're in serious talks to buy...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7OPLE0cF8JU",
        "title": "These programming languages are so weird...",
        "publishedAt": "1 year ago",
        "durationSeconds": 398,
        "views": 57469,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "To try everything Brilliant has to offer for free, visit http://brilliant.org/ForrestKnight/ and get 20% off Brilliant’s annual premium subscription.\n\nI built the same CLI app in five system...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Kj22GriXU9s",
        "title": "C# is Java done right",
        "publishedAt": "1 year ago",
        "durationSeconds": 231,
        "views": 76952,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Java devs don't want to hear this, but C# is Java done right... supposedly. That's what people are saying. But why? Why do people think C# is Java done right? That's what we go over in this...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KbbXjbX2Hec",
        "title": "I Found the Best A.I. for Coding",
        "publishedAt": "1 year ago",
        "durationSeconds": 908,
        "views": 219245,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Shop Micro Center’s Upcoming selection of 50 Series Laptops: https://micro.center/oejg\n\nI coded with the 5 best and most popular Ai models for coding: Gemini 2.5 Pro, Claude 3.5 Sonnet, Claude...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 4,
      "uploadsLast90d": 6,
      "uploadCadenceWeekly": 0.47,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 104073,
      "viewsPerVideoP90Last90d": 160751,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 104073,
      "p90Views": 160751,
      "p99Views": 160751,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 1,
      "sponsorBrandsDetected": [
        "JetBrains",
        "This video",
        "TryHackMe",
        "Micro Center",
        "Nvidia"
      ],
      "affiliateLinkHosts": [
        "brilliant.org",
        "bit.ly"
      ],
      "sponsorshipFrequencyPercent": 17,
      "lastSponsoredVideoDate": "2026-05-02",
      "detectionDetail": [
        {
          "brand": "JetBrains",
          "videoId": "HhPs2sKlQYg",
          "confidence": 0.7,
          "evidence": "description: sponsored by JetBrains",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:41.091Z"
        },
        {
          "brand": "This video",
          "videoId": "XhLMS47l8Bw",
          "confidence": 0.7,
          "evidence": "description: this video is sponsored by TryHackMe.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:41.092Z"
        },
        {
          "brand": "TryHackMe",
          "videoId": "XhLMS47l8Bw",
          "confidence": 0.7,
          "evidence": "description: sponsored by TryHackMe.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:41.092Z"
        },
        {
          "brand": "This video",
          "videoId": "yz4i8vD-Klc",
          "confidence": 0.7,
          "evidence": "description: this video is sponsored by Micro Center.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:41.092Z"
        },
        {
          "brand": "Micro Center",
          "videoId": "yz4i8vD-Klc",
          "confidence": 0.7,
          "evidence": "description: sponsored by Micro Center.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:41.092Z"
        },
        {
          "brand": "This video",
          "videoId": "UZuWeLjyT3c",
          "confidence": 0.7,
          "evidence": "description: this video is sponsored by Nvidia.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:41.092Z"
        },
        {
          "brand": "Nvidia",
          "videoId": "UZuWeLjyT3c",
          "confidence": 0.7,
          "evidence": "description: sponsored by Nvidia.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:41.092Z"
        }
      ]
    },
    "sponsorshipMaturity": {
      "tier": "occasional",
      "evidence": {
        "sponsoredVideoCountLast90d": 1,
        "uniqueSponsorBrandsLast90d": 5,
        "firstSponsoredVideoDate": "2026-05-14"
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "devnotesdaily.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "medium",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": true,
        "affiliateLinksPresent": true
      },
      "interpretation": "Reachable but with gaps: missing one or more of email validation, sponsor history, or external website."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.73,
        "evidenceVideoIds": [
          "HhPs2sKlQYg",
          "t-DM44d-qhU",
          "ESwH-_xFS_M",
          "44JBZwAsfJI",
          "Q2QmQTNA7vs"
        ]
      },
      {
        "label": "dev",
        "share": 0.53,
        "evidenceVideoIds": [
          "HhPs2sKlQYg",
          "t-DM44d-qhU",
          "ESwH-_xFS_M",
          "44JBZwAsfJI",
          "Q2QmQTNA7vs"
        ]
      },
      {
        "label": "forrestknight",
        "share": 0.5,
        "evidenceVideoIds": [
          "HhPs2sKlQYg",
          "t-DM44d-qhU",
          "ESwH-_xFS_M",
          "44JBZwAsfJI",
          "Q2QmQTNA7vs"
        ]
      },
      {
        "label": "try",
        "share": 0.47,
        "evidenceVideoIds": [
          "HhPs2sKlQYg",
          "t-DM44d-qhU",
          "44JBZwAsfJI",
          "-8JOlCvA4Qs",
          "XhLMS47l8Bw"
        ]
      },
      {
        "label": "com",
        "share": 0.43,
        "evidenceVideoIds": [
          "HhPs2sKlQYg",
          "t-DM44d-qhU",
          "ESwH-_xFS_M",
          "44JBZwAsfJI",
          "Q2QmQTNA7vs"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "B",
      "rationale": "strong views-per-subscriber ratio.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "strong",
        "businessContactSignal": "moderate",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "occasional"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 48,
      "reason": "tier B composite — mid signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.5
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.6
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.6,
      "level": "medium",
      "coldStart": false
    },
    "whyThisMatters": "Tier B — composite signal mix is occasional sponsor history, moderate contact.",
    "whyNow": "Last sponsored video 12 days ago — within typical sponsorship-decision lookback for similar creators.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "ForrestKnight — 0.7M subs, B-tier sponsorship readiness, medium contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 48,
      "readyForOutreach": false,
      "blockers": [
        "contactability:medium — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.62,
      "urgency": 0,
      "noiseRisk": 0.4
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": true,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "occasional sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:occasional",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": true,
      "requiresEnrichment": true,
      "priorityQueue": "medium"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "B-tier readiness — nurture or enrich before outreach.",
      "appliedRules": [
        "lastSponsored<90d"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "optimal",
      "reason": "Last sponsored video 12 days ago; within typical 14-30d decision-cycle for similar creators.",
      "decayRisk": 0.35
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 52,
      "reasons": [
        "Active sponsor history within last 90d (1 videos)"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "a103a92cd4756a416f09c44d1d4d3b0aa9ba2c3c6cdc60f904d3ce16828c937a",
      "inputsHash": "e0b9c571410ee010eefdaf2b102498e7dcc39f2295cfc1ada3afcfee4155ba99",
      "rulesApplied": [
        "sponsorship-history-occasional",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:40.369Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "f7653800e465ab88897388aa98248a8cd7306228603ef376cd6f3797a666ee5b",
    "channelId": "UC4JX40jDee_tINbkjycV4Sg",
    "channelHandle": "@TechWithTim",
    "channelName": "Tech With Tim",
    "channelUrl": "https://www.youtube.com/@TechWithTim",
    "description": "I'm Tim, a self-taught developer & entrepreneur who brings you educational tech content without the fluff and noise. I went from a broke dropout working at McDonalds to making $100k+/month as a developer, travelling the world and moving to Dubai all before the age of 22. I've since helped thousands of aspiring developers land their first software engineering role and assisted mid-level devs land jobs at companies like google.",
    "joinDate": null,
    "location": null,
    "subscribers": 2010000,
    "totalVideos": 1900,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_k15oXl74WcnpdL-uVBv6IHBgAfXEEnpUiS-IoEyV1auyY=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "techwithtim.net",
        "url": "https://www.techwithtim.net/newsletter"
      }
    ],
    "recentVideos": [
      {
        "videoId": "bzV2EwDyxpk",
        "title": "Claude Tutorial - How to Connect Claude to ANY Tool",
        "publishedAt": "1 day ago",
        "durationSeconds": 767,
        "views": 8063,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Use composio for free here: https://composio.dev/toolkits\n\nIf you've been using Claude, Codex, Cursor or Windsurf coworkers or windsurf - it doesn't matter. You know that these AI tools get significantly better when you connect them to external resources. I want to show you how to connect any application, product software tool that you use directly to your favorite AI agent.\n\nWant to make real money with coding? I share high-signal insights on careers, monetization, and leverage in my free newsletter. Join here and get my guide How to Make Money With Coding instantly: https://techwithtim.net/newsletter\n\n🚀 Tools I Use\nGet 10% off with code techwithtim\nOpenclaw setup: https://www.hostinger.com/techwithtim\nVPS setup: https://www.hostinger.com/techwithtim10 \nWispr Flow (Best AI Dictation): https://ref.wisprflow.ai/techwithtim\n\n🎞 Video Resources 🎞\nComposio Url: https://composio.dev/toolkits\n\n⏳ Timestamps ⏳\n00:00 | Overview\n01:50 | On Demand Tool Discovery\n05:25 | Composio Setup\n07:27 | Composio Install\n09:01 | Use Cases/Examples\n\nHashtags\n#Claude #Anthropic #AI Agents\n\nUAE Media License Number: 3635141",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rrylSizvnSg",
        "title": "Claude Just Got a Superpower No One's Talking About",
        "publishedAt": "2 days ago",
        "durationSeconds": 900,
        "views": 9019,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Sponsored by Higgsfield! Build powerful AI video workflows with Higgsfield MCP: https://higgsfield.ai/s/mcp-techwitht...\n\nClaude Code just got visual superpowers. In this video, I connect Higgsfield's MCP server to Claude Code and turn it into a full content production pipeline — generating AI images, videos, product shots, and UGC-style content from a single chat conversation.\n\nHiggsfield MCP gives Claude access to 30+ image and video generation models (Soul, Seedance, Kling, Veo, Nano Banana, and more) so you can go from idea to finished visual without leaving your terminal or chat window. I'll walk through the full setup, show you real generations, and explain how this changes the way creators and developers produce content at scale.\n\nWant to make real money with coding? I share high-signal insights on careers, monetization, and leverage in my free newsletter. Join here and get my guide How to Make Money With Coding instantly: https://techwithtim.net/newsletter\n\n🚀 Tools I Use\nGet 10% off with code techwithtim\nOpenclaw setup: https://www.hostinger.com/techwithtim\nVPS setup: https://www.hostinger.com/techwithtim10 \nWispr Flow (Best AI Dictation): https://ref.wisprflow.ai/techwithtim\n\n🎞 Video Resources 🎞\nGet started with Higssfield MCP: https://higgsfield.ai/mcp\n\n⏳ Timestamps ⏳\n00:00 Overview\n00:23 What's the Point \n03:29 | MCP Setup (Claude)\n04:29 | CLI Setup (Claude Code)\n06:48 | Image Generation \n09:57 | Video Ads \n11:26 | Landing Page + Content \n12:31 | Ad Variants\n\nHashtags\n#Higgsfield #Claude\n\nUAE Media License Number: 3635141",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SVz-y-pD6s4",
        "title": "One AI Agent Isn't Enough Anymore",
        "publishedAt": "4 days ago",
        "durationSeconds": 1008,
        "views": 13085,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get started with Mistral Vibe here: https://mistr.al/vibe-techwithtim-yt\n\nMistral just dropped Vibe, a terminal-native AI coding agent that lets you build and run custom subagents for different tasks instead of relying on one agent to do everything. In this video, I break down why single-agent coding is hitting a wall, how subagents actually work in practice, and I demo the whole thing live in Mistral Vibe so you can see the difference for yourself.\n\nWant to make real money with coding? I share high-signal insights on careers, monetization, and leverage in my free newsletter. Join here and get my guide How to Make Money With Coding instantly: https://techwithtim.net/newsletter\n\n🚀 Tools I Use\nGet 10% off with code techwithtim\nOpenclaw setup: https://www.hostinger.com/techwithtim\nVPS setup: https://www.hostinger.com/techwithtim10 \nWispr Flow (Best AI Dictation): https://ref.wisprflow.ai/techwithtim\n\n🎞 Video Resources 🎞\nSubagents Docs: https://docs.mistral.ai/mistral-vibe/...\n\n⏳ Timestamps ⏳\n00:0 | Why Make Subagents\n01:10 | Mistral Vibe Setup\n03:34 | How Subagents Work\n07:23 | Project Overview & Small Build\n09:00 | Creating Subagents\n\nHashtags\n#Mistral #Subagents #AI\n\nUAE Media License Number: 3635141",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "t2G0L0cqktw",
        "title": "Codex is INSANE - Everything New in 10 Minutes",
        "publishedAt": "5 days ago",
        "durationSeconds": 556,
        "views": 35694,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Deploy your site using here.now completely for free, copy the prompt for your agent here! https://here.now/r/twt\n\nIn this video, I am going to give you a complete breakdown of what GPT 5.5 is all about. I'll show you how it works, it's new capabilities, and functions inside the Codex application. \n\nWant to make real money with coding? I share high-signal insights on careers, monetization, and leverage in my free newsletter. Join here and get my guide How to Make Money With Coding instantly: https://techwithtim.net/newsletter\n\n🚀 Tools I Use\nGet 10% off with code techwithtim\nOpenclaw setup: https://www.hostinger.com/techwithtim\nVPS setup: https://www.hostinger.com/techwithtim10 \nWispr Flow (Best AI Dictation): https://ref.wisprflow.ai/techwithtim\n\n⏳ Timestamps ⏳\n00:00 | Overview\n00:17 | Model Overview\n03:00 | Here.now Deployment\n04:14 | Computer Use\n06:23 | Spread Sheets\n07:30 | Presentations\n\nHashtags\n#LearnCodex #GPT5_5 #aitraining  #TechIn10Minutes\n\nUAE Media License Number: 3635141",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GUgxx6fMiR8",
        "title": "How to Build an App With Claude Code - Full Tutorial for Beginners",
        "publishedAt": "7 days ago",
        "durationSeconds": 1444,
        "views": 48439,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Deploy your apps using Hostinger for the best performance at the lowest cost: https://www.hostg.xyz/SHJNq . Use code TECHWITHTIM for an additional 10% off.\n\nIn this video, I'll walk you through a step by step process on not only how to build, but also how to deploy a full web application using Claude code. At the end of this video, you'll have a fully functioning application that is deployed on your own domain that other people can actually access.\n\nWant to make real money with coding? I share high-signal insights on careers, monetization, and leverage in my free newsletter. Join here and get my guide How to Make Money With Coding instantly: https://techwithtim.net/newsletter\n\n🚀 Tools I Use\nGet 10% off with code techwithtim\nOpenclaw setup: https://www.hostinger.com/techwithtim\nVPS setup: https://www.hostinger.com/techwithtim10 \nWispr Flow (Best AI Dictation): https://ref.wisprflow.ai/techwithtim\n\n🎞 Video Resources 🎞\nDeploy with Hostinger: https://www.hostg.xyz/SHJNq\nClaude Code Download: https://claude.com/product/claude-code\nCursor Download: https://cursor.com/get-started\n\n⏳ Timestamps ⏳\n00:00 | Overview\n00:18 | Installing Claude Code\n01:45 | Installing Cursor\n02:40 | Cursor Setup & Walkthrough\n05:30 | Setting up Claude Code\n06:52 | Developing a Plan \n11:55 | Building the App\n14:29 | Setting up Git \n15:47 | Deploying the Site\n19:49 | Deploying from Claude Code\n\nHashtags\n#appdevelopment  #claudecode  #tutorialforbeginners  #buildanapp \n\nUAE Media License Number: 3635141",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "seTDT8Rxryc",
        "title": "Claude Code + Nano Banana 2 = INSANE Designs",
        "publishedAt": "10 days ago",
        "durationSeconds": 996,
        "views": 19118,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Huge thanks to Skywork for sponsoring a portion of this video! 🚀\n\nYou can actually use the same image generation models we covered today - ChatGPT Image 2.0 and Nano Banana 2 - directly inside Skywork to automate your visual workflows.\n\n👉 Use my code tim2026 Get up to 20% OFF your Skywork subscription here: https://skywork.ai/p/Wv69mE\n🎁  Special Bonus: Sign up for the Annual Plan and get a FREE Skywork Note AI voice recorder.\n\nYou've probably heard of the state of the art image generation models like Nano Banana Pro and Nano Banana 2. Now, these are extremely good models and you can create some really interesting images with them. However, they're a little bit inconvenient to use. So in this video, I'm going to show you how we can combine Nano Banana with Claude Code.\n\nWant to make real money with coding? I share high-signal insights on careers, monetization, and leverage in my free newsletter. Join here and get my guide How to Make Money With Coding instantly: https://techwithtim.net/newsletter\n\n🚀 Tools I Use\nGet 10% off with code techwithtim\nOpenclaw setup: https://www.hostinger.com/techwithtim\nVPS setup: https://www.hostinger.com/techwithtim10 \nWispr Flow (Best AI Dictation): https://ref.wisprflow.ai/techwithtim\n\n🎞 Video Resources 🎞\nJSON Skill: https://mcpmarket.com/tools/skills/na...\nGemini API Docs: https://ai.google.dev/gemini-api/docs...\nGoogle AI Studio: https://aistudio.google.com/u/1/api-keys\nNano Banana Skill Download: https://marble-quartz-tamc.here.now/\n\n⏳ Timestamps ⏳\n00:00 | Overview\n01:03 | Demo/Usage\n02:30 | Gemini/Nano Banana Setup\n04:36 | Skywork Insert\n06:53 | JSON Prompting\n11:01 | Adding Claude Skills\n14:17 | Generating Images\n\nHashtags\n#ClaudeCode #NanoBanana #Anthropic\n\nUAE Media License Number: 3635141",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "HFmoNVx6vTA",
        "title": "I reviewed 20 AI engineering courses, here are my top 5",
        "publishedAt": "12 days ago",
        "durationSeconds": 780,
        "views": 32125,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔹 Associate AI Engineer for Developers: (Datacamp) - https://datacamp.pxf.io/jRnbx5\n🔹 Associate Ai Engineer for Data Scientists(Datacamp) - https://datacamp.pxf.io/bkDX4x\n🔹 HuggingFace - https://huggingface.co/learn/llm-cour...\n🔹 DeepLearning.AI - https://www.deeplearning.ai/\n🔹 DeepLearning AI x Coursera - https://www.coursera.org/specializati...\n🔹 LLM Bootcamp - https://fullstackdeeplearning.com/llm...\n\nGet 25% off any DataCamp track: https://datacamp.pxf.io/DWbo9n\n\nI reviewed 20 AI engineering courses, and in this video I'm going to share with you my top five. We're going to go over all of the evaluation criteria. I'm going to share with you the price point, how interactive they are, which ones are best for beginners or advanced users. And by the end of this video, you're going to know which course I would personally recommend if I was trying to get into AI engineering in 2026.\n\n🚀 Tools I Use\nGet 10% off with code techwithtim\nOpenclaw setup: https://www.hostinger.com/techwithtim\nVPS setup: https://www.hostinger.com/techwithtim10 \nWispr Flow (Best AI Dictation): https://ref.wisprflow.ai/techwithtim\n\n⏳ Timestamps ⏳\n00:00 | Overview\n00:23 | What is AI Engineering\n01:24 | Evaluation Criteria \n02:33 | Course 1\n03:46 | Course 1.1\n04:26 | Course 2 \n06:08 | Course 3\n07:27 | Course 4 \n09:07 | Course 5\n12:00 | Final Recommendation\n\nHashtags\n#AIEngineering #AIAgents #AIModels\n\nUAE Media License Number: 3635141",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WOPIoZuD1og",
        "title": "The State of Software Engineering in 2026",
        "publishedAt": "13 days ago",
        "durationSeconds": 670,
        "views": 44212,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Stop paying hundreds of dollars for multiple AI subscriptions when you can access the same models and features from nexos.ai: https://nexos.ai/twt \n\nIn January 2026, the head of Claude Code at Anthropic said he hasn't written a single line of code by hand in over two months. AI isn't coming for software engineering, it has already arrived. Here's what the state of software engineering actually looks like in 2026.\n\nWant to make real money with coding? I share high-signal insights on careers, monetization, and leverage in my free newsletter. Join here and get my guide How to Make Money With Coding instantly: https://techwithtim.net/newsletter\n\n🚀 Tools I Use\nGet 10% off with code techwithtim\nOpenclaw setup: https://www.hostinger.com/techwithtim\nVPS setup: https://www.hostinger.com/techwithtim10 \nWispr Flow (Best AI Dictation): https://ref.wisprflow.ai/techwithtim\n\n⏳ Timestamps ⏳\n00:00 | Overview\n00:37 | Supervisor First \n02:30 | Agent Experience\n03:51 | Nexos AI \n05:42 | Brain Drain\n08:16 | Bottlenecks have Moved\n10:07 | Uncertainty \n\nHashtags\n#AgentExperience #SoftwareEngineering #AIAgents\n\nUAE Media License Number: 3635141",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vJBAzdOACD8",
        "title": "I gave Claude its own database, here's what happened",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 813,
        "views": 20831,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Use ghost.build for free to add persistent memory and disposable databases to claude: https://b.link/ghost-twt\n\nIn this video, I show you how to connect Claude Code to a real database using a free MCP server from ghost.build. This is a game changer for AI-assisted development — once Claude Code has direct access to your database, it can write queries, debug schema issues, and build features way faster.\n\nI walk through the full setup step by step so you can get this running in minutes.\n\nGhost.Build Docs: https://ghost.build/docs/\n\nWant to make real money with coding? I share high-signal insights on careers, monetization, and leverage in my free newsletter. Join here and get my guide How to Make Money With Coding instantly: https://techwithtim.net/newsletter\n\n🚀 Tools I Use\nGet 10% off with code techwithtim\nOpenclaw setup: https://www.hostinger.com/techwithtim\nVPS setup: https://www.hostinger.com/techwithtim10 \nWispr Flow (Best AI Dictation): https://ref.wisprflow.ai/techwithtim\n\n⏳ Timestamps ⏳\n00:00 | Intro/Overview\n01:21 | Solution\n02:05 | Setup/Install\n02:50 | Claude Code Usage\n03:16 | Demo 1: Create and connect\n07:25 | Demo 2: Seed, query, nuke\n08:55 | Demo 3: Optimize a slow query\n10:39 | Demo 4: 10 parallel databases\n13:30 | Outro\n\nHashtags\n#Claude\n\nUAE Media License Number: 3635141",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xEr0hRbK_Xo",
        "title": "How to Make an App With AI - 9 Steps",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 1351,
        "views": 19320,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click this link https://boot.dev/?promo=TECHWITHTIM and use my code TECHWITHTIM to get 25% off your first payment for boot.dev\n\nBuilding an app with AI in 2026 is either the easiest thing you've ever done or a complete nightmare, and the difference comes down to whether or not you're following a process or you just start vibe coding at two in the morning. I'm going to give you a nine stage roadmap that you can follow any time you want to build something with AI.\n\n🚀 Tools I Use\nGet 10% off with code techwithtim\nOpenclaw setup: https://www.hostinger.com/techwithtim\nVPS setup: https://www.hostinger.com/techwithtim10 \nWispr Flow (Best AI Dictation): https://ref.wisprflow.ai/techwithtim\n\n⏳ Timestamps ⏳\n00:00 | Overview\n00:37 | Stage 1 \n02:06 | Stage 2\n05:47 | Boot.dev\n07:09 | Stage 3\n08:14 | Stage 4\n10:17 | Stage 5\n13:32 | Stage 6\n16:00 | Stage 7\n18:33 | Stage 8\n20:32 | Stage 9 \n\nHashtags\n#AIAgents #Coding2026 #SoftwareEngineer\n\nUAE Media License Number: 3635141",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DZIymFrEXik",
        "title": "Do THIS instead of watching endless tutorials — how to learn Python for AI",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 757,
        "views": 28133,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🎓 These are two of the best beginner-friendly resources I recommend to learn Python for AI:\n🔹 Python Programming Fundamentals (Datacamp) - https://datacamp.pxf.io/oNX3PO\n🔹 AI Engineer...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "73UEJxAWzb0",
        "title": "Local Models Got a HUGE Upgrade - Full Guide (Ollama/OpenClaw)",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 1131,
        "views": 49338,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get a chance to win a FREE Mac Mini with ClawComp: https://clawcomp.net/\nPromptCast: https://www.youtube.com/@PromptCastOfficial\n\nLocal models just got a massive upgrade. Just over the past...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1ve4Atbqmoo",
        "title": "Hermes Agent Full Tutorial for Beginners | Setup Guide",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 1715,
        "views": 41054,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Deploy Hermes with Hostinger in one click: https://www.hostg.xyz/SHJJB\n\nIn this video, I walk through the complete setup of Hermes Agent — a self-hosted AI agent you can run on your own VPS...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8FBGb0NS_zc",
        "title": "Build an AI Email Assistant with Code | Full AI Tutorial",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 5336,
        "views": 54151,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get started with Postmark for free to build this project! https://postmarkapp.com/lp/tech-with-tim?utm_source=techwithtim&utm_medium=sponsored-video&utm_campaign=techwithtim-sponsored-video-apr2026...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Xx18YRrK-Uk",
        "title": "I Built an AI Agent in 20 Minutes - Here's How",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 1187,
        "views": 68709,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Explore MaxClaw/MiniMax Agent: https://agent.minimax.io/?utm_media_source=YT&utm_campaign=kol&utm_content=TechWithTim\n\nDownload Agent Desktop: https://agent.minimax.io/download\n\nI set up an...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fgr6Sm-dmmM",
        "title": "I Replaced OpenClaw With Perplexity Computer…",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 1048,
        "views": 19366,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get started with Perplexity computer: https://www.perplexity.ai/try-computer?utm_source=Influencer&utm_medium=influencer&utm_campaign=Tech_Tim&utm_adset=Computer&utm_content=Youtube&wpsrc=Influence...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dlgIqefjVe8",
        "title": "AI Testing Just Arrived... | KaneAI Full Tutorial",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 683,
        "views": 52433,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get started with KaneAI using their FREE trial: https://www.testmuai.com/kane-ai/?utm_source=youtube&utm_medium=techwithtim_ifm&utm_campaign=kane_ai&utm_content=dv&via=vibetest\n\nTesting is...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QmdCkaTM1P4",
        "title": "MiroFish Full Tutorial — Predict Any Scenario With AI",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 1245,
        "views": 41405,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Deploy MiroFish with one click using Hostinger: https://www.hostg.xyz/SHJGj\nGet 10% off with code techwithtim\n\nMiroFish is one of the coolest AI projects that I've ever played with, and the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2EZMBq4gWOY",
        "title": "How to Design a Production-Grade System in Python",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 1419,
        "views": 148230,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Thordata: https://www.thordata.com/?ls=YouTube&lk=Tim\nUse the code \"THORTIM\" to get 30% off!\n\nNow I know a lot of you watching are tired of the beginner tutorials, the quick code snippets,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jsy3m7Emkr0",
        "title": "How to Setup AI Agent Skills for Better Code | TRAE SOLO",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 1238,
        "views": 55791,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Try TRAE SOLO Now: https://www.trae.ai/?utm_source=influencerglobal&utm_medium=meeco&utm_campaign=Techwithtim\nThe first 50 people to use this code get immediate access (first come, first...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uogzSxOw4LU",
        "title": "The Ultimate Claude Code Guide | MCP, Skills & More",
        "publishedAt": "1 month ago",
        "durationSeconds": 2261,
        "views": 142213,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Use Nimbalyst to access a free visual workspace for building with Codex and Claude Code: https://nimbalyst.com?utm_source=youtube&utm_medium=sponsorship&utm_campaign=tech-with-tim&utm_content=embed...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GAyNvq6Ayps",
        "title": "Running LLMs Locally Just Got Way Better - Ollama + MCP",
        "publishedAt": "1 month ago",
        "durationSeconds": 1312,
        "views": 96796,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Use the Zapier MCP server to connect to over 8000 applications/tools: https://bit.ly/4vn0jrC\n\nIf you want to run a local model that is free, private, and capable of connecting to all of your...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RDUGbxslOcM",
        "title": "Anthropic Just Broke Software Forever",
        "publishedAt": "1 month ago",
        "durationSeconds": 962,
        "views": 88476,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Host your AI generated sites for FREE with a single prompt using here.now (no signup required), just copy the agent prompt and you're done: https://here.now/r/twt\n\nThis video breaks down the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GtTJ6LcqdCE",
        "title": "The Claude Code Situation",
        "publishedAt": "1 month ago",
        "durationSeconds": 804,
        "views": 10538,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Claude Code wrote a C Compiler that couldn't compile \"Hello World\", then another agentic platform fixed it...\n\n🎞 Video Resources 🎞\nBlitzy C Compiler: https://blitzy.com/blog/hello-world-the-b...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "w-X3HV2OTfM",
        "title": "50x Cheaper Than Claude - But Can It Actually Code?",
        "publishedAt": "1 month ago",
        "durationSeconds": 921,
        "views": 63585,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "MiniMax Token Plan 12% OFF: https://platform.minimax.io/subscribe/coding-plan?code=7kk2uAhnPa&source=link\n\nMiniMax 2.7 is an AI model writing code, testing it, figuring out what went wrong,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RHZLJhp-JMM",
        "title": "Paperclip Is Insane - Full Tutorial",
        "publishedAt": "1 month ago",
        "durationSeconds": 2320,
        "views": 99344,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Deploy paperclip on Hostinger: https://www.hostg.xyz/SHJBY \n\nWe've now entered the era of entire AI companies. We're talking about fully autonomous companies that run using multiple AI agents...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7QisFjITGlI",
        "title": "Learn Snowflake with ONE Project",
        "publishedAt": "1 month ago",
        "durationSeconds": 2687,
        "views": 46598,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get started with Snowflake today for free: https://signup.snowflake.com/?template=us_economy_agent\n\nToday I'm going to teach you Snowflake by building a real project. By the end of this video,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LHKhYH0xDSg",
        "title": "How to Build an AI Agent That Interacts With All Your Data Sources",
        "publishedAt": "1 month ago",
        "durationSeconds": 1178,
        "views": 26761,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get started with CData Connect AI for free today to build your AI agent: https://bit.ly/4dsrmLL\n\nBuilding an AI agent seems pretty simple on paper. But as soon as you try to deploy it, use...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "h7h-ShDI3-Y",
        "title": "I Just Replaced Lovable With This New AI Tool...",
        "publishedAt": "1 month ago",
        "durationSeconds": 800,
        "views": 62477,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try the app I built in this video! Clone it here and make it your own: https://ndvanacg6572m.mocha.app\nSign up through my link and start building with Mocha today: https://getmocha.com?utm_source=t...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tf_KmDNZXzI",
        "title": "Claude Cowork - Full Course for Beginners",
        "publishedAt": "1 month ago",
        "durationSeconds": 1456,
        "views": 102465,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Thanks to Storyblocks for sponsoring this video. Get 15% off any annual plan for a limited time, only available through this link http://storyblocks.com/techwithtim\n\nYou've probably heard of...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 30,
      "uploadsLast90d": 30,
      "uploadCadenceWeekly": 2.33,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 44212,
      "viewsPerVideoP90Last90d": 99344,
      "viewVelocityTrend": "rising"
    },
    "performanceBaseline": {
      "p50Views": 44212,
      "p90Views": 99344,
      "p99Views": 142213,
      "outperformingVideosLast90d": 4
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 3,
      "sponsorBrandsDetected": [
        "Higgsfield",
        "Skywork",
        "Skywork for sponsoring a portion of this",
        "Storyblocks"
      ],
      "affiliateLinkHosts": [
        "bit.ly"
      ],
      "sponsorshipFrequencyPercent": 10,
      "lastSponsoredVideoDate": "2026-05-12",
      "detectionDetail": [
        {
          "brand": "Higgsfield",
          "videoId": "rrylSizvnSg",
          "confidence": 0.7,
          "evidence": "description: Sponsored by Higgsfield",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:42.319Z"
        },
        {
          "brand": "Skywork",
          "videoId": "seTDT8Rxryc",
          "confidence": 0.7,
          "evidence": "description: thanks to Skywork for sponsoring",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:42.319Z"
        },
        {
          "brand": "Skywork for sponsoring a portion of this",
          "videoId": "seTDT8Rxryc",
          "confidence": 0.7,
          "evidence": "description: Huge thanks to Skywork for sponsoring a portion of this",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:42.319Z"
        },
        {
          "brand": "Storyblocks",
          "videoId": "tf_KmDNZXzI",
          "confidence": 0.95,
          "evidence": "description: Thanks to Storyblocks for sponsoring",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:42.320Z"
        }
      ]
    },
    "sponsorshipMaturity": {
      "tier": "regular",
      "evidence": {
        "sponsoredVideoCountLast90d": 3,
        "uniqueSponsorBrandsLast90d": 4,
        "firstSponsoredVideoDate": "2026-05-14"
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "techwithtim.net",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": true,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.97,
        "evidenceVideoIds": [
          "bzV2EwDyxpk",
          "rrylSizvnSg",
          "SVz-y-pD6s4",
          "t2G0L0cqktw",
          "GUgxx6fMiR8"
        ]
      },
      {
        "label": "get",
        "share": 0.67,
        "evidenceVideoIds": [
          "bzV2EwDyxpk",
          "rrylSizvnSg",
          "SVz-y-pD6s4",
          "t2G0L0cqktw",
          "GUgxx6fMiR8"
        ]
      },
      {
        "label": "com",
        "share": 0.63,
        "evidenceVideoIds": [
          "bzV2EwDyxpk",
          "rrylSizvnSg",
          "SVz-y-pD6s4",
          "t2G0L0cqktw",
          "GUgxx6fMiR8"
        ]
      },
      {
        "label": "www",
        "share": 0.6,
        "evidenceVideoIds": [
          "bzV2EwDyxpk",
          "rrylSizvnSg",
          "SVz-y-pD6s4",
          "t2G0L0cqktw",
          "GUgxx6fMiR8"
        ]
      },
      {
        "label": "code",
        "share": 0.57,
        "evidenceVideoIds": [
          "bzV2EwDyxpk",
          "rrylSizvnSg",
          "SVz-y-pD6s4",
          "t2G0L0cqktw",
          "GUgxx6fMiR8"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Thursday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "B",
      "rationale": "active sponsor history, consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "regular"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 64,
      "reason": "regular sponsor history x growth rising last 90d",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.85
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.85
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.6,
      "level": "medium",
      "coldStart": false
    },
    "whyThisMatters": "regular sponsor history + rising 90d view velocity. Channel is in the active outreach window.",
    "whyNow": "Last sponsored video 2 days ago — within typical sponsorship-decision lookback for similar creators.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Tech With Tim — 2.0M subs, B-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 64,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.46,
      "urgency": 0,
      "noiseRisk": 0.4
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 2,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 2
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.02
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.02,
      "gap": 0.92,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "active sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:regular",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": true,
      "requiresEnrichment": true,
      "priorityQueue": "medium"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "B-tier readiness — nurture or enrich before outreach.",
      "appliedRules": [
        "lastSponsored<90d"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "optimal",
      "reason": "Last sponsored video 2 days ago; within typical 14-30d decision-cycle for similar creators.",
      "decayRisk": 0.35
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 52,
      "reasons": [
        "Active sponsor history within last 90d (3 videos)"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "f7653800e465ab88897388aa98248a8cd7306228603ef376cd6f3797a666ee5b",
      "inputsHash": "48de7f6b072bab3a1411c6a24b12432c9897a2bde3203e1c491f57ec9e6450be",
      "rulesApplied": [
        "sponsorship-history-regular",
        "growth-velocity-rising",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:41.498Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "3d8cb4f5bf4da118bf19ffc2482ee6197863647306a7da52b7e144b7791b5860",
    "channelId": "UCCfqyGl3nq_V0bo64CjZh8g",
    "channelHandle": "@ModernSoftwareEngineeringYT",
    "channelName": "Modern Software Engineering",
    "channelUrl": "https://www.youtube.com/@ModernSoftwareEngineeringYT",
    "description": "Modern Software Engineering is where good developers come to become great. Learn about the most important techniques in software development, from some of the most influential speakers in the software industry. Build better software, faster, and become the best software engineer you can be.\n\nHosted by Dave Farley, Trisha Gee, Steve Smith, Emily Bache, Kevlin Henney, Kent Beck, Sam Newman & Daniel Terhorst-North. Subscribe for tips, tricks, comments on topical matters in the software development industry and MORE to help you become a great programmer.",
    "joinDate": null,
    "location": null,
    "subscribers": 261000,
    "totalVideos": 593,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/4nMvDCKd_6ox1Fmapo_J7I_BCATVVPUOOTUa0CJoBua6-sJkVMdp90aKiEzB-YkH28oQqpkbhA=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "modernsoftwareengineering.co.uk",
        "url": "http://modernsoftwareengineering.co.uk/"
      },
      {
        "platform": "linkedin",
        "url": "https://www.linkedin.com/company/modern-software-engineering"
      },
      {
        "platform": "twitter",
        "url": "https://x.com/ModernSoftwareX"
      },
      {
        "platform": "courses.cd.training",
        "url": "https://courses.cd.training/"
      },
      {
        "platform": "patreon.com",
        "url": "https://www.patreon.com/c/continuousdelivery"
      }
    ],
    "recentVideos": [
      {
        "videoId": "XDNXLdwq114",
        "title": "Why AI WON'T Replace Software Engineering...",
        "publishedAt": "6 hours ago",
        "durationSeconds": 1171,
        "views": 5395,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Is coding with AI a productivity miracle or a \"complexity bomb\" with a delayed fuse?\n\nIn this video, Dave Farley explores why the rise of artificial intelligence in software development actually makes real software engineering more critical than ever. While tools like GitHub Copilot, ChatGPT, Claude Code, and Cursor make ai code generation cheap, they don’t solve the real bottlenecks of programming: understanding, designing, testing, and integrating solutions to real-world problems.\n\nWhat You’ll Learn:\nThe Coding Trap: Why more code often leads to more complexity, not more value.\nAI vs Human: Why the \"typing\" was never the expensive part of software engineering.\nContinuous Delivery & AI: How to build a deployment pipeline that catches AI mistakes in minutes.\nClaude Code Tips: Using executable specifications and acceptance testing to keep AI agents aligned with your goals.\nTDD with AI: How to teach your ai  coding assistants to follow Test-Driven Development and avoid \"naive\" implementations.\n\n-\n\n🎓 GROW YOUR CD CAPABILITIES WITH MANUEL PAIS:\n\nMove beyond simply “doing CD” and instead create the conditions where Continuous Delivery actually delivers results. Learn; how to remove delivery bottlenecks, why pipelines fail to create true flow, how to improve visibility across teams, how to enable greater team autonomy, how organisational design impacts software delivery, how to create calmer, low-stress releases. Ready to start improving the way your team use CD? The course is now live and available to enrol ➡️ https://courses.cd.training/courses/6...\n\n-\n\nDave on: \nX ➡️ https://x.com/davefarley77\nLinkedIn ➡️   / dave-farley-a67927  \nbluesky ➡️ https://bsky.app/profile/davefarley77...\n\nModern Software Engineering on X ➡️ https://x.com/ModernSoftwareX\nModern Software Engineering on LinkedIn ➡️   / modern-software-engineering  \nModern Software Engineering on bluesky ➡️ https://bsky.app/profile/modernswe.bs...\n\n-\n\n⭐ PATREON:\nJoin the Continuous Delivery community and access extra perks & content! ➡️ https://bit.ly/ContinuousDeliveryPatreon \n\n🎥 Join Us On TikTok ➡️   / modern.s.engineering  \n\n-\n\n👕 T-SHIRTS:\nA fan of the T-shirts I wear in my videos? Grab your own, at reduced prices EXCLUSIVE TO CONTINUOUS DELIVERY FOLLOWERS! Get money off the already reasonably priced t-shirts!\n\n🔗 Check out their collection HERE: ➡️ https://bit.ly/3Uby9iA\n🚨 DON'T FORGET TO USE THIS DISCOUNT CODE: ContinuousDelivery\n\n-\n\nCHANNEL SPONSORS:\n\nOctopus Deploy sets the standard for Continuous Delivery (CD), empowering software teams to deliver value in an agile way. Globally, more than 4,000 organizations rely on its Continuous Delivery, GitOps, and release orchestration solutions to deliver swift value to their customers. Octopus efficiently orchestrates software delivery across multi-cloud, Kubernetes, data centers, and hybrid environments, whether containerized modern apps or heritage applications. With governance, risk, and compliance (GRC) at its core, Octopus supports Platform Engineering teams in their mission to provide a superior developer experience (DevEx). Octopus also actively contributes to the developer community with open-source projects. ➡️ https://bit.ly/MSExOCTDEP\n\nEqual Experts is a product software development consultancy with a network of over 1,000 experienced technology consultants globally. They increase the pace of innovation by using modern software engineering practices that embrace Continuous Delivery, Security, and Operability from the outset ➡️ https://bit.ly/3ASy8n0\n\nTransFICC provides low-latency connectivity, automated trading workflows and e-trading systems for Fixed Income and Derivatives. TransFICC resolves the issue of market fragmentation by providing banks and asset managers with a unified low-latency, robust and scalable API, which provides connectivity to multiple trading venues while supporting numerous complex workflows across asset classes such as Rates and Credit Bonds, Repos, Mortgage-Backed Securities and Interest Rate Swaps ➡️ https://transficc.com\n\n-\n\n#ai #codingwithai #claudecode #softwareengineering #softwaredevelopment #vibecoding",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gqJBS3YD7CE",
        "title": "The Day An AI Agent DESTROYED This Company's Data",
        "publishedAt": "7 days ago",
        "durationSeconds": 969,
        "views": 4791,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Mastering ai and code security is essential when coding with ai tools like cursor-opus claude code, copilot, or chatgpt. Recent incidents, like the one involving Pocket OS, highlight the risks of artificial intelligence agents gaining unauthorized access to production databases via broad-scoped, long-lived API tokens. To ensure ai code security, developers must move beyond vibe coding and implement sandboxing, use time-limited credentials, and strictly follow the principle of least privilege in modern software engineering.\n\n-\n\nSam Newman's Website ➡️ https://samnewman.io/ \nSam Newman on LinkedIn ➡️   / samnewman  \n\nModern Software Engineering on X ➡️ https://x.com/ModernSoftwareX\nModern Software Engineering on LinkedIn ➡️   / modern-software-engineering  \nModern Software Engineering on bluesky ➡️ https://bsky.app/profile/modernswe.bs...\n\n-\n\n⭐ PATREON:\n\nJoin the Continuous Delivery community and access extra perks & content! ➡️ https://bit.ly/ContinuousDeliveryPatreon \n\n🎥 Join Us On TikTok ➡️   / modern.s.engineering  \n\n-\n\nCHANNEL SPONSORS:\n\nOctopus Deploy sets the standard for Continuous Delivery (CD), empowering software teams to deliver value in an agile way. Globally, more than 4,000 organizations rely on its Continuous Delivery, GitOps, and release orchestration solutions to deliver swift value to their customers. Octopus efficiently orchestrates software delivery across multi-cloud, Kubernetes, data centers, and hybrid environments, whether containerized modern apps or heritage applications. With governance, risk, and compliance (GRC) at its core, Octopus supports Platform Engineering teams in their mission to provide a superior developer experience (DevEx). Octopus also actively contributes to the developer community with open-source projects. ➡️ https://bit.ly/MSExOCTDEP\n\nEqual Experts is a product software development consultancy with a network of over 1,000 experienced technology consultants globally. They increase the pace of innovation by using modern software engineering practices that embrace Continuous Delivery, Security, and Operability from the outset ➡️ https://bit.ly/3ASy8n0\n\nTransFICC provides low-latency connectivity, automated trading workflows and e-trading systems for Fixed Income and Derivatives. TransFICC resolves the issue of market fragmentation by providing banks and asset managers with a unified low-latency, robust and scalable API, which provides connectivity to multiple trading venues while supporting numerous complex workflows across asset classes such as Rates and Credit Bonds, Repos, Mortgage-Backed Securities and Interest Rate Swaps ➡️ https://transficc.com\n\n-\n\n🔗 LINKS:\n\nThe register writeup ➡️ https://www.theregister.com/2026/04/2...\nJer’s Writeup ➡️ https://x.com/lifeof_jer/status/20481...\nDORA Report ➡️ https://dora.dev/research/2025/dora-r...\nHeather’s talk at NDC London ➡️    • AI Agents Need Permission Slips - Heather ...  \n\n-\n\n#ai #codingwithai #claudexode #softwareengineering #softwaredevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6AxuSfSe4BA",
        "title": "Are Code Reviews Even Necessary?",
        "publishedAt": "12 days ago",
        "durationSeconds": 2308,
        "views": 8366,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Are code reviews still necessary in the age of AI agents and pairing? Join Trisha Gee and Daniel North as they dismantle the \"gatekeeping\" trope and define a modern framework for high-performing engineering teams.\n\nIn this deep dive, we explore the fundamental purpose of reviews beyond checking boxes. Whether you are an XP team committing to trunk or a large organisation using feature branches, you will learn to categorise reviews into three essential models: Policy (compliance and idioms), Show & Tell (knowledge sharing), and Critique (design alignment). We examine how these roles shift when collaborating with AI assistants and why \"embarrassment-driven refactoring\" might be your next favourite tool.\n\nStop treating code reviews as a bottleneck and start using them as a strategic learning tool. Discover why inverting the power structure—having juniors review senior code—is a game-changer for readability and team growth. Don't let your CI/CD pipeline choke under the weight of AI-generated code; learn to ask the right \"in order to\" questions and streamline your path to live.\n\n-\n\nTrisha on X ➡️ https://x.com/trisha_gee\nTrisha on LinkedIn ➡️   / trishagee  \nTrisha on bluesky ➡️ https://bsky.app/profile/did:plc:7kzs...\n\nDaniel on LinkedIn ➡️   / tastapod  \nDaniel On Mastadon ➡️ https://mas.to/@tastapod \nDaniel on bluesky ➡️ https://bsky.app/profile/tastapod.com\n\nModern Software Engineering on X ➡️ https://x.com/ModernSoftwareX\nModern Software Engineering on LinkedIn ➡️   / modern-software-engineering  \nModern Software Engineering on bluesky ➡️ https://bsky.app/profile/modernswe.bs...\n\n-\n\n⭐ PATREON:\n\nJoin the Continuous Delivery community and access extra perks & content! ➡️ https://bit.ly/ContinuousDeliveryPatreon \n\n🎥 Join Us On TikTok ➡️   / modern.s.engineering  \n\n-\n\n👕 T-SHIRTS:\n\nA fan of the T-shirts I wear in my videos? Grab your own, at reduced prices EXCLUSIVE TO CONTINUOUS DELIVERY FOLLOWERS! Get money off the already reasonably priced t-shirts!\n\n🔗 Check out their collection HERE: ➡️ https://bit.ly/3Uby9iA\n🚨 DON'T FORGET TO USE THIS DISCOUNT CODE: ContinuousDelivery\n\n-\n\n#code #softwareengineering #softwaredevelopment #programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_erJ5EdQFYU",
        "title": "It Doesn’t Help To Push AI Into A Crappy Process",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 1057,
        "views": 7432,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Adding advanced AI tools to a poor software development process can often make performance worse rather than better. Using the \"Trombone Paradox,\" Emily Bache explains that just as a heavy instrument requires good physical posture, agentic AI requires a solid engineering \"posture\" to be effective.\n\nKey Topics Covered:\nWhy AI is a \"code generation firehose\" that can overwhelm downstream bottlenecks.\nThe difference between AI-written unit tests vs. TDD-driven tests.\nHow to use Claude Code agents and MCP tools for manual agentic testing.\nInsights on the 30-50% speedup observed in AI-assisted coding.\n\n-\n\nEmily on X ➡️ https://x.com/emilybache\nEmily on LinkedIn ➡️   / emilybache  \nEmily on bluesky ➡️ https://bsky.app/profile/emilybache.com\nEmily on YouTube ➡️    / @emilybache-tech-coach  \n\nModern Software Engineering on X ➡️ https://x.com/ModernSoftwareX\nModern Software Engineering on LinkedIn ➡️   / modern-software-engineering  \nModern Software Engineering on bluesky ➡️ https://bsky.app/profile/modernswe.bs...\n\n-\n\n⭐ PATREON:\n\nSupport Emily on Patreon here ➡️   / emilybache  \n\nJoin the Continuous Delivery community and access extra perks & content! ➡️ https://bit.ly/ContinuousDeliveryPatreon \n\n🎥 Join Us On TikTok ➡️   / modern.s.engineering  \n\n-\n\nCHANNEL SPONSORS:\n\nOctopus Deploy sets the standard for Continuous Delivery (CD), empowering software teams to deliver value in an agile way. Globally, more than 4,000 organizations rely on its Continuous Delivery, GitOps, and release orchestration solutions to deliver swift value to their customers. Octopus efficiently orchestrates software delivery across multi-cloud, Kubernetes, data centers, and hybrid environments, whether containerized modern apps or heritage applications. With governance, risk, and compliance (GRC) at its core, Octopus supports Platform Engineering teams in their mission to provide a superior developer experience (DevEx). Octopus also actively contributes to the developer community with open-source projects. ➡️ https://bit.ly/MSExOCTDEP\n\nEqual Experts is a product software development consultancy with a network of over 1,000 experienced technology consultants globally. They increase the pace of innovation by using modern software engineering practices that embrace Continuous Delivery, Security, and Operability from the outset ➡️ https://bit.ly/3ASy8n0\n\nTransFICC provides low-latency connectivity, automated trading workflows and e-trading systems for Fixed Income and Derivatives. TransFICC resolves the issue of market fragmentation by providing banks and asset managers with a unified low-latency, robust and scalable API, which provides connectivity to multiple trading venues while supporting numerous complex workflows across asset classes such as Rates and Credit Bonds, Repos, Mortgage-Backed Securities and Interest Rate Swaps ➡️ https://transficc.com\n\n-\n\n#coding #code #softwareengineering #softwaredevelopment #softwaretesting #ai #codingwithai #softwaretesting #tdd",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8WJ1XVBh8NA",
        "title": "Top AI Trends From 100 Interviews | AI Briefings: nWave",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 1076,
        "views": 31419,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The role of the human developer changing. Join Dave Farley in this first episode of AI Briefings as he interviews Mike and Alessandro, the creators of nWave. They explore how artificial intelligence is causing an enormous disruption in the tech industry, shifting the future of work for software development professionals.\n\nWhile tools like GitHub Copilot, ChatGPT, Cursor, and Claude Code are changing our day-to-day, this discussion goes beyond simple vibe coding. We dive into how to use Claude Code agents and opinionated frameworks to maintain modern software engineering principles like SOLID, Hexagonal Architecture, and TDD in an AI vs human landscape.\n\nIn this episode, you’ll learn:\n\nWhat is vibe coding and why it fails for professional, large-scale systems.\nHow to use Claude Code principles through nWave to automate the implementation phase while keeping humans at the center of the problem space.\nWhy small steps and \"fine-grained iterative specification\" are more vital than ever when coding with AI.\nThe nWave philosophy: treating 23+ specialized AI agents as opinionated team members rather than just simple tools.\n\n-\n\n🎓DAVE'S HIGHLY REGARDED TDD COURSE: \n\nLearn the TDD & BDD skills that enable you to design and build software in small steps - the best way to write new code with your AI Assistant.\n\nNEW FOR 2026! Get our FREE Claude \"Farley Score\" plug-in to evaluate and provide feedback on the quality of your tests, as you learn.\n\nEnhanced learning, No additional cost! ➡️ https://courses.cd.training/courses/t...\n\n-\n\n⭐ nWave:\n\nAre you engineering with AI or just shepherding it? Most teams can’t answer that question with confidence. This 4-minute assessment tells you exactly where the breakdown is, and what to do about it. Take the 4-minute diagnostic HERE ➡️ http://nwave.ai/go/discipline/yt\n\n-\n\nDave on: \nX ➡️ https://x.com/davefarley77\nLinkedIn ➡️   / dave-farley-a67927  \nbluesky ➡️ https://bsky.app/profile/davefarley77...\n\nModern Software Engineering on X ➡️ https://x.com/ModernSoftwareX\nModern Software Engineering on LinkedIn ➡️   / modern-software-engineering  \nModern Software Engineering on bluesky ➡️ https://bsky.app/profile/modernswe.bs...\n\n-\n\n⭐ PATREON:\nJoin the Continuous Delivery community and access extra perks & content! ➡️ https://bit.ly/ContinuousDeliveryPatreon \n\n🎥 Join Us On TikTok ➡️   / modern.s.engineering  \n\n-\n\n👕 T-SHIRTS:\nA fan of the T-shirts I wear in my videos? Grab your own, at reduced prices EXCLUSIVE TO CONTINUOUS DELIVERY FOLLOWERS! Get money off the already reasonably priced t-shirts!\n\n🔗 Check out their collection HERE: ➡️ https://bit.ly/3Uby9iA\n🚨 DON'T FORGET TO USE THIS DISCOUNT CODE: ContinuousDelivery\n\n-\n\nCHANNEL SPONSORS:\n\nOctopus Deploy sets the standard for Continuous Delivery (CD), empowering software teams to deliver value in an agile way. Globally, more than 4,000 organizations rely on its Continuous Delivery, GitOps, and release orchestration solutions to deliver swift value to their customers. Octopus efficiently orchestrates software delivery across multi-cloud, Kubernetes, data centers, and hybrid environments, whether containerized modern apps or heritage applications. With governance, risk, and compliance (GRC) at its core, Octopus supports Platform Engineering teams in their mission to provide a superior developer experience (DevEx). Octopus also actively contributes to the developer community with open-source projects. ➡️ https://bit.ly/MSExOCTDEP\n\nEqual Experts is a product software development consultancy with a network of over 1,000 experienced technology consultants globally. They increase the pace of innovation by using modern software engineering practices that embrace Continuous Delivery, Security, and Operability from the outset ➡️ https://bit.ly/3ASy8n0\n\nTransFICC provides low-latency connectivity, automated trading workflows and e-trading systems for Fixed Income and Derivatives. TransFICC resolves the issue of market fragmentation by providing banks and asset managers with a unified low-latency, robust and scalable API, which provides connectivity to multiple trading venues while supporting numerous complex workflows across asset classes such as Rates and Credit Bonds, Repos, Mortgage-Backed Securities and Interest Rate Swaps ➡️ https://transficc.com\n\n-\n\n#softwareengineering #softwaredevelopment #ai #codingwithai #artificialintelligence",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sHDWnW1fXJw",
        "title": "Is Quantum Computing An Engineering Reality Or Just Physics Hype?",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 1311,
        "views": 2876,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "What exactly is quantum computing, and is it a revolution for software engineering or just theoretical physics hype? In this episode, Dave Farley and Sam Newman dive deep into the world of quantum computers, exploring how they differ from classical computer science and what they mean for the future of software development.\n\nAs a software engineer or software developer, you might wonder if this technology will ever change the way we code or approach programming. We break down the complex ideas of superposition and entanglement into \"small words,\" discussing whether quantum computing explained simply can still capture its power to solve intractable problems.\n\nIn this video, we discuss:\nThe Reality of Qubits: How quantum effects allow for multiple states simultaneously, unlike the binary bits in traditional coding.\nEngineering Hurdles: Why decoherence and error correction are the biggest challenges currently facing software engineers in this space.\nCryptographic Threats: Is the threat to SSH keys and prime-number encryption a real concern for modern software development?.\nPractical Applications: Why you won’t run a JavaScript web app on a quantum machine, but might see a revolution in drug discovery and material science.\nGetting Started: How to explore the Microsoft Q# (QDK) and access quantum power via AWS and Google Cloud today.\n\n-\n\nDave on X ➡️ https://x.com/davefarley77\nDave on LinkedIn ➡️   / dave-farley-a67927  \nDave on bluesky ➡️ https://bsky.app/profile/davefarley77...\n\nSam on X ➡️ https://x.com/samnewman\nSam on LinkedIn ➡️   / samnewman  \n\nModern Software Engineering on X ➡️ https://x.com/ModernSoftwareX\nModern Software Engineering on LinkedIn ➡️   / modern-software-engineering  \nModern Software Engineering on bluesky ➡️ https://bsky.app/profile/modernswe.bs...\n\n-\n\n⭐ PATREON:\n\nJoin the Continuous Delivery community and access extra perks & content! ➡️ https://bit.ly/ContinuousDeliveryPatreon \n\n🎥 Join Us On TikTok ➡️   / modern.s.engineering  \n\n-\n\n👕 T-SHIRTS:\n\nA fan of the T-shirts I wear in my videos? Grab your own, at reduced prices EXCLUSIVE TO CONTINUOUS DELIVERY FOLLOWERS! Get money off the already reasonably priced t-shirts!\n\n🔗 Check out their collection HERE: ➡️ https://bit.ly/3Uby9iA\n🚨 DON'T FORGET TO USE THIS DISCOUNT CODE: ContinuousDelivery\n\n-\n\n#quantumcomputing #quantumphysics #softwareengineering #computerscience",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "p1xZ-Ni2t8Q",
        "title": "100% Test Coverage is a LIE, Here’s Why...",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 588,
        "views": 4494,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Is 100% software testing code coverage a lie? Join Modern Software Engineering as we explore what is software testing and why 100% isn't always the goal for a software engineer.\n\nIn this video, we break down the complexities of software development and automation testing to answer a critical question: Does high test coverage actually mean high quality? Whether you are a software developer or currently taking a software testing course, understanding these metrics is vital for professional programming.\n\nWhat You'll Learn:\nThe Definition of Test Coverage: Understand how this metric tracks which lines of your code are executed during coding.\nThe 100% Trap: A real-world story of a banking system with 100% coverage but zero assertions.\nFeedback Loops: Why fast feedback is the most important part of modern software engineering.\nAdvanced Testing Concepts: An introduction to mutation testing and property-based testing.\nStrategic Metrics: How to use coverage as a trend indicator rather than a strict target.\n\n-\n\n🎓 TESTING IN PRODUCTION | Free Guide\n\nHow do you get fast feedback on the quality and value of your software? Testing in Production. In this FREE downloadable guide, I explain: The role of testing in production, what sorts of test make sense, and how these tests fit into a broad test strategy. DOWNLOAD YOURS FOR FREE HERE ➡️ https://www.subscribepage.com/test-in...\n\n-\n\nSam on X ➡️ https://x.com/samnewman\nSam on LinkedIn ➡️   / samnewman  \n\nModern Software Engineering on X ➡️ https://x.com/ModernSoftwareX\nModern Software Engineering on LinkedIn ➡️   / modern-software-engineering  \nModern Software Engineering on bluesky ➡️ https://bsky.app/profile/modernswe.bs...\n\n-\n\n⭐ PATREON:\nJoin the Continuous Delivery community and access extra perks & content! ➡️ https://bit.ly/ContinuousDeliveryPatreon \n\n🎥 Join Us On TikTok ➡️   / modern.s.engineering  \n\n-\n\n👕 T-SHIRTS:\nA fan of the T-shirts I wear in my videos? Grab your own, at reduced prices EXCLUSIVE TO CONTINUOUS DELIVERY FOLLOWERS! Get money off the already reasonably priced t-shirts!\n\n🔗 Check out their collection HERE: ➡️ https://bit.ly/3Uby9iA\n🚨 DON'T FORGET TO USE THIS DISCOUNT CODE: ContinuousDelivery\n\n-\n\nCHANNEL SPONSORS:\n\nOctopus Deploy sets the standard for Continuous Delivery (CD), empowering software teams to deliver value in an agile way. Globally, more than 4,000 organizations rely on its Continuous Delivery, GitOps, and release orchestration solutions to deliver swift value to their customers. Octopus efficiently orchestrates software delivery across multi-cloud, Kubernetes, data centers, and hybrid environments, whether containerized modern apps or heritage applications. With governance, risk, and compliance (GRC) at its core, Octopus supports Platform Engineering teams in their mission to provide a superior developer experience (DevEx). Octopus also actively contributes to the developer community with open-source projects. ➡️ https://bit.ly/MSExOCTDEP\n\nEqual Experts is a product software development consultancy with a network of over 1,000 experienced technology consultants globally. They increase the pace of innovation by using modern software engineering practices that embrace Continuous Delivery, Security, and Operability from the outset ➡️ https://bit.ly/3ASy8n0\n\nTransFICC provides low-latency connectivity, automated trading workflows and e-trading systems for Fixed Income and Derivatives. TransFICC resolves the issue of market fragmentation by providing banks and asset managers with a unified low-latency, robust and scalable API, which provides connectivity to multiple trading venues while supporting numerous complex workflows across asset classes such as Rates and Credit Bonds, Repos, Mortgage-Backed Securities and Interest Rate Swaps ➡️ https://transficc.com\n\n-\n\n#softwareengineering #softwaretesting #programming #developer",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fHfkJRh2veg",
        "title": "The Junior Developer CRISIS: How to Build a Team When AI Does the Entry-Level Work",
        "publishedAt": "1 month ago",
        "durationSeconds": 713,
        "views": 10801,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Is a junior developer really comparable to AI? In this episode of Modern Software Engineering, Daniel Terhorst-North explores the junior vs senior developer dynamic and why equating a junior software engineer to AI code tools like Claude, Claude Code, or GitHub Copilot is a mistake.\n\nWhile some fear AI replacing jobs, Daniel argues that understanding the fundamental differences between a human software developer and agentic AI is crucial for the future of software development. He breaks down why an LLM is less like a junior and more like a \"transactional mercenary contractor\" with memory issues.\n\nIn this video, we cover:\nThe Junior Developer Mindset: Why curiosity and \"conscious incompetence\" make human learners indispensable.\nColin the Contractor: A new mental model for interacting with AI code agents that have encyclopedic knowledge but zero accountability.\nCoding with AI: Strategies for managing AI tools through small, well-defined steps and frequent validation.\nThe Human Element: Why documenting ways of working and design preferences benefits both human teams and agent experience.\n\n-\n\nDaniel on LinkedIn ➡️   / tastapod  \nDaniel On Mastadon ➡️ https://mas.to/@tastapod \nDaniel on bluesky ➡️ https://bsky.app/profile/tastapod.com\n\nModern Software Engineering on X ➡️ https://x.com/ModernSoftwareX\nModern Software Engineering on LinkedIn ➡️   / modern-software-engineering  \nModern Software Engineering on bluesky ➡️ https://bsky.app/profile/modernswe.bs...\n\n-\n\n⭐ PATREON:\nJoin the Continuous Delivery community and access extra perks & content! ➡️ https://bit.ly/ContinuousDeliveryPatreon \n\n🎥 Join Us On TikTok ➡️   / modern.s.engineering  \n\n-\n\n👕 T-SHIRTS:\nA fan of the T-shirts I wear in my videos? Grab your own, at reduced prices EXCLUSIVE TO CONTINUOUS DELIVERY FOLLOWERS! Get money off the already reasonably priced t-shirts!\n\n🔗 Check out their collection HERE: ➡️ https://bit.ly/3Uby9iA\n🚨 DON'T FORGET TO USE THIS DISCOUNT CODE: ContinuousDelivery\n\n-\n\nCHANNEL SPONSORS:\n\nOctopus Deploy sets the standard for Continuous Delivery (CD), empowering software teams to deliver value in an agile way. Globally, more than 4,000 organizations rely on its Continuous Delivery, GitOps, and release orchestration solutions to deliver swift value to their customers. Octopus efficiently orchestrates software delivery across multi-cloud, Kubernetes, data centers, and hybrid environments, whether containerized modern apps or heritage applications. With governance, risk, and compliance (GRC) at its core, Octopus supports Platform Engineering teams in their mission to provide a superior developer experience (DevEx). Octopus also actively contributes to the developer community with open-source projects. ➡️ https://bit.ly/MSExOCTDEP\n\nEqual Experts is a product software development consultancy with a network of over 1,000 experienced technology consultants globally. They increase the pace of innovation by using modern software engineering practices that embrace Continuous Delivery, Security, and Operability from the outset ➡️ https://bit.ly/3ASy8n0\n\nTransFICC provides low-latency connectivity, automated trading workflows and e-trading systems for Fixed Income and Derivatives. TransFICC resolves the issue of market fragmentation by providing banks and asset managers with a unified low-latency, robust and scalable API, which provides connectivity to multiple trading venues while supporting numerous complex workflows across asset classes such as Rates and Credit Bonds, Repos, Mortgage-Backed Securities and Interest Rate Swaps ➡️ https://transficc.com\n\n-\n\n#juniordeveloper #softwareengineering #softwaredevelopment #ai #programming #coding",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Q0gxen_uXlw",
        "title": "The $1M MISTAKE That Taught Me THIS About Developer Team Culture",
        "publishedAt": "1 month ago",
        "durationSeconds": 825,
        "views": 8907,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Improve team leadership and leadership skills in software engineering. Dave Farley of the Modern Software Engineering channel discusses team building for any development team in software development.\n\nIn this video, software engineer and software developer Dave Farley explores why \"bad things\" happening is actually the best chance for a development team to learn. Whether you are interested in programming, software, code, or coding, understanding how to handle failure is a defining characteristic of great teams.\n\nDave discusses the \"Philosophy of Ignorance\" and shares real-world stories—from a million-pound data migration error to a junior ops person unplugging a production server—to illustrate how an engineering mindset transforms mistakes into durable solutions.\n\nKEY TOPICS COVERED:\n\nWhy we can't avoid all mistakes in software development.\nThree routes to gaining knowledge: experience, learning from others, and theory.\nBuilding a culture that accepts failure as an option to minimize its impact.\nHow great teams fix mistakes so they never happen again.\n\n-\n\n🎓 LEADING TECHNICAL TEAMS | A FREE GUIDE:\n\nWant some more advice for how to set up your software development teams for peak performance? Get Dave's FREE Guide to Organising Software Development Teams HERE ➡️ https://www.subscribepage.com/tech-lead \n\n-\n\nDave on: \nX ➡️ https://x.com/davefarley77\nLinkedIn ➡️   / dave-farley-a67927  \nbluesky ➡️ https://bsky.app/profile/davefarley77...\n\nModern Software Engineering on X ➡️ https://x.com/ModernSoftwareX\nModern Software Engineering on LinkedIn ➡️   / modern-software-engineering  \nModern Software Engineering on bluesky ➡️ https://bsky.app/profile/modernswe.bs...\n\n-\n\n⭐ PATREON:\nJoin the Continuous Delivery community and access extra perks & content! ➡️ https://bit.ly/ContinuousDeliveryPatreon \n\n🎥 Join Us On TikTok ➡️   / modern.s.engineering  \n\n-\n\n👕 T-SHIRTS:\nA fan of the T-shirts I wear in my videos? Grab your own, at reduced prices EXCLUSIVE TO CONTINUOUS DELIVERY FOLLOWERS! Get money off the already reasonably priced t-shirts!\n\n🔗 Check out their collection HERE: ➡️ https://bit.ly/3Uby9iA\n🚨 DON'T FORGET TO USE THIS DISCOUNT CODE: ContinuousDelivery\n\n-\n\nCHANNEL SPONSORS:\n\nOctopus Deploy sets the standard for Continuous Delivery (CD), empowering software teams to deliver value in an agile way. Globally, more than 4,000 organizations rely on its Continuous Delivery, GitOps, and release orchestration solutions to deliver swift value to their customers. Octopus efficiently orchestrates software delivery across multi-cloud, Kubernetes, data centers, and hybrid environments, whether containerized modern apps or heritage applications. With governance, risk, and compliance (GRC) at its core, Octopus supports Platform Engineering teams in their mission to provide a superior developer experience (DevEx). Octopus also actively contributes to the developer community with open-source projects. ➡️ https://bit.ly/MSExOCTDEP\n\nEqual Experts is a product software development consultancy with a network of over 1,000 experienced technology consultants globally. They increase the pace of innovation by using modern software engineering practices that embrace Continuous Delivery, Security, and Operability from the outset ➡️ https://bit.ly/3ASy8n0\n\nTransFICC provides low-latency connectivity, automated trading workflows and e-trading systems for Fixed Income and Derivatives. TransFICC resolves the issue of market fragmentation by providing banks and asset managers with a unified low-latency, robust and scalable API, which provides connectivity to multiple trading venues while supporting numerous complex workflows across asset classes such as Rates and Credit Bonds, Repos, Mortgage-Backed Securities and Interest Rate Swaps ➡️ https://transficc.com\n\n-\n\n#softwareengineering #softwaredevelopment #leadership",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CBcdERAv5P8",
        "title": "Rethinking The Software Lifecycle | How To Look After Software For The Long Term",
        "publishedAt": "1 month ago",
        "durationSeconds": 607,
        "views": 7409,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In the modern software development life cycle (SDLC), traditional software maintenance in software engineering often fails to deliver the reliability and cost-efficiency that organisations need.\n\nSoftware engineering is about more than just building new features; it’s about long-term ownership. In this video, Steve Smith (standing in for Dave Farley) explores why standard \"maintenance mode\" solutions often turn into a \"dumping ground\" for operations teams or a hidden burden for developers.\n\nWhether you are a software engineer, software developer, or technical leader, understanding how to manage low-demand services without sacrificing team morale or future delivery is critical.\n\nIn this video, we cover:\n\nWhat is \"Maintenance Mode\"? Defining the point in the software development life cycle where maintenance tasks like vulnerability updates and platform upgrades overtake new value-adding work.\nThe Operations Handover Trap: Why transitioning live services to a separate ops team often weakens reliability and makes future feature delivery nearly impossible.\nThe Problem with \"Backgrounding\": Why asking delivery teams to maintain old services while building new ones fails to reduce costs and leads to developer burnout.\nSobering Industry Data: Insights from a survey of 40 enterprise organisations revealing the high failure rates and negative impacts on job satisfaction in traditional models.\nA Reveal for a Better Way: A look toward a more radical solution that actually delivers on all key outcomes: capacity, cost, reliability, and satisfaction.\n\nLearn how to rethink your software lifecycle and SDLC in software engineering to avoid the common pitfalls of legacy support.\n\n-\n\nSteve on X ➡️ https://x.com/SteveSmith_Tech\nSteve on LinkedIn ➡️   / stevesmithtech  \nSteve on bluesky ➡️ https://bsky.app/profile/stevesmithte...\n\nModern Software Engineering on X ➡️ https://x.com/ModernSoftwareX\nModern Software Engineering on LinkedIn ➡️   / modern-software-engineering  \nModern Software Engineering on bluesky ➡️ https://bsky.app/profile/modernswe.bs...\n\n-\n\n⭐ PATREON:\nJoin the Continuous Delivery community and access extra perks & content! ➡️ https://bit.ly/ContinuousDeliveryPatreon \n\n🎥 Join Us On TikTok ➡️   / modern.s.engineering  \n\n-\n\n👕 T-SHIRTS:\nA fan of the T-shirts I wear in my videos? Grab your own, at reduced prices EXCLUSIVE TO CONTINUOUS DELIVERY FOLLOWERS! Get money off the already reasonably priced t-shirts!\n\n🔗 Check out their collection HERE: ➡️ https://bit.ly/3Uby9iA\n🚨 DON'T FORGET TO USE THIS DISCOUNT CODE: ContinuousDelivery\n\n-\n\nCHANNEL SPONSORS:\n\nOctopus Deploy sets the standard for Continuous Delivery (CD), empowering software teams to deliver value in an agile way. Globally, more than 4,000 organizations rely on its Continuous Delivery, GitOps, and release orchestration solutions to deliver swift value to their customers. Octopus efficiently orchestrates software delivery across multi-cloud, Kubernetes, data centers, and hybrid environments, whether containerized modern apps or heritage applications. With governance, risk, and compliance (GRC) at its core, Octopus supports Platform Engineering teams in their mission to provide a superior developer experience (DevEx). Octopus also actively contributes to the developer community with open-source projects. ➡️ https://bit.ly/MSExOCTDEP\n\nEqual Experts is a product software development consultancy with a network of over 1,000 experienced technology consultants globally. They increase the pace of innovation by using modern software engineering practices that embrace Continuous Delivery, Security, and Operability from the outset ➡️ https://bit.ly/3ASy8n0\n\nTransFICC provides low-latency connectivity, automated trading workflows and e-trading systems for Fixed Income and Derivatives. TransFICC resolves the issue of market fragmentation by providing banks and asset managers with a unified low-latency, robust and scalable API, which provides connectivity to multiple trading venues while supporting numerous complex workflows across asset classes such as Rates and Credit Bonds, Repos, Mortgage-Backed Securities and Interest Rate Swaps ➡️ https://transficc.com\n\n-\n\n#softwareengineering #softwaredevelopment #code #coding #programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "u2U1kWHuO7I",
        "title": "What Does Continuous Delivery Look Like WITHOUT Automation?",
        "publishedAt": "1 month ago",
        "durationSeconds": 946,
        "views": 5425,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "While many in the software engineering and devops community view a fully automated ci cd pipeline as the ultimate goal, this discussion explores the fundamental principles that make continuous...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7w-DcXbdNg4",
        "title": "7 Testing Myths Every Software Developer Should STOP Believing",
        "publishedAt": "1 month ago",
        "durationSeconds": 752,
        "views": 7951,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, we debunk 7 common software testing myths that hinder modern software engineering. Whether you're into TDD (test-driven development), unit testing, or continuous delivery, these...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kDBeFOscZpc",
        "title": "The Truth About Developer Productivity in the AI Age (IT'S A TRAP)",
        "publishedAt": "2 months ago",
        "durationSeconds": 975,
        "views": 15119,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Is developer productivity being measured all wrong in the age of AI? While artificial intelligence tools like claude code make coding with ai visibly faster, many organizations are falling...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ekRMQ5qUMlo",
        "title": "What's the EXACT Technical Gap That Separates AI SUCCESS From AI FAILURE?",
        "publishedAt": "2 months ago",
        "durationSeconds": 1308,
        "views": 9761,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Can you win with Artificial Intelligence (AI) without strong tech fundamentals? Join Dave Farley and Steve Smith as they discuss if the hype of AI programming, coding with AI, and tools like...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uHatwKrYY_c",
        "title": "The Simplest Way to Make Your Architecture Testable and Reproducible (Works Every Time)",
        "publishedAt": "2 months ago",
        "durationSeconds": 497,
        "views": 25184,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If you care about continuous delivery and evolutionary software architecture, you should care deeply about deterministic system design.\n\nDeterminism is the prerequisite for trust in software...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XfR1fBsO2d0",
        "title": "Is \"Testing in Production\" Actually the Safest Way to Ship?",
        "publishedAt": "2 months ago",
        "durationSeconds": 635,
        "views": 9525,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The video features a discussion between Dave Farley and Charity Majors about the bifurcation of software into disposable and durable code. Majors emphasizes the growing importance of code generatio...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IBvYFRSw4do",
        "title": "It’s Time We Go Beyond The Test Pyramid (& Do This Instead)",
        "publishedAt": "2 months ago",
        "durationSeconds": 660,
        "views": 9797,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Is the Test Pyramid actually holding your delivery back? In this episode, host Emily Bache dissects the state of software testing in 2026. While the software testing pyramid has been a staple...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "n5vzuQAToZE",
        "title": "Approval Tests vs Acceptance Tests: What's the Difference?",
        "publishedAt": "2 months ago",
        "durationSeconds": 1086,
        "views": 8166,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Is your testing strategy catching bugs or just creating busy work? In this episode of the One Big Question series, Kent Beck and Emily Bache dive deep into a critical debate for every developer:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XavrebMKH2A",
        "title": "How to Make the Best of AI Programming Assistants",
        "publishedAt": "2 months ago",
        "durationSeconds": 594,
        "views": 43375,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "AI programming is changing everything, but are you catching the mistakes? When AI assistants like Claude Code generate ten times more code than you normally would, a critical engineering challenge...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "06kr0DiDAlU",
        "title": "Skills Developers NEED In 2026 (Because Vibe Coding Changes Everything)",
        "publishedAt": "3 months ago",
        "durationSeconds": 623,
        "views": 13420,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Gene Kim talks to Dave about vibe coding and the skills that software engineer's really need in order to survive the changes in the industry.\n\nThis clip is taken from this FULL podcast episode...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "z_R4oJk0eH8",
        "title": "The OKR TRAP Most Companies Fall Into",
        "publishedAt": "3 months ago",
        "durationSeconds": 518,
        "views": 9072,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Are your OKRs actually driving performance or quietly rewarding mediocrity? Daniel Terhorst-North unpacks what’s gone wrong with OKRs (Objectives and Key Results) in modern organisations....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lJiDBRh96oU",
        "title": "What Skills Do Developers NEED To Have In An AI Future?",
        "publishedAt": "3 months ago",
        "durationSeconds": 1470,
        "views": 8549,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "AI can write code. But can it decide what good code looks like? In this episode of Modern Software Engineering's One Big Question, Kent Beck and Trisha Gee explore what really matters when...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nnjzPJ2ZI6E",
        "title": "The Kind of Training That ACTUALLY WORKS For Agentic AI",
        "publishedAt": "3 months ago",
        "durationSeconds": 834,
        "views": 7719,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Agentic AI is changing how software is built, but most AI training for software developers doesn’t actually work. In this video, Emily Bache explains what agentic AI really is, why common...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "aDCOuZ80lDQ",
        "title": "Why The \"10x Engineer\" Is A Dangerous Myth",
        "publishedAt": "3 months ago",
        "durationSeconds": 275,
        "views": 11622,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this discussion, Dave Farley and Charity Majors, tackle the controversial \"10X engineer\" trope. The conversation delves into the concept and the impact of such labels on software development...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "b9EbCb5A408",
        "title": "We Studied 150 Developers Using AI (Here’s What's Actually Changed...)",
        "publishedAt": "3 months ago",
        "durationSeconds": 715,
        "views": 303476,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "AI coding tools like Claude Code, GitHub Copilot, Cursor, and ChatGPT are changing how we write software — but are they actually improving long-term software quality, or just accelerating...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OjW_0ZRdN5E",
        "title": "\"Clean Code\" a Timeless Truth OR a Myth We Keep Telling Ourselves?",
        "publishedAt": "3 months ago",
        "durationSeconds": 2034,
        "views": 13695,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Kevlin Henney and Daniel Terhorst-North take on one of the most enduring, and controversial, ideas in software engineering: clean code.\n\nSince the publication of Robert C. Martin’s (Uncle...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IFrmfN1fxLg",
        "title": "The BEST Programmers Use Tests For Engineering Like THIS...",
        "publishedAt": "3 months ago",
        "durationSeconds": 738,
        "views": 7884,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video proposes an update, \"Testerata 2.0\", to Kent Beck's test desiderata, a list of desirable test properties.\n\nKent Beck published his 12 desiderata in 2019 to help people write better...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "C3UrkqXTftY",
        "title": "Clean Code Is Right... It’s Just Not ENOUGH",
        "publishedAt": "3 months ago",
        "durationSeconds": 838,
        "views": 15374,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Clean Code has shaped how generations of developers think about code, readability, and professionalism. Popularised by Uncle Bob (Robert C. Martin), Clean Code principles helped software engineers...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RvKPOjlQKyM",
        "title": "We Need to Stop Calling Everything a Mock!",
        "publishedAt": "4 months ago",
        "durationSeconds": 788,
        "views": 7155,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Software testing, unit testing, mocks, mocking, automation testing — somewhere along the way, our industry started calling everything a mock. In this Modern Software Engineering episode,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "peY2EhVSL9E",
        "title": "The Most Polarizing Practice In Modern Software Engineering?",
        "publishedAt": "4 months ago",
        "durationSeconds": 2024,
        "views": 10765,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn for free on Brilliant for a full 30 days: https://brilliant.org/ModernSoftwareEngineering/. You’ll also get 20% off an annual Premium subscription.\n\n-\n\nIn this video, we tackle one...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 12,
      "uploadsLast90d": 28,
      "uploadCadenceWeekly": 2.18,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 8907,
      "viewsPerVideoP90Last90d": 25184,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 8907,
      "p90Views": 25184,
      "p99Views": 43375,
      "outperformingVideosLast90d": 4
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "bit.ly",
        "brilliant.org"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "ai-saas",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:AI assistants"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "modernsoftwareengineering.co.uk",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "software",
        "share": 0.8,
        "evidenceVideoIds": [
          "XDNXLdwq114",
          "gqJBS3YD7CE",
          "6AxuSfSe4BA",
          "_erJ5EdQFYU",
          "8WJ1XVBh8NA"
        ]
      },
      {
        "label": "engineering",
        "share": 0.6,
        "evidenceVideoIds": [
          "XDNXLdwq114",
          "gqJBS3YD7CE",
          "6AxuSfSe4BA",
          "_erJ5EdQFYU",
          "8WJ1XVBh8NA"
        ]
      },
      {
        "label": "code",
        "share": 0.57,
        "evidenceVideoIds": [
          "XDNXLdwq114",
          "gqJBS3YD7CE",
          "6AxuSfSe4BA",
          "_erJ5EdQFYU",
          "8WJ1XVBh8NA"
        ]
      },
      {
        "label": "modern",
        "share": 0.5,
        "evidenceVideoIds": [
          "XDNXLdwq114",
          "gqJBS3YD7CE",
          "6AxuSfSe4BA",
          "_erJ5EdQFYU",
          "8WJ1XVBh8NA"
        ]
      },
      {
        "label": "delivery",
        "share": 0.47,
        "evidenceVideoIds": [
          "XDNXLdwq114",
          "gqJBS3YD7CE",
          "6AxuSfSe4BA",
          "_erJ5EdQFYU",
          "8WJ1XVBh8NA"
        ]
      },
      {
        "label": "AI assistants",
        "share": 0.1,
        "evidenceVideoIds": [
          "6AxuSfSe4BA",
          "8WJ1XVBh8NA",
          "XavrebMKH2A"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Friday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "content pillars match high-value sponsor categories, consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 29,
      "reason": "fits ai-saas",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.35
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "fits ai-saas. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Modern Software Engineering — 0.3M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 29,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.81,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "ai-saas",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "3d8cb4f5bf4da118bf19ffc2482ee6197863647306a7da52b7e144b7791b5860",
      "inputsHash": "fe0e01c4798a05dc9eeca99cff095b66e339e251e42291e5e71e491866f18868",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:41.968Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "4e5d259ff570d29ca1ef5ffd1c2975d7fd80f5732aff4d6cce1833dbfe439c41",
    "channelId": "UCvM5YYWwfLwpcQgbRr68JLQ",
    "channelHandle": "@AdrianTwarog",
    "channelName": "Adrian Twarog",
    "channelUrl": "https://www.youtube.com/@AdrianTwarog",
    "description": "I'm Adrian from Australia, a designer and developer who makes websites and apps using platforms like React Native. I'm hoping to share some of the things I've learnt over the years about my career and hobbies for coding, user interface and experience!\n\nSome of the things we will cover will include:\n- Development for React, React Native, Javascript, HTML, CSS, etc\n- Small changes to improve UI & UX, like the use of colour, positioning and size\n- Large changes like websites or apps, like entire re-designs\n- Techniques on creating style-guides\n- Reviews of existing businesses online presence and tips on improving them\n\n#coding #programming #ui #ux #webdevelopment #development #react #reactnative #design #userexperience #userinterface",
    "joinDate": null,
    "location": null,
    "subscribers": 418000,
    "totalVideos": 139,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/vid8YE1bhiQRe_UHZg2pCk8mZ8HBw9pQt9t0wgYW5fztogTsQGF3KzmjHxVxSV2g9-j-4XPytBU=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "twitter",
        "url": "https://twitter.com/adrian_twarog"
      },
      {
        "platform": "dev.to",
        "url": "https://dev.to/adriantwarog"
      },
      {
        "platform": "patreon.com",
        "url": "https://www.patreon.com/adriantwarog"
      },
      {
        "platform": "enhanceui.com",
        "url": "https://www.enhanceui.com/"
      }
    ],
    "recentVideos": [
      {
        "videoId": "H0x98XlsVzY",
        "title": "Claude Live Artifacts a new way to build Realtime Dashboards",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 347,
        "views": 11058,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Claude live artifacts just dropped as a new feature inside of claude cowork. In this video I cover how live artifacts in claude compare to regular artifacts in the web version, how to set them up with connectors like Zapier and how to build your own dashboard!\n\nYou can setup your own Connectors securely using Zapier MCP here:\nhttps://bit.ly/4sLW7z1\n\nDownload Claude to access Live Artifacts through Co-work here:\nhttps://claude.com/download\n\n00:00 - Introduction to Claude Live Artifacts\n00:39 - Setup Claude Desktop\n00:54 - View Claude Live Artifacts\n01:21 - Claude Connector - Zapier MCP\n02:14 - Claude Live Artifact Setup\n03:26 - Setting up additional tools Live Artifacts\n04:23 - Setting up tool security and access settings\n04:40 - Building live dashboard in Claude Live Artifacts\n04:49 - Claude Live Artifacts Preview\n05:33 - Final thoughts on Live Artifacts\n\n#claude #live #artifacts\n\nWant to learn web design? ⭐ Check out my course! ⭐\n📘 Teach Me Design - Course: https://www.enhanceui.com/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TQJqn65DLa0",
        "title": "Top 10 No Code Tools of 2026",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 718,
        "views": 1104,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "These 10 No Code Tools are what you should be using in 2026. They are the latest to create web designs that stand out, and many of them are using AI with new features and functions. The first is Framer, one of easiest ways to get started building no-code websites: https://framer.link/AdrianTwarog\n\n00:00 - Top 10 No Code Tools of 2026\n00:09 - Tool 1 - Framer\n01:56 - Tool 2 - Webflow\n03:21 - Tool 3 - Wix Studio \n04:46 - Tool 4 - Elementor on WordPress\n06:26 - Tool 5 - Squarespace\n07:44 - Tool 6 - Duda\n08:34 - Tool 7 - Loopple\n09:16 - Tool 8 - Unbounce\n10:15 - Tool 9 - Bildr\n10:27 - Tool 10 - Axil Design (coming soon)\n11:40 - Final Thoughts and Summary\n\n#nocode #tools #FramerPartner\n\nA big thanks to Framer for sponsoring this video! If you want to learn more about them, definitely check them out in the link above! https://framer.link/AdrianTwarog6\n\nWant to learn web design? ⭐ Check out my course! ⭐\n📘 Teach Me Design - Course: https://www.enhanceui.com/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SAq7ekD1-74",
        "title": "Zapier SDK and MCP Tutorial - Connect Apps to AI with 1 Tool",
        "publishedAt": "1 month ago",
        "durationSeconds": 382,
        "views": 1875,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Zapier has launched a new MCP and SDK toolkit that you can use for building AI Agents and Startup ideas. It lets you connect thousands of apps like Gmail, Notion, Trello directly though a single connection to platforms like OpenClaw, Claude and ChatGPT. \n\nThe ways this can be done is directly through an MCP connection where Zapier works as the man in the middle providing a secure execution layer to those tools. If you code, you can use the new SDK to utilize those connections as well! \n\nZapier SDK: (for building apps/tools)\nhttps://bit.ly/4bUujU6\n\nZapier MCP: (for chatting with AI models)\nhttps://bit.ly/4t0xoIi\n\nA big thanks to Zapier for sponsoring this video. It makes videos like this and others happen on this channel. If you want to learn more about their SDK or MCP tools check the links above!\n\n#zapier #openclaw #mcp\n\nWant to learn web design? ⭐ Check out my course! ⭐\n📘 Teach Me Design - Course: https://www.enhanceui.com/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Pl0s83kpIT0",
        "title": "OpenClaw Free Forever with Local LLM AI Model Setup",
        "publishedAt": "1 month ago",
        "durationSeconds": 486,
        "views": 164182,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "OpenClaw can be run for free forever using local ai models through Ollama. Models like qwen 3.5 can be setup to connect directly to Open Claw, so you won't be charged per token use like with Clade or ChatGPT.\n\nIn this video I'll show you how to setup Local Models, how to connect them to OpenClaw, and how to setup things like MCP to reduce the cost of doing large context queries or API calls.\n\n🔶 Install MCP Tools via Zapier:\nhttps://bit.ly/4ccnm0G\n\n🦙 Install Ollama Setup\nhttps://ollama.com/\n\nThe model I used for openclaw here was Qwen 3.5 however there are many other models you can use from Google, Meta, etc.\n\n#openclaw #ollama #ai\n\nWant to learn web design? ⭐ Check out my course! ⭐\n📘 Teach Me Design - Course: https://www.enhanceui.com/\n\nTo run openclaw local models, you need to install openclaw local llm setup. This lets openclaw llm charge you only what electricity you use for your mahcine!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RcGfLSjpR5Q",
        "title": "Framer Full Crash Course 2026 for Beginners",
        "publishedAt": "1 month ago",
        "durationSeconds": 2382,
        "views": 3826,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Framer in 2026 is one of the best website builders you can use, in this video I'm going to give you a crash course on how to get started using Framer as a beginner. Learn Framer from Scratch with this tutorial that will cover how to use frames, text, blocks, effects and much more. We will be recreating a website with responsive design, hover effects, rows and columns, lets begin!\n\n🟦 Framer: (Also todays sponsor! Use coupon ADRIAN for 1 month free)\nhttps://framer.link/AdrianTwarog2026\n\nWeb Design Template SaaS for your reference:\nhttps://www.framer.com/marketplace/te...\n\nWant to learn web design? ⭐ Check out my course! ⭐\n📘 Teach Me Design - Course: https://www.enhanceui.com/\n\n#framer #crashcourse #webdesign \n\n00:00 - Chapter 1 - Framer Crash Course\n01:20 - Chapter 2 - Login and Setup Framer\n04:19 - Chapter 3 - Frames Stacks and Grids\n07:14 - Chapter 4 - Typography Color and Styling\n10:53 - Chapter 5 - Bonus Design Course\n11:15 - Chapter 6 - Components in Framer\n25:41 - Chapter 7 - Responsive Design\n29:27 - Chapter 8 - Content Management System (CMS)\n34:33 - Chapter 9 - Effects Animations and Transitions\n36:38 - Chapter 10 - Marketplace and Templates\n38:45 - Chapter 11 - Publishing Website\n39:21 - Chapter 12 - Final Thoughts\n\nThis web design tutorial on Framer should cover most of the basics to help beginners get started with Framer. If you're a website designer and want to learn more about user interfaces and user experience let me know and I can create more content around Framer! A big thanks to Framer for sponsoring this video!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mTDt_30qAps",
        "title": "OpenClaw Use Cases That You Must Try",
        "publishedAt": "2 months ago",
        "durationSeconds": 596,
        "views": 79467,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "OpenClaw has a lot of potential use cases, here are 10 x Open Claw Use Cases you should be integrating into your own AI daily activities! These include using the AI model to help things like morning briefs, research, analysis, using cloud vps to host it and even connecting it to MCP servers to help security!\n\n🔶 Install MCP Tools via Zapier:\nhttps://bit.ly/4s8OdAc\n\n🟦 Setup Cloud VPS with Hostinger: (coupon ADRIANTWAROG)\nhttps://hostinger.com/openclawadrian \n\n📺 Upcoming Webinar on Open Claw Claude and Zapier: (Mar 18th)\nhttps://bit.ly/4batfLy\n\n00:00 - OpenClaw Use Cases\n00:10 - 1. OpenClaw - Morning Brief\n00:37 - 2. OpenClaw - Pro-active Research\n01:09 - 3. OpenClaw - Competitor Analysis\n01:40 - 4. OpenClaw - Market Research\n02:30 - 5. OpenClaw - Automatic Scheduling\n03:14 - 6. OpenClaw - Monitoring\n03:59 - 7. OpenClaw - Cloud VPS - Hostinger\n05:10 - 8. OpenClaw - MCP Tools - Zapier\n07:21 - 9. OpenClaw - Local AI Models - Ollama\n08:36 - 10. OpenClaw - Content Management System - CMS\n09:43 - Final Thoughts on Use Cases for OpenClaw\n\nI hope this video helps you see how to use openclaw. I know a lot of people are trying to figure out ways to use openclaw and these use cases should help apply to your own personal or business applications of openclaw! Big thanks to the sponsor of todays video which was Zapier and Hostinger! Definitely check them out!\n\n#openclaw #ai #clawbot\n\nWant to learn web design? ⭐ Check out my course! ⭐\n📘 Teach Me Design - Course: https://www.enhanceui.com/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rhxya9GNgs8",
        "title": "OpenAI MCP Tutorial - How to use MCP with ChatGPT, Agents and its API",
        "publishedAt": "2 months ago",
        "durationSeconds": 445,
        "views": 8054,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If you're using OpenAI, you should connect it to MCP Tools. MCP lets ChatGPT use apps and tools like Gmail, Calendars, Notion, Zapier and more. Open AI have labeled MCP Tools as Apps, (previously connections). They are easy to setup and in this video I'll show you how.\n\nConnect Zapier as our MCP server:\nhttps://bit.ly/47zL04v\n\nAccess OpenAI ChatGPT:\nhttps://chatgpt.com/\n\n00:00 - OpenAI MCP Tools Tutorial\n00:42 - OpenAI MCP Setup\n01:17 - Zapier MCP Server Setup\n01:57 - OpenAI ChatGPT MCP - Apps Setup\n02:58 - OpenAI ChatGPT MCP Example\n03:33 - OpenAI API Platform MCP Setup\n05:04 - OpenAI API Platform MCP Example\n05:24 - OpenAI Agent Builder MCP Setup\n06:51 - OpenAI Agent Builder MCP Example\n07:14 - Conclusion\n\n#openai #mcp #zapierautomation \n\nBig thanks to Zapier for sponsoring todays video. If you want to learn more about MCP Servers in Zapier and connecting them to gmail, notion, discord and more, check the link below:\nhttps://bit.ly/4tgTFlK\n\nTitle Ideas:\nOpenAI MCP Tools Tutorial in ChatGPT\nYou Need To Try using MCP with OpenAI ChatGPT and its Agents\nOpenAI MCP - How to use MCP with ChatGPT, Agents and its API\nHow to use MCP with OpenAI ChatGPT Agents & API\nOpenAI MCP Full Tutorial How To Use ChatGPT, API, Agents with MCP\nOpenAI Tutorial for MCP with ChatGPT, Agents & API Platform\n\n\nWant to learn web design? ⭐ Check out my course! ⭐\n📘 Teach Me Design - Course: https://www.enhanceui.com/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "u4ydH-QvPeg",
        "title": "OpenClaw Tutorial for Beginners - Crash Course",
        "publishedAt": "2 months ago",
        "durationSeconds": 478,
        "views": 488181,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "OpenClaw previously known as moltbot or clawdbot is the latest AI model agent you can run locally on your own PC that is autonomous connects to MCP like Zapier https://bit.ly/4tgTFlK and runs 24/7 and was just recently supported by OpenAI as open source project. With the logo of a lobster, and created by Peter Steinberger, it is written in typescript and people are buying mac mini's to run it non stop!\n\nIn this video I'll explain how to set it up and start using it on your own system. We will configure it with WhatsApp, Telegram and Ollama to run your own local models too.\n\nConnect Zapier as our MCP server:\nhttps://bit.ly/4tgTFlK\n\n00:00 - Chapter 1 - OpenClaw Tutorial\n00:20 - Chapter 2 - OpenClaw Installation\n00:34 - Chapter 3 - OpenClaw Setup AI Models (Clade, OpenAI, etc)\n01:22 - Chapter 4 - OpenClaw TUI (Terminal UI)\n01:40 - Chapter 5 - OpenClaw Web UI\n02:15 - Chapter 6 - OpenClaw Channels (Messaging)\n02:28 - Chapter 7 - OpenClaw WhatsApp Setup\n02:50 - Chapter 8 - OpenClaw Telegram Setup\n03:53 - Chapter 9 - OpenClaw MCP Tools (Zapier, Gmail, etc)\n05:07 - Chapter 10 - OpenClaw Security and Risks\n05:50 - Chapter 11 - OpenClaw Costing and Price\n06:04 - Chapter 12 - OpenClaw Run Local AI Models (with Ollama)\n07:08 - Chapter 13 - OpenClaw Workspace (in VS Code or Cursor)\n07:43 - Chapter 14 - OpenClaw Final Thoughts and Conclusion\n\n#openclaw #openai #zapier\n\nWant to learn web design? ⭐ Check out my course! ⭐\n📘 Teach Me Design - Course: https://www.enhanceui.com/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EGpMs5yUPPg",
        "title": "How to build your own Mobile Apps using Replit AI in 2026",
        "publishedAt": "3 months ago",
        "durationSeconds": 282,
        "views": 4909,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Mobile Applications can now be vibe coded using AI models on top of Expo and React Native. In this video I'll show you how Replit can be used to do it! https://replit.com/refer/adriantwarog\n\nIt took me a year to build a single app in 2020, a week to do it in 2024, and now in 2026 it only takes me a single day. If you're not trying to make an app idea right now, you're missing out. I'm not alone, I'm seeing creators like Marc Lou creating apps everyday, there are online creators making apps all the time, like clawdbot which has gain millions of follows this month. These aren't hard to create. And you can make one right this very moment, let me show you how. We are going to use AI together Replit, it's a tool for prototyping or building a production-ready app. Replit right now is also the only platform that has a mobile app on Apple and Android, so you can create on the go... (continue showcasing build in traditional tutorial method)\n\n#replit #ai #mobileapp \n\nBig thanks to Replit for sponsoring todays video! Learn more below:\nhttps://replit.com/refer/adriantwarog\n\nWant to learn web design? ⭐ Check out my course! ⭐\n📘 Teach Me Design - Course: https://www.enhanceui.com/\n\nHow I Build Mobile Game App using Replit new AI in 2026\nHow to build your own Mobile Apps using Replit AI in 2026",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "65Mz9QUFpXg",
        "title": "Claude 4.5 vs Gemini 3 Pro vs GPT 5.2 - Top AI Model Comparison",
        "publishedAt": "3 months ago",
        "durationSeconds": 607,
        "views": 18599,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Which model should is best for for daily coding tasks between Claude 4.5 Gemini 3 Pro and OpenAI GPT 5.2 Codex. AI Coding in cursor and vs code has become the norm, so I want to compare the cost, performance and outputs of all three ai models.\n\n⭐ Tiger Data (todays sponsor)\nLearn more or sign up for free to their database below:\nhttps://tsdb.co/adriantwarog-yt\n\n00:00 - Top AI Model Coding Comparison\n00:26 - Pricing and Costs Comparison\n01:25 - One Shot Comparison - Claude 4.5\n01:44 - One Shot Comparison - OpenAI GPT 5.2\n02:09 - One Shot Comparison - Gemini 3 Pro\n02:33 - Web Design Comparison\n03:31 - Plan Mode Comparison - Claude\n04:21 - Plan Mode Comparison - Gemini 3 Pro\n04:56 - Plan Mode Comparison - GPT 5.2 \n05:37 - MCP Tools Comparison\n05:59 - Tiger Data\n06:15 - MCP Tools - Claude\n06:29 - MCP Tools - GPT 5.2\n06:55 - MCP Tools - Gemini 3 Pro\n07:23 - MCP Tools Comparison Summary\n07:41 - Long Running Task Comparison\n08:04 - Long Running Tasks - Open AI\n08:23 - Long Running Tasks - Claude\n08:34 - Long Running Tasks - Gemini\n08:54 - Personal Thoughts and Summary\n09:41 - Conclusion\n\nThese ai providers also have cool tools like terminal cli's which I've done a separate video comparing them. You can check that out below here where I compare Gemini CLI with Claude Code and Codex:    • Gemini CLI vs Claude Code vs Codex Compare...  \n\n#claude #gemini #openai\n\nWant to learn web design? ⭐ Check out my course! ⭐\n📘 Teach Me Design - Course: https://www.enhanceui.com/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "K0JPmdu4KwQ",
        "title": "Best CMS Platforms of 2026",
        "publishedAt": "3 months ago",
        "durationSeconds": 1284,
        "views": 3908,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The Best CMS Tools for 2026 - Webflow vs Framer vs Wix Studio. In this video I'm going to compare the top CMS tools that are also no code providers to help you figure out which provide the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dqBpHTGZU1Q",
        "title": "Top Web Development Tools of 2026",
        "publishedAt": "4 months ago",
        "durationSeconds": 386,
        "views": 15197,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "These are the top web development tools you should try in 2026. These are for website coders who are looking to improve their day to day coding using AI, IDE's or platforms for things like...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ITwD8Iq_ahs",
        "title": "Responsive Website Design Tutorial 2026",
        "publishedAt": "5 months ago",
        "durationSeconds": 1313,
        "views": 4019,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Responsive Web Design is extremely important in 2026 and this is the best video to learn all the methods on how to make websites work on desktop, tablet and mobile. We will cover everything...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SrxdBBmpsPU",
        "title": "How does a Headless CMS work (explained simply)",
        "publishedAt": "6 months ago",
        "durationSeconds": 497,
        "views": 13611,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If you’re wondering How does a Headless CMS work, in this video I’ll explain it and I’ll show you by putting together a working example in just 10 minutes.\n\n00:00 - Introduction & Overview...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_APyrCeGC4Y",
        "title": "Just how useful are Website Templates in 2026 when AI exists?",
        "publishedAt": "7 months ago",
        "durationSeconds": 734,
        "views": 1527,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Website Design Templates are something that have gradually grown in popularity over the last 10-20 years due to their ease of implementation of level of graphics design. Professional Website...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "NpYiXVu1KCc",
        "title": "You Must Try These No Code Tools in 2026",
        "publishedAt": "8 months ago",
        "durationSeconds": 836,
        "views": 9852,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "These are the best website development tools of 2026 that I'm personally using for web projects and coding on a daily basis as part of my core go-to code tool to build apps and sites. They...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_blJ-YfOW44",
        "title": "Top 10 No Code Tools of 2025",
        "publishedAt": "10 months ago",
        "durationSeconds": 544,
        "views": 4913,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Top 10 no code tools of 2026 that you should try. These are visual website builders that let you create a website with nocode. These are the best no-code tools you should be aware of if you're...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bfS98Ku-Suw",
        "title": "Integrate AI Voice into your Website Tutorial in 2026",
        "publishedAt": "10 months ago",
        "durationSeconds": 851,
        "views": 2328,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Adding audio to your website through AI voice cloning will likely become a norm for blogs and articles in the future. Need your own server or VPS? Try Hostinger at https://hostinger.com/adriantwaro...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bhc9aXYhgzQ",
        "title": "MCP Setup for Claude - Cursor - Windsurf - VS Code in 4 mins",
        "publishedAt": "11 months ago",
        "durationSeconds": 282,
        "views": 8878,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How to setup MCP for all the popular coding systems. We are going to create Model Context Protocol using a third party server (Wix Studio) and prepare the MCP configuration file for Claude...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Tddp13RINEM",
        "title": "Wix Studio Crash Course in 15 mins- No Code Website",
        "publishedAt": "11 months ago",
        "durationSeconds": 953,
        "views": 2001,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This tutorial will show you how to make a no code website using Wix Studio from scratch. It's a beginner friendly jump into No-Code Tools that let you build web designs quick and easy. \n\n⛌...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KmWfsbjj2FI",
        "title": "Lovable Vibe Coding Crash Course 2026",
        "publishedAt": "11 months ago",
        "durationSeconds": 387,
        "views": 12965,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Lovable is one of the newest tools that lets you vibe code out ideas. It's becoming incredibly easy to build your own MVP with tools like lovable even in a single prompt. In this video I'm...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "w-w37LWNcIk",
        "title": "Claude MCP Server Tutorial using Zapier",
        "publishedAt": "1 year ago",
        "durationSeconds": 232,
        "views": 17675,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Claude MCP tools are easier than every to setup. In this video I'll show how to setup a Claude MCP Server with Claude Desktop or just regular Claude using Zapier, giving you access to hundreds...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0FVclkFNkx0",
        "title": "Claude vs ChatGPT for Programming: What's the difference?",
        "publishedAt": "1 year ago",
        "durationSeconds": 575,
        "views": 77906,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "When OpenAI launched ChatGPT in late 2022, programmers like myself were already using it with obsession and testing its limits. In this video, I'll help you understand what sets Claude and...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "L3j9O5hrlmY",
        "title": "Import Figma Web Designs in 1-click using Bolt.new",
        "publishedAt": "1 year ago",
        "durationSeconds": 353,
        "views": 2303718,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Bolt has released a tool that uses AI to import Figma designs into code. This tool lets you pick your favorite web designs and convert them to HTML, React, CSS etc. \n\nWant to try it yourself...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lE_2t8SnFp4",
        "title": "I tried the Apple Vision Pro as a Developer - VS Code in VR!",
        "publishedAt": "1 year ago",
        "durationSeconds": 874,
        "views": 48492,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "So I tried Apple's new Virtual Reality Headset called the Apple Vision Pro. I decided to test what it would be like as a programmer to use it properly for creating web designs and coding inside...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "NBmLFMN0fdw",
        "title": "How I made a Real Life Pokedex using AI / OpenAI",
        "publishedAt": "1 year ago",
        "durationSeconds": 1352,
        "views": 284425,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A new Pokemon journey begins as I try to create a real life Pokedex. Using OpenAI GPT-4o Omni and AstraDB Database, here's how I made the impossible, possible!\n\nAstra DB (Datastax todays sponsor):...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "O3m-OMfYgW8",
        "title": "Create a Responsive Portfolio Website with HTML CSS JS AI from scratch",
        "publishedAt": "2 years ago",
        "durationSeconds": 5758,
        "views": 65290,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, I’m going to help you build your own portfolio website from scratch. You can use basic HTML CSS and JavaScript to use and create this!\n\nAssets Updates\nhttps://github.com/adriantwar...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fQ9RFR1KTbY",
        "title": "How to use Microsoft Azure AI Studio and Azure OpenAI models",
        "publishedAt": "2 years ago",
        "durationSeconds": 997,
        "views": 241960,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "You can now interact with OpenAI directly through Azure AI Studio. Learn more about Microsoft Azure AI Studio here: https://aka.ms/AdrianAI\n\nIn this video I’m going to cover Azure AI Studio,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OIYevBOSMxY",
        "title": "How to build a PDF summarizer using AI - React JS Next.js",
        "publishedAt": "2 years ago",
        "durationSeconds": 1394,
        "views": 35316,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I'll show how you can build a PDF summary App using AI. I'll use a plain CLI with Node JS and then I'll add a user interface with Next.js and React JS. The PDFs can have multiple pages and...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IYLV26d0dOc",
        "title": "37 x Interactive React JS Components to Try - Aceternity UI",
        "publishedAt": "2 years ago",
        "durationSeconds": 510,
        "views": 158156,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If you want to make your websites look 10x awesome, try Aceternity UI. You can copy paste the most trending components and use them in your websites without having to worry about styling and...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 5,
      "uploadsLast90d": 11,
      "uploadCadenceWeekly": 0.86,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 8054,
      "viewsPerVideoP90Last90d": 164182,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 8054,
      "p90Views": 164182,
      "p99Views": 164182,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 5,
      "sponsorBrandsDetected": [
        "Framer",
        "Zapier",
        "Replit"
      ],
      "affiliateLinkHosts": [
        "bit.ly"
      ],
      "sponsorshipFrequencyPercent": 45,
      "lastSponsoredVideoDate": "2026-04-23",
      "detectionDetail": [
        {
          "brand": "Framer",
          "videoId": "TQJqn65DLa0",
          "confidence": 0.7,
          "evidence": "description: thanks to Framer for sponsoring",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:43.918Z"
        },
        {
          "brand": "Zapier",
          "videoId": "SAq7ekD1-74",
          "confidence": 0.7,
          "evidence": "description: thanks to Zapier for sponsoring",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:43.918Z"
        },
        {
          "brand": "Framer",
          "videoId": "RcGfLSjpR5Q",
          "confidence": 0.7,
          "evidence": "description: thanks to Framer for sponsoring",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:43.918Z"
        },
        {
          "brand": "Zapier",
          "videoId": "rhxya9GNgs8",
          "confidence": 0.7,
          "evidence": "description: thanks to Zapier for sponsoring",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:43.919Z"
        },
        {
          "brand": "Replit",
          "videoId": "EGpMs5yUPPg",
          "confidence": 0.7,
          "evidence": "description: thanks to Replit for sponsoring",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:43.919Z"
        }
      ]
    },
    "sponsorshipMaturity": {
      "tier": "regular",
      "evidence": {
        "sponsoredVideoCountLast90d": 5,
        "uniqueSponsorBrandsLast90d": 3,
        "firstSponsoredVideoDate": "2026-05-14"
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "developer-tools",
          "confidence": 0.25,
          "evidence": [
            "historical-sponsor:Replit"
          ]
        },
        {
          "category": "web-services",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:web development"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "dev.to",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "medium",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": true,
        "affiliateLinksPresent": true
      },
      "interpretation": "Reachable but with gaps: missing one or more of email validation, sponsor history, or external website."
    },
    "topicPillars": [
      {
        "label": "tools",
        "share": 0.5,
        "evidenceVideoIds": [
          "H0x98XlsVzY",
          "TQJqn65DLa0",
          "SAq7ekD1-74",
          "Pl0s83kpIT0",
          "mTDt_30qAps"
        ]
      },
      {
        "label": "https",
        "share": 0.43,
        "evidenceVideoIds": [
          "H0x98XlsVzY",
          "TQJqn65DLa0",
          "SAq7ekD1-74",
          "Pl0s83kpIT0",
          "RcGfLSjpR5Q"
        ]
      },
      {
        "label": "com",
        "share": 0.4,
        "evidenceVideoIds": [
          "H0x98XlsVzY",
          "TQJqn65DLa0",
          "SAq7ekD1-74",
          "Pl0s83kpIT0",
          "RcGfLSjpR5Q"
        ]
      },
      {
        "label": "want",
        "share": 0.4,
        "evidenceVideoIds": [
          "H0x98XlsVzY",
          "TQJqn65DLa0",
          "SAq7ekD1-74",
          "Pl0s83kpIT0",
          "RcGfLSjpR5Q"
        ]
      },
      {
        "label": "web development",
        "share": 0.03,
        "evidenceVideoIds": [
          "dqBpHTGZU1Q"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "B",
      "rationale": "active sponsor history, content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "moderate",
        "postingCadenceSignal": "moderate",
        "sponsorshipHistorySignal": "regular"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 61,
      "reason": "regular sponsor history x fits developer-tools",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.85
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.6
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.45
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.6,
      "level": "medium",
      "coldStart": false
    },
    "whyThisMatters": "regular sponsor history + fits developer-tools. Channel is in the active outreach window.",
    "whyNow": "Last sponsored video 21 days ago — within typical sponsorship-decision lookback for similar creators.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Adrian Twarog — 0.4M subs, B-tier sponsorship readiness, medium contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 61,
      "readyForOutreach": false,
      "blockers": [
        "contactability:medium — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.49,
      "urgency": 0,
      "noiseRisk": 0.4
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": true,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "active sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:regular",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": true,
      "requiresEnrichment": true,
      "priorityQueue": "medium"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "developer-tools",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "B-tier readiness — nurture or enrich before outreach.",
      "appliedRules": [
        "lastSponsored<90d"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "optimal",
      "reason": "Last sponsored video 21 days ago; within typical 14-30d decision-cycle for similar creators.",
      "decayRisk": 0.5
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 52,
      "reasons": [
        "Active sponsor history within last 90d (5 videos)"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "4e5d259ff570d29ca1ef5ffd1c2975d7fd80f5732aff4d6cce1833dbfe439c41",
      "inputsHash": "e2487d395cf04a77da08404f3638744a0ec477ed6097da69eee6517ea4f26696",
      "rulesApplied": [
        "sponsorship-history-regular",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:43.054Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "c6926da58de46658b821674a57de7b06ceab0f745def3ad18e2b015bc90ec579",
    "channelId": "UCWv7vMbMWH4-V0ZXdmDpPBA",
    "channelHandle": "@programmingwithmosh",
    "channelName": "Programming with Mosh",
    "channelUrl": "https://www.youtube.com/@programmingwithmosh",
    "description": "Hi! I'm Mosh 👋, a software engineer with over 20 years of experience.  I'm all about clear, concise, practical coding tutorials – no fluff, just the good stuff! My courses focus on real-world projects and the skills that will get you hired. I've helped millions of students transform their careers. \n\nWant to level up your skills? Subscribe and hit the bell to get notified when I upload new videos!\n\nFor sponsorships: partners@codewithmosh.com",
    "joinDate": null,
    "location": null,
    "subscribers": 5040000,
    "totalVideos": 246,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/HCv0fXFEEcD0HRyF0_qR1K7b7qO3KCzmIoyH1DEJYB94CIUFhIE5i2t2IDIPX97W1-DK4hegww=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "codewithmosh.com",
        "url": "https://codewithmosh.com/courses"
      },
      {
        "platform": "mosh.link",
        "url": "https://mosh.link/bytes"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/moshhamedani"
      },
      {
        "platform": "facebook",
        "url": "https://facebook.com/programmingwithmosh"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/codewithmosh.official/"
      },
      {
        "platform": "linkedin",
        "url": "https://www.linkedin.com/school/codewithmosh/"
      }
    ],
    "recentVideos": [
      {
        "videoId": "IuyVVtr1uhY",
        "title": "Claude Code Tutorial - Build Apps 10x Faster with AI",
        "publishedAt": "1 month ago",
        "durationSeconds": 3491,
        "views": 308345,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Claude Code tutorial - Learn how to use Claude Code like a real software engineer.\n\n🚀 Want to dive deeper?\nCheck out my complete Claude Code course: https://mosh.link/claude-code\nSubscribe for more coding tutorials: https://goo.gl/6PYaGF\n\n🔗 GitHub repo for this course:\nhttps://github.com/mosh-hamedani/expe...\n\n🔗 Related videos\n   • React Tutorial for Beginners  \n\n✋ Stay connected:\nFull Courses: https://codewithmosh.com\nTwitter:   / moshhamedani  \nFacebook:   / programmingwithmosh  \nInstagram:   / codewithmosh.official  \nLinkedIn:   / codewithmosh  \n\n📖 Table of Content\n0:00:00 – Welcome\n0:02:09 – Prerequisites\n0:03:55 – Course Structure\n0:06:40 – Source Code\n0:07:24 – How to Take This Course\n0:09:32 – Getting Started with Claude Code\n0:10:43 – What is Claude Code?\n0:15:23 – Installing Claude Code\n0:18:25 – Using Claude Code\n0:22:34 – Running the App\n0:26:03 – Creating Project Memory\n0:31:07 – Effective Prompting\n0:41:18 – Using the Plan Mode\n0:47:46 – Managing the Context\n0:51:57 – Tracking Cost and Usage\n0:53:29 – Model Context Protocol\n\n#claudecode #claude #programming \n\nCode: PM8UGGKYVU5AUVUT",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-vqGZaThouQ",
        "title": "New Course Dropping Soon...",
        "publishedAt": "1 month ago",
        "durationSeconds": 118,
        "views": 27791,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I’ve been working on something special — can’t wait to share it with you soon. Watch this space.\n\n✋ Stay connected:\nFull Courses: https://codewithmosh.com\nTwitter:   / moshhamedani  \nFacebook:   / programmingwithmosh  \nInstagram:   / codewithmosh.official  \nLinkedIn:   / codewithmosh",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "naNcmnKskUE",
        "title": "Top 5 Programming Languages to Learn in 2026 (to Actually Get Hired)",
        "publishedAt": "4 months ago",
        "durationSeconds": 691,
        "views": 297548,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "These are the top programming languages to learn in 2026 if you want to actually land a developer job. Based on real market data, this video breaks down the most in-demand languages and how to start learning them today.\n\n✋ Stay connected:\nFull Courses: https://codewithmosh.com\nTwitter:   / moshhamedani  \nFacebook:   / programmingwithmosh  \nInstagram:   / codewithmosh.official  \nLinkedIn:   / codewithmosh  \n\n📚 Tutorials \n   • Python Full Course for Beginners  \n   • JavaScript Course for Beginners – Your Fir...  \n   • TypeScript Tutorial for Beginners  \n   • C# Tutorial For Beginners - Learn C# Basic...  \n   • Java Full Course for Beginners  \n   • SQL Course for Beginners [Full Course]  \n\n📚 Full Courses\nComplete Python Mastery: https://mosh.link/python-course\nComplete SQL Mastery: https://mosh.link/sql-course\nThe Ultimate JavaScript Series: https://mosh.link/javascript-course\nThe Ultimate Java Mastery Series: https://mosh.link/java-course\nThe Ultimate C# Mastery Series: https://mosh.link/csharp-course\n\n#coding #programming #ai",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PtETUYa3i2Q",
        "title": "AI Course for Developers – Build AI-Powered Apps with React",
        "publishedAt": "8 months ago",
        "durationSeconds": 8740,
        "views": 147820,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This AI course teaches you how to build AI-powered apps with React & Express. You’ll learn about LLMs, prompt engineering, and full-stack AI integration.\n\n🚀 Want to dive deeper?\nGet the full course: https://mosh.link/build-ai-powered-apps\nSubscribe for more videos like this: https://goo.gl/6PYaGF\n\n💡 Related tutorials \n   • React Tutorial for Beginners  \n   • TypeScript Tutorial for Beginners  \n\n✋ Stay connected:\nFull Courses: https://codewithmosh.com\nTwitter:   / moshhamedani  \nFacebook:   / programmingwithmosh  \nInstagram:   / codewithmosh.official  \nLinkedIn:   / codewithmosh  \n\n📖 Chapters \n0:00:00 Welcome\n0:01:26 Prerequisites\n0:02:21 What You’ll Learn\n0:06:15 Setting Up Your Development Environment\n0:07:12 Introduction to AI Models\n0:07:48 Rise of AI Engineering\n0:11:49 What Are Large Language Models?\n0:16:12 What Can You Do With Language Models?\n0:18:37 Understanding Tokens\n0:21:40 Counting Tokens\n0:25:43 Choosing the Right Model\n0:30:45 Understanding Model Settings\n0:39:32 Calling Models\n0:47:07 Setting Up a Modern Full-Stack Project\n0:48:19 Setting Up Bun\n0:49:51 Creating the Project Structure\n0:52:39 Creating the Backend\n0:59:18 Managing OpenAI API Key\n1:04:33 Creating the Frontend\n1:07:18 Connecting the Frontend and Backend\n1:12:31 Running Both Apps Together\n1:15:55 Setting Up TailwindCSS\n1:19:30 Setting Up ShadCN/UI\n1:26:00 Formatting Code With Prettier\n1:31:02 Automating Pre-Commit Checks With Husky\n1:37:53 Project: Building a ChatBot\n1:38:22 Building the Backend\n1:38:58 Building the Chat API\n1:45:25 Testing the API\n1:47:22 Managing Conversation State\n1:53:44 Input Validation\n1:59:33 Error Handling\n2:01:52 Refactoring the Chat API\n2:04:00 Extracting Conversation Repository\n2:09:21 Extracting Chat Service\n2:16:05 Extracting Chat Controller\n2:20:03 Extracting Routes\n2:24:55 Building the Frontend\n\n#ai #aiappdevelopment #aicourses",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "V7TMkZH1AkM",
        "title": "A Practical AI Course for Developers is Coming...",
        "publishedAt": "8 months ago",
        "durationSeconds": 51,
        "views": 35599,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I’ve been working on something special — can’t wait to share it with you soon. Watch this space.\n\n❤️ Join this channel to get access to perks:\n   / @programmingwithmosh  \n\n✋ Stay connected:\nFull Courses: https://codewithmosh.com\nTwitter:   / moshhamedani  \nFacebook:   / programmingwithmosh  \nInstagram:   / codewithmosh.official  \nLinkedIn:   / codewithmosh",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "h4FRpDGuJyI",
        "title": "Microsoft laid off 6,000 people… but why?",
        "publishedAt": "11 months ago",
        "durationSeconds": 233,
        "views": 97948,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Everyone’s talking about the layoffs — but no one’s asking the right questions. This goes way deeper than AI. Let’s break it down.\n\nLevel up your coding skills: https://codewithmosh.com\n\n✋ Stay connected:\nTwitter:   / moshhamedani  \nFacebook:   / programmingwithmosh  \nInstagram:   / codewithmosh.official  \nLinkedIn:   / codewithmosh",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EWd3_I4X32g",
        "title": "Spring Boot Project: Build a REST API for an E-commerce Platform",
        "publishedAt": "1 year ago",
        "durationSeconds": 7217,
        "views": 228382,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to build a REST API for an e-commerce platform. Perfect for Java developers looking to enhance their skills with hands-on Spring Boot projects!\n\n🚀 Want to dive deeper?\nGet the full course: https://mosh.link/spring-boot-api-dev...\nSubscribe for more videos like this: https://goo.gl/6PYaGF\n\n💡 Related tutorials \n   • Spring Boot Tutorial for Beginners [2025]  \n   • Java Full Course for Beginners  \n   • SQL Course for Beginners [Full Course]  \n\n✋ Stay connected:\nFull Courses: https://codewithmosh.com\nTwitter:   / moshhamedani  \nFacebook:   / programmingwithmosh  \nInstagram:   / codewithmosh.official  \nLinkedIn:   / codewithmosh  \n\n📖 Table of Content\n0:00:00 Welcome\n0:01:31 What You’ll Learn\n0:03:41 Prerequisites\n0:04:59 Starter Project\n0:09:07 How to Take This Course\n0:10:29 Spring MVC\n0:11:19 How the Web Works\n0:16:31 What is Spring MVC?\n0:18:09 Creating a Controller\n0:22:23 View Templates\n0:25:50 Passing Data to Views\n0:27:49 Building an API\n0:32:18 Spring Boot Course\n0:32:51 RESTful APIs\n0:33:49 Creating Your First RESTful API\n0:37:49 Calling APIs with Postman\n0:40:25 Creating Dynamic Routes\n0:43:54 Setting HTTP Status Codes\n0:46:56 Data Transfer Objects\n0:51:47 Mapping Objects Using MapStruct\n0:56:43 Customizing Response Data\n1:01:45 Extracting Query Parameters\n1:09:58 Exercise: Building Product Endpoints\n1:20:17 Extracting Request Headers\n1:23:07 Extracting Request Body\n1:26:25 Creating Resources\n1:35:52 Updating Resources\n1:41:38 Deleting Resources\n1:43:31 Handling Action-Based Updates\n1:48:25 Exercise: Building a CRUD API\n1:59:40 Spring Boot Course\n\n#springboot #java #backend",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "v73-ps01c5w",
        "title": "How Spring Boot Can Be A Game Changer For Your Career",
        "publishedAt": "1 year ago",
        "durationSeconds": 245,
        "views": 97858,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how Spring Boot simplifies Java development and why it's a must-have skill for developers!\n\n🚀 Want to build your first Spring Boot application? Watch my tutorial here:    • Spring Boot Tutorial for Beginners [2025]  \n\n❤️ Join this channel to get access to perks:\n   / @programmingwithmosh  \n\n✋ Stay connected:\nFull Courses: https://codewithmosh.com\nTwitter:   / moshhamedani  \nFacebook:   / programmingwithmosh  \nInstagram:   / codewithmosh.official  \nLinkedIn:   / codewithmosh  \n\n#springboot #java #backend",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gJrjgg1KVL4",
        "title": "Spring Boot Tutorial for Beginners [2025]",
        "publishedAt": "1 year ago",
        "durationSeconds": 4282,
        "views": 924191,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Master Spring Boot and build amazing backends with Java! 🚀 This beginner-friendly tutorial covers everything you need to learn Spring Boot 3.\n\n🚀 Want to dive deeper?\nGet the full course: https://mosh.link/spring-boot-fundame...\nSubscribe for more videos like this: https://goo.gl/6PYaGF\n\n💡 Related tutorials \n   • Spring Boot Project: Build a REST API for ...  \n\n👉 Interested in trying IntelliJ IDEA Ultimate? https://jb.gg/intellij-idea-for-mosh\n👉 JetBrains has given me a 100% discount code! Use 'Spring_with_Mosh' to enjoy IntelliJ IDEA Ultimate for 3 months completely free! Redeem it here until April 1, 2026: https://jb.gg/redeem\n\n💡 Related tutorials \n   • Java Full Course for Beginners  \n   • SQL Course for Beginners [Full Course]  \n\n✋ Stay connected:\nFull Courses: https://codewithmosh.com\nTwitter:   / moshhamedani  \nFacebook:   / programmingwithmosh  \nInstagram:   / codewithmosh.official  \nLinkedIn:   / codewithmosh  \n\n📖 Table of Content\n0:00:00 Welcome\n0:01:12 Prerequisites\n0:02:02 Course Structure\n0:03:44 Source Code\n0:05:01 Getting Started\n0:05:48 Introduction to Spring Boot\n0:08:30 Setting Up the Development Environment\n0:11:55 Creating a Spring Boot Project\n0:15:38 Understanding the Project Structure\n0:19:37 Dependency Management\n0:27:28 Building Your First Spring Controller\n0:31:41 The Ultimate Spring Boot Course \n0:32:16 Running Spring Boot Applications\n0:34:40 Debugging Spring Boot Applications\n0:40:34 Automatic Restarts\n0:44:12 Configuring Application Properties\n0:46:49 Dependency Injection\n0:47:48 What is Dependency Injection?\n0:55:30 Constructor Injection\n1:00:25 Setter Injection\n1:03:05 The Spring IoC Container\n1:05:58 Configuring Beans Using Annotations\n1:10:59 What's Next \n\n#springboot #java #backend",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lvg8pBJ2kFg",
        "title": "You asked for it. It’s finally happening!",
        "publishedAt": "1 year ago",
        "durationSeconds": 75,
        "views": 35898,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "❤️ Join this channel to get access to perks:\n   / @programmingwithmosh  \n\n✋ Stay connected:\nFull Courses: https://codewithmosh.com\nTwitter:   / moshhamedani  \nFacebook:   / programmingwithmosh  \nInstagram:   / codewithmosh.official  \nLinkedIn:   / codewithmosh",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "K5KVEU3aaeQ",
        "title": "Python Full Course for Beginners",
        "publishedAt": "1 year ago",
        "durationSeconds": 7341,
        "views": 6263985,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Master Python from scratch 🚀 No fluff—just clear, practical coding skills to kickstart your journey! \n\n🚀 Want to dive deeper?\n- Check out my complete Python mastery course: https://mosh.lin...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "v7BNtpw53AA",
        "title": "The Complete Cybersecurity Roadmap: Land a Cybersecurity Job in 10 Months",
        "publishedAt": "1 year ago",
        "durationSeconds": 354,
        "views": 644152,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The complete step-by-step roadmap to land your first cybersecurity job in 10 months or less.\n\n✋ Stay connected:\n- Full Courses: https://codewithmosh.com\n- Twitter: https://twitter.com/moshhamedan...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gdiao7L9GjE",
        "title": "From Zero to Blockchain Developer in 10 Months: Complete Roadmap",
        "publishedAt": "1 year ago",
        "durationSeconds": 299,
        "views": 256338,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go from zero to a blockchain developer in 10 months. This step-by-step roadmap covers the essential skills and latest technologies to become a blockchain developer. \n\n👉 Download the FREE...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fZmQ_aPXJAM",
        "title": "The Best Tech Jobs for 2025: High Demand & High Pay",
        "publishedAt": "1 year ago",
        "durationSeconds": 316,
        "views": 592403,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Curious about the best tech careers for 2025? Find out which roles are in demand, what they pay, and why they matter in today’s fast-changing world of tech.\n\n❤️ Join this channel to get...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AD43TVI2S0A",
        "title": "Mosh's Christmas Gift to You!",
        "publishedAt": "1 year ago",
        "durationSeconds": 84,
        "views": 25184,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🎉 Sign up today to redeem this offer: https://codewithmosh.com/p/all-access",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YNtWJNPCPPs",
        "title": "Don't Miss Mosh's Black Friday Sale!",
        "publishedAt": "1 year ago",
        "durationSeconds": 134,
        "views": 102567,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🎉 Black Friday Special [Offer ends November 30th]: https://mosh.link/bf2024\n\nDon’t let Tutorial Syndrome hold you back. Take control of your coding journey today!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "BGZB9dn0GV4",
        "title": "3 Problems with AI-Generated Code",
        "publishedAt": "1 year ago",
        "durationSeconds": 520,
        "views": 94077,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "AI was supposed to change coding forever, but it's creating new problems no one saw coming. Let’s break down what this means for developers and why the AI hype bubble might be popping.\n\nGet...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "yVl_G-F7m8c",
        "title": "Python Projects for Beginners – Master Problem-Solving! 🚀",
        "publishedAt": "1 year ago",
        "durationSeconds": 3180,
        "views": 858513,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Improve your Python programming skills with these handpicked Python projects. \n\n🚀 Want to dive deeper?\n- Get 13 more Python projects (beginner to intermediate): https://mosh.link/python-projects...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6GQRb4fGvtk",
        "title": "The Complete DevOps Roadmap",
        "publishedAt": "1 year ago",
        "durationSeconds": 481,
        "views": 590460,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go from zero to a DevOps Engineer in 10-14 months. This step-by-step roadmap covers the essential skills you need to become a DevOps Engineer in 2024. \n\n👉 Download the FREE roadmap PDF here:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YRJbhFLLPyE",
        "title": "The Complete Data Analyst Roadmap",
        "publishedAt": "1 year ago",
        "durationSeconds": 248,
        "views": 719608,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go from zero to a data analyst in 8-16 months. This step-by-step roadmap covers the essential skills you must learn to become a data analyst in 2024. \n\n👉 Download the FREE roadmap PDF here:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9R3X0JoCLyU",
        "title": "The Complete Data Science Roadmap",
        "publishedAt": "1 year ago",
        "durationSeconds": 373,
        "views": 781639,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go from zero to a data scientist in 12 months. This step-by-step roadmap covers the essential skills you must learn to become a data scientist in 2024. \n\n👉  Download the FREE roadmap PDF...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GxmfcnU3feo",
        "title": "The Complete Web Development Roadmap",
        "publishedAt": "1 year ago",
        "durationSeconds": 915,
        "views": 1384260,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go from zero to a full stack web developer in 12 months. This step-by-step roadmap covers the essential skills and latest technologies to become a web developer in 2024. \n\n👉 Download the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7IgVGSaQPaw",
        "title": "The Complete Machine Learning Roadmap",
        "publishedAt": "1 year ago",
        "durationSeconds": 325,
        "views": 1002453,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go from zero to a machine learning engineer in 12 months. This step-by-step roadmap covers the essential skills you must learn to become a machine learning engineer in 2024. \n\n❤️ Join this...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "yye7rSsiV6k",
        "title": "The Complete App Development Roadmap",
        "publishedAt": "1 year ago",
        "durationSeconds": 472,
        "views": 1554684,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go from zero to a mobile app developer in 12 months. This step-by-step roadmap covers the essential skills and latest technologies to become an app developer. \n\n👉 Download the FREE roadmap...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OeEHJgzqS1k",
        "title": "The Complete Backend Developer Roadmap",
        "publishedAt": "1 year ago",
        "durationSeconds": 504,
        "views": 787082,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go from zero to a backend developer in 12 months. This step-by-step roadmap covers the essential skills and latest technologies to become a backend developer in 2024. \n\n❤️ Join this channel...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Tef1e9FiSR0",
        "title": "The Complete Frontend Developer Roadmap",
        "publishedAt": "1 year ago",
        "durationSeconds": 534,
        "views": 616796,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go from zero to a frontend developer in 12 months. This step-by-step roadmap covers the essential skills and latest technologies to become a frontend developer in 2024. \n\nDownload the FREE...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "J-graiyPhpw",
        "title": "9 Reasons People Hate JavaScript",
        "publishedAt": "1 year ago",
        "durationSeconds": 285,
        "views": 135069,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Why does everyone HATE JavaScript? We expose its flaws, quirks, and why it's still the king of the web!\n\n✋ Stay connected\n\n- Twitter: https://twitter.com/moshhamedani\n- Facebook: https://www.face...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4gX44uyGSHo",
        "title": "Is Coding Still Worth Learning in 2024?",
        "publishedAt": "2 years ago",
        "durationSeconds": 573,
        "views": 381882,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "AI replacing coders? The REAL story about software engineering in 2024. Stats, trends, and the truth you need to know.\n\n✋ Stay connected\n\n- Twitter: https://twitter.com/moshhamedani\n- Facebook:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vE7Cy5csYbQ",
        "title": "Python in 2 Minutes!",
        "publishedAt": "2 years ago",
        "durationSeconds": 119,
        "views": 103412,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get to know Python and why it's hated by C++ programmers! \n\n🔗 Python tutorials \n\nhttps://youtu.be/kqtD5dpn9C8?si=Z9CtJNU1FStlnepW\nhttps://youtu.be/_uQrJ0TkZlc?si=-mGZLOQn7YpLAlXJ\n\n✋ Stay...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "27YP6n6pDh0",
        "title": "The FASTEST Way to Learn to Code & Get a Job",
        "publishedAt": "2 years ago",
        "durationSeconds": 348,
        "views": 174350,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ready to change your life? Learn how ordinary people transformed their careers with coding and landed high-paying tech jobs in a year. Step-by-step system inside!\n\n✋ Stay connected\n\n- Twitter:...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 2,
      "uploadsLast90d": 2,
      "uploadCadenceWeekly": 0.16,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 27791,
      "viewsPerVideoP90Last90d": 27791,
      "viewVelocityTrend": "stable"
    },
    "performanceBaseline": {
      "p50Views": 27791,
      "p90Views": 27791,
      "p99Views": 27791,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "web-services",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:web development"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": "[REDACTED]",
      "businessEmailSource": "channel-about-section",
      "businessEmailMxValid": true,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "codewithmosh.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "high",
      "components": {
        "businessEmailPresent": true,
        "businessEmailValid": true,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Will likely respond to sponsorship outreach: business email validated + active sponsor history + external website live."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.6,
        "evidenceVideoIds": [
          "IuyVVtr1uhY",
          "-vqGZaThouQ",
          "naNcmnKskUE",
          "PtETUYa3i2Q",
          "V7TMkZH1AkM"
        ]
      },
      {
        "label": "stay",
        "share": 0.5,
        "evidenceVideoIds": [
          "IuyVVtr1uhY",
          "-vqGZaThouQ",
          "naNcmnKskUE",
          "PtETUYa3i2Q",
          "V7TMkZH1AkM"
        ]
      },
      {
        "label": "com",
        "share": 0.47,
        "evidenceVideoIds": [
          "IuyVVtr1uhY",
          "-vqGZaThouQ",
          "naNcmnKskUE",
          "PtETUYa3i2Q",
          "V7TMkZH1AkM"
        ]
      },
      {
        "label": "connected",
        "share": 0.47,
        "evidenceVideoIds": [
          "IuyVVtr1uhY",
          "-vqGZaThouQ",
          "naNcmnKskUE",
          "PtETUYa3i2Q",
          "V7TMkZH1AkM"
        ]
      },
      {
        "label": "twitter",
        "share": 0.47,
        "evidenceVideoIds": [
          "IuyVVtr1uhY",
          "-vqGZaThouQ",
          "naNcmnKskUE",
          "PtETUYa3i2Q",
          "V7TMkZH1AkM"
        ]
      },
      {
        "label": "web development",
        "share": 0.03,
        "evidenceVideoIds": [
          "GxmfcnU3feo"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "business email validated, content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "strong",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 52,
      "reason": "validated business email x fits web-services",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.95
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.55
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.35
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.8,
      "level": "high",
      "coldStart": false
    },
    "whyThisMatters": "validated business email + fits web-services. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Programming with Mosh — 5.0M subs, C-tier sponsorship readiness, high contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": true,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 52,
      "readyForOutreach": false,
      "blockers": [],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.58,
      "urgency": 0,
      "noiseRisk": 0.2
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": {
      "isValidFormat": true,
      "canonical": "partners@codewithmosh.com",
      "domain": "codewithmosh.com",
      "lineType": "corporate",
      "mxValid": true,
      "confidence": 0.9,
      "originalInput": "partners@codewithmosh.com",
      "email": null
    },
    "allEmailValidations": [
      {
        "isValidFormat": true,
        "canonical": "partners@codewithmosh.com",
        "domain": "codewithmosh.com",
        "lineType": "corporate",
        "mxValid": true,
        "confidence": 0.9,
        "originalInput": "partners@codewithmosh.com",
        "email": null
      }
    ],
    "contactabilityScore": {
      "score": 88,
      "level": "high",
      "components": {
        "presence": 25,
        "sourceQuality": 18,
        "validationQuality": 18,
        "identityStrength": 14,
        "freshness": 8,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "email",
      "secondary": "agency-form",
      "reason": "Validated business email + active sponsor history — email-first maximises response rate."
    },
    "sequenceFit": {
      "directOutreachAllowed": true,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "channel-about",
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.88
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.88,
      "gap": 0.06,
      "howToClose": [
        "Run ryanclinton/person-enrichment-lookup against 'partners@codewithmosh.com' to identify the inbox owner."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "high",
      "score": 0.85,
      "factors": [
        "business-email-validated",
        "external-website-active",
        "corporate-email-domain"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + validated corporate business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:corporate",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [],
      "safeChannels": [
        "email",
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [
      {
        "email": "[REDACTED]",
        "rank": 1,
        "reason": "corporate-domain email",
        "role": "business"
      }
    ],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": false,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "web-services",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": [
        "contactability:high"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 64,
      "reasons": [
        "Validated business email (MX confirmed)",
        "Low confidence-conflict count in scoring trace"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "c6926da58de46658b821674a57de7b06ceab0f745def3ad18e2b015bc90ec579",
      "inputsHash": "fb29d98c3e9f582a281fcf54db840bad92225b6f9a63865e4b151a3981743087",
      "rulesApplied": [
        "business-email-validated",
        "sponsorship-history-never",
        "growth-velocity-stable",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:43.313Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "1b55ee792086ae577c95f61ee7ab5c4dd149e221118ca72e4f8580c6b6f5e236",
    "channelId": "UCW_4e6sUTMWHxlF06aErH9w",
    "channelHandle": "@codewithantonio",
    "channelName": "Code With Antonio",
    "channelUrl": "https://www.youtube.com/@codewithantonio",
    "description": "My name is Antonio and I am a software engineer with over 7 years of experience. I have always been fascinated by the world of programming, and I consider myself lucky to have found a career that aligns with my passions.\n\nThroughout my career, I have had the opportunity to work with a variety of programming languages and technologies, which has allowed me to grow and develop as a programmer. While I have gained a considerable amount of knowledge and experience, I am always eager to continue learning and improving.\n\nI created \"Code With Antonio\" with the intention of sharing my love for programming and helping others to learn and grow in the field. My hope is that my tutorials and insights will be useful to others and that I can contribute to the programming community in a positive way.\n\nThank you for considering my channel, and I hope that you find value in the content that I provide.",
    "joinDate": null,
    "location": null,
    "subscribers": 417000,
    "totalVideos": 41,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/kub0rXGIpWKXcfe9F_jQmutFzojSZWR7TA2GneW2dbnefqUEVC7msiDdZFuAsGM22Le3Vv-2=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "cwa.run",
        "url": "https://cwa.run/yt"
      }
    ],
    "recentVideos": [
      {
        "videoId": "7LeW1XLjeds",
        "title": "I don't build the way I teach",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 538,
        "views": 34588,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://cwa.run/cohort - 40% off right now, doors close soon!\n\nTimestamps\n00:00 face reveal\n00:20 how i make tutorials today\n01:36 how tutorials should look like\n02:28 why it's hard to make a good tutorial\n03:06 why ai is changing the way i build\n03:40 vibe coding vs agentic coding\n05:40 what i've been working on\n08:12 final thoughts",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "e_MO-Rcz_MA",
        "title": "Build and Deploy a Full Stack ElevenLabs Clone with Next.js 16",
        "publishedAt": "2 months ago",
        "durationSeconds": 43122,
        "views": 80615,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻 Free Source Code: https://cwa.run/resonance\n⭐ CodeRabbit: https://cwa.run/coderabbit\n⭐ Clerk: https://cwa.run/clerk\n⭐ Railway: https://cwa.run/railway\n⭐ Prisma: https://cwa.run/prisma\n⭐ Polar: https://cwa.run/polar\n⭐ Sentry: https://cwa.run/sentry\n\nIn this video, we're building an ElevenLabs clone, a full-stack AI voice platform, from start to finish. You'll learn how to self-host an open-source text-to-speech model, generate realistic speech with waveform playback, and build voice management with file uploads and in-browser recording for custom voice cloning. We'll also cover a type-safe tRPC backend, Cloudflare R2 storage, authentication, subscription billing with usage metering, and a polished responsive UI with Next.js and shadcn/ui.\n\nTimestamps\n0:00 Intro & Demo\n5:11 Project Setup, Auth & DB\n1:31:17 Dashboard\n3:06:54 Text to Speech UI\n4:34:31 Backend Infrastructure\n5:45:55 Voice Selection\n6:51:55 TTS Generation & Audio Player\n9:04:36 TTS History & Polish\n9:28:12 Sentry Error Monitoring\n9:45:13 Voice Management\n11:22:33 Billing & Deploy (Finish)",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_y_ixdk9aRg",
        "title": "Build and Deploy an AI Coding Agent | Cursor Clone with Next.js 16 | Full Course 2026",
        "publishedAt": "3 months ago",
        "durationSeconds": 25918,
        "views": 23620,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🎥 PART 1:    • Build and Deploy a Cursor Clone | Next.js ...  \n\nTry Clerk: https://cwa.run/clerk\nTry Firecrawl: https://cwa.run/firecrawl\nTry Convex: https://cwa.run/convex\nTry Inngest: https://cwa.run/inngest\nTry Sentry: https://cwa.run/sentry\nTry CodeRabbit: https://cwa.run/coderabbit\n\n💻 FREE Source Code: https://cwa.run/polaris\n🎨 FREE Assets: https://cwa.run/polaris-assets\n\nIn this tutorial, we're building Polaris, a complete AI-powered code editor from scratch. You'll learn how to create a professional IDE with a CodeMirror 6 editor featuring syntax highlighting, code folding, and a minimap, integrate AI-powered code suggestions and quick edit functionality using Claude, handle background job execution for AI agents with multi-tool capabilities, and build a full SaaS business layer with authentication and GitHub OAuth. We'll also cover error tracking with LLM monitoring, in-browser code execution with WebContainer and live preview, and complete GitHub integration for importing and exporting repositories.\n\nKey features:\n🤖 AI code suggestions & quick edit\n🧠 AI agent with file manipulation tools\n📚 Live docs scraping with Firecrawl\n✏️ CodeMirror 6 editor with minimap\n▶️ In-browser execution with WebContainers\n🐙 GitHub import & export\n⚡ Background jobs with Inngest\n🗄️ Real-time sync with Convex\n🔐 Clerk authentication & billing\n🐛 Sentry error tracking + LLM monitoring\n🐰 CodeRabbit PR reviews\n🌐 Next.js 16 + TypeScript\n\nTimestamps\n00:00 Intro\n01:40 13 AI Agent Tools\n2:17:46 14 WebContainers Terminal Preview\n3:43:55 15 GitHub Import Export\n5:52:31 16 Billing Final Polish\n6:55:59 17 Deployment\n7:11:57 End\n6:55:35 17 Deployment\n7:11:31 End",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Xf9rHPNBMyQ",
        "title": "Build and Deploy a Cursor Clone | Next.js 16, React, Convex | Full Course 2026",
        "publishedAt": "4 months ago",
        "durationSeconds": 42959,
        "views": 91786,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🎥 PART 2:    • Build and Deploy an AI Coding Agent | Curs...  \n\nTry Clerk: https://cwa.run/clerk\nTry Firecrawl: https://cwa.run/firecrawl\nTry Convex: https://cwa.run/convex\nTry Inngest: https://cwa.run/inngest\nTry Sentry: https://cwa.run/sentry\nTry CodeRabbit: https://cwa.run/coderabbit\n\n💻 FREE Source Code: https://cwa.run/polaris\n🎨 FREE Assets: https://cwa.run/polaris-assets\n\nIn this tutorial, we're building Polaris, a complete AI-powered code editor from scratch. You'll learn how to create a professional IDE with a CodeMirror 6 editor featuring syntax highlighting, code folding, and a minimap, integrate AI-powered code suggestions and quick edit functionality using Claude, handle background job execution for AI agents with multi-tool capabilities, and build a full SaaS business layer with authentication and GitHub OAuth. We'll also cover error tracking with LLM monitoring, in-browser code execution with WebContainer and live preview, and complete GitHub integration for importing and exporting repositories.\n\nKey features:\n🤖 AI code suggestions & quick edit\n🧠 AI agent with file manipulation tools\n📚 Live docs scraping with Firecrawl\n✏️ CodeMirror 6 editor with minimap\n▶️ In-browser execution with WebContainers\n🐙 GitHub import & export\n⚡ Background jobs with Inngest\n🗄️ Real-time sync with Convex\n🔐 Clerk authentication & billing\n🐛 Sentry error tracking + LLM monitoring\n🐰 CodeRabbit PR reviews\n🌐 Next.js 16 + TypeScript\n\nTimestamps\n00:00 Intro\n04:53 01 Project Setup\n32:33 02 Authentication\n53:31 03 Database Setup\n1:52:15 04 Background Jobs\n2:25:55 05 Firecrawl AI\n2:50:46 06 Error Tracking\n3:24:16 07 Projects\n4:26:14 08 IDE Layout\n5:23:36 09 File Explorer\n7:14:06 10 Code Editor State\n8:59:58 11 AI Features\n10:40:45 12 Conversation System\n11:55:48 End of Part 1",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "S-4DrLHtL1s",
        "title": "Build and Deploy an AI Automation Platform | Next.js 15, React, Better Auth | Zapier & N8N Clone",
        "publishedAt": "6 months ago",
        "durationSeconds": 36032,
        "views": 72232,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻 Source Code: https://cwa.run/nodebase\n🎨 Free Assets: https://cwa.run/node-assets\n🎥 Part 1:    • Build and Deploy an N8N & Zapier Clone | N...  \n\n📚 Resources:\nTry Inngest: https://cwa.run/node-inngest\nTry Polar: https://cwa.run/node-polar\nTry Better Auth: https://cwa.run/node-auth\nTry Sentry: https://cwa.run/sentry\nTry CodeRabbit: https://cwa.run/node-rabbit\nTry Neon: https://cwa.run/node-neon\n\nIn Part 2 of this tutorial, we're completing Nodebase by building the execution engine and all remaining integrations. You'll learn how to implement workflow execution with variables and templating, build trigger nodes that respond to real-world events, integrate multiple AI providers with encrypted credential management, and create messaging integrations. We'll also cover execution history with error tracking, additional authentication providers, and deploying the entire platform to production.\n\nKey features:\n🔄 Visual workflow builder\n🎯 Trigger nodes (Webhook, Google Form, Stripe, Manual)\n🤖 AI integrations (OpenAI, Claude, Gemini)\n💬 Messaging nodes (Discord, Slack)\n🌐 HTTP request node\n⚡ Background job execution with Inngest\n💳 Polar payments & subscriptions\n🔐 Better Auth authentication\n🎨 React Flow canvas\n🗄️ Prisma ORM + Neon Postgres\n🔒 Type safety with TypeScript + tRPC\n🐛 Sentry error tracking + AI monitoring\n🧑‍💻 CodeRabbit PR reviews\n🌐 Next.js 15 App Router\n📱 Production-ready SaaS\n\nTimestamps\n\n00:00 Intro & Demo\n01:50 18 Node Execution\n01:06:58 19 Node Variables\n01:29:53 20 Node Templating\n02:01:36 21 Node Realtime\n02:46:27 22 Google Form Trigger\n03:57:27 23 Stripe Trigger\n04:30:54 24 AI Nodes\n05:49:42 25 Credentials\n07:24:48 26 Discord Slack Nodes\n08:18:41 27 Executions History\n09:19:06 28 Encrypting Credentials\n09:31:44 29 GitHub Google Auth\n09:47:36 30 Deployment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ED2H_y6dmC8",
        "title": "Build and Deploy an N8N & Zapier Clone | Next.js 15, React, Better Auth, Polar | Full Course 2025",
        "publishedAt": "7 months ago",
        "durationSeconds": 43170,
        "views": 198753,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻 Source Code: https://cwa.run/nodebase\n🎨 Free Assets: https://cwa.run/node-assets\n🎥 Part 2:    • Build and Deploy an AI Automation Platform...  \n\n📚 Resources:\nTry Inngest: https://cwa.run/node-inngest\nTry Polar: https://cwa.run/node-polar\nTry Better Auth: https://cwa.run/node-auth\nTry Sentry: https://cwa.run/sentry\nTry CodeRabbit: https://cwa.run/node-rabbit\nTry Neon: https://cwa.run/node-neon\n\nIn this tutorial, we're building Nodebase, a complete workflow automation platform from scratch. You'll learn how to create a visual drag-and-drop canvas for building workflows, integrate multiple triggers and AI providers, handle background job execution, and build a full SaaS business layer with authentication, subscriptions, and paywalls. We'll also cover error tracking with AI monitoring and a professional Git workflow with AI-powered code reviews.\n\nKey features:\n🔄 Visual workflow builder\n🎯 Trigger nodes (Webhook, Google Form, Stripe, Manual)\n🤖 AI integrations (OpenAI, Claude, Gemini)\n💬 Messaging nodes (Discord, Slack)\n🌐 HTTP request node\n⚡ Background job execution with Inngest\n💳 Polar payments & subscriptions\n🔐 Better Auth authentication\n🎨 React Flow canvas\n🗄️ Prisma ORM + Neon Postgres\n🔒 Type safety with TypeScript + tRPC\n🐛 Sentry error tracking + AI monitoring\n🧑‍💻 CodeRabbit PR reviews\n🌐 Next.js 15 App Router\n📱 Production-ready SaaS\n\nTimestamps\n\n00:00 Intro\n06:05 01 Setup\n29:33 02 Database\n56:15 03 tRPC Setup\n01:35:21 04 Authentication\n02:37:24 05 Theme & Styling\n02:55:05 06 Background Jobs\n03:28:09 07 AI Providers\n04:01:53 08 Error Tracking\n04:27:54 09 Sidebar Layout\n05:06:26 10 Payments Setup\n05:44:04 11 Workflows Crud\n06:45:20 12 Workflows Pagination\n07:34:34 13 Workflows UI\n08:23:40 14 Workflow Page\n08:59:36 15 Editor Setup\n09:50:42 16 Node Selector\n10:40:32 17 Editor State\n11:59:20 End of Part 1",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "HUfZNPzI-rw",
        "title": "Build and Deploy a B2B SaaS AI Support Platform | Next.js 15, React, Convex, Turborepo, Vapi, AWS",
        "publishedAt": "8 months ago",
        "durationSeconds": 38295,
        "views": 54331,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻 Source Code: https://cwa.run/echo\n🎥 Part 1:    • Build and Deploy a B2B AI SaaS Support Pla...  \n🎨 Free Assets: https://cwa.run/echo-assets\n\n📚 Resources:\nTry Vapi: https://cwa.run/echo-vapi\nTry Convex: https://cwa.run/echo-convex\nTry Clerk: https://cwa.run/echo-clerk\nTry Sentry: https://cwa.run/echo-sentry (Get 3 months of Sentry Team for FREE) \nTry CodeRabbit: https://cwa.run/echo-rabbit\n\nIn this video, we’re building an AI-powered customer support platform from scratch.\n\nYou’ll learn how to build document embeddings, retrieval augmented generation, AI search, secure AWS credentials, billing & subscriptions, and everything else you need to turn Echo into a real B2B SaaS product 🚀\n\nKey features:\n🤖 Real-time AI Chat using Convex Agents\n📣 Human Handoff & Auto-Close using AI Tools\n🧠 Smart Knowledge Base using Embeddings and RAG\n🔊 Voice Support by VAPI\n🔑 API Key Storage by AWS Secrets Manager\n👥 Team Management by Clerk\n🔐 Authentication by Clerk\n💳 Subscription Billing by Clerk\n🛠️ Embeddable Widget\n📈 Operator Dashboard for Managing Conversations\n🧰 Developer Toolkit for Embed Script\n🧠 AI Model Support: OpenAI, Anthropic, Grok\n🌐 Built with Next.js 15\n⚛️ Powered by React 19\n🎨 Styled with Tailwind v4\n🧩 Components from shadcn/ui\n📦 Monorepo managed with Turborepo\n🪵 Error Tracking by Sentry\n🧑‍💻 Pull Request Reviews by CodeRabbit\n\nTimestamps\n00:00 Intro & Demo\n01:52 20 Generating Embeddings\n54:10 21 Knowledge Base\n01:54:58 22 AI Search Tool\n02:23:28 23 AWS Secrets Manager\n02:38:56 24 Vapi Plugin\n03:45:47 25 Vapi Data\n04:39:27 26 Widget Settings\n05:36:11 27 Widget Config\n06:07:36 28 Widget VAPI\n06:51:59 29 Widget Improvements\n07:05:58 30 Contact Panel\n07:49:48 31 Subscriptions\n08:50:04 32 API Improvements\n09:18:31 33 Integrations UI\n09:45:43 34 Embed Script\n10:22:04 35 Deployment\n10:38:15 End of Part 2",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CAr02YlEJUc",
        "title": "Build and Deploy a B2B AI SaaS Support Platform | Next.js 15, React, Convex, Turborepo, Vapi, AWS",
        "publishedAt": "9 months ago",
        "durationSeconds": 42542,
        "views": 155129,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻 Source Code: https://cwa.run/echo\n🎥 Part 2:    • Build and Deploy a B2B SaaS AI Support Pla...  \n🎨 Free Assets: https://cwa.run/echo-assets\n\n📚 Resources:\nTry Vapi: https://cwa.run/echo-vapi\nTry Convex: https://cwa.run/echo-convex\nTry Clerk: https://cwa.run/echo-clerk\nTry Sentry: https://cwa.run/echo-sentry (Get 3 months of Sentry Team for FREE) \nTry CodeRabbit: https://cwa.run/echo-rabbit\n\nIn this video, we’re building an AI-powered customer support platform from scratch.\n\nYou’ll set up real-time AI chat with Convex Agents. Add voice support with VAPI. Upload docs and build a knowledge base with embeddings and RAG. Teach the AI how to escalate to a human or auto-resolve a conversation.\n\nWe’ll build workspaces, teams, authentication, and billing with Clerk. You’ll learn how to embed the chat widget, store API keys with AWS, and track errors with Sentry. Every chapter ends with a pull request and a CodeRabbit review.\n\nThis isn’t just a demo. It’s a full-stack, production-ready B2B SaaS template. Let’s build Echo 🚀.\n\nKey features:\n🤖 Real-time AI Chat using Convex Agents\n📣 Human Handoff & Auto-Close using AI Tools\n🧠 Smart Knowledge Base using Embeddings and RAG\n🔊 Voice Support by VAPI\n🔑 API Key Storage by AWS Secrets Manager\n👥 Team Management by Clerk\n🔐 Authentication by Clerk\n💳 Subscription Billing by Clerk\n🛠️ Embeddable Widget\n📈 Operator Dashboard for Managing Conversations\n🧰 Developer Toolkit for Embed Script\n🧠 AI Model Support: OpenAI, Anthropic, Grok\n🌐 Built with Next.js 15\n⚛️ Powered by React 19\n🎨 Styled with Tailwind v4\n🧩 Components from shadcn/ui\n📦 Monorepo managed with Turborepo\n🪵 Error Tracking by Sentry\n🧑‍💻 Pull Request Reviews by CodeRabbit\n\nTimestamps\n00:00 00 Echo Intro\n04:36 01 Setup\n38:23 02 Convex Package\n01:29:40 03 Clerk Authentication\n02:07:34 04 Organizations\n02:44:26 05 Error Tracking\n03:08:45 06 AI Voice Assistant\n03:37:48 07 Dashboard Layout\n04:12:24 08 Theme\n04:25:02 09 Widget Layout\n04:42:58 10 Widget Session\n05:24:13 11 Widget Screen Router\n05:34:32 12 Widget Loading\n06:29:43 13 Conversations\n07:00:58 14 AI Agents\n08:10:11 15 Infinite Scroll\n08:39:59 16 Widget Inbox\n09:11:20 17 Dashboard Inbox\n10:07:14 18 Dashboard Chat\n10:56:01 19 AI Tool Calling\n11:48:47 End of Part 1",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xs8mWnbMcmc",
        "title": "Build and Deploy a SaaS AI Website Builder | Next.js 15, React, Inngest, Prisma | Lovable clone",
        "publishedAt": "10 months ago",
        "durationSeconds": 38046,
        "views": 236403,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻 Source Code: https://cwa.run/vibe\n🎨 Free Assets: https://cwa.run/vibe-assets\nTry Inngest: https://cwa.run/vibe-inngest\nTry Clerk: https://cwa.run/vibe-clerk\nTry CodeRabbit: https://cwa.run/vibe-rabbit\nTry Neon Database: https://cwa.run/vibe-neon\n\nIn this video, we’re building an AI-powered app builder from start to finish.\n\nYou’ll learn how to generate full-stack applications from simple prompts using programmable AI agents powered by Inngest. We’ll use models like OpenAI, Anthropic, and Grok to handle code generation, and execute everything inside secure cloud sandboxes with E2B and Docker.\n\nWe’ll also cover the agent architecture, background job orchestration, project dashboard, authentication and billing with Clerk, and a full Git workflow with AI-assisted PR reviews from CodeRabbit.\n\nBuilt with Next.js 15, React 19, Tailwind v4, and a fully modern AI-first toolchain.\n\nKey features:\n🚀 Next.js 15 + React 19\n🎨 Tailwind v4 + Shadcn/ui\n📡 tRPC for full-stack type safety\n🔁 Inngest background jobs\n🧠 Inngest agent toolkit\n🔐 Clerk authentication\n💳 Clerk billing\n🧱 Component and app generation from AI prompts\n🗂️ Live project preview with URL access\n🖥️ E2B cloud sandboxes for runtime execution\n🐳 Docker-based sandbox templating\n🧠 AI model support (OpenAI, Anthropic, Grok)\n📦 Prisma + Neon for database integration\n🤖 CodeRabbit AI-powered PR reviews\n🧾 Built-in credit system with usage tracking\n🧪 Preview + code explorer toggle\n\nTimestamps\n0:00 Intro & Demo\n7:06 01 Setup\n23:51 02 Database\n49:08 03 tRPC Setup\n01:25:33 04 Background Jobs\n01:53:41 05 AI Jobs\n02:19:46 06 E2B Sandboxes\n02:59:41 07 Agent Tools\n03:47:09 08 Messages\n04:16:56 09 Projects\n04:36:36 10 Messages Ui\n05:36:36 11 Project Header\n05:58:41 12 Fragment View\n06:12:35 13 Code View\n07:06:37 14 Home Page\n07:43:17 15 Theme\n07:52:03 16 Authentication\n08:41:23 17 Billing\n09:31:34 18 Agent Memory\n09:57:50 19 Bug Fixes\n10:19:35 20 Deployment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Kh2FjTFzxJc",
        "title": "Build and Deploy a SaaS AI Agent Platform | Next.js 15, React, Better Auth, Polar | Part 2/2",
        "publishedAt": "11 months ago",
        "durationSeconds": 6386,
        "views": 51694,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻 Source Code: https://cwantonio.com/meet-ai\n🎨 Free Assets: https://cwantonio.com/meet-assets\n🎥 Part 1:    • Build and Deploy a SaaS AI Agent Platform ...  \n\n📚 Resources:\nStream: https://cwantonio.com/meet-stream\nInngest: https://cwantonio.com/meet-inngest\nCodeRabbit: https://cwantonio.com/meet-rabbit\nNeon Database: https://cwantonio.com/meet-neon\nPolar: https://cwantonio.com/meet-polar\nVercel: https://cwantonio.com/meet-vercel\n\nIn this video, we’re building an AI-powered video call app from start to finish.\nYou’ll learn how to set up real-time calls with custom AI agents, generate summaries and transcripts using background jobs, and integrate a full post-call experience including video playback, transcript search, and an AI chat that understands the meeting context.\nWe’ll also cover authentication, subscriptions, mobile responsiveness, and a full Git workflow with AI-assisted code reviews.\n\nKey features:\n🤖 AI-powered video calls\n🧠 Custom real-time agents\n📞 Stream Video SDK\n💬 Stream Chat SDK\n📝 Summaries, transcripts, recordings\n📂 Meeting history & statuses\n🔍 Transcript search\n📺 Video playback\n💬 AI meeting Q&A\n🧠 OpenAI integration\n💳 Polar subscriptions\n🔐 Better Auth login\n📱 Mobile responsive\n🌐 Next.js 15 + React 19\n🎨 Tailwind v4 + Shadcn/ui\n⚙️ Inngest background jobs\n🧑‍💻 CodeRabbit PR reviews\n\nTimestamps\n0:00 Intro & Demo  \n1:24 Newsletter  \n1:39 26 Transcript Chat  \n27:06 27 Payments  \n01:25:06 28 Bugs  \n01:33:12 29 Deployment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xEDCEmqyvC8",
        "title": "Build and Deploy a SaaS AI Agent Platform | Next.js 15, React, Better Auth, Polar | Full Course 2025",
        "publishedAt": "11 months ago",
        "durationSeconds": 41965,
        "views": 328135,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻 Source Code: https://cwantonio.com/meet-ai\n🎨 Free Assets: https://cwantonio.com/meet-assets\n🎥 Part 2: https://youtu.be/Kh2FjTFzxJc\n\n📚 Resources:\nNeon Database: https://cwantonio.com/m...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dllIBXa0nlE",
        "title": "Build and Deploy a Multi Vendor E Commerce With Nextjs, React & Stripe Connect (Part 2/2)",
        "publishedAt": "1 year ago",
        "durationSeconds": 31145,
        "views": 49001,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "⭐️ Source Code & More: https://cwantonio.com/ecommerce\n🎥 Part 1: https://youtu.be/6fXNWBFPfRM?si=MYhDGy5AuypooZ-i\n🎨 Assets (Free): https://dub.sh/jEmEkfC\n💬 Discord & Help: https://www....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6fXNWBFPfRM",
        "title": "Build and Deploy a Multi-Vendor E-Commerce Marketplace with Nextjs, React, Stripe Connect, MongoDB",
        "publishedAt": "1 year ago",
        "durationSeconds": 40594,
        "views": 201228,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "⭐️ Source Code & More: https://cwantonio.com/ecommerce\n🎥 Part 2: https://youtu.be/dllIBXa0nlE?si=AgNEf3ss4b_eNGt5\n🎨 Assets (Free): https://dub.sh/jEmEkfC\n💬 Discord & Help: https://www....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ig26iRcMavQ",
        "title": "Build a YouTube Clone with Next.js 15: React, Tailwind, Drizzle, tRPC (Part 2/2)",
        "publishedAt": "1 year ago",
        "durationSeconds": 43146,
        "views": 43164,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "⭐️ Source Code: https://cwa.run/youtube-clone\n🎬 PART 1: https://youtu.be/ArmPzvHTcfQ?si=7_gKeEwkrG2FADX-\n💬 Discord & Help: https://www.codewithantonio.com/discord\n\nClerk: https://go.clerk...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ArmPzvHTcfQ",
        "title": "Build a YouTube Clone with Next.js 15: React, Tailwind, Drizzle, tRPC (2025)",
        "publishedAt": "1 year ago",
        "durationSeconds": 42207,
        "views": 183735,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "⭐️ Source Code: https://cwa.run/youtube-clone\n🎬 PART 2: https://youtu.be/ig26iRcMavQ\n💬 Discord & Help: https://www.codewithantonio.com/discord\n\nClerk: https://go.clerk.com/4LzhRH5...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gq2bbDmSokU",
        "title": "Build a Real-Time Google Docs Clone With Next 15, React, Tailwind (2024)",
        "publishedAt": "1 year ago",
        "durationSeconds": 36012,
        "views": 367867,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "⭐ Source code: https://cwa.run/google-docs-code\nAssets: https://dub.sh/docs-clone-assets\nLiveblocks: https://lblcks.io/7qfuW9W\nClerk: https://go.clerk.com/3ywohHV\nConvex: https://convex.dev/c/cwa...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "37v63U7-iG0",
        "title": "Build a Jira Clone With Nextjs, React, Tailwind, Hono.js | Part 2/2 (2024)",
        "publishedAt": "1 year ago",
        "durationSeconds": 27826,
        "views": 68309,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "⭐ Source code: https://dub.sh/twpYBjw\n🔥 Get $50 in Appwrite credits: https://apwr.dev/antonio50\n🎬 PART 1: https://youtu.be/Av9C7xlV0fA?si=EpjTfBp_jk1pQk0N\n\nHi all 👋 In this 16-hour...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Av9C7xlV0fA",
        "title": "Build a Jira Clone With Nextjs, React, Tailwind, Hono.js | Part 1/2 (2024)",
        "publishedAt": "1 year ago",
        "durationSeconds": 31766,
        "views": 476829,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "⭐ Source code: https://cwa.run/jira-clone-code\n🔥 Get $50 in Appwrite credits: https://apwr.dev/antonio50\n🎬 PART 2: https://youtu.be/37v63U7-iG0?si=ZkY7-7vtInUMdlrk\n\nHi all 👋 In this...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AbztO-X7PCQ",
        "title": "Build a Real-Time Slack Clone With Nextjs, React, Tailwind, Auth.js | Part 2/2 (2024)",
        "publishedAt": "1 year ago",
        "durationSeconds": 24594,
        "views": 52689,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "⭐ Source code: https://dub.sh/ZVnPjGR\nPART 1: https://youtu.be/lXITA5MZIiI\nConvex: https://convex.dev/c/cwa\n\nHi all 👋 In this 15 hour tutorial split in two parts you will learn how to...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lXITA5MZIiI",
        "title": "Build a Real-Time Slack Clone With Nextjs, React, Tailwind, Auth.js | Part 1/2 (2024)",
        "publishedAt": "1 year ago",
        "durationSeconds": 30263,
        "views": 1266185,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "⭐ Source code: https://dub.sh/ZVnPjGR\nPART 2: https://youtu.be/AbztO-X7PCQ\nConvex: https://convex.dev/c/cwa\n\nHi all 👋 In this 15 hour tutorial split in two parts you will learn how to...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dxwKklKfFWI",
        "title": "Build a Canva Clone With Nextjs, React, Honojs, Next Auth v5 (Premium Course)",
        "publishedAt": "1 year ago",
        "durationSeconds": 389,
        "views": 2047300,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💫 Access the course: https://cwa.run/canva-clone\n\nIn this 18 hour course, we'll build a feature-rich graphic design SaaS platform from the ground up. You’ll learn how to create an intuitive...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "N_uNKAus0II",
        "title": "Build a Finance SaaS Platform With Nextjs, React, Honojs with CSV Upload (2024)",
        "publishedAt": "2 years ago",
        "durationSeconds": 40407,
        "views": 524458,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "⭐️ Source Code & Additional Content: https://cwa.run/finance-platform\n💬 Discord & Help: https://www.codewithantonio.com/discord\n\nClerk: https://go.clerk.com/eoX6HkY\nHono: https://hono.dev/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dP75Khfy4s4",
        "title": "Build a Duolingo Clone With Nextjs, React, Drizzle, Stripe (2024)",
        "publishedAt": "2 years ago",
        "durationSeconds": 40341,
        "views": 408312,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👨‍💻 Source Code & More: https://cwa.run/duolingo-clone\n💬 Discord & Help: https://www.codewithantonio.com/discord\n\nClerk: https://go.clerk.com/wmPbEeD\nKenney Assets:https://kenney.nl/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ADJKbuayubE",
        "title": "Build a Real-Time Miro Clone With Nextjs, React, Tailwind (2024)",
        "publishedAt": "2 years ago",
        "durationSeconds": 37152,
        "views": 581912,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "⭐️ Source Code & More: https://cwa.run/miro-clone\n\nClerk: https://dub.sh/mz7fwfW\nConvex: https://convex.dev/c/cwa\nLiveblocks: https://liveblocks.io/\nLogoipsum: https://logoipsum.com/\nSally...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1MTyCvS05V4",
        "title": "Next Auth V5 - Advanced Guide (2024)",
        "publishedAt": "2 years ago",
        "durationSeconds": 28857,
        "views": 1040306,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "⭐ Source code: https://cwa.run/next-auth\n\nAuth.js: https://authjs.dev/\nMiddleware config: https://dub.sh/Apr6dvD\nResend: https://resend.com/\nNode.js: https://nodejs.org/en\nShadcnUI: https://ui.sh...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nav55-4ISg4",
        "title": "Build a Livestream App With Next.js | Twitch Clone | Part 2/2",
        "publishedAt": "2 years ago",
        "durationSeconds": 24797,
        "views": 75402,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github & Additional Content: https://cwa.run/twitch-clone\nPART 1 https://youtu.be/a02JAryRPVU?si=WjpXB_oThWNObQgz\nClerk: https://dub.sh/UyH5Jb2\nLiveKit: https://livekit.io/\nNgrok: https://ngrok.com...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "a02JAryRPVU",
        "title": "Build a Livestream App With Next.js | Twitch Clone | Part 1/2",
        "publishedAt": "2 years ago",
        "durationSeconds": 25445,
        "views": 249121,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github & Additional Content: https://cwa.run/twitch-clone\nPART 2: https://www.youtube.com/watch?v=nav55-4ISg4\nClerk: https://dub.sh/UyH5Jb2\nLiveKit: https://livekit.io/\nNgrok: https://ngrok.com/dow...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pRybm9lXW2c",
        "title": "Fullstack Trello Clone: Next.js 14,  Server Actions, React, Prisma, Stripe, Tailwind, MySQL",
        "publishedAt": "2 years ago",
        "durationSeconds": 42887,
        "views": 362012,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github & Live Website: https://cwa.run/trello-clone\nClerk: https://dub.sh/y3MvWRC\n\nHi all 👋 In this 12 hour tutorial you will learn how to create an end-to-end fullstack and trello clone,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0OaDyjB9Ib8",
        "title": "Fullstack Notion Clone: Next.js 13,  React, Convex, Tailwind | Full Course 2023",
        "publishedAt": "2 years ago",
        "durationSeconds": 28392,
        "views": 437982,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Discord for any problems/errors/bugs: https://www.codewithantonio.com/discord\nGithub & Live Website: https://www.codewithantonio.com/projects/notes-app\nConvex: https://www.convex.dev\nClerk:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Big_aFLmekI",
        "title": "Build a Course & LMS Platform: Next 13,  React, Stripe, Mux, Prisma, Tailwind, MySQL | Udemy Clone",
        "publishedAt": "2 years ago",
        "durationSeconds": 38464,
        "views": 587119,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Discord for any problems/errors/bugs: https://www.codewithantonio.com/discord\nGithub & Live Website: https://www.codewithantonio.com/projects/lms-platform\nClerk Authentication: https://dub.sh/IQUAE...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 1,
      "uploadsLast90d": 3,
      "uploadCadenceWeekly": 0.23,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 34588,
      "viewsPerVideoP90Last90d": 34588,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 34588,
      "p90Views": 34588,
      "p99Views": 34588,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "cwa.run",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "none",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Not reachable through public business channels. No published business email and no external website detected."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 1,
        "evidenceVideoIds": [
          "7LeW1XLjeds",
          "e_MO-Rcz_MA",
          "_y_ixdk9aRg",
          "Xf9rHPNBMyQ",
          "S-4DrLHtL1s"
        ]
      },
      {
        "label": "build",
        "share": 0.9,
        "evidenceVideoIds": [
          "7LeW1XLjeds",
          "e_MO-Rcz_MA",
          "_y_ixdk9aRg",
          "Xf9rHPNBMyQ",
          "S-4DrLHtL1s"
        ]
      },
      {
        "label": "react",
        "share": 0.8,
        "evidenceVideoIds": [
          "Xf9rHPNBMyQ",
          "S-4DrLHtL1s",
          "ED2H_y6dmC8",
          "HUfZNPzI-rw",
          "CAr02YlEJUc"
        ]
      },
      {
        "label": "cwa",
        "share": 0.77,
        "evidenceVideoIds": [
          "7LeW1XLjeds",
          "e_MO-Rcz_MA",
          "_y_ixdk9aRg",
          "Xf9rHPNBMyQ",
          "S-4DrLHtL1s"
        ]
      },
      {
        "label": "source",
        "share": 0.77,
        "evidenceVideoIds": [
          "e_MO-Rcz_MA",
          "_y_ixdk9aRg",
          "Xf9rHPNBMyQ",
          "S-4DrLHtL1s",
          "ED2H_y6dmC8"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, none contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "moderate",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 22,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.05
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Code With Antonio — 0.4M subs, C-tier sponsorship readiness, none contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 22,
      "readyForOutreach": false,
      "blockers": [
        "contactability:none — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.88,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 2,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 2
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.02
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.02,
      "gap": 0.92,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "1b55ee792086ae577c95f61ee7ab5c4dd149e221118ca72e4f8580c6b6f5e236",
      "inputsHash": "a391a1201285030b25712f077665cbd8b423db868ffbab213526eda57ccb54ae",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:44.038Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "8bbc2b8b1d302465dc23838b2336d91c66e35462fc8b502b17df4c625dd715f9",
    "channelId": "UCbXgNpp0jedKWcQiULLbDTA",
    "channelHandle": "@patloeber",
    "channelName": "Patrick Loeber",
    "channelUrl": "https://www.youtube.com/@patloeber",
    "description": "Free Python and Machine Learning Tutorials!\n\nHi, I'm Patrick. I’m a passionate Software Engineer who loves Machine Learning, Computer Vision, and Data Science. I create free content in order to help more people get into those fields. If you have any questions, feedback, or comments, just shoot me a message! I am happy to talk to you :)\n\nIf you like my content, please subscribe to the channel!\n\nPlease check out my website for more information:\nhttps://www.python-engineer.com\n\nIf you find these videos useful and would like to support my work you can find me on Patreon:\nhttps://www.patreon.com/patrickloeber\n\nLegal: https://www.python-engineer.com/legal-notice/",
    "joinDate": null,
    "location": null,
    "subscribers": 291000,
    "totalVideos": 207,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/MtAplIas7mSTWrQwKxSEM9NNVaZNzIhXhVsMADkkz0Rz6wcpC2pEpkp3RqPn6N9Lvv1F9Ymm=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "python-engineer.com",
        "url": "https://www.python-engineer.com"
      },
      {
        "platform": "patreon.com",
        "url": "https://www.patreon.com/patrickloeber"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/patloeber"
      },
      {
        "platform": "discord",
        "url": "https://discord.gg/FHMg9tKFSN"
      },
      {
        "platform": "python-engineer.com",
        "url": "https://www.python-engineer.com/legal-notice/"
      }
    ],
    "recentVideos": [
      {
        "videoId": "qfWpPEgea2A",
        "title": "Gemini API with Python - Getting Started Tutorial",
        "publishedAt": "11 months ago",
        "durationSeconds": 727,
        "views": 59254,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to start building with Google DeepMind's Gemini models using the Google Gen AI Python SDK. We'll cover:\n\n00:00 - Getting Started with Google AI Studio and the Python SDK\n02:31 - How to get a Gemini API key\n03:40 - Sending prompts\n06:10 - Chats\n07:08 - Multimodal capabilities\n09:45 - Gemini 2.5 thinking models\n\nResources:\nGoogle AI Studio: https://aistudio.google.com\nGemini API docs: https://ai.google.dev/gemini-api/docs\n\nRead my AI newsletter: https://www.patloeber.com/newsletter\n\nIf you enjoyed this video, please subscribe to the channel:\n▶️ :    / @patloeber  \n\n~~~~~~~~~~~~~~~ CONNECT ~~~~~~~~~~~~~~~\n\n🖥️ Website: https://www.patloeber.com\n🐦 Twitter -   / patloeber  \n✉️ Newsletter - https://www.patloeber.com/newsletter\n▶️  Subscribe:    / @patloeber  \n\n#Python #Gemini",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IUTFrexghsQ",
        "title": "Build a free writing assistant with Python and Ollama",
        "publishedAt": "2 years ago",
        "durationSeconds": 1222,
        "views": 14845,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Python tutorial, we'll build a typing assistant with Mistral 7B and Ollama that's running locally. You'll also learn how to implement a hotkey listener and keyboard controller with Python. Follow along in this step-by-step coding tutorial.\n\nCode: https://github.com/patrickloeber/ai-t...\nBlog post: https://patloeber.com/typing-assistan...\n\nGet my Free NumPy Handbook:\nhttps://www.python-engineer.com/numpy...\n\n✅ Write cleaner code with Sourcery, instant refactoring suggestions in VS Code & PyCharm: https://sourcery.ai/?utm_source=youtu... *\n\n⭐  Join Our Discord :   / discord  \n\n📓 ML Notebooks available on Patreon:\n  / patrickloeber  \n\nIf you enjoyed this video, please subscribe to the channel:\n▶️ :    / @patloeber  \n\n~~~~~~~~~~~~~~~ CONNECT ~~~~~~~~~~~~~~~\n\n🖥️ Website: https://www.python-engineer.com\n🐦 Twitter -   / patloeber  \n✉️ Newsletter - https://www.python-engineer.com/newsl...\n📸 Instagram -   / patloeber  \n🦾 Discord:   / discord  \n▶️  Subscribe:    / @patloeber  \n\n~~~~~~~~~~~~~~ SUPPORT ME  ~~~~~~~~~~~~~~\n\n🅿 Patreon -   / patrickloeber  \n\n#Python #ollama\n\nTimeline:\n00:00 - Intro and demo\n01:25 - Hotkey listener\n05:58 - Keyboard controller\n12:37 - Ollama setup\n\n----------------------------------------------------------------------------------------------------------\nThis is an affiliate link. By clicking on it you will not have any additional costs, instead you will support me and my project. Thank you so much for the support! 🙏",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "iqrS7Q174Ac",
        "title": "Build an AI app with FastAPI and Docker - Coding Tutorial with Tips",
        "publishedAt": "2 years ago",
        "durationSeconds": 2118,
        "views": 69735,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Join me in a coding session with Sebastián Ramírez and learn how to build a Machine Learning app with FastAPI and Docker. Along the way we will show you some tips like the interactive coding session and Docker init command, and best practices when working with FastAPI.\n\nDuring the premiere, there will also be a giveaway to win Docker swag!🐳🥳\n\nSebastián is the creator of FastAPI, Typer, and other cool Open Source tools, and he is also a Docker captain. You can connect with him here:\nTwitter:   / tiangolo  \nWebsite: https://tiangolo.com/\n\nLearn more about AI/ML and Docker: https://www.docker.com/products/ai-ml...\n\nResources:\nFastAPI: https://fastapi.tiangolo.com/\nML model: https://huggingface.co/dandelin/vilt-...\nDocker init: https://github.com/patrickloeber/dock...\nCode: https://github.com/patrickloeber/dock...\n\nGet my Free NumPy Handbook:\nhttps://www.python-engineer.com/numpy...\n\n⭐  Join Our Discord :   / discord  \n\n📓 ML Notebooks available on Patreon:\n  / patrickloeber  \n\nIf you enjoyed this video, please subscribe to the channel:\n▶️ :    / @patloeber  \n\n~~~~~~~~~~~~~~~ CONNECT ~~~~~~~~~~~~~~~\n\n🖥️ Website: https://www.python-engineer.com\n🐦 Twitter -   / patloeber  \n✉️ Newsletter - https://www.python-engineer.com/newsl...\n📸 Instagram -   / patloeber  \n🦾 Discord:   / discord  \n▶️  Subscribe:    / @patloeber  \n\n~~~~~~~~~~~~~~ SUPPORT ME  ~~~~~~~~~~~~~~\n\n🅿 Patreon -   / patrickloeber  \n\n#Python #docker\n\nTimeline:\n00:00 - Introduction\n00:55 - Model Setup\n09:35 - FastAPI Setup\n26:15 - Docker Setup",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-ogEkqeDEPg",
        "title": "Mojo 🔥 — a new programming language for AI developers (first look)",
        "publishedAt": "3 years ago",
        "durationSeconds": 373,
        "views": 107782,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Yesterday Chris Lattner announced a new programming language called Mojo, which builds on top of Python and is designed specifically for AI applications. They claim it’s up to 35000 times faster than Python. So let’s take a quick first look at it.\n\nWebsite: https://www.modular.com/mojo\nDocs: https://docs.modular.com/mojo/\nKeynote:    • Product Launch 2023 Keynote  \n\nGet my Free NumPy Handbook:\nhttps://www.python-engineer.com/numpy...\n\n✅ Write cleaner code with Sourcery, instant refactoring suggestions in VS Code & PyCharm: https://sourcery.ai/?utm_source=youtu... *\n\n⭐  Join Our Discord :   / discord  \n\n📓 ML Notebooks available on Patreon:\n  / patrickloeber  \n\nIf you enjoyed this video, please subscribe to the channel:\n▶️ :    / @patloeber  \n\n~~~~~~~~~~~~~~~ CONNECT ~~~~~~~~~~~~~~~\n\n🖥️ Website: https://www.python-engineer.com\n🐦 Twitter -   / patloeber  \n✉️ Newsletter - https://www.python-engineer.com/newsl...\n📸 Instagram -   / patloeber  \n🦾 Discord:   / discord  \n▶️  Subscribe:    / @patloeber  \n\n~~~~~~~~~~~~~~ SUPPORT ME  ~~~~~~~~~~~~~~\n\n🅿 Patreon -   / patrickloeber  \n\n#Python\n\nTimeline:\n00:00 - Intro & motivation\n01:23 - Features\n04:48 - How to try Mojo\n\n----------------------------------------------------------------------------------------------------------\nThis is an affiliate link. By clicking on it you will not have any additional costs, instead you will support me and my project. Thank you so much for the support! 🙏",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "owopzp436jM",
        "title": "PyScript is officially here!🚀 Build web apps with Python & HTML",
        "publishedAt": "3 years ago",
        "durationSeconds": 1030,
        "views": 227623,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "PyScript is officially here! Build web apps with Python & HTML. In this Crash Course we take a look at the new PyScript platform, I show you all important features, and some example websites you can build with it.\n\nGet started here: https://bit.ly/40de9vS *\n\nTry Anaconda's other offerings and sign up for the Starter Tier level: https://bit.ly/3ULu8jA *\n\nDemos:\nCode from video: https://adec3dd4-c366-46d3-9d45-84d3b...\nML & matplotlib demo: https://adec3dd4-c366-46d3-9d45-84d3b...\nChatGPT demo: https://adec3dd4-c366-46d3-9d45-84d3b...\n2D game: https://8c8116d9-b305-4142-a0de-50165...\n\nResources:\nhttps://pyscript.net/\nhttps://docs.pyscript.net/latest/\n\nGet my Free NumPy Handbook:\nhttps://www.python-engineer.com/numpy...\n\n⭐  Join Our Discord :   / discord  \n\n📓 ML Notebooks available on Patreon:\n  / patrickloeber  \n\nIf you enjoyed this video, please subscribe to the channel:\n▶️ :    / @patloeber  \n\n~~~~~~~~~~~~~~~ CONNECT ~~~~~~~~~~~~~~~\n\n🖥️ Website: https://www.python-engineer.com\n🐦 Twitter -   / patloeber  \n✉️ Newsletter - https://www.python-engineer.com/newsl...\n📸 Instagram -   / patloeber  \n🦾 Discord:   / discord  \n▶️  Subscribe:    / @patloeber  \n\n~~~~~~~~~~~~~~ SUPPORT ME  ~~~~~~~~~~~~~~\n\n🅿 Patreon -   / patrickloeber  \n\n#Python\n\nTimeline:\n00:00 - Introduction\n00:50 - pyscript features\n01:46 - pyscript.com platform\n04:08 - how to use pyscript & main features\n12:42 - example apps\n\n----------------------------------------------------------------------------------------------------------\nThis is a sponsored link. By clicking on it you will not have any additional costs, instead you will support me and my project. Thank you so much for the support! 🙏",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LbT1yp6quS8",
        "title": "LangChain Crash Course - Build apps with language models",
        "publishedAt": "3 years ago",
        "durationSeconds": 919,
        "views": 135568,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this LangChain Crash Course you will learn how to build applications powered by large language models. We go over all important features of this framework.\n\nTimeline:\n00:00 - Introduction\n01:09 - Installation\n01:22 - LLMs\n03:08 - Prompt Templates\n04:58 - Chains\n06:02 - Agents and Tools\n09:54 - Memory\n11:15 - Document Loaders\n12:24 - Indexes\n\nResources:\nWritten guide: https://www.python-engineer.com/posts...\nColab: https://colab.research.google.com/dri...\nDocs: https://python.langchain.com/en/latest/\nGitHub: https://github.com/hwchase17/langchain\nChatbot example: https://github.com/hwchase17/chat-lan...\n\nGet my Free NumPy Handbook:\nhttps://www.python-engineer.com/numpy...\n\n✅ Write cleaner code with Sourcery, instant refactoring suggestions in VS Code & PyCharm: https://sourcery.ai/?utm_source=youtu... *\n\n⭐  Join Our Discord :   / discord  \n\n📓 ML Notebooks available on Patreon:\n  / patrickloeber  \n\nIf you enjoyed this video, please subscribe to the channel:\n▶️ :    / @patloeber  \n\n~~~~~~~~~~~~~~~ CONNECT ~~~~~~~~~~~~~~~\n\n🖥️ Website: https://www.python-engineer.com\n🐦 Twitter -   / patloeber  \n✉️ Newsletter - https://www.python-engineer.com/newsl...\n📸 Instagram -   / patloeber  \n🦾 Discord:   / discord  \n▶️  Subscribe:    / @patloeber  \n\n~~~~~~~~~~~~~~ SUPPORT ME  ~~~~~~~~~~~~~~\n\n🅿 Patreon -   / patrickloeber  \n\n#Python\n\n----------------------------------------------------------------------------------------------------------\nThis is an affiliate link. By clicking on it you will not have any additional costs, instead you will support me and my project. Thank you so much for the support! 🙏",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "M1gu9MDucMA",
        "title": "How to automate Notion with Python | Notion API Tutorial",
        "publishedAt": "3 years ago",
        "durationSeconds": 718,
        "views": 66621,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to work with the Notion API in Python.\n\nCode: https://www.python-engineer.com/posts...\nNotion Setup: https://developers.notion.com/docs/cr...\n\nGet my Free NumPy Handbook:\nhttps://www.python-engineer.com/numpy...\n\n✅ Write cleaner code with Sourcery, instant refactoring suggestions in VS Code & PyCharm: https://sourcery.ai/?utm_source=youtu... *\n\n⭐  Join Our Discord :   / discord  \n\n📓 ML Notebooks available on Patreon:\n  / patrickloeber  \n\nIf you enjoyed this video, please subscribe to the channel:\n▶️ :    / @patloeber  \n\n~~~~~~~~~~~~~~~ CONNECT ~~~~~~~~~~~~~~~\n\n🖥️ Website: https://www.python-engineer.com\n🐦 Twitter -   / patloeber  \n✉️ Newsletter - https://www.python-engineer.com/newsl...\n📸 Instagram -   / patloeber  \n🦾 Discord:   / discord  \n▶️  Subscribe:    / @patloeber  \n\n~~~~~~~~~~~~~~ SUPPORT ME  ~~~~~~~~~~~~~~\n\n🅿 Patreon -   / patrickloeber  \n\n#Python\n\nTimeline:\n00:00 - Introduction\n00:27 - Create Notion Integration\n01:47 - Create Database\n03:52 - Query Pages\n08:43 - Create Pages\n09:57 - Update Pages\n11:04 - Delete Pages\n\n----------------------------------------------------------------------------------------------------------\nThis is an affiliate link. By clicking on it you will not have any additional costs, instead you will support me and my project. Thank you so much for the support! 🙏",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0H2miBK_gAk",
        "title": "How to create a great dev environment with Docker",
        "publishedAt": "3 years ago",
        "durationSeconds": 1795,
        "views": 312904,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How to create a great local Python development environment with Docker. Learn about Docker Volumes, Docker Compose, how to debug in containers, and more. \n\nRepo: https://github.com/patrickloeber/pyth...\n\nTimeline:\n00:00 - Introduction\n02:03 - Why Docker?\n04:02 - Dockerize an app\n10:25 - Immediate file changes (Docker volumes)\n13:08 - Use IDE in Docker container\n17:38 - Docker Compose\n25:54 - Debug inside Docker container\n\nGet my Free NumPy Handbook:\nhttps://www.python-engineer.com/numpy...\n\n✅ Write cleaner code with Sourcery, instant refactoring suggestions in VS Code & PyCharm: https://sourcery.ai/?utm_source=youtu... *\n\n⭐  Join Our Discord :   / discord  \n\n📓 ML Notebooks available on Patreon:\n  / patrickloeber  \n\nIf you enjoyed this video, please subscribe to the channel:\n▶️ :    / @patloeber  \n\n~~~~~~~~~~~~~~~ CONNECT ~~~~~~~~~~~~~~~\n\n🖥️ Website: https://www.python-engineer.com\n🐦 Twitter -   / patloeber  \n✉️ Newsletter - https://www.python-engineer.com/newsl...\n📸 Instagram -   / patloeber  \n🦾 Discord:   / discord  \n▶️  Subscribe:    / @patloeber  \n\n~~~~~~~~~~~~~~ SUPPORT ME  ~~~~~~~~~~~~~~\n\n🅿 Patreon -   / patrickloeber  \n\n#Python #docker \n\n----------------------------------------------------------------------------------------------------------\nThis is an affiliate link. By clicking on it you will not have any additional costs, instead you will support me and my project. Thank you so much for the support! 🙏",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UAw67zodiGA",
        "title": "The BEST Data Science Platform? Anaconda Learning and Notebooks review",
        "publishedAt": "3 years ago",
        "durationSeconds": 1147,
        "views": 9627,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Is this the best Data Science Platform? Anaconda Learning and Notebooks review\n\n✅ Get started with Anaconda *:\nhttps://bit.ly/ytanacloud\nhttps://bit.ly/analearning\nhttps://bit.ly/anacloudtools\nhttps://bit.ly/anapractools\nhttps://bit.ly/ytanacommunity\n\nTIER UPDATE: Pro and Business users now receive 10GB of cloud storage and 4,000 CPU compute seconds (twice as much as the Starter tier)\n\n⭐  Join Our Discord :   / discord  \n\n📓 ML Notebooks available on Patreon:\n  / patrickloeber  \n\nIf you enjoyed this video, please subscribe to the channel:\n▶️ :    / @patloeber  \n\n~~~~~~~~~~~~~~~ CONNECT ~~~~~~~~~~~~~~~\n\n🖥️ Website: https://www.python-engineer.com\n🐦 Twitter -   / patloeber  \n✉️ Newsletter - https://www.python-engineer.com/newsl...\n📸 Instagram -   / patloeber  \n🦾 Discord:   / discord  \n▶️  Subscribe:    / @patloeber  \n\n~~~~~~~~~~~~~~ SUPPORT ME  ~~~~~~~~~~~~~~\n\n🅿 Patreon -   / patrickloeber  \n\n#datascience #machinelearning #jupyternotebook \n\nTimeline:\n00:00 - Introduction\n01:16 - Overview\n04:03 - Pricing\n05:16 - Anaconda Notebooks\n09:03 - Kernels / Environments\n10:49 - More notebook features\n12:33 - Anaconda Learning\n13:47 - Python course\n14:37 - Machine Learning course\n17:37 - Anaconda Community\n18:15 - Conclusion\n\n----------------------------------------------------------------------------------------------------------\nThese are sponsored links. By clicking on it you will not have any additional costs, instead you will support me. Thank you so much for the support! 🙏",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UwvAMkH9tTU",
        "title": "Best Platforms to Host Python Apps (for free!!)",
        "publishedAt": "3 years ago",
        "durationSeconds": 590,
        "views": 174122,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Best Platforms to Deploy and Host Python Apps/Scripts - Best Hosting Platforms for Python applications.\n\nBlog post: https://www.python-engineer.com/posts...\nGitHub Action template: https://github.com/patrickloeber/pyth...\nHeroku security breach: https://www.protocol.com/bulletins/he...\n\nGet my Free NumPy Handbook:\nhttps://www.python-engineer.com/numpy...\n\n✅ Write cleaner code with Sourcery, instant refactoring suggestions in VS Code & PyCharm: https://sourcery.ai/?utm_source=youtu... *\n\n⭐  Join Our Discord :   / discord  \n\n📓 ML Notebooks available on Patreon:\n  / patrickloeber  \n\nIf you enjoyed this video, please subscribe to the channel:\n▶️ :    / @patloeber  \n\n~~~~~~~~~~~~~~~ CONNECT ~~~~~~~~~~~~~~~\n\n🖥️ Website: https://www.python-engineer.com\n🐦 Twitter -   / patloeber  \n✉️ Newsletter - https://www.python-engineer.com/newsl...\n📸 Instagram -   / patloeber  \n🦾 Discord:   / discord  \n▶️  Subscribe:    / @patloeber  \n\n~~~~~~~~~~~~~~ SUPPORT ME  ~~~~~~~~~~~~~~\n\n🅿 Patreon -   / patrickloeber  \n\n#Python\n\nTimeline:\n00:00 - Intro\n00:58 - Cloud Platforms\n04:54 - VPS Hosting\n06:00 Hidden Champions\n\n----------------------------------------------------------------------------------------------------------\nThis is an affiliate link. By clicking on it you will not have any additional costs, instead you will support me and my project. Thank you so much for the support! 🙏",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "M6cfT2pqpSc",
        "title": "Supabase Crash Course For Python Developers",
        "publishedAt": "3 years ago",
        "durationSeconds": 2398,
        "views": 62818,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Supabase Crash Course For Python Developers with supabase-py.\n\nResources:\nhttps://supabase.com/\nhttps://supabase.com/launch-week \nhttps://github.com/supabase-community/supabase-py\n\nGet my Free...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "niP8z1ScULM",
        "title": "Build a Media Analysis Dashboard with Python & Cloudinary",
        "publishedAt": "3 years ago",
        "durationSeconds": 2866,
        "views": 10304,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build a media library and content analysis dashboard with Python & Cloudinary\n\nSignup: https://cld.media/plregister *\nPython Quick Start: https://cld.media/plpython *\nCode: https://github.com/patri...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RvvXo2-9bnE",
        "title": "6 Tips to write BETTER For Loops in Python",
        "publishedAt": "3 years ago",
        "durationSeconds": 559,
        "views": 255138,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "6 Tips to write BETTER For Loops in Python.\n\nFurther resource:\nTalk \"a deeper look at iteration in Python\": https://youtu.be/Wd7vcuiMhxU\n\nGet my Free NumPy Handbook:\nhttps://www.python-engineer.com...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZW-TWrEF6qc",
        "title": "Top 10 Python One Liners YOU MUST KNOW!",
        "publishedAt": "3 years ago",
        "durationSeconds": 292,
        "views": 141521,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Top 10 Python One Liners YOU MUST KNOW!\n\nFind Python jobs: https://pythonengineer.pallet.com\n\nGet my Free NumPy Handbook:\nhttps://www.python-engineer.com/numpybook\n\n✅ Write cleaner code with...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VZEgu1buycI",
        "title": "Python 3.11 is out! All new features",
        "publishedAt": "3 years ago",
        "durationSeconds": 218,
        "views": 42862,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Python 3.11 is out! All new features\n\nAll changes: https://docs.python.org/3.11/whatsnew/3.11.html\n\nGet my Free NumPy Handbook:\nhttps://www.python-engineer.com/numpybook\n\n✅ Write cleaner...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eV-4j9ila-I",
        "title": "How to Double Your Savings with Python",
        "publishedAt": "3 years ago",
        "durationSeconds": 538,
        "views": 28793,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to save money and double your savings with the help of Python in this Finance Automation and Google Sheets API Python Tutorial\n\nSteve's video: https://youtu.be/HvesR8SA3G4\nSteve's...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "i9TlSFrsh4Q",
        "title": "Find your next Python or ML job with my new job board!",
        "publishedAt": "3 years ago",
        "durationSeconds": 77,
        "views": 11551,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Job board: https://pythonengineer.pallet.com\n\nI launched a job board for our Python community with exciting roles in Software Engineering, Machine Learning, and Dev Rel!\n\n~~~~~~~~~~~~~~~ CONNECT...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qAh5dDODJ5k",
        "title": "HTTPX Tutorial - A next-generation HTTP client for Python",
        "publishedAt": "3 years ago",
        "durationSeconds": 662,
        "views": 113157,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Python Tutorial we learn about HTTPX, a modern HTTP client for Python with async support.\n\nResources:\nhttps://www.python-httpx.org/\nhttps://www.twilio.com/blog/asynchronous-http-requests-in...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PaGp7Vi5gfM",
        "title": "Schedule Python Scripts with GitHub Actions FOR FREE | Python Automation",
        "publishedAt": "3 years ago",
        "durationSeconds": 753,
        "views": 79326,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to schedule Python scripts with GitHub Actions FOR FREE in this Python Automation tutorial!\n\n💻Starter files: https://github.com/patrickloeber/python-github-action-template\n🎦...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IDgDWDpwvIc",
        "title": "Quick First Look at Python 3.11 Features (10-60% FASTER!)",
        "publishedAt": "3 years ago",
        "durationSeconds": 279,
        "views": 80975,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn about the new features in Python 3.11!\n\nArticle: https://docs.python.org/3.11/whatsnew/3.11.html\nDownload Beta: https://www.python.org/downloads/release/python-3110b3/\n\nGet my Free NumPy...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "NOvFZamGXXo",
        "title": "File Organizing with Python: Rename, Move, Copy & Delete Files and Folders",
        "publishedAt": "3 years ago",
        "durationSeconds": 723,
        "views": 75202,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Automate File Organization in Python: Learn how to Rename, Move, Copy & Delete Files and Folders.\n\nCode: https://github.com/patrickloeber/python-fun\nCron Job Tutorial: https://youtu.be/5bTkiV_Aadc...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KMkmA4i2FQc",
        "title": "Build & Deploy a Fitness App that sends daily E-mails | Python & HarperDB Tutorial",
        "publishedAt": "3 years ago",
        "durationSeconds": 2706,
        "views": 28179,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build and deploy a fitness app that sends you new workouts per email every day using Python and HarperDB.\n\nHarperDB: https://studio.harperdb.io/sign-up?utm_source=patrickloeber *\n\nCode: https://git...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "S--SD4QbGps",
        "title": "Build a Machine Learning App From Scratch with Flask & Docker",
        "publishedAt": "3 years ago",
        "durationSeconds": 1540,
        "views": 57650,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to build a Machine Learning App in Python with Flask & Docker, with @francescociulla.\n\nPart 2: https://youtu.be/zGP_nYmZd9c\nFrancesco's Twitter: https://twitter.com/FrancescoCiull4...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "du8vQC44PC4",
        "title": "PyScript - Run Python in the Browser! THE END of JavaScript???",
        "publishedAt": "4 years ago",
        "durationSeconds": 501,
        "views": 374821,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "PyScript is a framework that allows users to create Python applications in the browser using HTML. In this video we have a look at it and I show you how it works:\n\nResources:\n- Website: https://pys...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ay1E1f8VqP8",
        "title": "I built the same model with TensorFlow and PyTorch | Which Framework is better?",
        "publishedAt": "4 years ago",
        "durationSeconds": 813,
        "views": 156779,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I created the same model with TensorFlow and PyTorch. Which Deep Learning Framework is better? TensorFlow vs. PyTorch!\n\n🤖 Check out Intel's AI ecosystem: https://www.intel.com/content/www/us/en/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "C6M67z4_bZ8",
        "title": "Build 5 Games in Python | Beginner Portfolio Project",
        "publishedAt": "4 years ago",
        "durationSeconds": 3505,
        "views": 20010,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build a Mini Game App with 5 games in Python. This is a Python Beginner Tutorial and a great portfolio project! Hope you enjoy it :)\n\nReplit: https://replit.com?utm_source=YouTube&utm_medium=influe...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JfZ7KRgaDpk",
        "title": "10 PyCharm Tips To Code FASTER! 🚀🚀🚀",
        "publishedAt": "4 years ago",
        "durationSeconds": 573,
        "views": 71086,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "10 PyCharm Tips to increase productivity! In this video I got help from Nafiul Islam, a Developer Advocate at Jetbrains.\n\nNafiul on Twitter: https://twitter.com/gamesbrainiac\nPyCharm on Twitter:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3vfum74ggHE",
        "title": "I built the same app 3 times | Which Python Framework is best? Django vs Flask vs FastAPI",
        "publishedAt": "4 years ago",
        "durationSeconds": 1002,
        "views": 881499,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I built the same app 3 times with 3 different Python web framework. Which one is best? Django vs Flask vs FastAPI.\n\nGet my Free NumPy Handbook:\nhttps://www.python-engineer.com/numpybook\n\nCode:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ynd67UwG_cI",
        "title": "Create a Task Tracker App for the Terminal with Python (Rich, Typer, Sqlite3)",
        "publishedAt": "4 years ago",
        "durationSeconds": 1211,
        "views": 77089,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Python Tutorial we learn how to build a terminal application (CLI app) to manage our tasks and todos. We use Typer for building the CLI app, Rich for a colorized terminal output, and...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "HJpiAZDJrRY",
        "title": "31 ESSENTIAL Python String Methods",
        "publishedAt": "4 years ago",
        "durationSeconds": 680,
        "views": 85909,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Strings are an essential data type in Python that are used in nearly every application. In this tutorial we learn about the 31 most important built-in string methods.\n\nGet my Free NumPy Handbook:...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "bit.ly"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "python-engineer.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "python",
        "share": 0.93,
        "evidenceVideoIds": [
          "qfWpPEgea2A",
          "IUTFrexghsQ",
          "iqrS7Q174Ac",
          "-ogEkqeDEPg",
          "owopzp436jM"
        ]
      },
      {
        "label": "https",
        "share": 0.93,
        "evidenceVideoIds": [
          "qfWpPEgea2A",
          "IUTFrexghsQ",
          "iqrS7Q174Ac",
          "-ogEkqeDEPg",
          "owopzp436jM"
        ]
      },
      {
        "label": "com",
        "share": 0.8,
        "evidenceVideoIds": [
          "qfWpPEgea2A",
          "IUTFrexghsQ",
          "iqrS7Q174Ac",
          "-ogEkqeDEPg",
          "owopzp436jM"
        ]
      },
      {
        "label": "get",
        "share": 0.57,
        "evidenceVideoIds": [
          "qfWpPEgea2A",
          "IUTFrexghsQ",
          "iqrS7Q174Ac",
          "-ogEkqeDEPg",
          "owopzp436jM"
        ]
      },
      {
        "label": "www",
        "share": 0.57,
        "evidenceVideoIds": [
          "qfWpPEgea2A",
          "IUTFrexghsQ",
          "iqrS7Q174Ac",
          "-ogEkqeDEPg",
          "owopzp436jM"
        ]
      },
      {
        "label": "machine learning",
        "share": 0.13,
        "evidenceVideoIds": [
          "iqrS7Q174Ac",
          "UAw67zodiGA",
          "i9TlSFrsh4Q",
          "S--SD4QbGps"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Monday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 32,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Patrick Loeber — 0.3M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 32,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.78,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "8bbc2b8b1d302465dc23838b2336d91c66e35462fc8b502b17df4c625dd715f9",
      "inputsHash": "cf9fc422d5a42ee247fe6ab1ea73e0870ca91b4328cc3c81debb4261b2af4663",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:44.747Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "f783fb1a9b312f4eacb7ad193dd9cdb8fde0697fdc971cb7232ca4ec7efa9182",
    "channelId": "UCVhQ2NnY5Rskt6UjCUkJ_DA",
    "channelHandle": "@ArjanCodes",
    "channelName": "ArjanCodes",
    "channelUrl": "https://www.youtube.com/@ArjanCodes",
    "description": "On this channel, I post videos about programming and software design to help you take your coding skills to the next level. I'm an entrepreneur and a university lecturer in computer science, with more than 20 years of experience in software development and design. If you're a software developer and you want to improve your development skills, and learn more about programming in general, make sure to subscribe for helpful videos.\n\nI post a video here every Friday. If you have any suggestion for a topic you'd like me to cover, just leave a comment on any of my videos and I'll take it under consideration.\n\nThanks for watching!",
    "joinDate": null,
    "location": null,
    "subscribers": 326000,
    "totalVideos": 553,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/lBih4S17Gdxet3tKuJMbEDEgF0rblcNGbxMOWmGKHWNvfwY6tJj_KNEfu_jxeDc7ofXGGSbCy5E=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "arjancodes.com",
        "url": "https://www.arjancodes.com"
      },
      {
        "platform": "thefridayloop.com",
        "url": "https://thefridayloop.com"
      },
      {
        "platform": "discord.arjan.codes",
        "url": "https://discord.arjan.codes"
      },
      {
        "platform": "linkedin",
        "url": "https://www.linkedin.com/company/arjancodes"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/arjancodes"
      },
      {
        "platform": "tiktok",
        "url": "https://www.tiktok.com/@arjancodes"
      }
    ],
    "recentVideos": [
      {
        "videoId": "GmlZBdKhl9Y",
        "title": "DRY Often Makes Your Code Worse",
        "publishedAt": "5 days ago",
        "durationSeconds": 818,
        "views": 12413,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🧱 Build software that lasts. Join the Software Design Mastery waiting list → https://arjan.codes/mastery.\n\nIn this video, I show how a “clean” DRY refactor can actually make your code worse. Instead of improving the design, it introduces hidden complexity, confusing flags, and harder-to-understand behavior. Then we refactor it again, this time focusing on behavior and responsibilities, not just code shape.\n\n🔥 GitHub Repository: https://git.arjan.codes/2026/dry.\n\n🎓 ArjanCodes Courses: https://www.arjancodes.com/courses.\n\n💬 Join my Discord server: https://discord.arjan.codes.\n\n⌨️ Keyboard I’m using: https://amzn.to/49YM97v.\n\n🔖 Chapters:\n0:00 Intro\n0:30 The Bad Refactor First\n3:58 What This Teaches About DRY\n4:48 A Better Refactor\n10:24 Some Duplication Is Actually Good\n11:21 Quick Guidelines\n12:36 Final Thoughts\n\n#arjancodes #softwaredesign #python",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rZpwFN_n2-g",
        "title": "Your API Can’t Handle Real-World Integrations",
        "publishedAt": "12 days ago",
        "durationSeconds": 780,
        "views": 25431,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🧱 Build software that lasts. Join the Software Design Mastery waiting list → https://arjan.codes/mastery.\n\nYour clean API works… until integrations start piling up.\n\nOne system needs an extra ID, another needs a reference, and suddenly your schema turns into a mess. In this video, I show a cleaner way to handle this using a flexible `custom_data` design that keeps your API structured without turning it into a junk drawer.\n\n🔥 GitHub Repository: https://git.arjan.codes/2026/apidata.\n\n🎓 ArjanCodes Courses: https://www.arjancodes.com/courses.\n\n💬 Join my Discord server: https://discord.arjan.codes.\n\n⌨️ Keyboard I’m using: https://amzn.to/49YM97v.\n\n🔖 Chapters:\n0:00 Intro\n1:05 The Starting Point\n2:35 The Real Problem\n4:11 The Design We Want\n4:50 Where the Logic Should Live\n5:30 The Reusable Base Model\n8:58 The API Schemas\n10:50 Why This Pattern Works Well\n11:17 When To (Not) Use It\n12:12 Final Thoughts\n\n#arjancodes #softwaredesign #python",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wYeDGkdMi3g",
        "title": "Don’t Use Boolean Flags in Python, Use Policies Instead",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 910,
        "views": 121007,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🧱 Build software that lasts. Join the Software Design Mastery waiting list → https://arjan.codes/mastery.\n\nIn this video, I show how to replace growing conditional logic with the Policy Pattern. Instead of one big function, you split rules into small, composable pieces and combine them into a flexible pipeline. The result is code that’s easier to extend, test, and control even with feature flags or configuration.\n\n🔥 GitHub Repository: https://git.arjan.codes/2026/policy.\n\n🎓 ArjanCodes Courses: https://www.arjancodes.com/courses.\n\n💬 Join my Discord server: https://discord.arjan.codes.\n\n⌨️ Keyboard I’m using: https://amzn.to/49YM97v.\n\n🔖 Chapters:\n0:00 Intro\n2:11 The Problem\n2:34 The Policy Pattern\n3:05 OOP Version (Quick Overview)\n5:50 Strategy vs Policy\n6:51 Functional Style (Pythonic Version)\n10:56 Policy Registry + Settings\n13:37 Why This Is Powerful\n14:07 Trade-offs\n14:22 Final Thoughts\n\n#arjancodes #softwaredesign #python",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5VN-3rIUPZ8",
        "title": "What Most Python Developers Miss About Generators",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 1440,
        "views": 24554,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Talk to the internet when you need answers. Talk to Recall when you need your answers. 🔗 https://www.recall.it/?t=arjan   Use code ARJAN25 for 25% off, valid until 1 June 2026.\n\nDo the Ports & Adapters quiz here: https://app.getrecall.ai/challenge/e2...\n\nMost Python developers think generators are just about saving memory. That’s only a small part of the story.\n\nIn this video, I show how generators give you control over when work happens, and how you can use them to build powerful data pipelines, handle backpressure, enable two-way communication, and even work with async streams.\n\n🔥 GitHub Repository: https://git.arjan.codes/2026/generators.\n\n🎓 ArjanCodes Courses: https://www.arjancodes.com/courses.\n\n💬 Join my Discord server: https://discord.arjan.codes.\n\n⌨️ Keyboard I’m using: https://amzn.to/49YM97v.\n\n🔖 Chapters:\n0:00 Intro\n0:44 What are Generators?\n1:44 Step 1: From Strings to Structured Data\n6:36 Sponsored Section (recall.it)\n9:08 Step 2: Pipelines with Function Composition\n13:15 Step 3: Backpressure — Why This Scales\n15:08 Step 4: Two-Way Communication with send()\n17:52 Bonus: Generators Can Return a Value\n19:08 Step 5: Async Generators\n22:58 Final Thoughts\n\n#arjancodes #softwaredesign #python",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OeirQdzYdnc",
        "title": "The State Pattern in Python - I Like How This Turned Out",
        "publishedAt": "1 month ago",
        "durationSeconds": 1583,
        "views": 32292,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🧱 Build software that lasts. Join the Software Design Mastery waiting list → https://arjan.codes/mastery.\n\nThe classic State design pattern is often implemented with many small classes and heavy inheritance. In this video, I show a different approach.\n\nI start with the traditional object-oriented version and then refactor it into a generic, data-driven state machine using Python features like decorators, enums, and generics. The result is a clean, reusable engine where transitions are explicit and easy to understand.\n\n🔥 GitHub Repository: https://git.arjan.codes/2026/state.\n\n🎓 ArjanCodes Courses: https://www.arjancodes.com/courses.\n\n💬 Join my Discord server: https://discord.arjan.codes.\n\n⌨️ Keyboard I’m using: https://amzn.to/49YM97v.\n\n🔖 Chapters:\n0:00 Intro\n3:24 Why This Matters\n4:11 Step 1 — The Traditional Class-Based State Pattern\n4:57 Step 2 — Realization: This Is Just a Lookup Table\n5:21 Step 3 — Extracting a Generic StateMachine\n17:35 Step 4 — Making Transitions Declarative with a Decorator\n20:37 Step 5 — Supporting Multiple From States\n24:05 The Payment Class Becomes Boring (In a Good Way)\n25:30 When To Use This vs Classic OO\n25:54 Final Thoughts\n\n#arjancodes #softwaredesign #python",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KDnP_zbp-9Q",
        "title": "Python Has Serious Problems, But I Use It Anyway",
        "publishedAt": "1 month ago",
        "durationSeconds": 614,
        "views": 39901,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🧱 Build software that lasts. Join the Software Design Mastery waiting list → https://arjan.codes/mastery.\n\nIn this video, I explain what I didn’t like about Python when I first encountered it. From indentation and runtime errors to packaging and performance, and why many of those criticisms are still valid. More importantly, I explain why I still choose Python anyway.\n\n🎓 ArjanCodes Courses: https://www.arjancodes.com/courses.\n\n💬 Join my Discord server: https://discord.arjan.codes.\n\n⌨️ Keyboard I’m using: https://amzn.to/49YM97v.\n\n🔖 Chapters:\n0:00 Intro\n0:57 Languages That I Used\n2:44 What I Didn’t Like About Python\n5:49 Why Still Use Python?\n7:30 The Lesson\n9:25 Final Thoughts\n\n#arjancodes #softwaredesign #python",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "U4sPMwAiXco",
        "title": "Why “Clean Code” Often Creates Worse Designs",
        "publishedAt": "1 month ago",
        "durationSeconds": 1587,
        "views": 24370,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "→ Get started with Hostinger today: http://hostinger.com/arjancodes (make sure to use coupon ARJANCODES).\n\nIn this video, I refactor a small Python program that looks clean on the surface but hides a messy design underneath. Step by step, I remove unnecessary abstractions and restructure the program around cohesion and clear behavior instead of tiny components.\n\n🔥 GitHub Repository: https://git.arjan.codes/2026/clean.\n\n🎓 ArjanCodes Courses: https://www.arjancodes.com/courses.\n\n💬 Join my Discord server: https://discord.arjan.codes.\n\n⌨️ Keyboard I’m using: https://amzn.to/49YM97v.\n\n🔖 Chapters:\n0:00 Intro\n0:52 What People Mean by “Clean Code” (And Where It Goes Wrong)\n1:27 BEFORE: “Clean” Interface, Messy Reality\n3:25 Hostinger Sponsored Integration\n4:56 Step 1: Delete the Fake Abstraction and Container\n5:54 Step 2: Introduce ReportConfig\n10:17 Step 3: Make the Pipeline Explicit: Load → Summarize → Export\n13:16 Step 4: Model the Result as a Cohesive Object\n18:30 Step 5: Move Business Rules Into One Readable Place (is_valid)\n21:31 Show the Final “After” Code (Your Version)\n25:13 Reframe “Clean” as Cohesion, Not Smallness\n25:52 Final Thoughts\n\n#arjancodes #softwaredesign #python",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7SUzTOkUVLY",
        "title": "The Hidden Mechanism Behind Clean Python APIs (Descriptor Deep Dive)",
        "publishedAt": "1 month ago",
        "durationSeconds": 996,
        "views": 18997,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🧱 Build software that lasts. Join the Software Design Mastery waiting list → https://arjan.codes/mastery.\n\nIn this video, I explain what descriptors are, why attribute access in Python sometimes behaves in surprising ways, and how the descriptor rules determine whether an attribute comes from the class, the instance, or somewhere else entirely. Along the way, I’ll look at a few practical design ideas that show how descriptors can help you write cleaner, more reusable Python code.\n\n🔥 GitHub Repository: https://git.arjan.codes/2026/descriptors.\n\n🎓 ArjanCodes Courses: https://www.arjancodes.com/courses.\n\n💬 Join my Discord server: https://discord.arjan.codes.\n\n⌨️ Keyboard I’m using: https://amzn.to/49YM97v.\n\n🔖 Chapters:\n0:00 Intro\n0:19 Immediately Show Code: The Smallest Descriptor You Can Watch\n5:54 Build Your Own @property\n8:57 Teaser Setup: The Precedence Rule (With Two Short Experiments)\n11:06 Cool Design #1: Validated Fields (Write Code on Screen)\n14:19 Cool Design #2: Lazy Cached Property (Write Code on Screen)\n15:50 Final Thoughts\n\n#arjancodes #softwaredesign #python",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CWYwz3iV1g0",
        "title": "Stop Passing Primitives Everywhere (Use Value Objects)",
        "publishedAt": "2 months ago",
        "durationSeconds": 840,
        "views": 61992,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🧱 Build software that lasts. Join the Software Design Mastery waiting list → https://arjan.codes/mastery.\n\nIn this video, I show how to use the Value Object pattern in Python to model prices, percentages, and email addresses properly. I’ll enforce invariants once, eliminate ambiguity (is 0.2 equal to 20%?), and make invalid states hard to represent, without adding unnecessary complexity.\n\n🔥 GitHub Repository: https://git.arjan.codes/2026/value.\n\n🎓 ArjanCodes Courses: https://www.arjancodes.com/courses.\n\n💬 Join my Discord server: https://discord.arjan.codes.\n\n⌨️ Keyboard I’m using: https://amzn.to/49YM97v.\n\n🔖 Chapters:\n0:00 Intro\n1:44 Primitive Obsession (The Actual Problem)\n2:30 The “Before” Example (Looks Fine, Isn’t)\n3:10 What a Value Object Actually Is\n3:47 Price as a Value Object (Behaves Like a Float)\n5:39 Percentage as a Value Object (Kills Ambiguity)\n7:27 Keep Business Logic as a Function\n10:27 Second Example: EmailAddress as a Dataclass Value Object\n12:03 Quick Mention: Pydantic\n12:33 Why Enums Aren’t Value Objects\n13:08 Final Thoughts\n\n#arjancodes #softwaredesign #python",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "FXwBWS4qDAA",
        "title": "Stop Mixing FastAPI with Business Logic: Fix It with Ports & Adapters",
        "publishedAt": "2 months ago",
        "durationSeconds": 1524,
        "views": 49540,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🧱 Build software that lasts. Join the Software Design Mastery waiting list → https://arjan.codes/mastery.\n\nIn this video, I refactor a FastAPI + SQLAlchemy example into a clean Ports & Adapters (Hexagonal Architecture) design. I separate domain logic from frameworks, introduce domain types and errors, define ports with Protocols, and implement adapters step by step. The result is pure, testable business logic that’s easier to maintain and evolve.\n\n🔥 GitHub Repository: https://git.arjan.codes/2026/ports.\n\n🎓 ArjanCodes Courses: https://www.arjancodes.com/courses.\n\n💬 Join my Discord server: https://discord.arjan.codes.\n\n⌨️ Keyboard I’m using: https://amzn.to/49YM97v.\n\n🔖 Chapters:\n0:00 Intro\n1:23 What’s the Actual Problem?\n3:11 Ports & Adapters in One Minute\n4:25 The Demo Use Case (Keep It Tiny, but Real)\n5:44 Step 1 — Create Domain Types (Stop Returning API-Shaped Dicts)\n9:39 Step 2 — Introduce Domain Errors (No HTTP in the Domain)\n12:54 Step 3 — Define the Port (What the Domain Needs)\n14:39 Step 4 — Write the Use Case as Pure Logic\n19:25 Step 5 — Create SQLAlchemy Adapter Implementing the Port\n24:36 Step 6 — FastAPI Adapter Becomes Translation-Only\n24:48 Final Thoughts\n\n#arjancodes #softwaredesign #python",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Y9_h7ehjhO4",
        "title": "You’ve Been Underusing Dataclasses (These Tricks Are Wild)",
        "publishedAt": "2 months ago",
        "durationSeconds": 1679,
        "views": 29937,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🧱 Build software that lasts. Join the Software Design Mastery waiting list → https://arjan.codes/mastery.\n\nIn this video, I show you 7 powerful and lesser-known things you can do with...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wHLZ_uTrCYA",
        "title": "Python Properties vs Methods: The Contract You Didn’t Know You Were Making",
        "publishedAt": "2 months ago",
        "durationSeconds": 1025,
        "views": 55724,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🧱 Build software that lasts. Join the Software Design Mastery waiting list → https://arjan.codes/mastery.\n\nIn this video, I break down when something in Python should be a property and...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Spp-uzXzzdE",
        "title": "CQRS in Python: Clean Reads, Clean Writes",
        "publishedAt": "3 months ago",
        "durationSeconds": 1345,
        "views": 40707,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💡 Check out MongoDB Atlas: https://www.mongodb.com/atlas.\n\nWhen your FastAPI list endpoint starts pulling full documents just to compute derived fields, it’s usually a sign your read and...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "f1Nb_JV_s8Y",
        "title": "Stop Building Ugly APIs: Use the Fluent Interface Pattern",
        "publishedAt": "3 months ago",
        "durationSeconds": 1056,
        "views": 37196,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💡 Learn how to design great software in 7 steps: https://arjan.codes/designguide.\n\nIn this video, I take a small but realistic Python animation API and refactor it step by step into a fluent...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cXl-AUXHHZY",
        "title": "10 Python Features You’re Not Using (But Really Should)",
        "publishedAt": "3 months ago",
        "durationSeconds": 1245,
        "views": 66044,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💡 Learn how to design great software in 7 steps: https://arjan.codes/designguide.\n\nPython has a lot of powerful features hiding in plain sight, and many developers never really use them....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KqfMiuL3cx4",
        "title": "This Design Pattern Scares Me To Death",
        "publishedAt": "3 months ago",
        "durationSeconds": 1776,
        "views": 76576,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Get real-time, search result data from Google, Youtube and more with SerpApi: https://serpapi.link/arjan-codes-jan-2025.\n\nBusiness rules have a nasty habit of spreading across your codebase:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YTsJQ4ixq88",
        "title": "7 Things You Didn’t Know Dataclasses Could Do",
        "publishedAt": "3 months ago",
        "durationSeconds": 1224,
        "views": 42653,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💡 Learn how to design great software in 7 steps: https://arjan.codes/designguide.\n\nDataclasses are often treated as nothing more than a shortcut for generating init methods, but there’s...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8Pi6vGRlp1c",
        "title": "The Right Way to Use AI for Writing Maintainable Code",
        "publishedAt": "4 months ago",
        "durationSeconds": 1654,
        "views": 45152,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🧱 Build software that lasts. Join the Software Design Mastery waiting list → https://arjan.codes/mastery.\n\nAI can write code, but without solid software design, it quickly turns into an...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "b6RnBKvQ40o",
        "title": "I Made a Classic Refactoring Mistake",
        "publishedAt": "4 months ago",
        "durationSeconds": 983,
        "views": 24176,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💡 Learn how to design great software in 7 steps: https://arjan.codes/designguide.\n\nIn my previous video on refactoring complicated business logic, I made several mistakes and you spotted...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GMBiCMsEsq8",
        "title": "How to Tell If Your Code Is Actually Production-Ready",
        "publishedAt": "4 months ago",
        "durationSeconds": 1480,
        "views": 41678,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💡 Learn how to design great software in 7 steps: https://arjan.codes/designguide.\n\nYour code works locally: you’ve tested the endpoint, the numbers add up, and everything looks fine in...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "43vH_lnM7x0",
        "title": "Retry Pattern: The Secret to Resilient Python Code",
        "publishedAt": "4 months ago",
        "durationSeconds": 1442,
        "views": 29529,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Get real-time, search result data from Google, Youtube and more with SerpApi: https://serpapi.link/arjan-codes.\n\nThis video shows you how to stop your Python code from crashing when APIs,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mH7e7fs9gaE",
        "title": "From Spaghetti Code to Clean Python",
        "publishedAt": "5 months ago",
        "durationSeconds": 1403,
        "views": 121796,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💡 Learn how to design great software in 7 steps: https://arjan.codes/designguide.\n\nUntangling deeply nested if/else logic is one of the hardest parts of working in real-world Python codebases....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ENnDxEOAKKc",
        "title": "The Lazy Loading Pattern: How to Make Python Programs Feel Instant",
        "publishedAt": "5 months ago",
        "durationSeconds": 1179,
        "views": 43771,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💡 Learn how to design great software in 7 steps: https://arjan.codes/designguide.\n\nIn this video, I dive deep into the **Lazy Loading pattern,** one of the simplest and most effective ways...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Xhzn1eAxoXk",
        "title": "Stop Hardcoding Everything: Use Dependency Injection",
        "publishedAt": "5 months ago",
        "durationSeconds": 1957,
        "views": 132984,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "→ Check out Thesys here: https://www.thesys.dev/?utm_source=youtube&utm_medium=creators&utm_campaign=arjan\n\nIn this video, I explore how Dependency Injection can make your Python code cleaner,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "t-LC1dWLpNs",
        "title": "Stop Overwriting State And Use Event Sourcing Instead",
        "publishedAt": "5 months ago",
        "durationSeconds": 1512,
        "views": 33812,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "→ Try Flox for free: https://flox.dev/?utm_source=youtube&utm_medium=social&utm_campaign=Arjan&utm_content=homepage\n\nIn this video, I explore how to build an inventory system using the event...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8_Pf4y5yqCE",
        "title": "Learning Python Feels Easy. Until It Isn’t.",
        "publishedAt": "5 months ago",
        "durationSeconds": 1551,
        "views": 42915,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "→ Python Programming Fundamentals course (DataCamp): https://datacamp.pxf.io/POPxVR\n\n→ Associate Python Developer track (DataCamp): https://datacamp.pxf.io/Dy2oea\n\nPython is often praised...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bsU7AFjh4m8",
        "title": "Why Your Code Isn’t Pythonic (And How to Fix It)",
        "publishedAt": "6 months ago",
        "durationSeconds": 1599,
        "views": 160178,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💡 Learn how to design great software in 7 steps: https://arjan.codes/designguide.\n\nWhat does it actually mean to write *Pythonic* code? In this video, we answer that question by taking a...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UG5jbLReDiM",
        "title": "Too Many Function Arguments? Use This Pattern",
        "publishedAt": "6 months ago",
        "durationSeconds": 1185,
        "views": 124477,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💡 Learn how to design great software in 7 steps: https://arjan.codes/designguide.\n\nTired of passing five arguments to every function? In this video, I clean up a realistic Python codebase...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "N_ypJwV8Q8I",
        "title": "The Best Way to Share Code Between Python Apps",
        "publishedAt": "6 months ago",
        "durationSeconds": 1108,
        "views": 44129,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "✅ Learn how to build robust and scalable software architecture: https://arjan.codes/checklist.\n\nIn this video, I show you how to use uv workspaces to manage multiple Python apps—like a...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "g7EGMWvJ1fI",
        "title": "I Hate Long If-Elif Chains: This Design Pattern Solved It Once and For All",
        "publishedAt": "6 months ago",
        "durationSeconds": 924,
        "views": 390507,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💡 Learn how to design great software in 7 steps: https://arjan.codes/designguide.\n\nIf your code is littered with endless if-elif chains just to handle different formats, behaviors, or commands,...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 8,
      "uploadsLast90d": 17,
      "uploadCadenceWeekly": 1.32,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 39901,
      "viewsPerVideoP90Last90d": 66044,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 39901,
      "p90Views": 66044,
      "p99Views": 76576,
      "outperformingVideosLast90d": 3
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "amzn.to"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "arjancodes.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 1,
        "evidenceVideoIds": [
          "GmlZBdKhl9Y",
          "rZpwFN_n2-g",
          "wYeDGkdMi3g",
          "5VN-3rIUPZ8",
          "OeirQdzYdnc"
        ]
      },
      {
        "label": "arjan",
        "share": 0.93,
        "evidenceVideoIds": [
          "GmlZBdKhl9Y",
          "rZpwFN_n2-g",
          "wYeDGkdMi3g",
          "5VN-3rIUPZ8",
          "OeirQdzYdnc"
        ]
      },
      {
        "label": "codes",
        "share": 0.87,
        "evidenceVideoIds": [
          "GmlZBdKhl9Y",
          "rZpwFN_n2-g",
          "wYeDGkdMi3g",
          "5VN-3rIUPZ8",
          "OeirQdzYdnc"
        ]
      },
      {
        "label": "design",
        "share": 0.77,
        "evidenceVideoIds": [
          "GmlZBdKhl9Y",
          "rZpwFN_n2-g",
          "wYeDGkdMi3g",
          "OeirQdzYdnc",
          "KDnP_zbp-9Q"
        ]
      },
      {
        "label": "software",
        "share": 0.73,
        "evidenceVideoIds": [
          "GmlZBdKhl9Y",
          "rZpwFN_n2-g",
          "wYeDGkdMi3g",
          "OeirQdzYdnc",
          "KDnP_zbp-9Q"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Saturday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "moderate",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "moderate",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 29,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "ArjanCodes — 0.3M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 29,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.81,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "f783fb1a9b312f4eacb7ad193dd9cdb8fde0697fdc971cb7232ca4ec7efa9182",
      "inputsHash": "f830d05d4f4011be7620dc39afa6bfee653b3d5be555e84b3366586c540f2ba8",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:46.145Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "e0429d62ac7463f661c74899beb56ad213ce1faebc46f170975f30a77a42e804",
    "channelId": "UCuudpdbKmQWq2PPzYgVCWlA",
    "channelHandle": "@Indently",
    "channelName": "Indently",
    "channelUrl": "https://www.youtube.com/@Indently",
    "description": "Simple is better than complex_",
    "joinDate": null,
    "location": null,
    "subscribers": 351000,
    "totalVideos": 1000,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/dIN99I0xszEZa39iFQW9KVMiAf8zQm1KdiaBIT30V4Uhyh2LbLvv7vAGRuHrlpCL7lwJRXMCKw=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "indently.io",
        "url": "https://www.indently.io"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/indentlyreels/"
      }
    ],
    "recentVideos": [
      {
        "videoId": "uVX4yWJpKgg",
        "title": "Generators are Awesome in Python",
        "publishedAt": "8 hours ago",
        "durationSeconds": 547,
        "views": 2068,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today, we're going to learn about generators in Python. We will also learn about yielding values, sending values, and returning values from generators. And finally we will learn how to type a generator in case you enjoy the benefits of type-safety in Python!\n\nThis video was sponsored by Zed, the next-gen code editor:\n▶ Try Zed for free: http://zed.dev/download\n\nNeed a professional website?\n▶ Try Carrd: https://try.carrd.co/indently\n\nMore from Indently:\n▶ Become job-ready with Python: https://www.indently.io\n▶ Learn Rust with me:    / @rustfully",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XlW4K8oqqLw",
        "title": "\"yield from\" is Awesome in Python",
        "publishedAt": "1 day ago",
        "durationSeconds": 240,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video we will learn about \"yield from\" which is some very convenient sugar syntax that we have for generators. I absolutely recommend learning it in Python.\n\nThis video was sponsored by Zed, the next-gen code editor:\n▶ Try Zed for free: http://zed.dev/download\n\nNeed a professional website?\n▶ Try Carrd: https://try.carrd.co/indently\n\nMore from Indently:\n▶ Become job-ready with Python: https://www.indently.io\n▶ Learn Rust with me: https://www.youtube.com/@Rustfully\n\nThis script was written by Miss Cthulian Coder, Insanity by Design:\n▶  Blog: https://AlyceOsbourne.github.io",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YTuQ2nmg1Yg",
        "title": "How to design a good function in Python",
        "publishedAt": "1 day ago",
        "durationSeconds": 510,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In today's video we're going to learn how to design a good function in Python! Ideally you'd follow most of these steps for every function you create, but use this more as a guide, because some of these steps might not be worth it if you're creating a throw-away script.\n\nThis video was sponsored by Zed, the next-gen code editor:\n▶ Try Zed for free: http://zed.dev/download\n\nNeed a professional website?\n▶ Try Carrd: https://try.carrd.co/indently\n\nMore from Indently:\n▶ Become job-ready with Python: https://www.indently.io\n▶ Learn Rust with me: https://www.youtube.com/@Rustfully",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UXGxMnu7qig",
        "title": "Weak references are Awesome in Python",
        "publishedAt": "5 days ago",
        "durationSeconds": 653,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In today's video we're going to learn about weak references in Python! They're pretty awesome and help deal with memory leaks in many situations.\n\nThis video was sponsored by Zed, the next-gen code editor:\n▶ Try Zed for free: http://zed.dev/download\n\nNeed a professional website?\n▶ Try Carrd: https://try.carrd.co/indently\n\nMore from Indently:\n▶ Become job-ready with Python: https://www.indently.io\n▶ Learn Rust with me: https://www.youtube.com/@Rustfully\n\nThis script was written by Miss Cthulian Coder, Insanity by Design:\n▶  Blog: https://AlyceOsbourne.github.io",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5Qew5Vo7-4w",
        "title": "There's a NEW built-in function coming in Python 3.15",
        "publishedAt": "7 days ago",
        "durationSeconds": 642,
        "views": 22445,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today, we’re going to learn about a new feature which is soon to be released in Python 3.15! This is the new built-in sentinel value constructor. \n\nRead the full PEP here: \n▶ https://peps.python.org/pep-0661/\n\nThis video was sponsored by Zed, the next-gen code editor:\n▶ Try Zed for free: http://zed.dev/download\n\nNeed a professional website?\n▶ Try Carrd: https://try.carrd.co/indently\n\nMore from Indently:\n▶ Become job-ready with Python: https://www.indently.io\n▶ Learn Rust with me:    / @rustfully  \n\n00:00 Learning Python made simple\n00:03 Intro\n00:16 Sentinel values\n02:27 Sponsor\n02:48 PEP 661\n03:05 Motivation\n04:17 Rationale\n05:31 Specification\n07:41 Typing\n08:01 Backwards compatibility\n08:40 Rejected ideas\n10:02 Game changer?\n10:26 What do you think?",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gtxhpV4zMrQ",
        "title": "This is probably the biggest misconception about Python",
        "publishedAt": "7 days ago",
        "durationSeconds": 423,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Hello everyone! Today we're going to learn about one of Python's biggest misconceptions which involves protected and private attributes, and even I made this mistake when I was first learning Python.\n\nThis video was sponsored by Zed, the next-gen code editor:\n▶ Try Zed for free: http://zed.dev/download\n\nNeed a professional website?\n▶ Try Carrd: https://try.carrd.co/indently\n\nMore from Indently:\n▶ Become job-ready with Python: https://www.indently.io\n▶ Learn Rust with me: https://www.youtube.com/@Rustfully",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gEJJK_Fxki8",
        "title": "Optionals are Awesome in Python",
        "publishedAt": "9 days ago",
        "durationSeconds": 300,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video we're going to learn about optionals and the three ways we can create them in Python. These are all valid ways of creating optionals as of Python 3.15, nothing has been deprecated yet.\n\nThis video was sponsored by Zed, the next-gen code editor:\n▶ Try Zed for free: http://zed.dev/download\n\nNeed a professional website?\n▶ Try Carrd: https://try.carrd.co/indently\n\nMore from Indently:\n▶ Become job-ready with Python: https://www.indently.io\n▶ Learn Rust with me: https://www.youtube.com/@Rustfully",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CxuGaLNejvc",
        "title": "3 Major Bugs You Should Avoid in Python",
        "publishedAt": "10 days ago",
        "durationSeconds": 521,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today we're going to be looking at three major bugs that you are likely to encounter when programming in Python, and how to avoid them.\n\nThis video was sponsored by Zed, the next-gen code editor:\n▶ Try Zed for free: http://zed.dev/download\n\nNeed a professional website?\n▶ Try Carrd: https://try.carrd.co/indently\n\nMore from Indently:\n▶ Become job-ready with Python: https://www.indently.io\n▶ Learn Rust with me: https://www.youtube.com/@Rustfully",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LRGKtGnsufM",
        "title": "Did I just ruin Python with Enforced Static Typing?",
        "publishedAt": "10 days ago",
        "durationSeconds": 389,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In today's video we're going to look at something I wish Python had as an optional built-in: enforced static type checking for scripts.\n\nThis video was sponsored by Zed, the next-gen code editor:\n▶ Try Zed for free: http://zed.dev/download\n\nNeed a professional website?\n▶ Try Carrd: https://try.carrd.co/indently\n\nMore from Indently:\n▶ Become job-ready with Python: https://www.indently.io\n▶ Learn Rust with me: https://www.youtube.com/@Rustfully",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "A7lGxqCuFN4",
        "title": "Functional Programming in Python is Awesome",
        "publishedAt": "13 days ago",
        "durationSeconds": 933,
        "views": 11422,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In today's video we're going to learn about functional programming in Python by building a little project, and then refactoring it to a more pure approach! \n\nSource code: \n▶ https://github.com/indently/functiona...\n\nThis video was sponsored by Zed, the next-gen code editor:\n▶ Try Zed for free: http://zed.dev/download\n\nNeed a professional website?\n▶ Try Carrd: https://try.carrd.co/indently\n\nMore from Indently:\n▶ Become job-ready with Python: https://www.indently.io\n▶ Learn Rust with me:    / @rustfully  \n\nThis script was written by Miss Cthulian Coder, Insanity by Design:\n▶  Blog: https://AlyceOsbourne.github.io",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "J1adhPWc-1c",
        "title": "Dependency Injection in Python is Awesome",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 626,
        "views": 12852,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In today's video we're going to learn about dependency injection in Python! \n\nThis video was sponsored by Zed, the next-gen code editor:\n▶ Try Zed for free: http://zed.dev/download\n\nNeed...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_cDUB0b1p3w",
        "title": "Zed + Local AI = Awesome (Free AI Tutorial)",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 429,
        "views": 4142,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In today's video we're going to learn how we can use Zed in combination with our very own locally hosted AI agent. This is a huge win for privacy since all the code we write stays on our machine....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zV4i7Re1obA",
        "title": "Build a Local AI Agent in Python with Tools (Part 3)",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 1054,
        "views": 2831,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In today’s video we’re going to add tools to our AI agent in Python. This allows our AI agent to actually perform tasks instead of just hallucinating information all the time. This is what...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ILKQftdngaE",
        "title": "Build a Local AI Agent in Python with Context (Part 2)",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 715,
        "views": 3860,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ready to upgrade the AI agent we built in the previous video ( https://youtu.be/LykXu60aKoY )? In today's video we'll be learning how we can add context to our local AI agent in Python!\n\nThis...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LykXu60aKoY",
        "title": "Build a Local AI Agent in Python in only 15 Minutes",
        "publishedAt": "1 month ago",
        "durationSeconds": 901,
        "views": 16455,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In today's video we're going to start learning about how we can build/host our very own local AI in Python! This opens a world of opportunity for Python-based applications. This is the first...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "d671jbgt_lU",
        "title": "\"ReadOnly\" for Classes in Python 3.15?",
        "publishedAt": "1 month ago",
        "durationSeconds": 331,
        "views": 5349,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In today's video we're going to look at PEP 767, which introduces an updated version of ReadOnly which will start to work with classes instead of only working with TypedDict!\n\nThis video was...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Bgdc_6JsKsE",
        "title": "COMING SOON: D-strings in Python",
        "publishedAt": "1 month ago",
        "durationSeconds": 398,
        "views": 14511,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How's it going everyone? Today I'm here to talk about a new type of string we will have in Python 3.15 (or later if the draft is not finalised in time), d-strings! \nPEP 822: https://peps.python.org...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MZsUalDCQpw",
        "title": "Dictionary Views are Awesome in Python",
        "publishedAt": "1 month ago",
        "durationSeconds": 329,
        "views": 8670,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In today's video we're going to learn about three really cool methods that are often misunderstood in dictionaries in Python!\n\nThis video was sponsored by Zed, the next-gen code editor:\n▶...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "s_oXtdhqXR8",
        "title": "25 Cool Tips & Tricks in Python",
        "publishedAt": "1 month ago",
        "durationSeconds": 1398,
        "views": 19336,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Here are 25 useful tips and tricks that you can use in your Python code immediately!\n\nThis video was sponsored by Zed, the next-gen code editor:\n▶ Try Zed for free: http://zed.dev/download...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pcdeKCuCRIc",
        "title": "Monadic Error Handling in Python is Awesome",
        "publishedAt": "1 month ago",
        "durationSeconds": 772,
        "views": 17049,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How's it going everyone? In today's video we're going to learn how we can use Rust's approach to monadic error handling in Python! \n\nThis video was sponsored by Zed, the next-gen code editor:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "50dTOFILNuc",
        "title": "Coming in Python 3.15: New Set Syntax?",
        "publishedAt": "1 month ago",
        "durationSeconds": 432,
        "views": 11418,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This change is unconfirmed for the time being, but is currently cited as being a 3.15 draft. You can read more about the new syntax here: https://peps.python.org/pep-0802/\n\nThis video was sponsored...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "NgcdCW2Gto4",
        "title": "NEW in Python 3.15: Frozendict",
        "publishedAt": "1 month ago",
        "durationSeconds": 270,
        "views": 10962,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How's it going everyone? I hope you're ready for Python 3.15, because we have another huge change coming! We can now use frozen dictionaries.\n\nThis video was sponsored by Zed, the next-gen...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VoKE14Nf_oY",
        "title": "NEW in Python 3.15: Explicit Lazy Imports",
        "publishedAt": "2 months ago",
        "durationSeconds": 569,
        "views": 20199,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "NEW in Python 3.15: explicit lazy imports. I'm really looking forward to trying out this new feature! For now, let's go over what PEP 810 brings to the table and how we can use it.\n\nThis video...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gu8WI3Xs5iU",
        "title": "Metaclasses in Python are Awesome",
        "publishedAt": "2 months ago",
        "durationSeconds": 546,
        "views": 15416,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In today's video we're going to start learning a little about metaclasses in Python! Do let me know in the comment section down below whether you'd like to see more videos on metaclasses.\n...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vaKozOH_B4A",
        "title": "NEW in Python 3.15: Unpacking in Comprehensions",
        "publishedAt": "2 months ago",
        "durationSeconds": 357,
        "views": 27845,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We have some new Python syntax coming out in 3.15! Finally we’ll be able to unpack in our comprehensions using * and **.\n\nWhat’s new in Python 3.15: https://docs.python.org/3.15/whatsnew/3.15.h...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "p7a5UCl7Tds",
        "title": "Descriptors in Python are Awesome",
        "publishedAt": "2 months ago",
        "durationSeconds": 639,
        "views": 12769,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In today's video we're going to start learning about descriptors in Python!\n\nThis video was sponsored by Zed, the next-gen code editor:\n▶ Try Zed for free: http://zed.dev/download\n\nNeed a...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "T_LNtZkaiaI",
        "title": "It's 2026 - Time to switch to Linux",
        "publishedAt": "2 months ago",
        "durationSeconds": 279,
        "views": 14104,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I haven't done it just yet, but enough is enough, I've had it with these mother-effing snakes on this mother-effing plane (hope you appreciated that reference). All humour aside, please let...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5nw_H7oqrIk",
        "title": "Python with UV is ULTRA Fast",
        "publishedAt": "3 months ago",
        "durationSeconds": 500,
        "views": 13187,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In today's video I'm going to show you some very useful UV commands you can use to speed up your Python workflow. If you don't know what UV is yet, or don't have it installed, check out this...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8zggSBvTQbM",
        "title": "UV in Python is Awesome",
        "publishedAt": "3 months ago",
        "durationSeconds": 665,
        "views": 27706,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In today's video we're going to learn about UV, an extremely fast Python package and project manager, written in Rust. UV installation: https://docs.astral.sh/uv/getting-started/installation/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LqpdsBqa1VE",
        "title": "5 Good Function Habits in Python",
        "publishedAt": "3 months ago",
        "durationSeconds": 711,
        "views": 15097,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In today's video we're going to learn about 5 good function habits that you can use in your everyday Python scripts!\n\nThis video was sponsored by Zed, the next-gen code editor:\n▶ Try Zed...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 22,
      "uploadsLast90d": 30,
      "uploadCadenceWeekly": 2.33,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 13187,
      "viewsPerVideoP90Last90d": 20199,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 13187,
      "p90Views": 20199,
      "p99Views": 27706,
      "outperformingVideosLast90d": 4
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 17,
      "sponsorBrandsDetected": [
        "Zed"
      ],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 57,
      "lastSponsoredVideoDate": "2026-05-13",
      "detectionDetail": [
        {
          "brand": "Zed",
          "videoId": "uVX4yWJpKgg",
          "confidence": 0.7,
          "evidence": "description: sponsored by Zed",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:47.425Z"
        },
        {
          "brand": "Zed",
          "videoId": "XlW4K8oqqLw",
          "confidence": 0.7,
          "evidence": "description: sponsored by Zed",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:47.425Z"
        },
        {
          "brand": "Zed",
          "videoId": "YTuQ2nmg1Yg",
          "confidence": 0.7,
          "evidence": "description: sponsored by Zed",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:47.426Z"
        },
        {
          "brand": "Zed",
          "videoId": "UXGxMnu7qig",
          "confidence": 0.7,
          "evidence": "description: sponsored by Zed",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:47.426Z"
        },
        {
          "brand": "Zed",
          "videoId": "5Qew5Vo7-4w",
          "confidence": 0.7,
          "evidence": "description: sponsored by Zed",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:47.426Z"
        },
        {
          "brand": "Zed",
          "videoId": "gtxhpV4zMrQ",
          "confidence": 0.7,
          "evidence": "description: sponsored by Zed",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:47.426Z"
        },
        {
          "brand": "Zed",
          "videoId": "gEJJK_Fxki8",
          "confidence": 0.7,
          "evidence": "description: sponsored by Zed",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:47.426Z"
        },
        {
          "brand": "Zed",
          "videoId": "CxuGaLNejvc",
          "confidence": 0.7,
          "evidence": "description: sponsored by Zed",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:47.426Z"
        },
        {
          "brand": "Zed",
          "videoId": "LRGKtGnsufM",
          "confidence": 0.7,
          "evidence": "description: sponsored by Zed",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:47.426Z"
        },
        {
          "brand": "Zed",
          "videoId": "A7lGxqCuFN4",
          "confidence": 0.7,
          "evidence": "description: sponsored by Zed",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:47.426Z"
        },
        {
          "brand": "Zed",
          "videoId": "J1adhPWc-1c",
          "confidence": 0.7,
          "evidence": "description: sponsored by Zed",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:47.426Z"
        },
        {
          "brand": "Zed",
          "videoId": "MZsUalDCQpw",
          "confidence": 0.7,
          "evidence": "description: sponsored by Zed",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:47.426Z"
        },
        {
          "brand": "Zed",
          "videoId": "s_oXtdhqXR8",
          "confidence": 0.7,
          "evidence": "description: sponsored by Zed",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:47.426Z"
        },
        {
          "brand": "Zed",
          "videoId": "pcdeKCuCRIc",
          "confidence": 0.7,
          "evidence": "description: sponsored by Zed",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:47.426Z"
        },
        {
          "brand": "Zed",
          "videoId": "NgcdCW2Gto4",
          "confidence": 0.7,
          "evidence": "description: sponsored by Zed",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:47.426Z"
        },
        {
          "brand": "Zed",
          "videoId": "p7a5UCl7Tds",
          "confidence": 0.7,
          "evidence": "description: sponsored by Zed",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:47.426Z"
        },
        {
          "brand": "Zed",
          "videoId": "LqpdsBqa1VE",
          "confidence": 0.7,
          "evidence": "description: sponsored by Zed",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:47.426Z"
        }
      ]
    },
    "sponsorshipMaturity": {
      "tier": "saturated",
      "evidence": {
        "sponsoredVideoCountLast90d": 17,
        "uniqueSponsorBrandsLast90d": 1,
        "firstSponsoredVideoDate": "2026-05-14"
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "indently.io",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": true,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "python",
        "share": 0.93,
        "evidenceVideoIds": [
          "uVX4yWJpKgg",
          "XlW4K8oqqLw",
          "YTuQ2nmg1Yg",
          "UXGxMnu7qig",
          "5Qew5Vo7-4w"
        ]
      },
      {
        "label": "going",
        "share": 0.77,
        "evidenceVideoIds": [
          "uVX4yWJpKgg",
          "YTuQ2nmg1Yg",
          "UXGxMnu7qig",
          "5Qew5Vo7-4w",
          "gtxhpV4zMrQ"
        ]
      },
      {
        "label": "sponsored",
        "share": 0.6,
        "evidenceVideoIds": [
          "uVX4yWJpKgg",
          "XlW4K8oqqLw",
          "YTuQ2nmg1Yg",
          "UXGxMnu7qig",
          "5Qew5Vo7-4w"
        ]
      },
      {
        "label": "zed",
        "share": 0.6,
        "evidenceVideoIds": [
          "uVX4yWJpKgg",
          "XlW4K8oqqLw",
          "YTuQ2nmg1Yg",
          "UXGxMnu7qig",
          "5Qew5Vo7-4w"
        ]
      },
      {
        "label": "next",
        "share": 0.57,
        "evidenceVideoIds": [
          "uVX4yWJpKgg",
          "XlW4K8oqqLw",
          "YTuQ2nmg1Yg",
          "UXGxMnu7qig",
          "5Qew5Vo7-4w"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Tuesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "B",
      "rationale": "active sponsor history, consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "saturated"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 48,
      "reason": "saturated sponsor history",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.75
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.6,
      "level": "medium",
      "coldStart": false
    },
    "whyThisMatters": "saturated sponsor history. Channel is in the active outreach window.",
    "whyNow": "Last sponsored video 1 days ago — within typical sponsorship-decision lookback for similar creators.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Indently — 0.4M subs, B-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 48,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.62,
      "urgency": 0,
      "noiseRisk": 0.4
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "active sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:saturated",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": true,
      "requiresEnrichment": true,
      "priorityQueue": "medium"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "B-tier readiness — nurture or enrich before outreach.",
      "appliedRules": [
        "lastSponsored<90d"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "optimal",
      "reason": "Last sponsored video 1 days ago; within typical 14-30d decision-cycle for similar creators.",
      "decayRisk": 0.35
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 52,
      "reasons": [
        "Active sponsor history within last 90d (17 videos)"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "e0429d62ac7463f661c74899beb56ad213ce1faebc46f170975f30a77a42e804",
      "inputsHash": "2d14a8d666a5e25373d88a5f93d94d2a6f42508a13534204384bb1fe21eb0a0b",
      "rulesApplied": [
        "sponsorship-history-saturated",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:46.716Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "38e52a8f18870255b314874c331909dff3e93726320def9eceed5486b4e886fb",
    "channelId": "UCLNgu_OupwoeESgtab33CCw",
    "channelHandle": "@CodingGarden",
    "channelName": "Coding Garden",
    "channelUrl": "https://www.youtube.com/@CodingGarden",
    "description": "Grow your coding skills one day at a time with weekly live streams and videos about programming, including tutorials, Q&A sessions, algorithmic problem-solving, full application builds, and more.",
    "joinDate": null,
    "location": null,
    "subscribers": 143000,
    "totalVideos": 480,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_kqRMpNhmcqhVLnaicT0XucVwdcKSVUfOGFh5NroOiRcHg=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "coding.garden",
        "url": "https://coding.garden"
      },
      {
        "platform": "twitch",
        "url": "https://www.twitch.tv/codinggarden"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/coding_garden"
      },
      {
        "platform": "patreon.com",
        "url": "https://www.patreon.com/CodingGarden"
      },
      {
        "platform": "streamlabs.com",
        "url": "https://streamlabs.com/codinggarden/tip"
      }
    ],
    "recentVideos": [
      {
        "videoId": "LncrRlu2n0o",
        "title": "Advent of Code 2025 | Day 3 and 4 | JavaScript / TypeScript",
        "publishedAt": "5 months ago",
        "durationSeconds": 6876,
        "views": 2993,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video CJ solves the advent of code 2025 day 3 and 4 challenges live on Twitch.\n\n00:00:00 Welcome\n00:07:04 Day 3, Part 1\n00:23:28 Day 3, Part 2\n01:21:19 Day 4, Part 1\n01:33:50 Day 4, Part 2\n\nView my shorter explained solutions on Syntax:    • Advent of Code | Day 3 and Day 4 Explained...  \n\n📩 Sign up for my mailing list: https://list.coding.garden/\n💖 Donate: https://coding.garden/donate\n😍 Pledge: https://coding.garden/pledge\n🎉 Stickers: https://coding.garden/stickers\n💻 Gear List: https://coding.garden/gear\n🔎 Search for more Coding Garden videos here: https://coding.garden/videos\n🗣 View the Coding Garden FAQ here: https://github.com/CodingGarden/faqs",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LBQvRVkMmzg",
        "title": "Order A Pizza With CODE | Reverse Engineering",
        "publishedAt": "5 months ago",
        "durationSeconds": 2161,
        "views": 8508,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video CJ shows how he reverse engineered an API to order a pizza with CODE. This is his POV from the challenge from Syntax:    • Hacking Pizza Ordering For Fun And Profit  \n\n00:00 - hacking the matrix\n01:02 - intro / plan\n02:16 - how I will do this\n05:27 - code setup\n06:01 - quick summary of code setup\n07:06 - next task - get schema\n07:59 - unable to get schema\n09:07 - re-usable code setup\n11:08 - getting menu items\n13:16 - adding to cart\n16:54 - trouble creating payment method\n18:39 - \"we have a major issue\"\n21:06 - will come back to this tomorrow\n21:50 - next day - new idea\n24:18 - first moment of truth\n26:36 - create payment explained\n27:27 - moment of truth number 6\n27:36 - i think it worked\n27:49 - i have an approved transaction on my credit card\n28:26 - is there another endpoint\n28:56 - calling the pizza place\n30:20 - placing order in browser\n31:35 - 3rd day\n33:25 - one more time for the 30th time\n34:23 - So close!\n34:41 - please work\n\n📩 Sign up for my mailing list: https://list.coding.garden/\n💖 Donate: https://coding.garden/donate\n😍 Pledge: https://coding.garden/pledge\n🎉 Stickers: https://coding.garden/stickers\n💻 Gear List: https://coding.garden/gear\n🔎 Search for more Coding Garden videos here: https://coding.garden/videos\n🗣 View the Coding Garden FAQ here: https://github.com/CodingGarden/faqs",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TD_FwAIEpqI",
        "title": "Advent of Code 2025 | Day 1 and 2 | JavaScript / TypeScript",
        "publishedAt": "5 months ago",
        "durationSeconds": 6435,
        "views": 6351,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video CJ solves the advent of code 2025 day 1 and 2 challenges live on Twitch.\n\n00:00:00 Welcome\n00:01:33 What is Advent of Code\n00:02:08 AOC 2025 Intro\n00:03:13 Day 1, Part 1\n00:28:50 Day 1, Part 2\n01:11:01 Day 2, Part 1\n01:20:53 Day 2, Part 2\n\nView my shorter explained solutions on Syntax:    • Advent of Code | Day 1 and Day 2 Explained...  \n\n📩 Sign up for my mailing list: https://list.coding.garden/\n💖 Donate: https://coding.garden/donate\n😍 Pledge: https://coding.garden/pledge\n🎉 Stickers: https://coding.garden/stickers\n💻 Gear List: https://coding.garden/gear\n🔎 Search for more Coding Garden videos here: https://coding.garden/videos\n🗣 View the Coding Garden FAQ here: https://github.com/CodingGarden/faqs",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SBCnf85_iTY",
        "title": "Playing Clash of Code with Chat | Writing JS, Go | Reviewing JS, Ruby, Python, C++, C#, Go",
        "publishedAt": "5 months ago",
        "durationSeconds": 13622,
        "views": 3685,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "[This is an archive of a previous stream from 2025-11-27] It's been 8 months since my last stream but I'm back! In this chill stream we hang out, catch up and play codingame clash of code with chat.\n\n0:00 Intro\n0:26 Hello / Catching Up\n1:09:08 Game 1 | Sum of Elements\n1:12:41 Game 1 | Review Solutions\n1:27:35 Game 2 | Note Sorting\n1:31:41 Game 2 | Review Solutions\n1:58:35 Game 3 | Find Bills / Coins Change\n2:13:22  Game 3 | Review Solutions\n2:31:22 Game 4 | Sharkovsky Order\n2:46:43  Game 4 | Review Solutions\n3:12:30 Learning / Writing Go\n3:12:30 Game 5 | Tetrahedra / Cube Volume\n3:21:18  Game 5 | Review Solutions\n3:26:00 Game 6 | Average Inflation  Percent\n3:38:13  Game 6 | Review Solutions\n3:44:05 Thanks!\n\n📩 Sign up for my mailing list: https://list.coding.garden/\n💖 Donate: https://coding.garden/donate\n😍 Pledge: https://coding.garden/pledge\n🎉 Stickers: https://coding.garden/stickers\n💻 Gear List: https://coding.garden/gear\n🔎 Search for more Coding Garden videos here: https://coding.garden/videos\n🗣 View the Coding Garden FAQ here: https://github.com/CodingGarden/faqs",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4sTrgQ9hfkU",
        "title": "Lucia Auth is Being Deprecated",
        "publishedAt": "1 year ago",
        "durationSeconds": 537,
        "views": 8127,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video CJ talks about what is happening and what comes next for Lucia Auth.\n\nThis is a clip from a live stream. View the full stream here:    • DEV NEWS | io domains | next.js middleware...  \n\nLucia Auth | https://lucia-auth.com/\nView the discussion on github - https://github.com/lucia-auth/lucia/d...\nLucia Next Preview | https://lucia-next.pages.dev/\narctic | https://www.npmjs.com/package/arctic\noslo | https://www.npmjs.com/package/oslo\nLucia alternatives | https://github.com/lucia-auth/lucia/d...\nSupport pilcrowOnPaper on github - https://github.com/sponsors/pilcrowOn...\n\n📖 Learn React + TypeScript: https://www.reactroots.com/\n📩 Sign up for my mailing list: https://list.coding.garden/\n💖 Donate: https://coding.garden/donate\n😍 Pledge: https://coding.garden/pledge\n💬 Discord: https://coding.garden/discord\n🎉 Stickers: https://coding.garden/stickers\n💻 Gear List: https://coding.garden/gear\n🔎 Search for more Coding Garden videos here: https://coding.garden/videos\n🗣 View the Coding Garden FAQ here: https://github.com/CodingGarden/faqs",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3EIqEH_p0XE",
        "title": "eslint v9 speedrun setup | world record attempt",
        "publishedAt": "1 year ago",
        "durationSeconds": 224,
        "views": 3873,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video CJ speedruns setting up eslint in a typescript / hono project (cheatcodes / tool-assist enabled).\n\nThis is a clip from a live stream. View the full stream here:    • CODE CHAT | Catching up / answering code q...  \n\nantfu/eslint-config | https://github.com/antfu/eslint-config\nantfu - Why I Don't use Prettier | https://antfu.me/posts/why-not-prettier\n\nESLint Stylistic | https://eslint.style/\neslint-plugin-unicorn | https://github.com/sindresorhus/eslin...\neslint-plugin-perfectionist | https://perfectionist.dev/\n\n📖 Learn React + TypeScript: https://www.reactroots.com/\n📩 Sign up for my mailing list: https://list.coding.garden/\n💖 Donate: https://coding.garden/donate\n😍 Pledge: https://coding.garden/pledge\n💬 Discord: https://coding.garden/discord\n🎉 Stickers: https://coding.garden/stickers\n💻 Gear List: https://coding.garden/gear\n🔎 Search for more Coding Garden videos here: https://coding.garden/videos\n🗣 View the Coding Garden FAQ here: https://github.com/CodingGarden/faqs",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kY1EHa0dCss",
        "title": "Express v5 Is HERE",
        "publishedAt": "1 year ago",
        "durationSeconds": 644,
        "views": 23889,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video CJ shows all the changes in the latest version of express js v5.0.0\n\nSee the v5 migration guide here: https://expressjs.com/en/guide/migrat...\n\nGet the express api starter here: https://github.com/w3cj/express-api-s...\n\nv5 types PR: https://github.com/DefinitelyTyped/De...\n\nThis is an excerpt from a live stream. View the full stream VOD here:    • CODE Q&A & Dev Talk | How to use AI Effect...  \n\n0:00 - express v5 Released\n0:25 - express v5 docs still in beta\n0:49 - express v5 changelog / migrating guide\n0:56 - rejected promised automatically handled\n1:05 - setting up local example api\n1:35 - api code tour\n1:51 - add broken router\n2:34 - throw error in handler without try / catch\n3:19 - express error handler setup\n4:00 - throw error in handler in async handler without try / catch\n5:05 - Installing v5\n5:16 - express types not updated yet\n5:41 - sendfile removed / renamed to sendFile\n5:56 - using express v5\n6:31 - send method status argument removed\n7:03 - path route matching syntax change\n7:16 - req.query not writable\n7:20 - async handlers are now caught\n7:57 - deprecated methods from v4 are removed in v5\n9:01 - pluralized accepts method names\n9:09 - app.param leading colon ignored\n9:14 - res.send no long accepts just status code - use res.sendStatus\n9:47 - v5 upgrades not that bad\n9:59 - v5 type updates waiting to be merged\n10:21 - Thanks!\n\n📖 Learn React + TypeScript: https://www.reactroots.com/\n📩 Sign up for my mailing list: https://list.coding.garden/\n💖 Donate: https://coding.garden/donate\n😍 Pledge: https://coding.garden/pledge\n💬 Discord: https://coding.garden/discord\n🎉 Stickers: https://coding.garden/stickers\n💻 Gear List: https://coding.garden/gear\n🔎 Search for more Coding Garden videos here: https://coding.garden/videos\n🗣 View the Coding Garden FAQ here: https://github.com/CodingGarden/faqs",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Aee5mLIc5xQ",
        "title": "Coding Garden: A New Chapter",
        "publishedAt": "2 years ago",
        "durationSeconds": 328,
        "views": 9411,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I've joined ‪@syntaxfm‬ full-time as a Senior Creator (Video). I'll be working on videos for their YouTube channel and other social platforms. Read more here: https://coding.garden/syntax/\n\nIf you're new to Coding Garden, learn about me here: https://coding.garden/faq/\n\nWatch the announcement video here:    • Welcome CJ!  \n\n00:00 Welcome\n00:42 What is Syntax / Sentry?\n01:40 Expanding the Syntax Team\n02:03 What will you do at Syntax?\n02:23 A shift in format / style\n03:21 What will happen to Coding Garden?\n04:26 Follow Syntax EVERYWHERE\n04:50 Thanks\n\nFollow Syntax everywhere:\n   / @syntaxfm  \n  / syntaxfm  \n  / syntax_fm  \nhttps://github.com/syntaxfm\n  / syntaxfm  \nhttps://www.threads.net/@syntax_fm\n\nWrite better software with Sentry: https://sentry.io/syntax/\n\nListen to Scott and Wes talk to David Cramer about the Syntax acquisition: https://syntax.fm/show/600/600th-epis...\n\nRead about the acquisition here: https://blog.sentry.io/syntax-sentry-...\n\nCheckout Randy's channel here on YouTube: ‪@randyrektor‬ \n\nMusic by Chillhop Music: https://chillhop.ffm.to/creatorcred\nAllem Iversom, little blue - One Eye Open https://chll.to/495c1543\nAllem Iversom, little blue - Saved For Sunset https://chll.to/a51ba5cd\nAllem Iversom, little blue - Zoned https://chll.to/dc4645c8",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OxL9q64xWuE",
        "title": "Everything I Learned Trying Laravel / PHP",
        "publishedAt": "2 years ago",
        "durationSeconds": 1177,
        "views": 13656,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video I recap everything I learned while trying Laravel / PHP.\n\nThis is a highlight of a livestream. View the full stream here:    • Trying PHP / Laravel | Try Day Friday  \n\nView the notes / code I wrote here: https://github.com/CodingGarden/tryda...\n\nLearn more about laravel here: https://laravel.com/\n\n📩 Sign up for my mailing list: https://list.coding.garden/\n💖 Donate: https://coding.garden/donate\n😍 Pledge: https://coding.garden/pledge\n🎉 Stickers: https://coding.garden/stickers\n💻 Gear List: https://coding.garden/gear\n🔎 Search for more Coding Garden videos here: https://coding.garden/videos\n🗣 View the Coding Garden FAQ here: https://github.com/CodingGarden/faqs\n\nMusic by Chillhop Music: https://chillhop.ffm.to/creatorcred",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fnQdZdxYxrU",
        "title": "XSS Explained with React and Vanilla JS Examples | Cross Site Scripting | dangerouslySetInnerHTML",
        "publishedAt": "2 years ago",
        "durationSeconds": 1566,
        "views": 5448,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, I talk about the basics of Cross Site Scripting (XSS), how to exploit it and how to prevent it.\n\nSee all of the notes and code from this stream here: https://github.com/CodingGarden/learn...\n\nThis is a highlight of a livestream. Watch the full stream here:    • What is XSS? | Web Security Wednesday  \n\nXSS on Wikipedia: https://en.wikipedia.org/wiki/Cross-s...\nXSS on OWASP: https://owasp.org/www-community/attac...\nXSS on Snyk.io: https://learn.snyk.io/lesson/xss/\nPlay the XSS Game: https://xss-game.appspot.com/\n\n00:00 Welcome\n00:22 What is XSS?\n01:04 First Look at XSS\n01:38 Why this is BAD\n02:53 Reflected XSS\n03:13 Stored XSS\n03:54 Real World XSS\n05:05 Twitter XSS Explained\n05:34 Blind XSS\n06:12 Vulnerable Code with innerHTML\n07:51 Safe Code with textContent\n08:58 Sanitizing HTML with a custom function\n11:50 Safe Code with DOMPurify\n14:09 Never Trust User Provided Input\n15:16 Preventing XSS Summary\n16:24 Fixing Attribute Injection\n18:04 This scares me\n18:33 XSS in React\n19:41 dangerouslySetInnerHTML in React\n21:00 Trust no one\n21:44 DOMPurify with React\n23:04 XSS Brain Implant\n23:52 XSS for Backend Devs\n24:36 Scanners and Static Code Analysis\n25:00 Conclusion / Summary\n\n📩 Sign up for my mailing list: https://list.coding.garden/\n💖 Donate: https://coding.garden/donate\n😍 Pledge: https://coding.garden/pledge\n🎉 Stickers: https://coding.garden/stickers\n💻 Gear List: https://coding.garden/gear\n🔎 Search for more Coding Garden videos here: https://coding.garden/videos\n🗣 View the Coding Garden FAQ here: https://github.com/CodingGarden/faqs",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RLy-KJSyK4w",
        "title": "JavaScript Dev Learns Rust | Building a CLI tool with Rust and clap",
        "publishedAt": "2 years ago",
        "durationSeconds": 2117,
        "views": 8184,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video I learn the basics of the Rust programming language LIVE while trying to build a CLI tool.\n\nView the notes I took and code I wrote here: https://github.com/CodingGarden/tryday-friday/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bPj_XrPbPUM",
        "title": "Private vs Public Networks Explained",
        "publishedAt": "2 years ago",
        "durationSeconds": 611,
        "views": 6985,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video I explain the basics of private and public networks and how they are involved with learning to hack.\n\nThis is a highlight of a livestream. Checkout the full stream here: https://www.y...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pY10RVeAnbc",
        "title": "What is a monorepo? | Getting started with nx",
        "publishedAt": "2 years ago",
        "durationSeconds": 1110,
        "views": 38201,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video I talk about monorepos, what are they, why we use them, what options are available and how to get started.\n\nThis is a clip from a livestream. Watch the full stream here: https://www.y...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Pvl95geT1Xw",
        "title": "Trying htmx | Try Day Friday Highlight",
        "publishedAt": "2 years ago",
        "durationSeconds": 333,
        "views": 6092,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video I learn what htmx is and try to make the example on their homepage work.\n\nThis is a clip from a livestream. Watch the full stream here: https://www.youtube.com/watch?v=o1ddegAzwp0...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Bq0w58wn4oQ",
        "title": "Advent of Code 2023 - Day 2 - Solving with JavaScript",
        "publishedAt": "2 years ago",
        "durationSeconds": 1346,
        "views": 7866,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video I solve day 2 of Advent of Code 2023, a daily coding problem challenge for the month of December. Learn more: https://adventofcode.com/\n\nJoin the Coding Garden AOC leaderboard...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vxusoaZ5kAw",
        "title": "Advent of Code 2023 - Day 1 - Solving with JavaScript",
        "publishedAt": "2 years ago",
        "durationSeconds": 2213,
        "views": 19254,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video I solve day 1 of Advent of Code 2023, a daily coding problem challenge for the month of December. Learn more: https://adventofcode.com/\n\nThis is an excerpt from a live stream...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "iCK1coch1wA",
        "title": "RUNES - Coming in Svelte v5 | My Take",
        "publishedAt": "2 years ago",
        "durationSeconds": 1150,
        "views": 4565,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video I discuss what runes are, why they are needed and give my honest opinion on what I think of them. I also answer questions and discuss opinions shared in the live stream chat....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WaI2L_YsMFw",
        "title": "Tutorials vs Docs vs Examples - How to Learn a Library or Framework",
        "publishedAt": "2 years ago",
        "durationSeconds": 161,
        "views": 20930,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "When deciding to learn or use a library or framework, you will often come across a tutorial, documentation and examples. This video talks about the differences and benefits of each.\n\nThis is...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8_d5AqKfCI4",
        "title": "Just Read The Docs",
        "publishedAt": "2 years ago",
        "durationSeconds": 329,
        "views": 18972,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Understanding documentation takes time and practice, but if you want to progress in your programming journey, you have to start reading and learning from the docs instead of video tutorials....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eLR3aM3HLME",
        "title": "Programmer goes OUTSIDE to answer your CODE questions",
        "publishedAt": "2 years ago",
        "durationSeconds": 921,
        "views": 2688,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video I answer your CODE questions while hiking and camping. I talk about my dog and why I think you should go camping if you haven't. I also talk about getting a job with only knowing...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GZM2u6QtIV8",
        "title": "Solving Coding Problems as Fast as Possible",
        "publishedAt": "3 years ago",
        "durationSeconds": 439,
        "views": 6167,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video I try to solve as many 7 kyu Code Katas as possible in 7 minutes 77 seconds.\n\nCode Katas are small programming problems you can use to practice programming. These are found on...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "B-T69_VP2Ls",
        "title": "Deploy an Express API to Vercel",
        "publishedAt": "3 years ago",
        "durationSeconds": 366,
        "views": 91619,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I get asked how to do this a lot so I thought I'd make a video about it.\n\nServerless functions on vercel are typically stand alone request handlers, but it is possible to deploy an entire Express...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_4M46HRHoIw",
        "title": "6 NEW ES2023 Array Methods with React + TypeScript Examples",
        "publishedAt": "3 years ago",
        "durationSeconds": 622,
        "views": 11950,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video I showcase 6 new array methods available in ES2023.\n\nLearn more:\nhttps://github.com/tc39/proposal-array-find-from-last\nhttps://github.com/tc39/proposal-change-array-by-copy\n\n💜...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MjiWWOzp0vo",
        "title": "How to Structure and Organize a React + TypeScript App",
        "publishedAt": "3 years ago",
        "durationSeconds": 966,
        "views": 19928,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "React Roots is my new course that will teach you the basics of building modern single page web applications with React and TypeScript.\n\nVisit https://www.reactroots.com to learn more.\nBuy the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VfhRDGhAFi0",
        "title": "What is Vite? How does it work? Explaining all the files in a generated React + TypeScript App",
        "publishedAt": "3 years ago",
        "durationSeconds": 1508,
        "views": 16726,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "React Roots is my new course that will teach you the basics of building modern single page web applications with React and TypeScript.\n\nVisit https://www.reactroots.com to learn more.\nBuy the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9FRIB2GhIdk",
        "title": "What is TypeScript? What is its relation to JavaScript? Runtime vs Compile Time | TS Build Cycle",
        "publishedAt": "3 years ago",
        "durationSeconds": 1066,
        "views": 3166,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "React Roots is my new course that will teach you the basics of building modern single page web applications with React and TypeScript.\n\nVisit https://www.reactroots.com to learn more.\nBuy the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "M8bDgsEIgLo",
        "title": "ES Modules Intro | JS Scope Review (Global, Module, Function, Block) | var vs let vs const",
        "publishedAt": "3 years ago",
        "durationSeconds": 1589,
        "views": 1882,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "React Roots is my new course that will teach you the basics of building modern single page web applications with React and TypeScript.\n\nVisit https://www.reactroots.com to learn more.\nBuy the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tGgJFvSAOr4",
        "title": "Learn React and TypeScript - React Roots Course Intro and Overview",
        "publishedAt": "3 years ago",
        "durationSeconds": 782,
        "views": 3528,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "React Roots is my new course that will teach you the basics of building modern single page web applications with React and TypeScript.\n\nVisit https://www.reactroots.com to learn more.\nPreview...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mpxdDXxI_5c",
        "title": "Integrating the YouTube API with SvelteKit+ Form Enhance / Streaming Data / Redis Cache - 2023-04-07",
        "publishedAt": "3 years ago",
        "durationSeconds": 2327,
        "views": 3668,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video I summarize the work we did on our \"Friday\" project listd. An app that will allow users to create, share and watch lists of YouTube channels (and eventually other things).\n\nView...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "utszlYtLDBU",
        "title": "React Roots - React and TypeScript LIVE Course - Intro, Overview and FAQs",
        "publishedAt": "3 years ago",
        "durationSeconds": 856,
        "views": 3243,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "React Roots is my new LIVE course that will teach you the basics of building modern single page web applications with React and TypeScript. The course will run from April 10th to April 21st...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "coding.garden",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.73,
        "evidenceVideoIds": [
          "LncrRlu2n0o",
          "LBQvRVkMmzg",
          "TD_FwAIEpqI",
          "SBCnf85_iTY",
          "4sTrgQ9hfkU"
        ]
      },
      {
        "label": "com",
        "share": 0.67,
        "evidenceVideoIds": [
          "LncrRlu2n0o",
          "LBQvRVkMmzg",
          "TD_FwAIEpqI",
          "SBCnf85_iTY",
          "4sTrgQ9hfkU"
        ]
      },
      {
        "label": "learn",
        "share": 0.57,
        "evidenceVideoIds": [
          "4sTrgQ9hfkU",
          "3EIqEH_p0XE",
          "kY1EHa0dCss",
          "Aee5mLIc5xQ",
          "OxL9q64xWuE"
        ]
      },
      {
        "label": "code",
        "share": 0.43,
        "evidenceVideoIds": [
          "LncrRlu2n0o",
          "LBQvRVkMmzg",
          "TD_FwAIEpqI",
          "SBCnf85_iTY",
          "3EIqEH_p0XE"
        ]
      },
      {
        "label": "coding",
        "share": 0.43,
        "evidenceVideoIds": [
          "LncrRlu2n0o",
          "LBQvRVkMmzg",
          "TD_FwAIEpqI",
          "SBCnf85_iTY",
          "4sTrgQ9hfkU"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Monday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "D",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 32,
      "reason": "tier D composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier D — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 30,
    "failureType": null,
    "summary": "Coding Garden — 0.1M subs, D-tier sponsorship readiness, low contactability, respond within 30 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 32,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.78,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mid-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mid"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mid-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "none"
    },
    "benchmarkRange": {
      "creatorTier": "mid",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "5-12%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mid-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "ignore",
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": {
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "gaps": [
        "tier:D",
        "contactability:low"
      ]
    },
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "38e52a8f18870255b314874c331909dff3e93726320def9eceed5486b4e886fb",
      "inputsHash": "2cfb1f2fa11fd5f45e0ae0e23949d67eb498a5da4e1c3a74281c1ed4027179b4",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:48.036Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "fd6e742028661615c58c6d121868a1c280b325a6d76968cff79c728783277535",
    "channelId": "UC-91UA-Xy2Cvb98deRXuggA",
    "channelHandle": "@JoshuaFluke1",
    "channelName": "Joshua Fluke",
    "channelUrl": "https://www.youtube.com/@JoshuaFluke1",
    "description": "Interested in sponsoring the channel? Check out https://app.thoughtleaders.io/#/reserve?channelId=1629\n\nI make videos about life and the realities of the corporate world.",
    "joinDate": null,
    "location": null,
    "subscribers": 624000,
    "totalVideos": 1400,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_kLUMcqp88d1FRYFnDdMkr_gCg0iPlJtq4gLRk_r9DPGkc=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/joshuafluke/"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/JoshuaFluke"
      },
      {
        "platform": "facebook",
        "url": "https://www.facebook.com/Grindreel"
      },
      {
        "platform": "twitch",
        "url": "https://www.twitch.tv/joshuafluke"
      },
      {
        "platform": "app.thoughtleaders.io",
        "url": "https://app.thoughtleaders.io/#/reserve?channelId=1629"
      }
    ],
    "recentVideos": [
      {
        "videoId": "FftHjznbe-8",
        "title": "THE CORPORATE LADDER IS DEAD!",
        "publishedAt": "6 days ago",
        "durationSeconds": 305,
        "views": 30691,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \n  / discord  \n\nSocials🤳\n  / joshua_fluke  \n  / joshuafluke    📸\n  / joshuafluke    🐦\n\n📧 Email me directly!: grindreel@gmail.com\n📧 Business inquiries: Joshuafluke@thoughtleaders.io  \n\nMy Gear ⚙️:  https://kit.co/JoshuaFluke\n\n❤️ Support my content\n   / joshuafluke  \n\nThe corporate ladder is dead…\nnow it’s a “climbing wall.”\n\nYeah… apparently that’s better.\n\nIn this video, we go through this idea that AI is reshaping careers into something more “flexible”… and what that actually looks like in reality.\n\nBecause when you break it down, it still comes down to the same thing — decisions being made above you, roles getting reshaped, and jobs getting chipped away piece by piece.\n\nWe also get into how companies are pushing people to break their jobs into tasks for AI… and why that might not end the way they think it will.\n\nThis is just adding some context to what’s being said.\n\nLet me know what you think.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AfeKec9CmoE",
        "title": "LINKEDIN RECRUITERS LOSING THEIR MINDS!",
        "publishedAt": "8 days ago",
        "durationSeconds": 262,
        "views": 274352,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \n  / discord  \n\nSocials🤳\n  / joshua_fluke  \n  / joshuafluke    📸\n  / joshuafluke    🐦\n\n📧 Email me directly!: grindreel@gmail.com\n📧 Business inquiries: Joshuafluke@thoughtleaders.io  \n\nMy Gear ⚙️:  https://kit.co/JoshuaFluke\n\n❤️ Support my content\n   / joshuafluke  \n\nApparently… you’re not even answering the phone correctly now.\n\nSay “hello”? Wrong.\nDon’t correct someone when they say your name wrong? Also wrong.\nMiss one recruiter call? Blacklisted.\n\nIn this video, we go through some of the latest job advice and recruiter takes — and why it feels like no matter what you do, it’s somehow the wrong move.\n\nWe also get into the classic “just work for free” advice… and why that keeps getting pushed.\n\nThis is what the job search looks like right now.\n\nLet me know what you think.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XPrJqJg0W8A",
        "title": "TABOO RESUME ADVICE: STOP GIVING AWAY ALL THE DETAILS!",
        "publishedAt": "10 days ago",
        "durationSeconds": 484,
        "views": 24788,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \n  / discord  \n\nSocials🤳\n  / joshua_fluke  \n  / joshuafluke    📸\n  / joshuafluke    🐦\n\n📧 Email me directly!: grindreel@gmail.com\n📧 Business inquiries: Joshuafluke@thoughtleaders.io  \n\nMy Gear ⚙️:  https://kit.co/JoshuaFluke\n\n❤️ Support my content\n   / joshuafluke  \n\nTaboo resume advice… stop giving them so much information.\n\nA lot of this stuff feels like it should help — listing “founder,” explaining gaps, adding dates, showing everything you’ve done.\n\nBut it doesn’t work like that.\n\nYou end up giving people more reasons to filter you out before you even get a chance to explain anything.\n\nIn this video, we go through some of the biggest ones — LinkedIn “open to work,” listing founder, job gaps, education dates, skills sections — and what people actually think when they see it.\n\nThis isn’t about lying…\nit’s about not oversharing things that hurt you.\n\nLet me know what you’ve got on your resume right now.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EM3PWQXxaMo",
        "title": "THIS IS STILL WHY \"NOBODY WANTS TO WORK ANYMORE!\"",
        "publishedAt": "12 days ago",
        "durationSeconds": 282,
        "views": 78936,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \n  / discord  \n\nSocials🤳\n  / joshua_fluke  \n  / joshuafluke    📸\n  / joshuafluke    🐦\n\n📧 Email me directly!: grindreel@gmail.com\n📧 Business inquiries: Joshuafluke@thoughtleaders.io  \n\nMy Gear ⚙️:  https://kit.co/JoshuaFluke\n\n❤️ Support my content\n   / joshuafluke  \n\n“Nobody wants to work anymore…”\n\nMeanwhile… this is what applying to jobs looks like.\n\nWrong interview locations, broken AI interviews, getting rejected after scheduling, almost getting an offer and then… nope.\n\nYou can spend hours, days, even full 8-hour interview loops… and still end up right back where you started.\n\nAnd even the applications themselves are wild now — trick questions, secret codes, personality tests, and somehow you’re expected to be available basically 24/7.\n\nThis video just goes through what people are actually dealing with right now trying to get a job.\n\nLet me know what your experience has been.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "H7Vv4n10UBw",
        "title": "THE AI EMPLOYEE TAKEOVER IS HERE!",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 224,
        "views": 18035,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \n  / discord  \n\nSocials🤳\n  / joshua_fluke  \n  / joshuafluke    📸\n  / joshuafluke    🐦\n\n📧 Email me directly!: grindreel@gmail.com\n📧 Business inquiries: Joshuafluke@thoughtleaders.io  \n\nMy Gear ⚙️:  https://kit.co/JoshuaFluke\n\n❤️ Support my content\n   / joshuafluke  \n\nCompanies are now rolling out AI that watches everything you do at work — clicks, keystrokes, your screen — so it can learn your job.\n\nAnd yeah… that’s exactly what it sounds like.\n\nYou’re doing your normal work, but at the same time you’re building the system that replaces you.\n\nNo opt out. No real explanation. Just “trust us.”\n\nThis video goes through what’s actually happening, why companies are doing it, and what that looks like if you’re the one sitting there using it every day.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zsGzb-bAe7A",
        "title": "AI BOTS ARE NOW \"RENTING HUMANS\"!",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 301,
        "views": 28231,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \n  / discord  \n\nSocials🤳\n  / joshua_fluke  \n  / joshuafluke    📸\n  / joshuafluke    🐦\n\n📧 Email me directly!: grindreel@gmail.com\n📧 Business inquiries: Joshuafluke@thoughtleaders.io  \n\nMy Gear ⚙️:  https://kit.co/JoshuaFluke\n\n❤️ Support my content\n   / joshuafluke  \n\n\nAI isn’t replacing workers, so stop freaking out, it’s renting them instead. \n\nYeah… this is real.\n\nThere’s now a platform where AI agents can hire humans to do physical tasks like pick up packages, attend meetings, verify things in the real world.\n\nBasically… you’re an API with legs.\n\nIn this video, we break down what this actually is, how it works, and why something like this even exists in the first place.\n\nSays a lot about where the job market is heading.… are you signing up for this?",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nIbSw-82_3w",
        "title": "SECRET PAYCUTS HAVE ARRIVED!",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 240,
        "views": 33760,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \n  / discord  \n\nSocials🤳\n  / joshua_fluke  \n  / joshuafluke    📸\n  / joshuafluke    🐦\n\n📧 Email me directly!: grindreel@gmail.com\n📧 Business inquiries: Joshuafluke@thoughtleaders.io  \n\nMy Gear ⚙️:  https://kit.co/JoshuaFluke\n\n❤️ Support my content\n   / joshuafluke",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1L2RB-PmtoQ",
        "title": "WORKERS REFUSING TO TRAIN THEIR AI REPLACEMENTS!",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 346,
        "views": 112796,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \n  / discord  \n\nSocials🤳\n  / joshua_fluke  \n  / joshuafluke    📸\n  / joshuafluke    🐦\n\n📧 Email me directly!: grindreel@gmail.com\n📧 Business inquiries: Joshuafluke@thoughtleaders.io  \n\nMy Gear ⚙️:  https://kit.co/JoshuaFluke\n\n❤️ Support my content\n   / joshuafluke  \n\nEmployees are now being blamed for not… training their replacements fast enough.\n\nYeah, that’s where we’re at.\n\nIn this video, we go through this whole idea that workers are “sabotaging” AI rollouts… when in reality, companies are asking them to document their jobs, train AI systems, and basically automate themselves out of a paycheck.\n\nAnd then acting surprised when people don’t do that enthusiastically.\n\nWe break down how this actually works — from documenting workflows, to AI watching your screen, to “AI super users” getting rewarded (temporarily) for building the system that replaces them.\n\nLet me know what you think.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ITKw0kMn4rQ",
        "title": "THIS IS WHY \"PEOPLE DON'T WANT TO WORK ANYMORE\"",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 350,
        "views": 61625,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \n  / discord  \n\nSocials🤳\n  / joshua_fluke  \n  / joshuafluke    📸\n  / joshuafluke    🐦\n\n📧 Email me directly!: grindreel@gmail.com\n📧 Business inquiries: Joshuafluke@thoughtleaders.io  \n\nMy Gear ⚙️:  https://kit.co/JoshuaFluke\n\n❤️ Support my content\n   / joshuafluke  \n\n“Nobody wants to work anymore…”\n\nYeah… or maybe applying to jobs looks like this.\n\nIn this video, we go through what the hiring process actually feels like right now — 172-question personality tests, IQ tests for $14/hour jobs, unpaid projects, ghosted interviews, and recruiters who somehow cancel your interview after you’ve already prepared for it.\n\nWe also get into why asking about salary is treated like a crime, why ranges don’t mean anything, and why it feels like no matter what you do… it’s never enough.\n\nJust adding some context to what people are actually dealing with.\n\nLet me know what your experience has been lately.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "87kynkvwgM8",
        "title": "\"POLY-EMPLOYMENT!\" IS HERE!",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 239,
        "views": 25286,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \n  / discord  \n\nSocials🤳\n  / joshua_fluke  \n  / joshuafluke    📸\n  / joshuafluke    🐦\n\n📧 Email me directly!: grindreel@gmail.com\n📧 Business inquiries: Joshuafluke@thoughtleaders.io  \n\nMy Gear ⚙️:  https://kit.co/JoshuaFluke\n\n❤️ Support my content\n   / joshuafluke  \n\n“Gen Z doesn’t want full-time jobs… they want multiple part-time jobs.”\n\nYeah… or maybe that’s just what’s available.\n\nIn this video, we look at the new buzzword “poly-employment” and why it’s being pushed like it’s some kind of lifestyle choice instead of what it actually is.\n\nIn reality working multiple jobs without benefits isn’t really a \"trend\" is because there's no other choice.\n\nWe go through the logic behind this, the job market reality, and what these roles actually look like.\n\nJust adding some context to it.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nVHBrXayUHs",
        "title": "CEOS ARE LOSING IT!",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 482,
        "views": 259782,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \nhttps://discord.gg/Joshuafluke\n\nSocials🤳\nhttps://www.tiktok.com/@joshua_fluke...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "417YNiiUvds",
        "title": "THIS IS AGAIN WHY \"NOBODY WANTS TO WORK ANYMORE!\"",
        "publishedAt": "1 month ago",
        "durationSeconds": 491,
        "views": 197671,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \nhttps://discord.gg/Joshuafluke\n\nSocials🤳\nhttps://www.tiktok.com/@joshua_fluke...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jSLUX6x9sZs",
        "title": "55 YEARS OF WORK FOR THIS?!",
        "publishedAt": "1 month ago",
        "durationSeconds": 476,
        "views": 40198,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go to https://buyraycon.com/joshuaflukeopen to get 15% off. Thanks to Raycon for sponsoring!\n\n🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "HlaqIUspd1w",
        "title": "YOUR JOB JUST ADDED LOOT BOXES FOR TIME OFF!",
        "publishedAt": "1 month ago",
        "durationSeconds": 257,
        "views": 18856,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \nhttps://discord.gg/Joshuafluke\n\nSocials🤳\nhttps://www.tiktok.com/@joshua_fluke...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IPfkGP7yOEY",
        "title": "THE END OF BEING OVER EMPLOYED!",
        "publishedAt": "1 month ago",
        "durationSeconds": 486,
        "views": 93090,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \nhttps://discord.gg/Joshuafluke\n\nSocials🤳\nhttps://www.tiktok.com/@joshua_fluke...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sylKeShEV6o",
        "title": "THIS IS ALSO WHY \"NOBODY WANTS TO WORK ANYMORE!\"",
        "publishedAt": "1 month ago",
        "durationSeconds": 506,
        "views": 213350,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \nhttps://discord.gg/Joshuafluke\n\nSocials🤳\nhttps://www.tiktok.com/@joshua_fluke...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Ou2gJ-zinQo",
        "title": "EVERYONE ON LINKEDIN IS CHATGPT! - ITS NOT THIS, ITS THAT!",
        "publishedAt": "1 month ago",
        "durationSeconds": 617,
        "views": 40890,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \nhttps://discord.gg/Joshuafluke\n\nSocials🤳\nhttps://www.tiktok.com/@joshua_fluke...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qxDnyFGKCtM",
        "title": "RECRUITER CRASHING OUT OVER RESUMES",
        "publishedAt": "1 month ago",
        "durationSeconds": 275,
        "views": 48819,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \nhttps://discord.gg/Joshuafluke\n\nSocials🤳\nhttps://www.tiktok.com/@joshua_fluke...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JkF21Sb345w",
        "title": "STOP BEING SO \"HONEST\" ON YOUR RESUME!",
        "publishedAt": "1 month ago",
        "durationSeconds": 370,
        "views": 17214,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \nhttps://discord.gg/Joshuafluke\n\nSocials🤳\nhttps://www.tiktok.com/@joshua_fluke...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1uRPKBuEqbA",
        "title": "THIS IS WHY \"NOBODY WANTS TO WORK ANYMORE!\"",
        "publishedAt": "1 month ago",
        "durationSeconds": 709,
        "views": 249842,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \nhttps://discord.gg/Joshuafluke\n\nSocials🤳\nhttps://www.tiktok.com/@joshua_fluke...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "arM615sBdZ8",
        "title": "RECRUITERS BACK TO CRASHING OUT - BLAMING APPLICANTS!",
        "publishedAt": "1 month ago",
        "durationSeconds": 320,
        "views": 120555,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \nhttps://discord.gg/Joshuafluke\n\nSocials🤳\nhttps://www.tiktok.com/@joshua_fluke...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SES2dL7ardM",
        "title": "YOUR NEXT PAYCHECK? AI CREDITS!",
        "publishedAt": "1 month ago",
        "durationSeconds": 266,
        "views": 75947,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \nhttps://discord.gg/Joshuafluke\n\nSocials🤳\nhttps://www.tiktok.com/@joshua_fluke...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IJ9npjmTIo8",
        "title": "AI INTERVIEWS ARE OUT OF CONTROL! SO I TROLLED ANOTHER ONE...",
        "publishedAt": "2 months ago",
        "durationSeconds": 571,
        "views": 52854,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Mike's Channel - https://www.youtube.com/@UCXVDBeCwro9FqNeBr41Q2BQ \n🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \nhttps://discord....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "n4lzOYAJmDc",
        "title": "AI INTERVIEWS ON THE RISE! SO I TROLLED ANOTHER ONE...",
        "publishedAt": "2 months ago",
        "durationSeconds": 1455,
        "views": 173341,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \nhttps://discord.gg/Joshuafluke\n\nSocials🤳\nhttps://www.tiktok.com/@joshua_fluke...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fTRA3cpm_cI",
        "title": "THIS IS WHY YOU'RE UNDERPAID!",
        "publishedAt": "2 months ago",
        "durationSeconds": 562,
        "views": 78437,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out https://skywork.ai/p/JEo4Us today! Get 20% off when you use my code: Joshua #skywork \n\n🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "90hyD483Vr8",
        "title": "Welcome To Pay-To-Work!",
        "publishedAt": "2 months ago",
        "durationSeconds": 437,
        "views": 444916,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get Exclusive NordVPN deal + 4 months extra here → https://nordvpn.com/joshuafluke. It’s risk-free with Nord’s 30-day money-back guarantee! ✌️\n\nThanks to NordVPN for sponsoring this...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JX5joQpAoys",
        "title": "The Job Market Is Officially Broken",
        "publishedAt": "2 months ago",
        "durationSeconds": 358,
        "views": 79718,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \nhttps://discord.gg/Joshuafluke\n\nSocials🤳\nhttps://www.tiktok.com/@joshua_fluke...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QQ4txqn_5Zo",
        "title": "YOUR BOSS'S AI IS LEARNING YOUR JOB",
        "publishedAt": "2 months ago",
        "durationSeconds": 303,
        "views": 19236,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \nhttps://discord.gg/Joshuafluke\n\nSocials🤳\nhttps://www.tiktok.com/@joshua_fluke...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "J2vKhJbIJ20",
        "title": "THE DOWNFALL OF LINKEDIN - A PROFESSIONAL CLOWNSHOW",
        "publishedAt": "2 months ago",
        "durationSeconds": 418,
        "views": 32889,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Plaud NotePin Valentine's Day Promotion: 20% Off\nDiscount Period: Feb 9th – Feb 14th (Valentine's Day)\nDTC: https://bit.ly/4keTlzL\nAmazon: https://amzn.to/4qZqcez\n\n🔥 Need a resume/cover...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dPSfTxh0etI",
        "title": "TABOO RESUME ADVICE - STOP LISTING SKILLS LIKE THIS",
        "publishedAt": "3 months ago",
        "durationSeconds": 589,
        "views": 13574,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Need a resume/cover letter? Check out my templates!  \nhttps://joshuafluke.store/\n\n👊 Join the community! \nhttps://discord.gg/Joshuafluke\n\nSocials🤳\nhttps://www.tiktok.com/@joshua_fluke...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 22,
      "uploadsLast90d": 30,
      "uploadCadenceWeekly": 2.33,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 52854,
      "viewsPerVideoP90Last90d": 249842,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 52854,
      "p90Views": 249842,
      "p99Views": 274352,
      "outperformingVideosLast90d": 4
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 2,
      "sponsorBrandsDetected": [
        "Raycon",
        "NordVPN"
      ],
      "affiliateLinkHosts": [
        "bit.ly",
        "amzn.to"
      ],
      "sponsorshipFrequencyPercent": 7,
      "lastSponsoredVideoDate": "2026-04-14",
      "detectionDetail": [
        {
          "brand": "Raycon",
          "videoId": "jSLUX6x9sZs",
          "confidence": 0.95,
          "evidence": "description: Thanks to Raycon for sponsoring",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:50.003Z"
        },
        {
          "brand": "NordVPN",
          "videoId": "90hyD483Vr8",
          "confidence": 0.95,
          "evidence": "description: Thanks to NordVPN for sponsoring",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:50.003Z"
        }
      ]
    },
    "sponsorshipMaturity": {
      "tier": "occasional",
      "evidence": {
        "sponsoredVideoCountLast90d": 2,
        "uniqueSponsorBrandsLast90d": 2,
        "firstSponsoredVideoDate": "2026-05-14"
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "consumer-electronics",
          "confidence": 0.25,
          "evidence": [
            "historical-sponsor:Raycon"
          ]
        },
        {
          "category": "vpn",
          "confidence": 0.25,
          "evidence": [
            "historical-sponsor:NordVPN"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "twitch.tv",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "medium",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": true,
        "affiliateLinksPresent": true
      },
      "interpretation": "Reachable but with gaps: missing one or more of email validation, sponsor history, or external website."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 1,
        "evidenceVideoIds": [
          "FftHjznbe-8",
          "AfeKec9CmoE",
          "XPrJqJg0W8A",
          "EM3PWQXxaMo",
          "H7Vv4n10UBw"
        ]
      },
      {
        "label": "need",
        "share": 0.97,
        "evidenceVideoIds": [
          "FftHjznbe-8",
          "AfeKec9CmoE",
          "XPrJqJg0W8A",
          "EM3PWQXxaMo",
          "H7Vv4n10UBw"
        ]
      },
      {
        "label": "resume",
        "share": 0.97,
        "evidenceVideoIds": [
          "FftHjznbe-8",
          "AfeKec9CmoE",
          "XPrJqJg0W8A",
          "EM3PWQXxaMo",
          "H7Vv4n10UBw"
        ]
      },
      {
        "label": "cover",
        "share": 0.97,
        "evidenceVideoIds": [
          "FftHjznbe-8",
          "AfeKec9CmoE",
          "XPrJqJg0W8A",
          "EM3PWQXxaMo",
          "H7Vv4n10UBw"
        ]
      },
      {
        "label": "joshuafluke",
        "share": 0.97,
        "evidenceVideoIds": [
          "FftHjznbe-8",
          "AfeKec9CmoE",
          "XPrJqJg0W8A",
          "EM3PWQXxaMo",
          "H7Vv4n10UBw"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Tuesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "B",
      "rationale": "content pillars match high-value sponsor categories, consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "moderate",
        "businessContactSignal": "moderate",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "occasional"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 50,
      "reason": "fits consumer-electronics",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.5
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.6
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.45
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.6,
      "level": "medium",
      "coldStart": false
    },
    "whyThisMatters": "fits consumer-electronics. Channel is in the active outreach window.",
    "whyNow": "Last sponsored video 30 days ago — within typical sponsorship-decision lookback for similar creators.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Joshua Fluke — 0.6M subs, B-tier sponsorship readiness, medium contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 50,
      "readyForOutreach": false,
      "blockers": [
        "contactability:medium — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.6,
      "urgency": 0,
      "noiseRisk": 0.4
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": true,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "occasional sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:occasional",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": true,
      "requiresEnrichment": true,
      "priorityQueue": "medium"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "consumer-electronics",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "B-tier readiness — nurture or enrich before outreach.",
      "appliedRules": [
        "lastSponsored<90d"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "optimal",
      "reason": "Last sponsored video 30 days ago; within typical 14-30d decision-cycle for similar creators.",
      "decayRisk": 0.5
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 52,
      "reasons": [
        "Active sponsor history within last 90d (2 videos)"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "fd6e742028661615c58c6d121868a1c280b325a6d76968cff79c728783277535",
      "inputsHash": "f55a2ac8f12330f47c815ef6e22b5808cc9770761f1fd7e07ef690b0bea7e860",
      "rulesApplied": [
        "sponsorship-history-occasional",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:49.201Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "6b8e5cae9b3addef870d3ed88b17d9ef2e88ae73623d32f291b31c0e6f490a80",
    "channelId": "UCqrILQNl5Ed9Dz6CGMyvMTQ",
    "channelHandle": "@CleverProgrammer",
    "channelName": "Clever Programmer",
    "channelUrl": "https://www.youtube.com/@CleverProgrammer",
    "description": "You can find awesome programming lessons here! Also, expect programming tips and tricks that will take your coding skills to the next level.",
    "joinDate": null,
    "location": null,
    "subscribers": 1300000,
    "totalVideos": 844,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_kotL-OQVXsay2vKRujBvNWcY47UZUwC-axNozc8Mzdutk=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "cleverprogrammer.com",
        "url": "https://CleverProgrammer.com"
      },
      {
        "platform": "facebook",
        "url": "https://facebook.com/cleverprogrammerr"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/cleverqazi"
      },
      {
        "platform": "instagram",
        "url": "https://instagram.com/realcleverprogrammer"
      },
      {
        "platform": "linkedin",
        "url": "https://www.linkedin.com/school/clever-programmer"
      }
    ],
    "recentVideos": [
      {
        "videoId": "S2hzaNkAQyA",
        "title": "So... Composer 2 by Cursor is just a KIMI wrapper... 🤣",
        "publishedAt": "1 month ago",
        "durationSeconds": 240,
        "views": 2934,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": null,
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wrp-E6gTD_0",
        "title": "This is INSANE! You won't believe which LLM model WON 👀",
        "publishedAt": "1 year ago",
        "durationSeconds": 378,
        "views": 5416,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want to Learn Coding 10x Faster with AI? 👉 https://start.getpoppy.ai/join?ref=yt-llm-qazi",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uuLzefIm6y8",
        "title": "Deepseek vs. O3-mini vs. Qwen 2.5 max vs. Claude!! (Real World Examples)",
        "publishedAt": "1 year ago",
        "durationSeconds": 461,
        "views": 6750,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want to Learn Coding 10x Faster with AI? 👉 https://start.getpoppy.ai/join?ref=yt-qazi",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "P_5bzwSa6EA",
        "title": "Cursor Has SHARED AI Knowledge Base 🤯",
        "publishedAt": "1 year ago",
        "durationSeconds": 348,
        "views": 4084,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want to Learn Coding 10x Faster with AI? 👉 https://start.getpoppy.ai/join?ref=yt-qazi",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kmqG_JinIbM",
        "title": "Deepseek... More like Deep SUCKS. My honest thoughts...",
        "publishedAt": "1 year ago",
        "durationSeconds": 482,
        "views": 5018,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "FREE tool -- Want to Learn Coding 10x Faster with AI? 👉 https://lovable.dev/#via=cleverprogrammer",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "em6lrjGagOY",
        "title": "Google Wrote 25% of It's Code with AI",
        "publishedAt": "1 year ago",
        "durationSeconds": 951,
        "views": 5257,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want to Learn Coding 10x Faster with AI? 👉 https://start.getpoppy.ai/join?ref=yt-qazi-google-ai-jobs",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rpsUa-b3AtM",
        "title": "Reacting to Why Are AI Generated Videos So Terrifying?",
        "publishedAt": "1 year ago",
        "durationSeconds": 2877,
        "views": 2859,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want to Learn Coding 10x Faster with AI? 👉 https://getpoppy.ai",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ogdtB_m6G5g",
        "title": "JavaScript Tutorial 2025 for Beginners - Full Course in 10 Hours",
        "publishedAt": "1 year ago",
        "durationSeconds": 39442,
        "views": 44194,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 Join Poppy AI with $25 Off 👉 https://start.getpoppy.ai/javascript\n\n💻 FORK THIS REPL 👉 https://join.replit.com/cp-javascript\n\nThis course is perfect for Beginners as well as Intermediate Developers.\n\n⏳Timestamps:\n(waiting for someone to drop it as a comment and I promise i'll update this as soon as they do 😂. Cuz this was wayyyy to much work to make and it's really late at night and I ain't about to start writing all the timestamps right now 🤣)\n\n#javascript #programming #coding #tutorial #codingtutorial #2025",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "J6bu0nqpxZU",
        "title": "New Claude AI Can Control Your Computer Now!",
        "publishedAt": "1 year ago",
        "durationSeconds": 1177,
        "views": 7476,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get Access to Poppy AI 👉 https://start.getpoppy.ai/join?ref=youtube-claude-computer",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TGbPvKAZnFU",
        "title": "Major GPT Upgrade | *CANVAS* Crash Course",
        "publishedAt": "1 year ago",
        "durationSeconds": 1250,
        "views": 3948,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get Poppy AI & use code \"QAZI\" for $25 off 👉 https://getpoppy.ai",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "W-CafkucxgQ",
        "title": "Your CODE is broken. Until you DO THIS…",
        "publishedAt": "1 year ago",
        "durationSeconds": 885,
        "views": 4547,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want to Learn Coding 10x Faster with AI? 👉 Get Poppy AI here https://courses.cleverprogrammer.com/poppyai-trial/?utm_source=youtube&utm_medium=description&utm_content=yt-default&ref=yt-rant-seni...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IgKoVVE6NIM",
        "title": "10 AI Tools - You Must Know as a Developer in 2024",
        "publishedAt": "1 year ago",
        "durationSeconds": 1922,
        "views": 14849,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want to Learn Coding 10x Faster with AI? 👉 Get Poppy AI here https://courses.cleverprogrammer.com/poppy-ai-cp/?utm_source=youtube&utm_medium=description&utm_content=yt-default&ref=yt-topaitools...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "t1OOdRqYZ6Q",
        "title": "The resume that got a software engineer a $300,000 job at Google",
        "publishedAt": "1 year ago",
        "durationSeconds": 790,
        "views": 10353,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "📝 Link to the medium article: https://levelup.gitconnected.com/the-resume-that-got-a-software-engineer-a-300-000-job-at-google-8c5a1ecff40f\n\n🎬 Link to the YouTube video: https://www.youtube.c...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Y8nG_Qi8fMw",
        "title": "Stop watching coding tutorials. Do this instead.",
        "publishedAt": "1 year ago",
        "durationSeconds": 384,
        "views": 8787,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "3 DAY FREE TRIAL to POPPY AI 👉 https://courses.cleverprogrammer.com/poppy-ai-cp/?utm_source=youtube&utm_medium=description&utm_content=yt-stop-watching-coding-tutorials&ref=yt-stop-watching-codi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pq41n2LYIp8",
        "title": "Insecurity is stopping you from becoming a better developer",
        "publishedAt": "1 year ago",
        "durationSeconds": 834,
        "views": 3726,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "3 DAY FREE TRIAL to POPPY AI 👉 https://courses.cleverprogrammer.com/poppyai-trial/?utm_source=youtube&utm_medium=description&utm_content=yt-insecurity&ref=yt-insecurity",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IJwLKLIR94Y",
        "title": "Is Freecodecamp Worth It? My Honest Reaction",
        "publishedAt": "1 year ago",
        "durationSeconds": 1095,
        "views": 10526,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "3 DAY FREE TRIAL to POPPY AI 👉 https://courses.cleverprogrammer.com/poppyai-trial/?utm_source=youtube&utm_medium=description&utm_content=yt-default&ref=yt-freecodecamp",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8nwLA81uJGA",
        "title": "How AI ACTUALLY works... Neural Networks Deep Dive",
        "publishedAt": "1 year ago",
        "durationSeconds": 4767,
        "views": 8070,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "LIFETIME OFFER to POPPY AI 👉 https://courses.cleverprogrammer.com/poppy-ai-july4/?utm_source=youtube&utm_medium=description&utm_content=yt-ai-podcast&ref=yt-ai-podcast\n\nThis episode will...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kn1U-HCxF3Y",
        "title": "bad code cost Microsoft billions of dollars",
        "publishedAt": "1 year ago",
        "durationSeconds": 868,
        "views": 3702,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "3 DAY FREE TRIAL to POPPY AI 👉 https://courses.cleverprogrammer.com/poppyai-trial/?utm_source=youtube&utm_content=microsoft&ref=microsoft",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Hg2v86gVqd8",
        "title": "is this Voice AI better than GPT 4o?",
        "publishedAt": "1 year ago",
        "durationSeconds": 537,
        "views": 3843,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "It's called Moshi AI and the latency is unreal.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sK6L9SaY3eo",
        "title": "NEW Claude AI model will *SHOCK* you. It outperforms GPT4o",
        "publishedAt": "1 year ago",
        "durationSeconds": 3074,
        "views": 5881,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "July 4th Lifetime Access to Poppy 👉 https://courses.cleverprogrammer.com/poppy-ai-july4/?utm_source=youtube&utm_content=yt-claude-vs-gpt4o&ref=yt-claude-vs-gpt4o\n\nAI Search Video 👉 https://ww...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "K7E-rX6hNTY",
        "title": "Why we stopped using ENV files and replaced it with this tool instead...",
        "publishedAt": "1 year ago",
        "durationSeconds": 830,
        "views": 8961,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "July 4th 50% Off Sale of POPPY AI 👉  https://courses.cleverprogrammer.com/poppy-ai-july4/?ref=yt-stop-env",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uu_r26Wwa-E",
        "title": "F*ck Chatgpt. Learn THIS Instead",
        "publishedAt": "1 year ago",
        "durationSeconds": 457,
        "views": 7844,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "3 DAY FREE TRIAL to POPPY AI 👉 https://courses.cleverprogrammer.com/poppyai-trial/?utm_source=youtube&utm_content=f-chatgpt&ref=f-chatgpt",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "NTD4sBOVHlI",
        "title": "Why we stopped using VSCODE and replaced it with this AI tool instead...",
        "publishedAt": "1 year ago",
        "durationSeconds": 2120,
        "views": 14591,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Join Poppy AI 👉 https://getpoppy.ai/?utm_source=youtube&utm_medium=description&utm_content=stop-using-vscode&utm_cta=poppy 🚀\n\nCURSOR IDE 👉 https://www.cursor.com/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "aajcdM6jF5o",
        "title": "Day in the Life of a Software Developer (Building a Startup)",
        "publishedAt": "2 years ago",
        "durationSeconds": 1395,
        "views": 8884,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "FREE Training: How to Build Apps with AI & ChatGPT 👉 https://bit.ly/3UlJGvK\n\nOur software we're building Poppy AI 👉 https://getpoppy.ai\n\nOur Current Tech Stack\n- Frontend (Adalo)\n- Database...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cjJWYaFj5dk",
        "title": "Quitting YouTube to Build a SaaS to $10k/mo",
        "publishedAt": "2 years ago",
        "durationSeconds": 291,
        "views": 7624,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Me and Naz have decided to quit YouTube to build our own SaaS. \n\nWe've been teaching people how to code and build apps, but what really excites us is actually building software. \n\nWe moved...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zTUN77USXAg",
        "title": "5 Custom GPTs That Will 10x Your Productivity as a Developer",
        "publishedAt": "2 years ago",
        "durationSeconds": 1038,
        "views": 7432,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "FREE Training: How to Build Apps with AI & ChatGPT 👉 https://bit.ly/3IXvL92\n\nIn this video, I'm going to be sharing 5 ChatGPT Custom GPTs that will help you 10x your productivity as a Developer....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GPeYuHMYd1g",
        "title": "Day 5 of building an AI SaaS to $10k/mo",
        "publishedAt": "2 years ago",
        "durationSeconds": 83,
        "views": 3022,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#saas #ai #chatgpt #developer #developers #coders #builders #software #softwaredeveloper #softwareengineer #founder #founders #entrepreneur #entrepreneurship #startup #startuplife #startupbusiness...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DK6l9dbH_6A",
        "title": "Day 3 of building an AI SaaS to $10k/mo",
        "publishedAt": "2 years ago",
        "durationSeconds": 70,
        "views": 4371,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#saas #ai #chatgpt #developer #developers #coders #builders #software #softwaredeveloper #softwareengineer #founder #founders #entrepreneur #entrepreneurship #startup #startuplife #startupbusiness...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "aysrmDYhEqg",
        "title": "Build an AI SaaS in 30 Minutes (Next.js, Supabase, Stripe, LEAP AI, Vercel)",
        "publishedAt": "2 years ago",
        "durationSeconds": 2173,
        "views": 27413,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Link to Vercel Template  👉 https://vercel.com/templates/next.js/headshot-ai\n\nIn this tutorial, you’re gonna be building a full-stack AI headshot SaaS in less than 30 minutes 🤯\n\nFull...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cDUdW1NPLCE",
        "title": "🤖 What does programming look like in the future?",
        "publishedAt": "2 years ago",
        "durationSeconds": 61,
        "views": 4885,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🤖 What does programming look like in the future?\n\nAs much as you hear me say “End of programming” I don’t mean that we’re going to stop building apps or websites.\n\nWe’re still...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 1,
      "uploadsLast90d": 1,
      "uploadCadenceWeekly": 0.08,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 2934,
      "viewsPerVideoP90Last90d": 2934,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 2934,
      "p90Views": 2934,
      "p99Views": 2934,
      "outperformingVideosLast90d": 1
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "start.getpoppy.ai",
        "courses.cleverprogrammer.com",
        "bit.ly"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "cleverprogrammer.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.8,
        "evidenceVideoIds": [
          "wrp-E6gTD_0",
          "uuLzefIm6y8",
          "P_5bzwSa6EA",
          "kmqG_JinIbM",
          "em6lrjGagOY"
        ]
      },
      {
        "label": "ref",
        "share": 0.5,
        "evidenceVideoIds": [
          "wrp-E6gTD_0",
          "uuLzefIm6y8",
          "P_5bzwSa6EA",
          "em6lrjGagOY",
          "J6bu0nqpxZU"
        ]
      },
      {
        "label": "poppy",
        "share": 0.5,
        "evidenceVideoIds": [
          "ogdtB_m6G5g",
          "J6bu0nqpxZU",
          "TGbPvKAZnFU",
          "W-CafkucxgQ",
          "IgKoVVE6NIM"
        ]
      },
      {
        "label": "com",
        "share": 0.47,
        "evidenceVideoIds": [
          "ogdtB_m6G5g",
          "W-CafkucxgQ",
          "IgKoVVE6NIM",
          "t1OOdRqYZ6Q",
          "Y8nG_Qi8fMw"
        ]
      },
      {
        "label": "cleverprogrammer",
        "share": 0.37,
        "evidenceVideoIds": [
          "kmqG_JinIbM",
          "W-CafkucxgQ",
          "IgKoVVE6NIM",
          "Y8nG_Qi8fMw",
          "pq41n2LYIp8"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 29,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Clever Programmer — 1.3M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 29,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.81,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "6b8e5cae9b3addef870d3ed88b17d9ef2e88ae73623d32f291b31c0e6f490a80",
      "inputsHash": "4920bb5e71f83a582915039e393c7a372519117ec526dc92893d39c0a7d990e9",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:49.603Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "a7dd600cf08649923b0fe61d97a794c6577cc63e86183f54a65bfc42b3a8b9fe",
    "channelId": "UCV0qA-eDDICsRR9rPcnG7tw",
    "channelHandle": "@JomaTech",
    "channelName": "Joma Tech",
    "channelUrl": "https://www.youtube.com/@JomaTech",
    "description": "I talk about life in Silicon Valley and at big tech companies.\n\nFollow me on:\nInstagram: http://instagram.com/jomakaze\nTwitter: https://twitter.com/jomakaze\n\nBusiness inquiries: business@joma.io\n\nFacebook: Joma Tech \nInstagram: jomakaze",
    "joinDate": null,
    "location": null,
    "subscribers": 2340000,
    "totalVideos": 89,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_mG4JmFXvsedWCpp7tU-Nh-k_XuArgDd4U4_EJZpPjlYg=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "instagram",
        "url": "http://instagram.com/jomakaze"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/jomakaze"
      }
    ],
    "recentVideos": [
      {
        "videoId": "YRddOEtlnEk",
        "title": "life of an AI startup founder/CEO",
        "publishedAt": "7 months ago",
        "durationSeconds": 1665,
        "views": 978374,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Founder Mode now on Spotify!\nWARNING: Blindr Coin is not real, I didnt launch anything. Don’t fall for scams.\n\n💵 SUPPORT THE CHANNEL\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\nGift Patreon style: https://support.joma.io/\n\n📱 SOCIAL MEDIA\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n  / jomakaze  \n  / jomakaze  \n  / jomakaze  \n\n🎬 CREDITS\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\nCrew\nDP - JOHN ZENG -   / johnszeng  \n2nd DP + everything else - SAMON  SIRIPANICHGON -   / samonsiripanichgon  \n\nCast\nInvestor - SHRAVAN AMIN -   / shrave3  \r\nTeam Lead - RAYMOND MIRANDA -   / raimuuundo  \r\n\nPost Production\nCGI Artist - OLEG ZVYAGINTSEV -   / ostvk.digital  \nComposer - CAROL KUSWANTO -   / carolkuswanto  \nSound Mixer - CULLEN HERRON\r -   / cullenherron  \nMotion Graphics Designer\r - MATT CHO -   / itsmattcho  \n\nExtras\nISABEL VULLINGS -   / isabelvullings  \r\nALBERT MUNOZ -   / albertmunoz626  \n\nFriends I did not pay\nBRANDON FONG -   / brandon.j.fong  \nFRANCES XIN -   / frances.xx  \nRUI ZHANG\nJOYCE KUO -   / joycekuoo  \nKEVIN CHUNG -   / chungky_808  \nLAUREN KIM -   / laur.kim  \nTOSHAN VYSYARAJU -   / toshan_v  \n\nRed Shoe made by SARAH PAN - ​⁠‪@sarahpan‬ \n\nVideo Code: JMT509\n#JMT509",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nbBP7FurTcI",
        "title": "what I've been working on...",
        "publishedAt": "7 months ago",
        "durationSeconds": 74,
        "views": 364074,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": null,
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hl-6GpwoTfA",
        "title": "how the FTX collapse ACTUALLY happened...",
        "publishedAt": "3 years ago",
        "durationSeconds": 189,
        "views": 1812519,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "SBF's hair\n\nEdited by @itsmattcho \n\n\n\n📱 SOCIAL MEDIA\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\nhttps://www.instagram.com/jomakaze/\nhttps://twitter.com/jomaka...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "synJZAtH58E",
        "title": "when you rob a big tech company, but the employees are...",
        "publishedAt": "3 years ago",
        "durationSeconds": 154,
        "views": 5651317,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Security through incompetency \n\nMusic by Joy Ngiaw: \n  / joyngiaw  \n\nEdited by Matt Cho:\n   / @itsmattcho  \n\nSound Mixed by Cullen Herron:\n  / cullenherron  \n\n\n\n📱 SOCIAL MEDIA\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n  / jomakaze  \n  / jomakaze  \n  / jomakaze",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bn_KRzohcAo",
        "title": "if “normal” job interviews were like coding interviews",
        "publishedAt": "3 years ago",
        "durationSeconds": 120,
        "views": 2946754,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Leetcode Hard: What is your major weakness?\n\n\n\n📱 SOCIAL MEDIA\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\nhttps://www.instagram.com/jomakaze/\nhttps://twitter.c...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DlKl8me4Npw",
        "title": "If Programming Was an Anime 3",
        "publishedAt": "3 years ago",
        "durationSeconds": 341,
        "views": 1583323,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Kodocharenji = Code Challenge \nFor the people who don’t speak anime \n\nProduction\nGlorified Tripod - John Zeng -   / johnszeng  \nMaster of Sound - Rhea Li -   / rhealiiiii  \n\nPost-Production\nMusic - Joy Ngiaw -   / joyngiaw  \nSound Mix - Cullen Herron -   / cullenherron  \nVFX - Matt Cho -   / itsmattcho  \nArtwork - Yue Li - https://www.yueli.art/\n\n\n\n📱 SOCIAL MEDIA\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n  / jomakaze  \n  / jomakaze  \n  / jomakaze",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CK_BCMA9yoY",
        "title": "every “entrepreneur” influencer ever...",
        "publishedAt": "3 years ago",
        "durationSeconds": 49,
        "views": 1819383,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Same video, different industry.\n\nI stole the fist joke from @CodyKo \n\n\n\n📱 Social Media\nhttps://www.instagram.com/jomakaze/\nhttps://twitter.com/jomakaze\nhttps://www.facebook.com/jomakaze",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5bId3N7QZec",
        "title": "how programmers overprepare for job interviews",
        "publishedAt": "3 years ago",
        "durationSeconds": 70,
        "views": 5593731,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Mapa hash.\n\n\n\n📱 SOCIAL MEDIA\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\nhttps://www.instagram.com/jomakaze/\nhttps://twitter.com/jomakaze\nhttps://www.facebook....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "NGqWR-o_H8E",
        "title": "crypto founders be like...",
        "publishedAt": "3 years ago",
        "durationSeconds": 602,
        "views": 765009,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Do Kwon Is cool\n\nSpecial thanks to:\nPaul Ray, Geraint Taylor, Daryl Sterling Jr\n\nExtras (DM me your name on Discord)\nAlbert Yang\n\nMusic by Joy Ngiaw\n  / joyngiaw  \n\n*Cast*\nJames Tang (  / jamesthetang  )\nSteven Ho @steveioe\nQue Brandon\nJohn Zeng\nDavid Ma\n\nDirector of Photography John Zeng \n1st AC Brielle Steel\nDirector Joma \n1st AD Wendy Wang\nGaffer Jeremy Liguori\nKey Grip Mathias Linder-Madsen \nSound Mixer Cullen Herron || Vanessa Cheng \nHMUA Olya Tizer \nProduction Designer Leah Water-Katz \nSet Dresser Sam Crainich \nProduction Coordinator Joey Cheng\n\nPlease email me at business@joma.io if I'm missing any credits.\n\n\n\n📱 Social Media\n  / jomakaze  \n  / jomakaze  \n  / jomakaze",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KHEZCXfyxjU",
        "title": "if Wolf of Wall Street were about crypto",
        "publishedAt": "4 years ago",
        "durationSeconds": 266,
        "views": 2347308,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "100000% APY baby\n\nThanks Current for letting me film in your office. They're hiring:\nhttps://current.com/jomatech\n\n*Cast*\nDAO Founder - Shravan Amin (  / shrave3  )\nExtras: Vaxxed Doggo Members and Current Employees Thank you!\n\n*Pre Production*\nCasting:   / katieannemoy  \n\n*Production*\nJohn Zeng - Director of Photography & Gaffer\nSamon Siripanichgon - Gaffer \nErdan Li - Makeup Artist\nAlexander Lu - Key Grip\nMatt Iacono - First A.C.\nHal Schulman - G&E Swing\nSunny Liu - Production Sound Mixer\nQuinn Dailey - Production Assistant\n\n*Post Production*\nColor:   / definitelyatget  \nSound:   / cullenherron  \n\n\n\n📱 SOCIAL MEDIA\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\n  / jomakaze  \n  / jomakaze  \n  / jomakaze",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "314OLE6mKOo",
        "title": "interviewing at a startup be like... (ft. Steven He)",
        "publishedAt": "4 years ago",
        "durationSeconds": 411,
        "views": 5168649,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Looking for a Software Engineering job? Current is hiring! A lot:\nhttps://current.com/jomatech\n\nHuuuge thanks to @StevenHe for collaborating with me on this video! Such an amazing actor. It...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JgdP7oWP0_0",
        "title": "NFT projects in a nutshell",
        "publishedAt": "4 years ago",
        "durationSeconds": 186,
        "views": 995470,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "i like the rock\n\n🐦 Follow me on Twitter: https://twitter.com/jomakaze\n\n**Pre Production**\nSpecial thanks to Jacob for helping me write KryptoPapi's lines in British with the slang and also...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "oCqkVZVPOe8",
        "title": "crypto traders be like...",
        "publishedAt": "4 years ago",
        "durationSeconds": 336,
        "views": 4123665,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "wagwan people\n\n**Pre Production**\nSpecial thanks to Jacob for helping me write KryptoPapi's lines in British with the slang and also helping me with the accent.\nhttps://www.instagram.com/jacobkonma...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TLysAkFM4cA",
        "title": "a day in the life of a startup engineer working from home",
        "publishedAt": "4 years ago",
        "durationSeconds": 516,
        "views": 3602382,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Thanks to Logitech for sponsoring this video. Visit Logitech’s website to find the right webcams for you https://bit.ly/3rOgboS #WorkLifeUpgraded\nhttps://www.youtube.com/c/logitech\n\n\n\n📱...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YBYI7E2PqWE",
        "title": "If Squid Game were about Programmers",
        "publishedAt": "4 years ago",
        "durationSeconds": 387,
        "views": 1866754,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I have a counter offer from another squid game.\n\n📱 SOCIAL MEDIA\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\nhttps://www.instagram.com/jomakaze/\nhttps://twitter...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7ZcmboYbNPQ",
        "title": "The man who saved New York City using Data Science",
        "publishedAt": "4 years ago",
        "durationSeconds": 702,
        "views": 660699,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out https://historyofdatascience.com/ to find more stories about data science. Thanks again Dataiku (https://www.dataiku.com/) for sponsoring this video. \n\nAlso, check out the new branded...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1fPWr0d5zBE",
        "title": "10 years of coding in 13 minutes",
        "publishedAt": "4 years ago",
        "durationSeconds": 808,
        "views": 5120780,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Thanks #GrowWithGoogle for sponsoring this video. Start your courses today here: http://click.linksynergy.com/fs-bin/click?id=d4mgtUz7Lp0&offerid=916798&type=3&subid=0\n\n0:00 Intro\n0:51 Grow...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lpcpsCY4Mco",
        "title": "how programmers attend meetings at big tech companies",
        "publishedAt": "4 years ago",
        "durationSeconds": 38,
        "views": 6006249,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "What's your goto response in meetings?\n\n\n\n\n\n📱 SOCIAL MEDIA\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\nhttps://www.instagram.com/jomakaze/\nhttps://twitter.com/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Hv6EMd8dlQk",
        "title": "if Apple made window blinds...",
        "publishedAt": "4 years ago",
        "durationSeconds": 470,
        "views": 6041156,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go to https://NordVPN.com/joma to get a 2-year plan plus 4 additional months with a huge discount!\n\nCheck out the behind-the-scenes video on my other channel:\nhttps://youtu.be/015wj1C5wK0\n...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Rgx8dpiPwpA",
        "title": "a day in the life of an engineer working from home",
        "publishedAt": "4 years ago",
        "durationSeconds": 472,
        "views": 22511390,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out my new vlog channel: https://www.youtube.com/channel/UCmMGlb7mGXYVthrXYSwlQhw\nFollow my newsletter: https://jomakaze.substack.com/\n\nMusic by Joy Ngiaw:\nhttps://www.joyngiaw.com/\nhttps://w...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Nb5yppVh_4A",
        "title": "Twitch founder who sold for $970 million chats with a guy with $970 in his bank account",
        "publishedAt": "5 years ago",
        "durationSeconds": 1335,
        "views": 826078,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Watch how Justin Kan as ALMOST sold Twitch to Google instead of Amazon for $1 billion and subscribe to his channel: https://youtu.be/qR0yFSpcXrc\n\n\n\n📱 SOCIAL MEDIA\n▀▀▀▀▀▀▀▀▀▀...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-UdWguw90g4",
        "title": "I Built a Trading Bot to let Subscribers Trade $25,000 on Twitch",
        "publishedAt": "5 years ago",
        "durationSeconds": 748,
        "views": 4351058,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "$25,000 down the drain. Or is it?\n\n📱 Social Media\nhttps://www.instagram.com/jomakaze/\nhttps://twitter.com/jomakaze\nhttps://www.facebook.com/jomakaze",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "X34ZmkeZDos",
        "title": "Why Microsoft Word is the best IDE for programming",
        "publishedAt": "5 years ago",
        "durationSeconds": 254,
        "views": 3765839,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, I tell you the best IDE to use for programming. No matter what kind of programming you do.\n\nMusic by Joy Ngiaw:\nhttps://www.joyngiaw.com/\nhttps://www.instagram.com/joyngiaw/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qiE7VKRHSsA",
        "title": "If Chess Was An Anime",
        "publishedAt": "5 years ago",
        "durationSeconds": 160,
        "views": 2736419,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Watch the Startup Series:\nhttps://www.youtube.com/watch?v=kZC12U6EhTc&list=PL0BAwa0pBqg6cgVi_N2arwjs6TQ6foPi7\n\n\n\n📱 SOCIAL MEDIA\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sW9npZVpiMI",
        "title": "why you NEED math for programming",
        "publishedAt": "5 years ago",
        "durationSeconds": 303,
        "views": 9680180,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get the JomaClass membership: https://joma.tech/dsa\nFirst 100 people get 15% off the yearly subscription with promo code \"DONUT\"\n\nDonut C article by Andy Sloane: \nhttps://www.a1k0n.net/2011/07/20/d...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0oBi8OmjLIg",
        "title": "My Ultimate Work From Home Desk Setup for Productivity",
        "publishedAt": "5 years ago",
        "durationSeconds": 614,
        "views": 3616821,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "📱 SOCIAL MEDIA\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\nhttps://www.instagram.com/jomakaze/\nhttps://twitter.com/jomakaze\nhttps://www.facebook.com/jomakaze...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OTfp2_SwxHk",
        "title": "If Programming Was An Anime 2",
        "publishedAt": "5 years ago",
        "durationSeconds": 365,
        "views": 4770830,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get the JomaClass membership: https://joma.tech/python\nFirst 100 people get 15% off the yearly subscription with promo code \"ANIME2\"\nEDIT: This promo is over. 100 People claimed it already...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0KmUoTfGa34",
        "title": "Coding a whole web app ONLY using my Phone.",
        "publishedAt": "6 years ago",
        "durationSeconds": 866,
        "views": 3979501,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "My thumbs are fine.\n\n\n\n📱 SOCIAL MEDIA\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\nhttps://www.instagram.com/jomakaze/\nhttps://twitter.com/jomakaze\nhttps://www....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vT3GUKuAzIs",
        "title": "how coronavirus affects programmers in big tech companies",
        "publishedAt": "6 years ago",
        "durationSeconds": 66,
        "views": 5314873,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "God I love working from home, I can finally just sit in front of my computer and code...\n\n\n\n📱 SOCIAL MEDIA\n▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pKO9UjSeLew",
        "title": "If Programming Was An Anime",
        "publishedAt": "6 years ago",
        "durationSeconds": 206,
        "views": 10953946,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I tried to solve a leetcode problem I thought it was easy... but then...\nWatch Programming Anime Part 2 here: https://youtu.be/OTfp2_SwxHk\n\n\n\n📱 SOCIAL MEDIA\n▀▀▀▀▀▀▀▀▀▀▀▀...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [
        "Logitech"
      ],
      "affiliateLinkHosts": [
        "bit.ly",
        "click.linksynergy.com"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": "2022-05-15",
      "detectionDetail": [
        {
          "brand": "Logitech",
          "videoId": "TLysAkFM4cA",
          "confidence": 0.7,
          "evidence": "description: Thanks to Logitech for sponsoring",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:51.351Z"
        }
      ]
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 1,
        "firstSponsoredVideoDate": "2026-05-14"
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "consumer-electronics",
          "confidence": 0.25,
          "evidence": [
            "historical-sponsor:Logitech"
          ]
        },
        {
          "category": "media-publishing",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:media"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": "[REDACTED]",
      "businessEmailSource": "channel-about-section",
      "businessEmailMxValid": true,
      "linktreeResolution": [],
      "primaryWebsiteDomain": null,
      "additionalContacts": []
    },
    "contactability": {
      "tier": "high",
      "components": {
        "businessEmailPresent": true,
        "businessEmailValid": true,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": false,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Will likely respond to sponsorship outreach: business email validated + active sponsor history + external website live."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.83,
        "evidenceVideoIds": [
          "YRddOEtlnEk",
          "hl-6GpwoTfA",
          "bn_KRzohcAo",
          "DlKl8me4Npw",
          "CK_BCMA9yoY"
        ]
      },
      {
        "label": "com",
        "share": 0.67,
        "evidenceVideoIds": [
          "hl-6GpwoTfA",
          "bn_KRzohcAo",
          "CK_BCMA9yoY",
          "5bId3N7QZec",
          "KHEZCXfyxjU"
        ]
      },
      {
        "label": "social",
        "share": 0.6,
        "evidenceVideoIds": [
          "YRddOEtlnEk",
          "hl-6GpwoTfA",
          "synJZAtH58E",
          "bn_KRzohcAo",
          "DlKl8me4Npw"
        ]
      },
      {
        "label": "media",
        "share": 0.6,
        "evidenceVideoIds": [
          "YRddOEtlnEk",
          "hl-6GpwoTfA",
          "synJZAtH58E",
          "bn_KRzohcAo",
          "DlKl8me4Npw"
        ]
      },
      {
        "label": "www",
        "share": 0.57,
        "evidenceVideoIds": [
          "hl-6GpwoTfA",
          "bn_KRzohcAo",
          "DlKl8me4Npw",
          "CK_BCMA9yoY",
          "5bId3N7QZec"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Sunday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "business email validated, content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "strong",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 51,
      "reason": "validated business email x fits consumer-electronics",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.95
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.45
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 1,
      "level": "high",
      "coldStart": false
    },
    "whyThisMatters": "validated business email + fits consumer-electronics. Channel is in the active outreach window.",
    "whyNow": "Last sponsored video 1460 days ago — within typical sponsorship-decision lookback for similar creators.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Joma Tech — 2.3M subs, C-tier sponsorship readiness, high contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": true,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 51,
      "readyForOutreach": false,
      "blockers": [],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.59,
      "urgency": 0,
      "noiseRisk": 0
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": {
      "isValidFormat": true,
      "canonical": "business@joma.io",
      "domain": "joma.io",
      "lineType": "role-account",
      "mxValid": true,
      "confidence": 0.75,
      "originalInput": "business@joma.io",
      "email": null
    },
    "allEmailValidations": [
      {
        "isValidFormat": true,
        "canonical": "business@joma.io",
        "domain": "joma.io",
        "lineType": "role-account",
        "mxValid": true,
        "confidence": 0.75,
        "originalInput": "business@joma.io",
        "email": null
      }
    ],
    "contactabilityScore": {
      "score": 83,
      "level": "high",
      "components": {
        "presence": 25,
        "sourceQuality": 18,
        "validationQuality": 18,
        "identityStrength": 9,
        "freshness": 8,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "email",
      "secondary": "linkedin",
      "reason": "Validated business email + active sponsor history — email-first maximises response rate."
    },
    "sequenceFit": {
      "directOutreachAllowed": true,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "channel-about"
      ],
      "missedOpportunities": [
        "no-external-website-detected",
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.83
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.83,
      "gap": 0.11,
      "howToClose": [
        "Run ryanclinton/person-enrichment-lookup against 'business@joma.io' to identify the inbox owner."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "medium",
      "score": 0.4,
      "factors": [
        "business-email-validated"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + validated business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:role-account",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [],
      "safeChannels": [
        "email"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [
      {
        "email": "[REDACTED]",
        "rank": 1,
        "reason": "role-account email",
        "role": "general"
      }
    ],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": false,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "consumer-electronics",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": [
        "contactability:high"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "late",
      "reason": "Last sponsored video 1460 days ago; past typical 14-30d decision-cycle for similar creators.",
      "decayRisk": 0.9
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 64,
      "reasons": [
        "Validated business email (MX confirmed)",
        "Low confidence-conflict count in scoring trace"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "a7dd600cf08649923b0fe61d97a794c6577cc63e86183f54a65bfc42b3a8b9fe",
      "inputsHash": "2d015262399feb9c87f6282bc24fd71669c0227fa138d3ed92fbf1c43ab02684",
      "rulesApplied": [
        "business-email-validated",
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:50.510Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "bc20cb6eb826eceba336b4f82043ad31b97e9d9bfe08225df9fb1d5f10edd588",
    "channelId": "UCgN4rDA3UNQ1OKQRXJd0nwg",
    "channelHandle": "@samselikoff",
    "channelName": "Sam Selikoff",
    "channelUrl": "https://www.youtube.com/@samselikoff",
    "description": "Quality videos on frontend development · buildui.com",
    "joinDate": null,
    "location": null,
    "subscribers": 72300,
    "totalVideos": 104,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_lNrT65zowTOnuJiFnfNL7vzYAoGcn4dQ6dTaCFqRKhGAk=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "buildui.com",
        "url": "https://buildui.com/"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/samselikoff"
      },
      {
        "platform": "frontendfirst.fm",
        "url": "https://frontendfirst.fm"
      }
    ],
    "recentVideos": [
      {
        "videoId": "3saFasHrnEg",
        "title": "Distinguishing between human and programmatic scrolling",
        "publishedAt": "1 year ago",
        "durationSeconds": 897,
        "views": 7996,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to use a lesser-known browser event along with a Resize Observer hook to build a Chat GPT–like autoscrolling component in React.\n\nDemo from video: https://stackblitz.com/~/github.com/s...\nMDN wheel event: https://developer.mozilla.org/en-US/d...\nstackblitz/use-stick-to-bottom: https://github.com/stackblitz/use-sti...\n\n👉 I'm working on a new course! Check it out here: https://buildui.com/courses/advanced-...\n\nTimestamps:\n\n0:00 - Intro\n0:27 - Auto-scroll the parent with useOnResize\n4:41 - Letting the user escape auto-scrolling\n4:41 - What's wrong with the \"scroll\" event\n5:49 - Solution: the \"wheel\" event\n7:37 - Resuming auto-scrolling when scrolled to bottom\n10:16 - Adding a button to resume auto-scrolling\n13:30 - use-stick-to-bottom library",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vgICBsz5Qtc",
        "title": "Animate streaming text with a one-line hook",
        "publishedAt": "1 year ago",
        "durationSeconds": 1788,
        "views": 13690,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to build a useAnimatedText() hook with Framer Motion that can be added to any React app to animate streaming text.\n\n🚀 Follow along with my new course: https://buildui.com/courses/advanced-...\n\n💻 Check out the code from the demo: https://github.com/samselikoff/2024-1...\n\nReact Docs: https://react.dev/reference/react/use...\nTurboSeek: https://www.turboseek.io/\n\nTimestamps:\n\n0:00 - Intro\n2:07 - Using slice() to animate text\n3:27 - Using animate() from Framer Motion\n6:36 - Updating React state from our animation\n8:44 - Adding memory to our Hook\n13:03 - Restarting the stream\n16:25 - Using the previous render to detect a new string\n19:28 - Resetting the cursor for new strings\n22:31 - Animating by word or character\n26:14 - Trying out useAnimate in TurboSeek\n28:41 - New course coming soon!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GIIuG5_kyow",
        "title": "Building a Reusable Component that Animates on Scroll",
        "publishedAt": "1 year ago",
        "durationSeconds": 900,
        "views": 14956,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to make an unstyled FadeUp component that animates on scroll and can be reused throughout your app. Built with React and Framer Motion.\n\n🚀 Sign up to hear about my new course: https://buildui.com/courses/advanced-...\n\n💻 Check out the code from the demo: https://github.com/samselikoff/2024-1...\n\nTimestamps:\n\n0:00 - Intro\n2:11 - Extracting a component for useInView\n4:25 - Using variants for state-based animation\n5:39 - Animate on the initial reveal only\n7:29 - Animating the Y property\n8:50 - Trying out our component on a new page\n9:30 - Adding a delay prop\n10:47 - Adding a duration prop\n12:54 - Final demo\n14:40 - New course coming soon!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fYqMPvPvVAc",
        "title": "How to share a React Component with the URL",
        "publishedAt": "1 year ago",
        "durationSeconds": 851,
        "views": 17178,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to spot and eliminate duplicate sources of truth in your React apps.\n\n📝 React docs on unnecessary Effects: https://react.dev/learn/you-might-not...\n🚀 Follow along with my upcoming course on Advanced React Component Patterns: https://buildui.com/courses/advanced-...\n\nTimestamps:\n\n0:00 - Intro\n2:13 - Syncing the URL with useEffect\n4:35 - The bug we introduced\n6:47 - Why the URL is the source of truth\n7:56 - Deriving the search text from the URL\n12:07 - How to spot duplicate sources of truth",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9iJK-Vl6PhE",
        "title": "Avoid premature abstraction with Unstyled Components",
        "publishedAt": "1 year ago",
        "durationSeconds": 1043,
        "views": 14825,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "As programmers we love abstractions – but if you abstract the wrong part of your code, the cure is worse than the disease. Learn how unstyled React components can help you extract smaller chunks of logic without jumping straight to a premature, overly abstracted component.\n\n🚀 Follow along with my upcoming course on Advanced React Component Patterns: https://buildui.com/courses/advanced-...\n\nTimestamps:\n\n0:00 - Intro\n2:10 - Extracting a Button\n5:41 - The problem with our abstraction\n8:24 - Extracting an Unstyled Component\n12:05 - Using ComponentProps and the JSX spread syntax\n14:30 - Final demo\n16:39 - Advanced React Component Patterns",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6UU2Ey4KZr8",
        "title": "How to build a Recursive React Component",
        "publishedAt": "1 year ago",
        "durationSeconds": 1276,
        "views": 63698,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how recursion works in React by building a simple filesystem viewer.\n\n🚀 Sign up to hear about my new course: https://buildui.com/courses/advanced-...\n\n💻 Check out the code from the demo: https://buildui.com/recipes/recursive...\n\nTimestamps:\n\n0:00 - Intro\n2:51 - Adding subfolders\n4:53 - Extracting a Folder component\n5:37 - Adding Recursion\n9:43 - How to type recursive components\n11:30 - Adding files\n13:52 - Making the folders collapsible\n18:24 - Refactoring and polish\n19:45 - Final demo\n20:23 - New course!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "k9onbcqxDwU",
        "title": "Building an Elastic Slider with Framer Motion and Radix",
        "publishedAt": "2 years ago",
        "durationSeconds": 3127,
        "views": 14277,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Use Framer Motion to add a rubber band effect to a Slider built with Radix UI!\n\nCode from the demo: https://buildui.com/recipes/elastic-s...\n\nMy new Radix course is live! 👉 https://buildui.com/courses/advanced-...\n\nTIMESTAMPS:\n0:00 – Before + After\n0:39 – Moving the icon\n5:31 – Animating on release\n7:26 – Stretching the bar\n12:24 – Animating the right icon\n19:36 – Stretching the bar right\n22:58 – Refactoring: Removing a MotionValue\n26:00 – Refactoring: Removing magic numbers\n31:04 – Refactoring: Centralizing business logic\n35:52 – Decaying the overflow (Rubber Band effect)\n39:37 – Grow on hover\n46:51 – Bouncing the icons\n48:47 – Final demo",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "d0p95C3Kcsg",
        "title": "Optimistic UI in Remix",
        "publishedAt": "2 years ago",
        "durationSeconds": 2282,
        "views": 11093,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The useSubmit Hook just got an upgrade... let's use it to build some optimistic UI in Remix!\n\n🔗 LINKS\nCode diff: https://gist.github.com/samselikoff/1...\nSave 40% on Build UI this week 👉 https://buildui.com/pricing\n\n🕐 TIMESTAMPS\n0:00 - Intro\n0:45 - Removing the pending UI\n1:46 - Accessing pending form data with useFetchers\n6:30 - Adding optimistic data to the feed\n8:16 - Immediately clearing the textarea\n10:40 - Submitting the form on Enter\n12:44 - Why useFetcher is wrong\n14:48 - New API: useSubmit\n19:03 - The problem: Race condition\n20:10 - The refactor: Client-side UUIDs\n29:02 - The solution: Filtering persisted records from the optimistic data\n31:42 - Demo\n34:15 - Final touch: Saving indicator\n36:19 - Black Friday Deal!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "aj2mulzR9WQ",
        "title": "Session cookies in Remix",
        "publishedAt": "2 years ago",
        "durationSeconds": 1497,
        "views": 9279,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out our full Remix course: https://buildui.com/courses/my-first-...\n\n0:00 - Intro\n0:36 - Creating a /login route\n2:41 - Creating the action\n4:24 - Updating the UI with useActionData\n5:13 - Using HTTP Sessions as durable storage\n7:54 - Reading the cookie during a request\n10:55 - Problems with our first approach\n11:31 - Using createCookieSessionStorage\n16:18 - Extracting a session.ts module\n17:47 - Securing our cookie\n12:00 - Customizing our UI based on the auth state\n23:59 - Get 40% off a Lifetime Membership to Build UI",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Hvn_fFMhVCA",
        "title": "What is Radix Themes?",
        "publishedAt": "2 years ago",
        "durationSeconds": 191,
        "views": 36121,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out the latest project from the team behind Radix UI!\n\nThis video was made in collaboration with the Radix team.\n\nhttps://www.radix-ui.com/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5hF0IVQIBN8",
        "title": "6 New Tailwind Techniques in 8 minutes",
        "publishedAt": "2 years ago",
        "durationSeconds": 530,
        "views": 23827,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Highlights from my live-coding talk at Tailwind Connect 2023.\n\n🔗 LINKS\nMy Tailwind course: https://buildui.com/courses/tailwind-mastery\nWatch the entire talk: https://youtu.be/CLkxRnRQtDE?si=6oL...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-UskvNS13yw",
        "title": "Fixing a React navigation bug",
        "publishedAt": "2 years ago",
        "durationSeconds": 3423,
        "views": 7688,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Watch me and Ryan refactor a real-world codebase! We animate a slideover on back navigation, maintain scroll position when the slideover opens, and ensure a clean initial render based on the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Q2CJNB6yvwY",
        "title": "Highlight any panel in your dashboard",
        "publishedAt": "2 years ago",
        "durationSeconds": 641,
        "views": 10141,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build an RSC-compatible Highlight component that can style any element when a prop changes.\n\n🔗 LINKS\nHighlight code: https://buildui.com/recipes/highlight\nAnimated Number code: https://buildui.c...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xSuxsfn13xg",
        "title": "Responsive Framer Motion with Tailwind CSS",
        "publishedAt": "2 years ago",
        "durationSeconds": 909,
        "views": 61229,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how CSS Variables can bridge the gap between Framer Motion and Tailwind!\n\n🔗 LINKS\nDemo on CodeSandbox: https://codesandbox.io/p/sandbox/github/samselikoff/2023-08-07-responsive-framer-moti...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1JnwJBtg4VA",
        "title": "What is Radix UI?",
        "publishedAt": "2 years ago",
        "durationSeconds": 185,
        "views": 48802,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how Radix UI's library of unstyled, accessible components help you build better apps.\n\nThis video was made in collaboration with the team behind Radix!\n\n📝 Docs: https://www.radix-ui.com/pr...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VM6YRrUsnUY",
        "title": "Reusable Modals with Radix UI",
        "publishedAt": "2 years ago",
        "durationSeconds": 871,
        "views": 27005,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to refactor a customized Radix Dialog into a reusable Modal component.\n\nThis is Part 3 of a series in collaboration with WorkOS.\nPart 1: https://youtu.be/KvZoBV_1yYE\nPart 2: https://youtu...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3ijyZllWBwU",
        "title": "Dismissing a Radix Dialog after a form submission",
        "publishedAt": "2 years ago",
        "durationSeconds": 1125,
        "views": 26974,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to turn our Radix Dialog into a controlled component so that it can be dismissed after a form submission, and use CSS to add mount and unmount animations.\n\nThis is Part 2 of a series...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KvZoBV_1yYE",
        "title": "Styling a Radix Dialog with Tailwind CSS",
        "publishedAt": "2 years ago",
        "durationSeconds": 653,
        "views": 46974,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to use Tailwind CSS to style a Radix UI Dialog component to match the look and feel of our app!\n\nThis is Part 1 of a series in collaboration with WorkOS.\nPart 1: Styling a Radix Dialog...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QkntFWb_V8k",
        "title": "From Pages to the App Directory in Next.js 13 (Nested Layouts)",
        "publishedAt": "2 years ago",
        "durationSeconds": 995,
        "views": 13446,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get a sense of working with nested layouts in Next.js 13 by migrating my Discord clone from the app to the pages directory.\n\n🔗 LINKS\nTailwind Mastery course: https://buildui.com/courses/tailwind...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jlEZlFX3jEM",
        "title": "Building an Animated Counter with Framer Motion",
        "publishedAt": "2 years ago",
        "durationSeconds": 872,
        "views": 17066,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to get an animated counter to animate in response to React state changes.\n\n\n🔗 LINKS\nBuild UI Recipe (updated so each digit stops on a number): https://buildui.com/recipes/animated-coun...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OAmp3GTfZnU",
        "title": "Fullstack React Components – with no API",
        "publishedAt": "2 years ago",
        "durationSeconds": 725,
        "views": 14228,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Take an early look at how to use Server Actions to build fully reusable full stack components – even ones that accept functions as props!\n\n🔗 LINKS\nCode from the video: https://github.com/sams...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3JB_qEk39w0",
        "title": "I built a chart as a React Server Component",
        "publishedAt": "3 years ago",
        "durationSeconds": 460,
        "views": 10325,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Watch me make my D3 client-side chart server renderable – then use it as React Server Component.\n\n🔗 LINKS\nCode: https://buildui.com/recipes/responsive-line-chart\n\n🕐 TIMESTAMPS\n0:00...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JV5BlbRy_mg",
        "title": "Building the Mac OS Dock with React",
        "publishedAt": "3 years ago",
        "durationSeconds": 1329,
        "views": 13233,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to build the magnification effect from the Mac OS dock with React and Framer Motion.\n\n🔗 LINKS\nCode: https://buildui.com/recipes/magnified-dock\n\n🕐 TIMESTAMPS\n0:00 – Intro\n0:20...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uWfZ2bZuvpo",
        "title": "Animating a radial gradient with Framer Motion",
        "publishedAt": "3 years ago",
        "durationSeconds": 1138,
        "views": 16784,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to build a spotlight effect by animating a radial gradient that follows the mouse cursor. Built with React, Framer Motion and Tailwind CSS.\n\n🔗 LINKS\nCode: https://buildui.com/recipes/s...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kep_Iaxuzy0",
        "title": "Animated tabs – with inverted text!",
        "publishedAt": "3 years ago",
        "durationSeconds": 735,
        "views": 64347,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Use Framer Motion's layoutId and mix-blend-mode: exclusion to create some slick animated tabs!\n\n🔗 LINKS\nCode: https://buildui.com/recipes/animated-tabs\nBuild UI Lifetime Membership: https://buil...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "T-pr-rZgMlQ",
        "title": "Building an iOS Animated Toggle with React Aria Components and Tailwind CSS",
        "publishedAt": "3 years ago",
        "durationSeconds": 1320,
        "views": 10762,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Take a first look at the alpha release of React Aria Components!\n\n🔗 LINKS\nCode: https://buildui.com/recipes/ios-animated-switch\nBuild UI Lifetime Membership: https://buildui.com/#purchase...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1UOAI7pFDek",
        "title": "Why React Strict Mode breaks your app – on purpose",
        "publishedAt": "3 years ago",
        "durationSeconds": 801,
        "views": 9728,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out my premium video courses on Build UI:\nhttps://buildui.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZC11XEuX72M",
        "title": "Building Trello's animated checklist with Framer Motion",
        "publishedAt": "3 years ago",
        "durationSeconds": 705,
        "views": 10080,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Use Framer Motion's new animate() and stagger() functions to make a list of items bounce, shimmy and shake!\n\nView the recipe: https://buildui.com/recipes/trello-checklist\n\n0:00 - Event-based...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "v7uU77Yl_3k",
        "title": "Refactoring a Radix Dropdown Menu",
        "publishedAt": "3 years ago",
        "durationSeconds": 2419,
        "views": 18355,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Let's refactor our animated dropdown menu from the previous video into a reusable component.\n\nWatch more videos + support my channel! https://buildui.com\n\nCheck out the code from this video:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "p8CsotWUas0",
        "title": "Animating a Radix Dropdown with Framer Motion",
        "publishedAt": "3 years ago",
        "durationSeconds": 1631,
        "views": 23366,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out the source code for the demo: https://github.com/samselikoff/2023-01-22-radix-dropdown-framer-motion\n\nWatch more videos + support my channel: https://buildui.com\n\nView the demo: https://s...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "buildui.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.9,
        "evidenceVideoIds": [
          "3saFasHrnEg",
          "vgICBsz5Qtc",
          "GIIuG5_kyow",
          "fYqMPvPvVAc",
          "9iJK-Vl6PhE"
        ]
      },
      {
        "label": "com",
        "share": 0.83,
        "evidenceVideoIds": [
          "3saFasHrnEg",
          "vgICBsz5Qtc",
          "GIIuG5_kyow",
          "fYqMPvPvVAc",
          "9iJK-Vl6PhE"
        ]
      },
      {
        "label": "buildui",
        "share": 0.73,
        "evidenceVideoIds": [
          "3saFasHrnEg",
          "vgICBsz5Qtc",
          "GIIuG5_kyow",
          "fYqMPvPvVAc",
          "9iJK-Vl6PhE"
        ]
      },
      {
        "label": "code",
        "share": 0.5,
        "evidenceVideoIds": [
          "vgICBsz5Qtc",
          "GIIuG5_kyow",
          "9iJK-Vl6PhE",
          "6UU2Ey4KZr8",
          "k9onbcqxDwU"
        ]
      },
      {
        "label": "learn",
        "share": 0.47,
        "evidenceVideoIds": [
          "3saFasHrnEg",
          "vgICBsz5Qtc",
          "GIIuG5_kyow",
          "fYqMPvPvVAc",
          "9iJK-Vl6PhE"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Tuesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "D",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 32,
      "reason": "tier D composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier D — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 30,
    "failureType": null,
    "summary": "Sam Selikoff — 0.1M subs, D-tier sponsorship readiness, low contactability, respond within 30 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 32,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.78,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mid-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mid"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mid-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "none"
    },
    "benchmarkRange": {
      "creatorTier": "mid",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "5-12%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mid-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "ignore",
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": {
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "gaps": [
        "tier:D",
        "contactability:low"
      ]
    },
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "bc20cb6eb826eceba336b4f82043ad31b97e9d9bfe08225df9fb1d5f10edd588",
      "inputsHash": "4c97358b98a6c197bbe8114a3ed24cc95acf39b6512b42e012f377a8deef716d",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:51.238Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "280afa7550205ea6a92ff6f72afcb8084f5865f7707583bcb877409535946e45",
    "channelId": "UCfzlCWGWYyIQ0aLC5w48gBQ",
    "channelHandle": "@sentdex",
    "channelName": "sentdex",
    "channelUrl": "https://www.youtube.com/@sentdex",
    "description": "Python Programming tutorials, going further than just the basics. Learn about machine learning, finance, data analysis, robotics, web development, game development and more.\n\nI have ~1000 videos, all of which do not fit on the front page. Try searching on the channel page, or via https://pythonprogramming.net. If you cannot find something, just ask! \n\nBitcoin donations: 1GV7srgR4NJx4vrk7avCmmVQQrqmv87ty6\nPaypal donations: HSKinsley@gmail.com",
    "joinDate": null,
    "location": null,
    "subscribers": 1440000,
    "totalVideos": 1200,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_mWT-3HaBiihhDy3TGYNqjZt-OP8PivU_lMUjdhwntZ2LM=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "pythonprogramming.net",
        "url": "https://pythonprogramming.net"
      },
      {
        "platform": "instagram",
        "url": "https://instagram.com/sentdex"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/sentdex"
      },
      {
        "platform": "nnfs.io",
        "url": "https://nnfs.io"
      }
    ],
    "recentVideos": [
      {
        "videoId": "FGnAeUXRZ4E",
        "title": "Training a Unitree G1 to Walk w/ Reinforcement Learning",
        "publishedAt": "4 months ago",
        "durationSeconds": 2609,
        "views": 39720,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Using mjlab and PPO to train the Unitree G1 humanoid to walk inside and outside\n\nNeural Networks from Scratch book: https://nnfs.io\nChannel membership:    / @sentdex  \nDiscord:   / discord  \nReddit:   / sentdex   \nSupport the content: https://pythonprogramming.net/support...\nTwitter:   / sentdex  \nInstagram:   / sentdex  \nFacebook:   / pythonprogramming.net  \nTwitch:   / sentdex",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Ah0-l0HZwLA",
        "title": "Unitree G1 Security Disaster",
        "publishedAt": "7 months ago",
        "durationSeconds": 2651,
        "views": 20216,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Cybersecurity AI: Humanoid Robots as Attack Vectors: https://arxiv.org/abs/2509.14139\n\nUnipwn repo for simple demo of the RCE/bluetooth vulnerabilities: https://github.com/Bin4ry/UniPwn/tree...\n\nNeural Networks from Scratch book: https://nnfs.io\nChannel membership:    / @sentdex  \nDiscord:   / discord  \nReddit:   / sentdex   \nSupport the content: https://pythonprogramming.net/support...\nTwitter:   / sentdex  \nInstagram:   / sentdex  \nFacebook:   / pythonprogramming.net  \nTwitch:   / sentdex",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eRPSRSGiAA8",
        "title": "Testing VLMs and LLMs for robotics w/ the Jetson Thor devkit",
        "publishedAt": "8 months ago",
        "durationSeconds": 1521,
        "views": 38689,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Exploring the Jetson Thor devkit w/ some local LLMs and VLMs.\nMore info on the Jetson Thor Devkit: https://nvda.ws/45xIU4B\n\nNeural Networks from Scratch book: https://nnfs.io\nChannel membership:    / @sentdex  \nDiscord:   / discord  \nReddit:   / sentdex   \nSupport the content: https://pythonprogramming.net/support...\nTwitter:   / sentdex  \nInstagram:   / sentdex  \nFacebook:   / pythonprogramming.net  \nTwitch:   / sentdex",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wiIUF9pIDYw",
        "title": "Reinforcement learning with Unitree G1 humanoid - Dev w/ G1 P.5",
        "publishedAt": "9 months ago",
        "durationSeconds": 1720,
        "views": 31676,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Training and testing out an arm Policy for the Unitree G1 using the PPO algorithm.\n\nGithub repo: https://github.com/Sentdex/unitree_g1...\n\nNeural Networks from Scratch book: https://nnfs.io\nChannel membership:    / @sentdex  \nDiscord:   / discord  \nReddit:   / sentdex   \nSupport the content: https://pythonprogramming.net/support...\nTwitter:   / sentdex  \nInstagram:   / sentdex  \nFacebook:   / pythonprogramming.net  \nTwitch:   / sentdex",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cmnJhOWp2z4",
        "title": "A bigger brain for the Unitree G1- Dev w/ G1 Humanoid P.4",
        "publishedAt": "11 months ago",
        "durationSeconds": 1821,
        "views": 24419,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Adding a vision language model and procrastinating a little longer about going into the sim\n\nUnitree G1 series playlist:    • Developing on the Unitree G1 Humanoid Robot  \n\nNeural Networks from Scratch book: https://nnfs.io\nChannel membership:    / @sentdex  \nDiscord:   / discord  \nReddit:   / sentdex   \nSupport the content: https://pythonprogramming.net/support...\nTwitter:   / sentdex  \nInstagram:   / sentdex  \nFacebook:   / pythonprogramming.net  \nTwitch:   / sentdex",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Uc1nhT8beTU",
        "title": "Unitree G1 - Moving the arms/hands - Dev w/ G1 Humanoid P.3",
        "publishedAt": "1 year ago",
        "durationSeconds": 1772,
        "views": 35102,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Figuring out how to move the hands/arms in an abstract way in XYZ space rather than per-joint.\n\nUnitree G1 series playlist:    • Developing on the Unitree G1 Humanoid Robot  \n\nGithub for this project: https://github.com/Sentdex/unitree_g1...\n\nNeural Networks from Scratch book: https://nnfs.io\nChannel membership:    / @sentdex  \nDiscord:   / discord  \nReddit:   / sentdex   \nSupport the content: https://pythonprogramming.net/support...\nTwitter:   / sentdex  \nInstagram:   / sentdex  \nFacebook:   / pythonprogramming.net  \nTwitch:   / sentdex",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sJYlJlIEBpg",
        "title": "Unitree G1 LiDAR, SLAM, navigation and control. Dev w/ G1 Humanoid P.2",
        "publishedAt": "1 year ago",
        "durationSeconds": 2451,
        "views": 57041,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Doing SLAM with the LiDAR, occupancy graph, better navigation, and a bunch of improvements.\n\nUnitree G1 playlist:    • Developing on the Unitree G1 Humanoid Robot  \n\nNeural Networks from Scratch book: https://nnfs.io\nChannel membership:    / @sentdex  \nDiscord:   / discord  \nReddit:   / sentdex   \nSupport the content: https://pythonprogramming.net/support...\nTwitter:   / sentdex  \nInstagram:   / sentdex  \nFacebook:   / pythonprogramming.net  \nTwitch:   / sentdex",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pPTo62O__CU",
        "title": "Unboxing the Unitree G1 Edu Humanoid",
        "publishedAt": "1 year ago",
        "durationSeconds": 3119,
        "views": 299133,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Initial experience with unboxing, setting up, and beginning to program the Unitree G1 Edu Ultimate B humanoid robot!\n\nPart 2: Developing better control LiDAR, SLAM, and more:    • Unitree G1 LiDAR, SLAM, navigation and con...  \n\nUnitree G1 playlist:    • Developing on the Unitree G1 Humanoid Robot  \n\nOfficial Python SDK for Unitree: https://github.com/unitreerobotics/un...\n\nNeural Networks from Scratch book: https://nnfs.io\nChannel membership:    / @sentdex  \nDiscord:   / discord  \nReddit:   / sentdex   \nSupport the content: https://pythonprogramming.net/support...\nTwitter:   / sentdex  \nInstagram:   / sentdex  \nFacebook:   / pythonprogramming.net  \nTwitch:   / sentdex",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "57cPmzwCqd4",
        "title": "Vibe Coding a Robotic Hand to Crawl (Inspire RH56DFQ)",
        "publishedAt": "1 year ago",
        "durationSeconds": 2167,
        "views": 16645,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Continuing with our work with the Inspire RH56DFQ robotic hands, this time trying some more gestures and then seeing if we can get a language model to program the hand to crawl. \n\nPrevious video:    • Vibe Coding Robot Hands w/ Cursor (Inspire...  \n\nThe github package we're using (also written by Cursor and 3.7 Sonnet):  https://github.com/Sentdex/inspire_hands\n\nNeural Networks from Scratch book: https://nnfs.io\nChannel membership:    / @sentdex  \nDiscord:   / discord  \nReddit:   / sentdex   \nSupport the content: https://pythonprogramming.net/support...\nTwitter:   / sentdex  \nInstagram:   / sentdex  \nFacebook:   / pythonprogramming.net  \nTwitch:   / sentdex",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MeHWIXLV3Zo",
        "title": "Vibe Coding Robot Hands w/ Cursor (Inspire RH56DFQ-2L/R)",
        "publishedAt": "1 year ago",
        "durationSeconds": 2916,
        "views": 17263,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We do a bit of vibe coding for the Inspire RH56 series hands. \nI've uploaded what I think to be a fairly decent package built from cursor and 3.7 sonnet that you can find here: https://github.com/Sentdex/inspire_hands\n\nNeural Networks from Scratch book: https://nnfs.io\nChannel membership:    / @sentdex  \nDiscord:   / discord  \nReddit:   / sentdex   \nSupport the content: https://pythonprogramming.net/support...\nTwitter:   / sentdex  \nInstagram:   / sentdex  \nFacebook:   / pythonprogramming.net  \nTwitch:   / sentdex",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WKF__cJTxvg",
        "title": "Programming with LLM Agents in 2025",
        "publishedAt": "1 year ago",
        "durationSeconds": 3731,
        "views": 115591,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Some tips and tricks for using modern LLM agents for building stuff.\n\nI am using openhands here, but you're free to take some of my advice from here and apply it to just about any of the web-based...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VyseRArtl5E",
        "title": "What's going on everybody?",
        "publishedAt": "1 year ago",
        "durationSeconds": 1449,
        "views": 42445,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Hello from the ranch.\n\nNeural Networks from Scratch book: https://nnfs.io\nChannel membership: https://www.youtube.com/channel/UCfzlCWGWYyIQ0aLC5w48gBQ/join\nDiscord: https://discord.gg/sentdex...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pCX_3p40Efc",
        "title": "Building an LLM fine-tuning Dataset",
        "publishedAt": "2 years ago",
        "durationSeconds": 3715,
        "views": 73202,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Going through the building of a QLoRA fine-tuning dataset for a language model. \nNVIDIA GTC signup: https://nvda.ws/3XTqlB6\n\nFine-tuning code: https://github.com/Sentdex/LLM-Finetuning\n5000-step...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ChfEO8l-fas",
        "title": "Visualizing Neural Network Internals",
        "publishedAt": "2 years ago",
        "durationSeconds": 3221,
        "views": 55228,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Visualizing some of the internals of a neural network during training and inference.\n\nStarting and full code: https://github.com/Sentdex/neural-net-internals-visualized\n\nNeural Networks from...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mm9IHqgCbZc",
        "title": "Getting Back on Grid",
        "publishedAt": "2 years ago",
        "durationSeconds": 1269,
        "views": 21000,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Establishing an internet connection in an internet desert, then figuring out (well, starting to) networking. \n\nCombined with Starlink as my internet provider, I ended up going with a wifi bridge...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_GQfj3jhXVM",
        "title": "Open Source AI Inference API w/ Together",
        "publishedAt": "2 years ago",
        "durationSeconds": 1525,
        "views": 35191,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Exploring the Together Inference API (https://www.together.ai/)\n\nTogether API basics jupyter notebook examples: https://github.com/Sentdex/Together-API-Basics\n\nNeural Networks from Scratch...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9MigSbQ7AQk",
        "title": "INFINITE Inference Power for AI",
        "publishedAt": "2 years ago",
        "durationSeconds": 1082,
        "views": 26602,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Testing and enjoying the Comino Grando Server machine with 6x RTX 4090s from Comino (https://www.comino.com/)\n\nNeural Networks from Scratch book: https://nnfs.io\nChannel membership: https://www.you...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OnYGtKQT-rU",
        "title": "Pandas Dataframes on your GPU w/ CuDF",
        "publishedAt": "2 years ago",
        "durationSeconds": 724,
        "views": 47412,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "An overview and some quick examples of using CuDF's Pandas accelerator and how much faster it can be than vanilla Pandas for data analysis.\n\nColab demo of Rapids: https://nvda.ws/3LWggQj\n\nAI...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "J_3hDqSvpmg",
        "title": "QLoRA is all you need (Fast and lightweight model fine-tuning)",
        "publishedAt": "2 years ago",
        "durationSeconds": 1436,
        "views": 73043,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learning and sharing my process with QLoRA (quantized low rank adapters) fine-tuning. In this case, I use a custom-made reddit dataset, but you can use anything you want.  \n\nI referenced a...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "m1feTAvlXxw",
        "title": "Chat Interface for your Local Llama LLMs",
        "publishedAt": "2 years ago",
        "durationSeconds": 956,
        "views": 22279,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A tutorial of sorts covering how to create streaming chat interfaces using Gradio for the various chat/instruct large language models from HuggingFace.\n\nSample code: https://huggingface.co/spaces/S...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jkdWzvMOPuo",
        "title": "Gzip is all You Need! (This SHOULD NOT work)",
        "publishedAt": "2 years ago",
        "durationSeconds": 1187,
        "views": 152689,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github code: https://github.com/Sentdex/Simple-kNN-Gzip\n\nNeural Networks from Scratch book: https://nnfs.io\nChannel membership: https://www.youtube.com/channel/UCfzlCWGWYyIQ0aLC5w48gBQ/join...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MNSmOih_pmg",
        "title": "Better Attention is All You Need",
        "publishedAt": "2 years ago",
        "durationSeconds": 869,
        "views": 63993,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Addressing the current state of attention for artificial intelligence and why it's currently holding back maximum context lengths.\n\nNeural Networks from Scratch book: https://nnfs.io\nChannel...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-IV1NTGy6Mg",
        "title": "The BEST Open Source LLM? (Falcon 40B)",
        "publishedAt": "2 years ago",
        "durationSeconds": 1436,
        "views": 100251,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "TII Call for Proposals with Falcon 40B: https://falconllm.tii.ae/proposal.php\nFalcon Github samples: https://github.com/Sentdex/Falcon-LLM\nTermGPT: https://www.youtube.com/watch?v=O4EmRi0_CI4...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0lOSvOoF2to",
        "title": "OpenAI GPT-4 Function Calling: Unlimited Potential",
        "publishedAt": "2 years ago",
        "durationSeconds": 1429,
        "views": 230968,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Function calling is a new capability for OpenAI's GPT-4 and GPT-3.5 via the API. Function-calling allows you to extract structured outputs from the GPT model.\n\nGithub notebook: https://github.com/S...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "O4EmRi0_CI4",
        "title": "Letting GPT-4 Control My Terminal (TermGPT)",
        "publishedAt": "2 years ago",
        "durationSeconds": 1392,
        "views": 77493,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Giving LLMs like GPT-4 the ability to plan and execute terminal commands.\n\nTermGPT github: https://github.com/Sentdex/TermGPT/\nOpenAI Chat API tutorial: https://github.com/Sentdex/ChatGPT-API-Basic...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kkTNg_UOCNE",
        "title": "Building an Open Assistant API",
        "publishedAt": "3 years ago",
        "durationSeconds": 2471,
        "views": 31757,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Working with one of the Open Assistant models, a 12B parameter Pythia model (https://huggingface.co/OpenAssistant/oasst-sft-4-pythia-12b-epoch-3.5)\n\nGithub: https://github.com/Sentdex/OpenAssistant...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lJNblY3Madg",
        "title": "Sparks of AGI? - Analyzing GPT-4 and the latest GPT/LLM Models",
        "publishedAt": "3 years ago",
        "durationSeconds": 3639,
        "views": 58383,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "An in-depth look into the current state of the art of Generative Pre-trained Transformer (GPT) language models, with a specific focus on the advancements and examples provided by OpenAI in...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fGpXj4bl5LI",
        "title": "ChatGLM: The ChatGPT killer? Checking out ChatGLM6B",
        "publishedAt": "3 years ago",
        "durationSeconds": 997,
        "views": 103562,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Exploring the concept of a GLM (General Language Model) and working with ChatGLM6B. \n\nOriginal GLM paper: https://arxiv.org/abs/2103.10360\nGLM130B paper: https://arxiv.org/abs/2210.02414\nChatGLM6B...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YY7LIEHiAfg",
        "title": "GPT Journey - A text and image game with ChatGPT",
        "publishedAt": "3 years ago",
        "durationSeconds": 2817,
        "views": 36128,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Building a text and image-based game with ChatGPT as the backend via the api... plus a little help from ChatGPT to build it. \n\nGithub: https://github.com/Sentdex/GPT-Journey\n\nNeural Networks...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "c-g6epk3fFE",
        "title": "ChatGPT API in Python",
        "publishedAt": "3 years ago",
        "durationSeconds": 2118,
        "views": 186097,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Exploring the ChatGPT (GPT3.5) API from OpenAI and building some simple chat applications with it. \n\nGithub code: https://github.com/Sentdex/ChatGPT-API-Basics\n\nNeural Networks from Scratch...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": "[REDACTED]",
      "businessEmailSource": "channel-about-section",
      "businessEmailMxValid": true,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "pythonprogramming.net",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "high",
      "components": {
        "businessEmailPresent": true,
        "businessEmailValid": true,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Will likely respond to sponsorship outreach: business email validated + active sponsor history + external website live."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.87,
        "evidenceVideoIds": [
          "FGnAeUXRZ4E",
          "Ah0-l0HZwLA",
          "eRPSRSGiAA8",
          "wiIUF9pIDYw",
          "cmnJhOWp2z4"
        ]
      },
      {
        "label": "sentdex",
        "share": 0.67,
        "evidenceVideoIds": [
          "FGnAeUXRZ4E",
          "Ah0-l0HZwLA",
          "eRPSRSGiAA8",
          "wiIUF9pIDYw",
          "cmnJhOWp2z4"
        ]
      },
      {
        "label": "neural",
        "share": 0.6,
        "evidenceVideoIds": [
          "FGnAeUXRZ4E",
          "Ah0-l0HZwLA",
          "eRPSRSGiAA8",
          "wiIUF9pIDYw",
          "cmnJhOWp2z4"
        ]
      },
      {
        "label": "networks",
        "share": 0.6,
        "evidenceVideoIds": [
          "FGnAeUXRZ4E",
          "Ah0-l0HZwLA",
          "eRPSRSGiAA8",
          "wiIUF9pIDYw",
          "cmnJhOWp2z4"
        ]
      },
      {
        "label": "com",
        "share": 0.6,
        "evidenceVideoIds": [
          "Ah0-l0HZwLA",
          "wiIUF9pIDYw",
          "Uc1nhT8beTU",
          "pPTo62O__CU",
          "57cPmzwCqd4"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Tuesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "business email validated.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "strong",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 49,
      "reason": "validated business email",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.95
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.8,
      "level": "high",
      "coldStart": false
    },
    "whyThisMatters": "validated business email. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "sentdex — 1.4M subs, C-tier sponsorship readiness, high contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": true,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 49,
      "readyForOutreach": false,
      "blockers": [],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.61,
      "urgency": 0,
      "noiseRisk": 0.2
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": {
      "isValidFormat": true,
      "canonical": "hskinsley@gmail.com",
      "domain": "gmail.com",
      "lineType": "free-mail",
      "mxValid": true,
      "confidence": 0.6,
      "originalInput": "hskinsley@gmail.com",
      "email": null
    },
    "allEmailValidations": [
      {
        "isValidFormat": true,
        "canonical": "hskinsley@gmail.com",
        "domain": "gmail.com",
        "lineType": "free-mail",
        "mxValid": true,
        "confidence": 0.6,
        "originalInput": "hskinsley@gmail.com",
        "email": null
      }
    ],
    "contactabilityScore": {
      "score": 78,
      "level": "high",
      "components": {
        "presence": 25,
        "sourceQuality": 18,
        "validationQuality": 18,
        "identityStrength": 4,
        "freshness": 8,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "email",
      "secondary": "agency-form",
      "reason": "Validated business email + active sponsor history — email-first maximises response rate."
    },
    "sequenceFit": {
      "directOutreachAllowed": true,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "channel-about",
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.78
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.78,
      "gap": 0.16,
      "howToClose": [
        "Run ryanclinton/person-enrichment-lookup against 'hskinsley@gmail.com' to identify the inbox owner."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "medium",
      "score": 0.6,
      "factors": [
        "business-email-validated",
        "external-website-active"
      ],
      "riskFlags": [
        "free-mail-only"
      ]
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + validated business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:free-mail",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [],
      "safeChannels": [
        "email",
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [
      {
        "email": "[REDACTED]",
        "rank": 1,
        "reason": "free-mail email",
        "role": "personal"
      }
    ],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": false,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": [
        "contactability:high"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 64,
      "reasons": [
        "Validated business email (MX confirmed)",
        "Low confidence-conflict count in scoring trace"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "280afa7550205ea6a92ff6f72afcb8084f5865f7707583bcb877409535946e45",
      "inputsHash": "b3092646205719f98cf1262e6f8b16a512f0aadf0842f869761395a3e3cb1f0f",
      "rulesApplied": [
        "business-email-validated",
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:52.251Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "6d1f5f660deccdcf11d0eeb7eee0d4c6c93e5291037ac138755040e7cca52e25",
    "channelId": "UCwRXb5dUK4cvsHbx-rGzSgw",
    "channelHandle": "@derekbanas",
    "channelName": "Derek Banas",
    "channelUrl": "https://www.youtube.com/@derekbanas",
    "description": "I make tutorials based on your requests. I will cover any topic you can imagine. Ask me questions anytime on Discord : https://discord.gg/pFkpxYC7rQ",
    "joinDate": null,
    "location": null,
    "subscribers": 1340000,
    "totalVideos": 1200,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_naavCy-rkR4iU851a1vMh7LrBa_Hbxf3qpnRiMqK9IEZc=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "newthinktank.com",
        "url": "http://www.newthinktank.com"
      },
      {
        "platform": "twitch",
        "url": "https://www.twitch.tv/derekbanas"
      },
      {
        "platform": "patreon.com",
        "url": "https://www.patreon.com/derekbanas"
      },
      {
        "platform": "facebook",
        "url": "http://www.facebook.com/profile.php?id=1340352057"
      },
      {
        "platform": "discord",
        "url": "https://discord.gg/pFkpxYC7rQ"
      }
    ],
    "recentVideos": [
      {
        "videoId": "W_gMBarj0QE",
        "title": "How to Write a Novel",
        "publishedAt": "2 years ago",
        "durationSeconds": 4321,
        "views": 56465,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Unlock the Secrets to Novel Writing in One Video (With No Ads)\n\nEver dreamt of writing a novel that captures the hearts and minds of readers worldwide? In this video, I transform the wisdom of 14 esteemed novel-writing guides into an essential, engaging, and highly practical masterclass. Whether you're a budding author or an experienced scribe, this video is your blueprint for crafting stories that resonate, entertain, and inspire. 🌟\n\n🆓 My book is free on Kindle Unlimited: https://amzn.to/48H9G8X\n\nWhat You'll Learn:\n\n📘 Idea Generation: Discover unique techniques for conjuring ideas that have the power to transform into compelling stories.\n🎨 Character & World Building: Master creating vivid characters and immersive worlds that readers will fall in love with.\n📈 Plot Development: Learn how to construct exciting plots that keep readers on the edge of their seats.\n🔍 Mystery & Suspense: Strategies to keep your readers guessing and the pages turning.\n🎉 Revelations: How to craft moments of revelation that will leave your readers in awe.\n⚔️ The Final Battle: Tips for creating a satisfying climax that pays off.\n🖋️ Descriptive Text: Grasp the core principles of writing vivid descriptions that bring your story to life.\n💬 Effective Dialogue: Learn the secrets to writing dialogue that breathes life into your characters.\n🛠️ Productivity Tools: Explore tools and techniques to significantly boost your writing productivity.\n📚 Research Techniques: How to research effectively to add depth and authenticity to your writing.\n📝 From Idea to Manuscript: A step-by-step guide to turning your ideas into a polished manuscript.\nFeaturing a Case Study of \"Harry Potter\": Discover how J.K. Rowling's masterpiece can inspire your writing journey, illustrating key concepts in a relatable and insightful manner.\n\nAs a bonus, I'll share insights from my own journey of writing \"Whispers,\" a psychological techno-thriller, distilling a year's worth of learning into actionable advice for fellow writers.\n\nWhether you're penning your first novel or looking to refine your craft, this video is packed with advice, inspiration, and practical tips to help you navigate the path from initial idea to published book. 📖✨",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_5D4I4QddCY",
        "title": "Machine Learning Tutorial for Beginners",
        "publishedAt": "3 years ago",
        "durationSeconds": 7386,
        "views": 64576,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I wrote a Techno-Thriller called Whispers if you're interested: https://amzn.to/4cfdtNW\nI'd greatly appreciate a review for it if you have time.\n\nI'll teach a ton about how to use TensorFlow and I'll answer all your questions live. I'll cover all of the following and much more : \n\n❇️ Working with Tensors\n❇️ Google Colab\n❇️ Downloading / Cleaning Data\n❇️ Boxplots, Histograms & Correlation Matrix\n❇️ Neural Network Regressions\n❇️ Random Data\n❇️ Normalizing Data\n❇️ One Hot Encoding\n❇️ Separate Features & Labels\n❇️ Separate Training & Testing Data\n❇️ Building Models\n❇️ Compiling, Optimizing, Evaluating\n❇️ Activation (What data is important)\n❇️ Fitting, Epochs & More\n\n🖥️ Code is Here : https://github.com/derekbanas/tensorflow\n\nMY UDEMY COURSES ARE 87.5% OFF TIL May 8th ($9.99) \n\n➡️ Python Data Science Series: Highest Rated & Largest Python Udemy Course + 56 Hrs + 200 Videos + Data Science https://bit.ly/Master_Python_53\n➡️ C++ Programming Bootcamp Series: Over 23 Hrs + 53 Videos + Quizzes + Graded Assignments  https://bit.ly/C_Course_53\n➡️ Golang Course:  15 Hrs + Web Apps + Core Language + Create a Blog + PostgreSQL + Problem Solving https://bit.ly/go-tutorial11 \n\nProbability in One Video :    • Probability for Data Science & Machine Lea...  \nStatistics in One Video :    • Statistics for Data Science & Machine Lear...  \nNumPy in One Video :    • NumPy Tutorial : Numpy Full Course  \nPandas in One Video :    • Pandas Tutorial : Pandas Full Course  \nMatplotlib in One Video :    • Matplotlib Tutorial : Matplotlib Full Course  \nSeaborn in One Video :    • Seaborn Tutorial : Seaborn Full Course  \nPlotly in One Video :    • Plotly Tutorial 2023  \n\n#deeplearning  #tensorflow  #machinelearning",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xcONCZR6bMo",
        "title": "Python for Data Science",
        "publishedAt": "3 years ago",
        "durationSeconds": 4258,
        "views": 30024,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I wrote a Techno-Thriller called Whispers if you're interested: https://amzn.to/4cfdtNW\nI'd greatly appreciate a review for it if you have time.\n\nPython is the language of Data Science and in this One Hour long video I'll teach you everything you need to know to Master Numpy, Pandas and Plotly!\n\nI'm a data scientist and I created this video to cover the 90% of knowledge I use constantly with these Python Data Science libraries. If you watch this video while working through the included and commented code files you will master the core libraries of Data Science. Everything is 100% Free also, which is pretty cool!\n\nAll the Files are Here : https://github.com/derekbanas/Python4...\n(Look for AAPL.csv, MSFT.csv, Numpy_Pandas.ipynb and stock_sectors.xlsx)\n\nMY UDEMY COURSES ARE 87.5% OFF TIL May 1st ($9.99) \n\n➡️ Python Data Science Series: Highest Rated & Largest Python Udemy Course + 56 Hrs + 200 Videos + Data Science https://bit.ly/Master_Python_53\n➡️ C++ Programming Bootcamp Series: Over 23 Hrs + 53 Videos + Quizzes + Graded Assignments  https://bit.ly/C_Course_52\n➡️ Golang Course:  15 Hrs + Web Apps + Core Language + Create a Blog + PostgreSQL + Problem Solving https://bit.ly/go-tutorial10    \n\nMORE DATA SCIENCE VIDEOS \n\nPython Full Course:    • Python Tutorial : Python Full Course  \nInstall for Windows :    • Install Anaconda Windows   \nInstall for MacOS :    • Install Anaconda MacOS   \nNumPy in One Video :    • NumPy Tutorial : Numpy Full Course   \nPandas in One Video :    • Pandas Tutorial : Pandas Full Course   \nMatplotlib in One Video :    • Matplotlib Tutorial : Matplotlib Full Course   \nSeaborn in One Video :    • Seaborn Tutorial : Seaborn Full Course   \nPlotly in One Video :    • Plotly Tutorial 2023   \nTime Series Analysis :    • Time Series Analysis   \nProbability in One Video :    • Probability for Data Science & Machine Lea...   \nStatistics in One Video :    • Statistics for Data Science & Machine Lear...   \nAlgebra :    • Learn Algebra   \nLinear Algebra :    • Prelinear Algebra   \n\n#PythonForDataScience #DataScience #Python",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "k_FISWJKoFQ",
        "title": "Probability",
        "publishedAt": "3 years ago",
        "durationSeconds": 2815,
        "views": 19958,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ask me Anything Anytime on Twitter: https://x.com/NewThinkTank\n\nI took everything in a standard 500 page text book on Probability and put it in this one video. I will cover every formula, but also will solve a real world problem with each formula. \n\nBest probability Book : https://amzn.to/3diFOmB\n\nMY UDEMY COURSES ARE 87.5% OFF TIL May 1st ($9.99) \n\n➡️ Python Data Science Series: Highest Rated & Largest Python Udemy Course + 56 Hrs + 200 Videos + Data Science https://bit.ly/Master_Python_52\n➡️ C++ Programming Bootcamp Series: Over 23 Hrs + 53 Videos + Quizzes + Graded Assignments  https://bit.ly/C_Course_52\n➡️ Golang Course:  15 Hrs + Web Apps + Core Language + Create a Blog + PostgreSQL + Problem Solving https://bit.ly/go-tutorial10    \n\n#LearnWithMe #Probability #DataScience\n\nHere is a Table of Contents that will allow you to jump around in the video and learn what ever you are interested in. \n\nTABLE OF CONTENTS\n\n0:00 Intro\n01:31 Probability Definitions\n01:44 Union\n02:12 Intersection\n02:39 Complement\n02:59 Conditional Probability\n04:30 Contingency Table\n04:48 Addition Rule\n05:40 Joint Probability\n06:00 Dependent vs. Independent\n06:45 Independent Events\n07:17 Mutually Exclusive Events\n07:44 Venn Diagrams\n08:39 Tree Diagrams\n09:48 Total Probability\n11:37 Bayes' Theorem\n14:09 Combinatorics\n14:22 Permutations\n15:46 Combinations\n16:57 Poker Probabilities\n19:26 Which to use?\n19:51 Variations\n20:30 Types of Variables\n21:00 Discrete Uniform Distribution\n21:05 Probability Mass\n22:03 Variance\n22:35 Relative Frequency Histogram\n22:44 Cumulative Distribution\n23:03 Expected Value\n24:00 Standard Deviation\n24:25 Normal Distribution\n25:35 Z Score\n26:53 Negative Z Score\n27:25 Reverse Z Score\n28:08 Confidence Intervals\n29:58 Binomial Probability\n31:35 Poisson Distribution\n32:55 Geometric Probability\n35:00 Central Limit Theorem\n35:26 Negative Binomial Probability\n36:15 Which to use?\n36:46 Negative Binomial Formula\n38:05 Hypergeometric Distribution\n40:58 Continuous Probability\n42:37 Continuous Probability Formula\n43:16 Exponential Distribution\n44:34 Exponential Formulas",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "F5jIFP56J0E",
        "title": "Microsoft Excel Tutorial for Beginners  | Full Course",
        "publishedAt": "3 years ago",
        "durationSeconds": 17819,
        "views": 36673,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ask me Anything Anytime on Twitter: https://x.com/NewThinkTank\n\nAre you looking to master Microsoft Excel? Look no further! This tutorial covers nearly everything you’d ever want to learn about Excel. With 140 topics covered in the Table of Contents, this tutorial is perfect for beginner students who want to learn Excel from scratch. \n\nStarting with the interface and working all the way through advanced topics like Pivot Tables, Macros, VBA, What If scenarios and much more, this 5-hour Full Course is designed to help you become an Excel pro in no time. And the best part? This course has only 1 ad and no sponsorships or other nonsense.\n\nFiles used on Github 100% for free : \nhttps://github.com/derekbanas/excel-t...\n\nMicrosoft Excel is an essential tool for anyone who works with data. It can help you save time and work more efficiently by automating repetitive tasks and providing powerful analytical tools.\n\nMY UDEMY COURSES ARE 87.5% OFF TIL May 1st ($9.99) \n\n➡️ Python Data Science Series: Highest Rated & Largest Python Udemy Course + 56 Hrs + 200 Videos + Data Science https://bit.ly/Master_Python_52\n➡️ C++ Programming Bootcamp Series: Over 23 Hrs + 53 Videos + Quizzes + Graded Assignments  https://bit.ly/C_Course_52\n➡️ Golang Course:  15 Hrs + Web Apps + Core Language + Create a Blog + PostgreSQL + Problem Solving https://bit.ly/go-tutorial10    \n\nTable of Contents\n00:00 Intro\n00:40 Startup Screen\n01:20 Increase Screen Size\n01:53 Quick Access Toolbar\n03:08 Ribbon\n03:37 Common Shortcuts \n04:23 Newline in Cell \n06:20 Sheets \n08:10 Formula Bar / Cells \n08:40 Views\n12:06 Formatting \n12:50 Alignment \n15:00 Dates / Custom Dates\n17:25 Formulas  \n24:47 Auto Sum \n27:18 Percentages\n33:02 Relative / Absolute References\n36:00 Date Calculation Error\n36:48 Formula Omits Adjacent Cells \n37:54 Order of Operation\n42:33 Superscript \n44:53 Common Functions \n45:52 Average \n46:26 Count \n46:56 Max\n47:12 Min \n47:12 If \n48:46 Concatenate \n50:29 Vlookup\n53:29 Index \n55:16 Subtotal \n56:16 Search for Function / Help\n1:00:00  Modulus\n1:00:24 Power \n1:00:50 Ceiling\n1:01:30 Floor  \n1:02:01 Length   \n1:02:31 Replace  \n1:03:48 Substitute  \n1:04:38 Changing Case \n1:05:43 Date / Time Functions \n1:07:08 Templates   \n1:08:49 Design Attractive Worksheets  \n1:09:35 Themes \n1:10:45 Moving Tables  \n1:12:05 Merge Cells \n1:14:53 Borders \n1:16:32 Currency Formatting  \n1:17:39 Percentage Formatting   \n1:20:57 Format Painter \n1:22:40 Create Custom Style\n1:25:50 Change Style \n1:26:40 Accent Rows  \n1:29:56 Conditional Formatting \n1:33:15 Import Images \n1:34:13 Import Shapes \n1:34:50 Import Icons  \n1:35:50 3D Models \n1:36:09 Charts  \n1:39:30 Recommend Chart \n1:44:21 Filter Chart  \n1:46:25 Move Chart \n1:47:10 Pie Charts  \n1:49:10 Printing Options  \n1:50:13 Page Layout  \n1:50:35 Move Page Cutoff  \n1:52:28 Create Template  \n1:54:30 Fixing Errors \n1:58:45 IFERROR Don’t Show Formula Errors  \n2:00:10 Change Formula in Whole Column\n2:03:00 Save Template \n2:03:40 Import CSV\n2:04:57 See All Sheets \n2:05:13 Add Row\n2:06:40 Sorting\n2:08:35 Multi Column Sort\n2:09:40 Sort by Month \n2:11:00 Filter\n2:11:20 Subtotal Advanced\n2:13:20 Find Duplicates \n2:15:25 Tables \n2:17:20 Table Design Remove Duplicates \n2:18:36 Sum vs. Subtotal  \n2:20:39 DSUM Database Sum\n2:24:40 Calculations based on Conditions \n2:32:50 DCOUNT Database Count\n2:33:55 Export Data \n2:35:14 Validating Data\n2:37:56 Defined Minimum Length\n2:40:27 Verify Email ISNUMBER REGEX\n2:44:33 Valid Options from List / Data Validation\n2:48:25 Data Validation Defined Length \n2:50:20 Validation Custom Error Message \n2:53:20 Split Column by Delimiter\n2:56:40 Convert Date into Month \n3:00:58 RANDBETWEEN Randomly Generate Values \n3:03:32 Pivot Tables \n3:09:05 Grouping \n3:09:45 Formatting Pivot Tables\n3:10:35 Showing Average \n3:11:15 Value Field Settings\n3:13:58 Pivot Charts \n3:15:24 Slicer \n3:16:35 Power Pivot \n3:20:40 Link Tables\n3:23:40 Using Calculations in Power Pivot\n3:25:50 KPI Key Performance Indicator\n3:29:26 Fixing the Budget Template \n3:30:16 Named Ranges \n3:31:50 Named Range Negative \n3:35:50 Fixing Strange Excel Errors  \n3:39:00 Jump to Named Ranges \n3:39:20 Name Manager\n3:39:50 Conditional Characters\n3:42:03 IF \n3:43:51 OR  \n3:46:30 COUNTIF \n3:49:30 Trace Precedents / Dependence \n3:51:35 Show Formulas\n3:52:05 Use Values from One Worksheet in Another \n3:54:06  Watch Window\n3:55:32 Password Protecting Worksheets \n4:00:27 Turn Off Protection\n4:02:40 Error Checking\n4:04:55 Goal Seek \n4:05:29 Paying off a Loan \n4:06:47 Formula Dialog \n4:09:28 How to Become a Millionaire \n4:10:50 FV Future Value\n4:14:33 Data Table \n4:19:37 Solver \n4:20:30 Maximize Profit Inventory Management  \n4:26:07 SUMPRODUCT \n4:33:00 Scenarios\n4:33:35 Gross Profit Scenarios \n4:38:05 Macros \n4:39:53 Create a Macro \n4:44:56 Edit a Macro \n4:45:50 Visual Basic for Applications\n4:54:01 Create Macro Button",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "FT5P5ZktzZI",
        "title": ".NET MAUI Tutorial Full Course",
        "publishedAt": "3 years ago",
        "durationSeconds": 18518,
        "views": 97148,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I wrote a Techno-Thriller called Whispers if you're interested: https://amzn.to/4cfdtNW\nI'd greatly appreciate a review for it if you have time.\n\n.NET MAUI allows you to create multi-platform apps using one code base. That means you can develop for Android, iOS, macOS and of course Windows at the same time! \n\nIn this course I provide numerous examples on how to use all the tools MAUI provides. Check out the long table of contents below.  \n\n9 Hour C# Tutorial :    • C# Full Course : C# Tutorial for Beginners  \n\nMY UDEMY COURSES ARE 87.5% OFF TIL May 1st ($9.99) \n\n➡️ Python Data Science Series: Highest Rated & Largest Python Udemy Course + 56 Hrs + 200 Videos + Data Science https://bit.ly/Master_Python_52\n➡️ C++ Programming Bootcamp Series: Over 23 Hrs + 53 Videos + Quizzes + Graded Assignments  https://bit.ly/C_Course_52\n➡️ Golang Course:  15 Hrs + Web Apps + Core Language + Create a Blog + PostgreSQL + Problem Solving https://bit.ly/go-tutorial10    \n\n#dotnetmaui  #androiddeveloper #csharp \n\nCODE ON GITHUB\nhttps://github.com/derekbanas/MauiApp1\nhttps://github.com/derekbanas/MauiApp2\nhttps://github.com/derekbanas/MauiApp3\nhttps://github.com/derekbanas/MauiApp4\nhttps://github.com/derekbanas/MauiApp5\nhttps://github.com/derekbanas/MauiApp6\nhttps://github.com/derekbanas/MauiApp7\nhttps://github.com/derekbanas/MauiApp8\n\nTABLE OF CONTENTS\n00:00:00 Intro\n00:01:09 Install .NET MAUI Visual Studio\n00:03:21 Install Hyper-V\n00:09:15 Setup Android Phone\n00:11:23 Create 1st App \n00:12:06 App Overview\n00:13:16 File Explanation\n00:15:30 Event Handling Basics\n00:16:24 ContentPage\n00:18:50 ScrollView\n00:19:10 StackLayout\n00:19:36 Image\n00:19:52 Label\n00:20:17 Button / Events\n00:21:40 Define Initial Page\n00:22:05 NavigationPage\n00:22:55 Wiki Web Colors\n00:26:48 Navigate to New Page\n00:31:05 FlyoutPage\n00:35:00 TabbedPage\n00:37:30 Importing Images\n00:38:24 Iconsc\n00:41:02 Layouts\n00:41:35 StackLayoutv\n00:43:18 Frame\n00:44:55 Label Attributes\n00:50:35 Button Attributes\n00:54:15 HorizontalStackLayout\n00:58:31 GridLayout \n01:00:54 BoxView\n01:10:40 Calculator Demo\n01:12:45 Entry\n01:23:13 FlexLayout\n01:29:30 Headers / Footers\n01:36:20 AbsoluteLayout\n01:40:55 Layout Flags\n01:43:11 Sizing Controls\n01:45:44 Tons of Controls\n01:52:24 DisplayAlert\n01:52:54 Searchbar\n01:56:30 RadioButton\n01:59:35 CheckBox\n02:02:49 Switch\n02:05:18 SwipeView\n02:06:40 SVG Files\n02:12:51 Slider\n02:16:11 Stepper\n02:18:16 DatePicker\n02:20:39 TimePicker\n02:22:05 Entry in Detail\n02:24:48 Changing Values with Events\n02:26:03 Editor\n02:26:59 Model\n02:28:40 View Modelc\n02:30:13 Using Images\n02:30:39 ObservableCollection\n02:31:50 ListModel / ListView\n02:41:30 Binding\n02:43:10 Events on Collection\n02:48:02 CarouselView\n02:51:40 Custom Fonts\n02:55:20 Icons\n02:58:50 Bindings in Detail \n03:07:15 Bindings in XAML\n03:10:40 BindingContextc\n03:12:39 Binding on Controls\n03:15:33 MVVM Pattern\n03:40:40 MVVM Collection\n03:53:00 ICommand / Commands\n03:57:10 Communicating with MVVM\n04:02:38 INotifyPropertyChanged\n04:08:44 Navigation\n04:14:10 N avigationPage\n04:16:19 Pass Data Between Pagesc\n04:23:26 MVVM Collections\n04:38:45 Styles / ResourceDictionary\n04:40:50 Precompile\n04:43:42 Dynamic Styling\n04:45:15 Selector / DataTemplateSelectorc\n04:56:15 Change Layouts Easy",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rpwOpDFWlAg",
        "title": "Happy Holidays : I Made You a Present",
        "publishedAt": "3 years ago",
        "durationSeconds": 50,
        "views": 11900,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "To celebrate the holidays I decided to give away my new Udemy Golang 15 Hour course for FREE! It will be free for the rest of the month and the coupon code is here : \n\nhttps://bit.ly/go-tutorial8 (100 Available) FREE FEBRUARY 2023 COUPON\n\nMY UDEMY COURSES ARE 87.5% OFF TIL March 26th ($9.99) ONE IS FREE\n\n➡️ Python Data Science Series for $9.99 : Highest Rated & Largest Python Udemy Course + 56 Hrs + 200 Videos + Data Science https://bit.ly/Master_Python_50\n➡️ C++ Programming Bootcamp Series for $9.99 : Over 23 Hrs + 53 Videos + Quizzes + Graded Assignments + New Videos Every Month https://bit.ly/C_Course_50\n➡️ FREE 15 hour Golang Course!!! : https://bit.ly/go-tutorial9 (100 Available)\n\nThe course is huge and it contains all the code with exercises. Here is just a sample of all that is covered : \n\n• Core Go Language\n• 3 Web Apps\n• Caching\n• Handlers\n• Templates\n• Sessions\n• Middleware\n• CSRF Attack Protection\n• Validation\n• Working with Databases\n• PostgreSQL Tutorial\n• Numerous DB Functions\n• User Authentication\n• Much More\n\nI hope you find it useful. Thank you for all your support! \nHAPPY HOLIDAYS",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "M5ugY7fWydE",
        "title": "C# Full Course : C# Tutorial for Beginners",
        "publishedAt": "3 years ago",
        "durationSeconds": 32316,
        "views": 560500,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I wrote a Techno-Thriller called Whispers if you're interested: https://amzn.to/4cfdtNW\nI'd greatly appreciate a review for it if you have time.\n\nIn this C# Full Course I provide the most complete tutorial on C# all in one huge 9 Hour course! I cover not only the core C# language, but also provide numerous examples on how to use them to make real applications. At the end of the course we make a database management system from scratch.\n\nThis is basically a FREE Udemy course with NO ADS. I also provide organized code on GitHub that you can download for free here : https://github.com/derekbanas/C-Sharp...\n\nIf you like huge videos like this, please tell me in the comment section below. If you do, my next videos will be huge courses like this on .NET MAUI and Unity Game Programming with C#.\n\nBest C# Book : https://amzn.to/3G58Qbq\n\nMY UDEMY COURSES ARE 87.5% OFF TIL May 1st ($9.99) \n\n➡️ Python Data Science Series: Highest Rated & Largest Python Udemy Course + 56 Hrs + 200 Videos + Data Science https://bit.ly/Master_Python_52\n➡️ C++ Programming Bootcamp Series: Over 23 Hrs + 53 Videos + Quizzes + Graded Assignments  https://bit.ly/C_Course_52\n➡️ Golang Course:  15 Hrs + Web Apps + Core Language + Create a Blog + PostgreSQL + Problem Solving https://bit.ly/go-tutorial10    \n\nTABLE OF CONTENTS\n00:00 Intro\n00:39 Visual Studio Setup\n02:00 System\n02:39 Visual Studio Environment\n03:26 Namespace\n04:00 Class Basics\n04:40 Main Function\n05:30 Void\n05:55 Main Arguments\n06:28 WriteLine\n07:10 Console Methods\n09:03 Receive User Input\n11:25 Variables\n11:49 Data Types\n23:00 Casting\n28:30 Formatting Output\n30:49 String Functions\n41:00 Format\n42:45 Escape Characters\n43:20 Verbatim Strings\n44:35  Arrays\n48:50 For Loop\n56:55 Function Basics \n58:45 Foreach\n1:07:22 If / Else / Else If\n1:12:10 Ternary Operator\n1:12:50 Switch\n1:17:43 While\n1:20:20 Do While\n1:20:40 Random\n1:24:48 Exception Handling\n1:30:41 StringBuilder\n1:38:23  Functions\n1:39:00 Access Specifier\n1:46:26 Out Parameter\n1:48:32 Pass By Reference\n1:51:40 Passing Unknown Number of Parameters\n1:56:00 Method Overloading\n1:59:44 DateTime / TimeSpan\n2:04:00 Enumerated Types\n2:07:45 Classes / Objects\n2:09:50 Constructor\n2:10:50 Static\n2:13:40 This\n2:22:30 Structs\n2:30:42 Nullable Types\n2:33:30 Basic Setter / Getter\n2:35:35 Getters / Setters Properties\n2:39:00 Public / Private / Protected\n2:40:10 Constants\n2:40:37 Readonly\n2:50:11 Inheritance\n2:56:20 Virtual\n2:59:40 Inner Class\n3:03:01 Override Method\n3:14:11  Abstract Classes / Methods\n3:28:26 Polymorphism\n3:29:19 Interfaces\n3:38:10 Complex OOP Example\n3:49:30  Warriors Fight to the Death\n4:25:32 ArrayList\n4:34:23  Dictionaries\n4:39:44 Queues\n4:44:02 Stacks\n4:48:06 Generics\n5:02:41 Delegates\n5:08:28 Lambda\n5:11:33 Where\n5:17:40 Select\n5:17:55 Range\n5:19:30 Zip\n5:21:25 Aggregate\n5:23:12 Average\n5:23:56 All\n5:24:40 Any\n5:25:05 Distinct\n5:26:00 Except\n5:27:09 Intersect\n5:27:47 IEnumerator\n5:34:12 Operator Overloading\n5:46:09  Anonymous Types\n5:49:51 LINQ\n6:18:53 Threads\n6:38:44 Directory Functions\n6:43:15 File I/O\n6:49:40 FileStreams\n6:53:50 StreamWriter / StreamReader\n6:57:45 BinaryWriter / BinaryReader\n7:01:17 Serialization\n7:15:10 XmlSerializer\n7:26:32 Installing SQL Server\n7:30:30 Connecting SQL Server to Visual Studio\n7:32:58 Setting Up Database\n7:41:30 WPF / Database Big Project\n7:55:40 Design an Interface\n8:12:53 Reading From Database\n8:32:10 Add Data to Database\n8:49:56 Delete Data from Database\n8:51:35 Update Tables Automatically",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "So5ksHDmxkU",
        "title": "xTool D1 Pro 20w Projects",
        "publishedAt": "3 years ago",
        "durationSeconds": 705,
        "views": 26749,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I am not an expert user of laser cutters / etchers but with the xTool D1 Pro 20w it is so easy to use I feel like I can make anything! It can cut through basically anything including paper, wood, leather, and multiple types of metal and acrylic . It can etch everything including metal and glass. \n\nI'm going to show over 12 projects I made using the xTool D1 Pro 20w and some of its accessories. I use the new Rotary Tool, Honeycomb Working Panel, air assist and some of xTool's engraving accessories. I can't believe I was able to make all of these cool things with zero experience.\n\nThe xTool D1 Pro 20w Cutting and Engraving Machine is an industrial machine downsized for designers and hobbyists. All of the internal moving components are industrialized steel, but it is light enough to easy carry. The laser is accurate to .08 mm and moves with a precision of .01 mm. It has height adjustment, engraves and cuts numerous materials and is easy to adjust.\n\nThe xTool D1 Pro 20w is 23% off Here : https://bit.ly/MBxTool\n\nFULL DISCLOSURE \n\nI was given this kit for free for review. I was however not paid money for this review. You can sign up down below if you want the chance to test products like me.\n\nTEST  PRODUCTS  LIKE  ME\n\nIf  you’d  like  to  apply  to  be  a  product  tester  like  me,  check  out：  https://www.xtool.com/pages/influencer\n  \nOr join their Facebook group:\n   / xtoold1  \n  \nFIND  OUT  MORE  ABOUT  xTool\nFacebook:      / xtoolofficial      \nInstagram:    / makeblock.xtool    \n\n#LaserEngraver #LaserCutter #xTool D1 Pro 20w",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "85pG_pDkITY",
        "title": "PostgreSQL Tutorial Full Course 2022",
        "publishedAt": "3 years ago",
        "durationSeconds": 13331,
        "views": 421512,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I wrote a Techno-Thriller called Whispers if you're interested: https://amzn.to/4cfdtNW\nI'd greatly appreciate a review for it if you have time.\n\nI provide here in this PostgreSQL tutorial a full course you can use to master PostgreSQL. Postgres is an object relational database that is just as fast as MySQL that adheres more closely to SQL standards and excels at concurrency. Postgres is also superior at avoiding data corruption. \n\nPostgres also provides more advanced data types and allows for the creation of custom types, operators and index types. \n\nPostgres is normally the best option when extensibility, scalability and data integrity are most important to you. The table of contents below provides timestamps to everything I cover.\n\nCode & Transcript Here : https://github.com/derekbanas/postgre...\nBest Book on PostgreSQL : https://amzn.to/3rkNX3e\n\nMY UDEMY COURSES ARE 87.5% OFF TIL May 1st ($9.99) \n\n➡️ Python Data Science Series: Highest Rated & Largest Python Udemy Course + 56 Hrs + 200 Videos + Data Science https://bit.ly/Master_Python_52\n➡️ C++ Programming Bootcamp Series: Over 23 Hrs + 53 Videos + Quizzes + Graded Assignments  https://bit.ly/C_Course_52\n➡️ Golang Course:  15 Hrs + Web Apps + Core Language + Create a Blog + PostgreSQL + Problem Solving https://bit.ly/go-tutorial10    \n\n\n#postgresql #postgres #fullcourse \n\nTABLE OF CONTENTS\n00:00 Intro\n00:30 Why Use Postgres?\n01:13 What is a Database\n03:12 Change Database Theme\n03:53 Create a Database\n04:46 Design a Database\n05:50 Turn Invoice into a Database\n07:04 Make a Table\n12:13 Data Types\n16:36 Adding Data to Table\n18:15 To See Data\n18:25 SELECT\n19:19 Create Custom Type\n20:48 Change Column Data Type\n22:58 Thinking About Tables\n25:37 Breaking Up Tables\n27:03  Primary & Foreign Keys\n32:40 Foreign & Primary Keys\n33:28 Altering Tables Many Examples\n53:00   Getting Data from One Table\n53:40 Where\n54:30 Conditional Operators\n55:48 Logical Operators\n58:12 Order By\n59:32 Limit\n1:01:45 GROUP BY\n1:03:11 Distinct\n1:05:00 Getting Data from Multiple Tables\n1:05:21 Inner Join\n1:08:50 Join 3 Tables\n1:13:15  Arithmetic Operators\n1:13:45 Join with Where\n1:14:55 Outer Joins\n1:17:03 Cross Joins\n1:18:16 Unions\n1:19:27 Extract\n1:21:05 IS NULL\n1:22:03 SIMILAR LIKE & ~ \n1:29:25 GROUP BY\n1:31:14  HAVING\n1:32:18  AGGREGATE FUNCTIONS\n1:34:22 WORKING WITH VIEWS\n1:45:01 SQL Functions\n1:49:00 Dollar Quotes\n1:50:06 Functions that Return Void\n1:52:38 Get Maximum Product Price\n1:53:39 Get Total Value of Inventory\n1:54:26 Get Number of Customers\n1:56:15 Named Parameters\n2:01:30 Return a Row / Composite\n2:03:38 Get Multiple Rows\n2:07:08 PL/pgSQL\n2:11:35 Variables in Functions\n2:15:55 Store Rows in Variables\n2:19:17 IN INOUT and OUT\n2:21:01 Using Multiple Outs\n2:25:56 Return Query Results\n2:33:42 IF ELSEIF and ELSE\n2:38:48  CASE Statement\n2:42:01 Loop Statement\n2:45:20 FOR LOOP\n2:48:34 Result Sets, Blocks & Raise Notice\n2:51:11 For Each and Arrays\n2:53:20 While Loop\n2:54:54 Continue\n3:01:34 Stored Procedures\n3:09:35 Triggers\n3:29:25 Cursors\n3:39:45 Installation",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YzLrWHZa-Kc",
        "title": "Golang Tutorial : Go Full Course",
        "publishedAt": "3 years ago",
        "durationSeconds": 13755,
        "views": 294826,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I wrote a Techno-Thriller called Whispers if you're interested: https://amzn.to/4cfdtNW\nI'd greatly appreciate a review for it if you have time.\n\nI created this Golang tutorial to be the definitive...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ygL_xcavzQ4",
        "title": "Rust Tutorial Full Course",
        "publishedAt": "3 years ago",
        "durationSeconds": 9311,
        "views": 608459,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I wrote a Techno-Thriller called Whispers if you're interested: https://amzn.to/4cfdtNW\nI'd greatly appreciate a review for it if you have time.\n\nRust is the language of choice for those looking...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zYktTZNRK-8",
        "title": "Guitar 30 Day Challenge : Complete Beginner",
        "publishedAt": "3 years ago",
        "durationSeconds": 691,
        "views": 17788,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In one month you can get very good at just about anything. In this video, I show how I went from knowing nothing about the guitar to being able to play very well in just 1 month. These techniques...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mFKYnbzLCh4",
        "title": "xTool D1",
        "publishedAt": "4 years ago",
        "durationSeconds": 426,
        "views": 9941,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I had no experience working with laser cutters / etchers until I got the Makeblock xTool D1, but it is so easy to use I feel like I can make anything! It can cut through basically anything....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uwPWuTN7b1I",
        "title": "Linear Regressions with StatsModels",
        "publishedAt": "4 years ago",
        "durationSeconds": 2669,
        "views": 19260,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video I'll show how to create Linear Regressions with StatsModels. We'll explore the awesome datasets provided by StatsModels. I'll also be showing how to work through 2 examples using...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EmZZsy7Ym-4",
        "title": "Install Tensorflow GPU on Windows",
        "publishedAt": "4 years ago",
        "durationSeconds": 691,
        "views": 74897,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I show all of the steps needed to install TensorFlow GPU on Windows. I setup an entire Machine Learning development environment as well by showing how to setup CUDA, cuDNN, Visual Studio Code,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3g2WT2jms_k",
        "title": "Solidity Tutorial",
        "publishedAt": "4 years ago",
        "durationSeconds": 8292,
        "views": 30411,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I cover the core of the Solidity language in this one video. Solidity is used to develop smart contracts that run on Ethereum. Solidity allows people to use tokens and non-fungible tokens on...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vsWR7U-kD6c",
        "title": "Learn Precalculus",
        "publishedAt": "4 years ago",
        "durationSeconds": 9218,
        "views": 50861,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video I'll solve every Precalculus problem from the book James Stewart Calculus, which is commonly used in US universities for learning Calculus. \n\nBefore you can start learning Calculus...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XXXczoYjdc4",
        "title": "Learn Trigonometry",
        "publishedAt": "4 years ago",
        "durationSeconds": 9417,
        "views": 19967,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I show how to solve just about every type of problem you will ever see in Trigonometry and I also cover Conic Sections in this video. There are numerous problems that I work out live on screen,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PDRvMfVBuls",
        "title": "How I trained Myself to Sleep 3 Hours a Day",
        "publishedAt": "4 years ago",
        "durationSeconds": 2330,
        "views": 43638,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Recently in a livestream I told the story of how I trained myself to sleep just 3 hours a day. A lot of people asked me to share it on YouTube, so here it is. In this video I cover : \n\n1. Exactly...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zPgfIOWVnF4",
        "title": "Learn Algebra 1 and 2 in One Video",
        "publishedAt": "4 years ago",
        "durationSeconds": 10362,
        "views": 607446,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I show how to solve just about every type of problem you will ever see in both Algebra 1 and 2 in this video. There are numerous problems that I work out live on screen, while explaining all...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "iEJwQtzwWUU",
        "title": "Octave Tutorial Machine Learning",
        "publishedAt": "4 years ago",
        "durationSeconds": 11715,
        "views": 28249,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Here I teach Octave, which is a language commonly used when teaching Machine Learning and it is also basically a Free Version of Matlab! I'll cover basically a 400 page book in one video.\n...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4jaBKXDqg9U",
        "title": "How to Invest with Data Science",
        "publishedAt": "4 years ago",
        "durationSeconds": 12057,
        "views": 165603,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ask me Anything Anytime on Twitter: https://x.com/NewThinkTank\n\nIn this One video I'll explain how to invest using cutting edge knowledge from both technical analysis and portfolio optimization....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "yxktsDacs1c",
        "title": "Testing Stock Trading Strategies",
        "publishedAt": "4 years ago",
        "durationSeconds": 4868,
        "views": 15591,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🤗 MY DISCORD :  https://discord.gg/pFkpxYC7rQ : Contact Me Anytime \n\n🎥 LIVESTREAM OF THIS VIDEO IS HERE https://www.twitch.tv/derekbanas\n\nIf you want to participate live, my next Coding...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VEYCXsg4pgY",
        "title": "Learn to Crochet for Beginners",
        "publishedAt": "4 years ago",
        "durationSeconds": 1655,
        "views": 13244,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How I Learned to Crochet : http://amzn.to/2vZQqkT\n\nIn this one video I'll demonstrate numerous crochet techniques. With these techniques you'll be able to make scarves, blankets, hats and even...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wKu31AoQFk8",
        "title": "Finding the Best Investments",
        "publishedAt": "4 years ago",
        "durationSeconds": 6529,
        "views": 13724,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "⚠️ I have heard that YouTube might get rid of the comments section sometime next year. So that I can continue to answer your questions I created a Discord. I am available there basically...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0g5d0x1y9IM",
        "title": "Make & Program : Arcade Dart Game : Makeblock NextMaker",
        "publishedAt": "4 years ago",
        "durationSeconds": 3916,
        "views": 3999,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Watch the Livestream Every Thursday at 1PM EST and Interact Live : https://www.twitch.tv/derekbanas\n\nLearn More about NextMaker Here : https://bit.ly/39xB114\n\nI have kids and I have always...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "h0v8Fl-ktXI",
        "title": "Getting Started with Technical Analysis 2",
        "publishedAt": "4 years ago",
        "durationSeconds": 4480,
        "views": 6340,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "⚠️ I have heard that YouTube might get rid of the comments section sometime next year. So that I can continue to answer your questions I created a Discord. I am available there basically...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lY5RW0vtdB8",
        "title": "Getting Started with Technical Analysis",
        "publishedAt": "4 years ago",
        "durationSeconds": 2702,
        "views": 10720,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video I'm going to approach teaching Technical Analysis from the beginning. I'll show you all the libraries you need, how to download stocks, and then all that you need to do to compare...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JvIdddHb6JY",
        "title": "Makeblock Nextmaker Interactive Airplane",
        "publishedAt": "4 years ago",
        "durationSeconds": 3335,
        "views": 3505,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn More about NextMaker Here : https://bit.ly/39xB114\n\nWatch the Livestream Every Thursday at 1PM EST Here : https://www.twitch.tv/derekbanas\n\nI'm starting a weekly Electronics Kit show...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "amzn.to",
        "bit.ly"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "newthinktank.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.53,
        "evidenceVideoIds": [
          "W_gMBarj0QE",
          "_5D4I4QddCY",
          "xcONCZR6bMo",
          "k_FISWJKoFQ",
          "F5jIFP56J0E"
        ]
      },
      {
        "label": "bit",
        "share": 0.37,
        "evidenceVideoIds": [
          "_5D4I4QddCY",
          "xcONCZR6bMo",
          "k_FISWJKoFQ",
          "F5jIFP56J0E",
          "FT5P5ZktzZI"
        ]
      },
      {
        "label": "language",
        "share": 0.37,
        "evidenceVideoIds": [
          "_5D4I4QddCY",
          "xcONCZR6bMo",
          "k_FISWJKoFQ",
          "F5jIFP56J0E",
          "FT5P5ZktzZI"
        ]
      },
      {
        "label": "amzn",
        "share": 0.33,
        "evidenceVideoIds": [
          "W_gMBarj0QE",
          "_5D4I4QddCY",
          "xcONCZR6bMo",
          "k_FISWJKoFQ",
          "FT5P5ZktzZI"
        ]
      },
      {
        "label": "machine learning",
        "share": 0.1,
        "evidenceVideoIds": [
          "_5D4I4QddCY",
          "EmZZsy7Ym-4",
          "iEJwQtzwWUU"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Sunday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 32,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Derek Banas — 1.3M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 32,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.78,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "6d1f5f660deccdcf11d0eeb7eee0d4c6c93e5291037ac138755040e7cca52e25",
      "inputsHash": "a6cb1f142d77a9688d46db8f43d74bc2561605fd90024d3fffdf25607e254129",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:52.619Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "b822fedc6828b157202e49861ff1804e2f02ef1c55ea4f97fb737bfbf672d06d",
    "channelId": "UCWQaM7SpSECp9FELz-cHzuQ",
    "channelHandle": "@dreamsofcode",
    "channelName": "Dreams of Code",
    "channelUrl": "https://www.youtube.com/@dreamsofcode",
    "description": "Become a better developer in 4 minutes: https://bit.ly/45C7a29 👈\n\nComputer Science, Software Engineering, Development and Programming Tutorials.\n\nWe'll be exploring popular programming languages and toolsets as well as some of the more unknown ones. We'll look at building projects with these tools and comparing them to each other.",
    "joinDate": null,
    "location": null,
    "subscribers": 206000,
    "totalVideos": 115,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/8QID_fIK7Yx3XCead0shxVj9Bz0DruEn6dy8RUY98JPHyi0CjPzSYEq_3tID8cXmk9A_DK53=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "dreamsofcode.io",
        "url": "https://dreamsofcode.io"
      },
      {
        "platform": "discord",
        "url": "https://discord.gg/zajQHRxTRJ"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/dreamsofcode_io"
      },
      {
        "platform": "store.dreamsofcode.io",
        "url": "https://store.dreamsofcode.io"
      },
      {
        "platform": "bit.ly",
        "url": "https://bit.ly/45C7a29"
      }
    ],
    "recentVideos": [
      {
        "videoId": "yeeEmnAnAVs",
        "title": "Rust on the web is starting to look quite good.",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 1498,
        "views": 83368,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "To get your own VPS instance to deploy web apps on, then visit https://hostinger.com/dreamsofcode and use DREAMSOFCODE when checking out to get an additional 10% off.\n\nFor what feels like forever now, building a modern web application means writing either JavaScript, or TypeScript.\n\nHowever, as someone who learnt to code using C++, using either of these languages doesn't feel great.\n\nFortunately, in 2026, we have a few other options, with one that I personally am enjoying quite a lot.\n\nRust, which is now not only capable, but is actually thriving. \n\nReal production dioxus app:\nhttps://shotlist.kiru.app\n\nLinks to my VPS instances:\nhttps://yew.zenful.cloud\nhttps://leptos.zenful.cloud\nhttps://dioxus.zenful.cloud\nhttps://iced.zenful.cloud\nhttps://egui.zenful.cloud\nhttps://gpui.zenful.cloud\nhttps://confetti.zenful.cloud\n\nWatch my course on building cli applications in Go: https://dreamsofcode.io/courses/cli-a... 👈\n\nHow I edit my videos: https://kiru.app\n\nMy Gear:\nCamera: https://amzn.to/3E3ORuX\nMicrophone: https://amzn.to/40wHBPP\nAudio Interface: https://amzn.to/4jwbd8o\nHeadphones: https://amzn.to/4gasmla\nKeyboard: ZSA Voyager\n\nJoin this channel to get access to perks:\n   / @dreamsofcode  \n\nJoin Discord:   / discord  \nJoin Twitter:   / dreamsofcode_io  \n\n\n00:00:00 Intro\n00:03:28 Yew\n00:04:52 Running a Yew Project\n00:08:25 Deploying a Rust web app\n00:09:05 Deploying on to a VPS\n00:11:31 Other Yew Features\n00:12:00 Leptos\n00:13:33 Full Stack Leptos\n00:16:42 Deploying Full Stack Leptos\n00:20:05 Desktop Publishing\n00:21:32 Working with JavaScript/Browser APIs",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qwo6w_sLTSw",
        "title": "I finally found a solution for my token costs, one that won't last forever...",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 495,
        "views": 17998,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This video is NOT sponsored (btw).\n\nBuilding an Agentic Video Editor has so far been really enjoyable, both from a technical perspective but also from a product one.\n\nHowever, there's been one thing that I've struggled with recently: Token Cost - Basically paying for tokens every time I want to test or develop my agentic features.\n\nFortunately, I found a solution, one that's way more cost effective, but one that won't last forever. \n\nLinks:\nFireworks: https://fireworks.ai\nKiru: https://kiru.app\nOllama: https://ollama.com\n\nWatch my course on building cli applications in Go: https://dreamsofcode.io/courses/cli-a... 👈\n\nMy Gear:\nCamera: https://amzn.to/3E3ORuX\nMicrophone: https://amzn.to/40wHBPP\nAudio Interface: https://amzn.to/4jwbd8o\nHeadphones: https://amzn.to/4gasmla\nKeyboard: ZSA Voyager\n\nJoin this channel to get access to perks:\n   / @dreamsofcode  \n\nJoin Discord:   / discord  \nJoin Twitter:   / dreamsofcode_io",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4LwTJpURhTY",
        "title": "The weirdest programming language I ever learned",
        "publishedAt": "2 months ago",
        "durationSeconds": 1455,
        "views": 63062,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click this link https://boot.dev/?promo=DREAMSOFCODE and use my code  DREAMSOFCODE  to get 25% off your first payment for boot.dev\n\nThe first ever programming language I learnt was C++, which is probably one of my favorite languages to this date.\n\nThis also happened to be the first language I used professionally, in my first ever software developer role. The second language that I used professionally however, is one that I had never heard of before... one that ended up being quite strange.\n\nWatch my course on building cli applications in Go: https://dreamsofcode.io/courses/cli-a... 👈\n\nLinks: \nTCL Docs: https://www.tcl-lang.org/man/tcl9.0/\nGUI Gist: https://gist.github.com/elliottminns/...\n\nMy Video Editor built in Rust: https://getkiru.app\n\nMy Gear:\nCamera: https://amzn.to/3E3ORuX\nMicrophone: https://amzn.to/40wHBPP\nAudio Interface: https://amzn.to/4jwbd8o\nHeadphones: https://amzn.to/4gasmla\nKeyboard: ZSA Voyager\n\nJoin this channel to get access to perks:\n   / @dreamsofcode  \n\nJoin Discord:   / discord  \nJoin Twitter:   / dreamsofcode_io  \n\n00:00:00 Intro\n00:01:45 Sponsor\n00:03:13 Hello World\n00:06:01 Strings\n00:07:46 Expressions\n00:09:43 Statements\n00:13:02 Non Scalar Data Types\n00:17:01 Explicit Scoping\n00:20:03 Embedding\n00:21:37 TK",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WhjEL817Onw",
        "title": "Why I'm so bullish about Rust in 2026",
        "publishedAt": "2 months ago",
        "durationSeconds": 1189,
        "views": 91909,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "To get your own VPS instance at an incredibly affordable price, visit https://hostinger.com/dreamsofcode and make sure to use my coupon code DREAMSOFCODE to get an additional 10% off.\n\nThroughout 2024, I decided to focus on using only one programming language.\n\nThat language was Go, and by using it for an entire year exclusively, it allowed me to better understand the language and reduce decision fatigue.\n\nThis year, I plan on doing the same, but this time with Rust, which I'm more bullish about than ever before.\n\nA portion of this video was sponsored by hostinger.\n\nHow I edit my videos: https://getkiru.app\n\nMy Gear:\nCamera: https://amzn.to/3E3ORuX\nMicrophone: https://amzn.to/40wHBPP\nAudio Interface: https://amzn.to/4jwbd8o\nHeadphones: https://amzn.to/4gasmla\nKeyboard: ZSA Voyager\n\nWatch my course on building cli applications in Go: https://dreamsofcode.io/courses/cli-a... 👈\n\nJoin this channel to get access to perks:\n   / @dreamsofcode  \n\nFollow me on Twitter/X: https://x.com/dreamsofcode_io\nJoin Discord:   / discord  \n\n00:00:00 Intro\n00:02:05 Desktop Applications\n00:05:54 The Web\n00:09:35 Memory Usage\n00:10:40 Sponsor\n00:12:06 Memory Usage v2\n00:13:55 TUI Applications\n00:14:46 Building API's\n00:16:41 FFI\n00:17:35 What about AI?",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_aQ8xJ5DuHY",
        "title": "I'm never writing another Makefile ever again",
        "publishedAt": "3 months ago",
        "durationSeconds": 997,
        "views": 73956,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Except, maybe, if I'm writing C\nClick this link https://boot.dev/?promo=DREAMSOFCODE and use my code  DREAMSOFCODE  to get 25% off your first payment for boot.dev.\n\nFor the longest time, Make has been a staple in my developer toolkit, acting as not only a build tool, but also as a task runner.\n\nWhilst there's good reasons to use Make as a build tool, I often find that I run into friction whenever I try to use it as a task runner, especially in 2026.\n\nFortunately, I've found another tool to run tasks in my projects, one that's much better suited to the era of modern development.\n\nLinks:\nJust: https://github.com/casey/just\nRust video Editor: https://getkiru.app\nExample Project: https://github.com/dreamsofcode-io/ju...\nBacon: https://dystroy.org/bacon/\n\nHow I edit my videos: https://getkiru.app\n\nMy Gear:\nCamera: https://amzn.to/3E3ORuX\nMicrophone: https://amzn.to/40wHBPP\nAudio Interface: https://amzn.to/4jwbd8o\nHeadphones: https://amzn.to/4gasmla\nKeyboard: ZSA Voyager\n\nJoin this channel to get access to perks:\n   / @dreamsofcode  \n\nJoin Discord:   / discord  \nJoin Twitter:   / dreamsofcode_io",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Z-FXHuiUJSU",
        "title": "Clawdbot (OpenClaw) is everything I was hoping A.I. would be",
        "publishedAt": "3 months ago",
        "durationSeconds": 1395,
        "views": 163571,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "UPDATE: It's now called OpenClaw\nTo get your own VPS to run ClawdBot on, then visit https://hostinger.com/dreamsofcode and use my coupon code DREAMSOFCODE to get an additional 10% off.\n\nWhen A.I. first came on to the scene over 10 years ago (hello, Siri). I was expecting it to basically act as my digital assistant, taking over many of the boring tasks in my digital life.\n\nUnfortunately, that never really manifested, and instead we've been left A.I. generating slop and taking over the act of writing code.\n\nFortunately, things are looking up, and it seems we finally have something that fulfills my original expectation:\n\nClawdbot\n\nAnd it's glorious. \n\nThis video was sponsored by Hostinger.\n\nVideo Links:\nClawdbot (now known as Moltbot): https://clawd.bot\nClawdhub: https://clawdhub.com/\nInstall Node: https://nodejs.org/en/download\nTelegram: https://web.telegram.org/\n\nWatch my course on building cli applications in Go: https://dreamsofcode.io/courses/cli-a... 👈\n\nHow I edit my videos: https://getkiru.app\n\nMy Gear:\nCamera: https://amzn.to/3E3ORuX\nMicrophone: https://amzn.to/40wHBPP\nAudio Interface: https://amzn.to/4jwbd8o\nHeadphones: https://amzn.to/4gasmla\nKeyboard: ZSA Voyager\n\nJoin this channel to get access to perks:\n   / @dreamsofcode  \n\nJoin Discord:   / discord  \nJoin Twitter:   / dreamsofcode_io  \n\n00:00:00 Intro\n00:03:18 Hostinger\n00:04:15 VPS Setup\n00:06:48 Installing Clawdbot\n00:08:04 Onboarding\n00:09:56 Hello World\n00:11:04 Self improvement\n00:13:37 Setting up a messaging app\n00:15:20 Adding Skills\n00:17:06 Connecting to Google services\n00:19:42 Scheduling tasks & triggers\n00:21:17 Advice & Tips",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CpBgjjnXuy4",
        "title": "10 Better Auth plugins that every SaaS should use",
        "publishedAt": "3 months ago",
        "durationSeconds": 918,
        "views": 24578,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "...and I wouldn't build a product without using them in 2026.\nTo get your own Neon Auth instance, powered by Better Auth, then visit https://get.neon.com/OXPYD7k\n\nThere's many things to love about Better Auth. It's open source, self deploy-able, can be used as part of a monolith or dedicated service, and is EXTREMELY developer friendly.\n\nOne of the best parts, in my opinion however, is it's fantastic plugin system, which even the logo suggestes. By adding plugins to better auth, you can turn it from a simple authentication provider into a powerful framework for the foundation of any good product.\n\nOf course, there are many different plugins out there, and knowing which ones to use can sometimes be lost.\n\nTherefore, I decided to share 10 of my favorite Better Auth plugins, ones which just save so much time.\n\nA portion of this video is sponsored by Neon\n\nWatch my course on building cli applications in Go: https://dreamsofcode.io/courses/cli-a... 👈\n\nHow I edit my videos: https://getkiru.app\n\nLinks:\nBetter Auth: https://www.better-auth.com/docs/intr...\nAPI Key Plugin: https://www.better-auth.com/docs/plug...\nStripe Plugin: https://www.better-auth.com/docs/plug...\nNeon Auth Docs: https://neon.com/docs/auth/overview\n\nMy Gear:\nCamera: https://amzn.to/3E3ORuX\nMicrophone: https://amzn.to/40wHBPP\nAudio Interface: https://amzn.to/4jwbd8o\nHeadphones: https://amzn.to/4gasmla\nKeyboard: ZSA Voyager\n\nJoin this channel to get access to perks:\n   / @dreamsofcode  \n\nJoin Discord:   / discord  \nJoin Twitter:   / dreamsofcode_io  \n\n\n00:00:00 #0 - Intro\n00:01:07 #1 - Stripe\n00:02:58 #2 - Last Login Method\n00:04:30 #3 - Captcha\n00:06:23 #4 - JWT\n00:07:33 Sponsor\n00:08:43 #5 - Admin\n00:09:44 #6 - API Keys\n00:10:34 #7 - Device Authorization\n00:11:38 #8 - Organziations\n00:12:31 #9 - Passkeys\n00:13:31 #10 - 2fa",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3fVAtaGhUyU",
        "title": "10 Zsh hacks I wish I knew about sooner",
        "publishedAt": "4 months ago",
        "durationSeconds": 1048,
        "views": 77510,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Some of these would have saved me quite a lot of time...\n\n﻿Click this link https://boot.dev/?promo=DREAMSOFCODE and use my code  DREAMSOFCODE  to get 25% off your first payment for boot.dev\n\nI've been using zsh now as my main shell environment for over 10 years. During that time I've picked up a few tricks and hacks to help improve my terminal based workflow, 10 of which I'm sharing in this video\n\nA portion of this video is sponsored by Boot.dev\n\nLinks:\nZen zsh video:    • This Zsh config is perhaps my favorite one...  \nZoxide video:    • zoxide has forever improved the way I navi...  \nGist of hacks: https://gist.github.com/elliottminns/...\n\nMy Gear:\nCamera: https://amzn.to/3E3ORuX\nMicrophone: https://amzn.to/40wHBPP\nAudio Interface: https://amzn.to/4jwbd8o\nHeadphones: https://amzn.to/4gasmla\nKeyboard: ZSA Voyager\n\nJoin this channel to get access to perks:\n   / @dreamsofcode  \n\nJoin Discord:   / discord  \nJoin Twitter:   / dreamsofcode_io  \n\n00:00:00 Intro\n00:00:41 #0 - Edit Command Buffer\n00:01:48 #1 - Undo\n00:02:39 #3 - Magic Space\n00:04:03 #3 - chpwd hook\n00:06:03 Sponsor\n00:07:38 #4 - Suffix Aliases\n00:09:22 #5 - Global Aliases\n00:11:04 #6 - zmv\n00:13:08 #7 - Named Directories\n00:14:04 #8 - Custom Widgets\n00:15:19 #9 - Hotkey Insertions",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GFnKgGtFKFQ",
        "title": "Doppler is without a doubt my favorite secrets management platform",
        "publishedAt": "4 months ago",
        "durationSeconds": 1549,
        "views": 28155,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "and it's absolutely changed the way I manage secrets in ways I didn't even know I needed.\n\nTo get your own VPS instance to host all of your services on, then visit https://hostinger.com/dreamsofcode and use my coupon code DREAMSOFCODE to get an additionally 10% off.\n\nManaging secrets is one of those things that only gets more complex with time, and whilst there are solutions out there that work well when it comes to deploying on production, they tend not to be suited when it also comes to local development.\n\nFortunately, there is one solution out there, and it happens to be my favorite.\n\nA portion of this video is sponsored by Hostinger \n\nLinks:-\nDoppler: https://doppler.com\nDoppler Bridge (Rust 🦀): https://github.com/zenstarthq/doppler...\nDoppler Bridge (n8n ): https://github.com/dreamsofcode-io/do...\nZenstart: https://zenst.art\n\n🚨 Want to learn Go? I've just added interactive coding lessons to my courses: https://dreamsofcode.io/courses/cli-a... 👈\n\nMy Gear:\nCamera: https://amzn.to/3E3ORuX\nMicrophone: https://amzn.to/40wHBPP\nAudio Interface: https://amzn.to/4jwbd8o\nHeadphones: https://amzn.to/4gasmla\nKeyboard: ZSA Voyager\n\nJoin this channel to get access to perks:\n   / @dreamsofcode  \n\nJoin Discord:   / discord  \nJoin Twitter:   / dreamsofcode_io  \n\n00:00:00 Secrets\n00:04:07 Local Development\n00:06:24 Configure a Project\n00:07:53 Setup Doppler CLI\n00:10:15 Personal Config\n00:12:24 Doppler for Prod\n00:14:06 Config Syncs\n00:16:45 Hostinger\n00:18:18 Docker Deployments\n00:18:55 Webhooks\n00:22:37 Doppler Config Tips\n00:24:04 Other Useful Features",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kEyXx955EEo",
        "title": "All of the changes I've made to my tech stack in 2025",
        "publishedAt": "5 months ago",
        "durationSeconds": 1018,
        "views": 37854,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Some of them have been somewhat surprising...\n\nClick this link https://boot.dev/?promo=DREAMSOFCODE and use my code  DREAMSOFCODE  to get 25% off your first payment for boot.dev.\n\nWhilst some of these changes have been brought about by perhaps the biggest change to the way I code, a good number of them have been quality of life changes. \n\nA section of this video is sponsored by Boot.dev\n\nMentioned Videos:\nOriginal Tech Stack Video:    • Everything that I like, dislike, and plan ...  \nBetter-Auth + Go:    • Better Auth is so good that I **almost** s...  \nStripe to Polar:    • Why I'm no longer using Stripe  \n\nJoin the waitlist for Zenstart at: https://zenst.art\n\nMy Gear:\nCamera: https://amzn.to/3E3ORuX\nMicrophone: https://amzn.to/40wHBPP\nAudio Interface: https://amzn.to/4jwbd8o\nHeadphones: https://amzn.to/4gasmla\nKeyboard: ZSA Voyager\n\nJoin this channel to get access to perks:\n   / @dreamsofcode  \n\nJoin Discord:   / discord  \nJoin Twitter:   / dreamsofcode_io",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CJMaqmYhKqU",
        "title": "I may have just broken standup (using n8n)",
        "publishedAt": "5 months ago",
        "durationSeconds": 1564,
        "views": 49423,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "No scrum masters (nor bananas) were harmed during the filming of this video. 🍌\n\nTo get your own VPS instance this black friday to try out Docker Manager with, visit https://hostinger.com/dreamso...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZOAi8A7eNNo",
        "title": "Solving the one thing that keeps me up at night (in software dev)",
        "publishedAt": "6 months ago",
        "durationSeconds": 1609,
        "views": 38942,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Even when Amazon breaks the internet...\n\nTo get your own VPS instance to use with Docker Manager during this black friday sale, then visit https://hostinger.com/dreamsofcode and use my coupon...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VGtxARciwDM",
        "title": "10 useful CLI apps I'm guessing you've not heard of",
        "publishedAt": "6 months ago",
        "durationSeconds": 1147,
        "views": 96913,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "To get your own long term VPS at an incredible price during Hostingers Black Friday sale, visit: https://hostinger.com/dreamsofcode and use my coupon code DREAMSOFCODE to save an additional...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zM9k0WI1FrM",
        "title": "Why I'm no longer using Stripe",
        "publishedAt": "7 months ago",
        "durationSeconds": 1247,
        "views": 209023,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "And what I'm using instead...\n\nTo try all the amazing postgresql features that Neon provides for free, sign up today using: https://get.neon.com/OKaRDZ7\n\nStripe is without a doubt the most...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RoANBROvUeE",
        "title": "Coolify vs Dokploy: Why I decided to use one over the other",
        "publishedAt": "7 months ago",
        "durationSeconds": 2213,
        "views": 94612,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "To get your own VPS instance to use with either Coolify or Dokploy, visit https://hostinger.com/dreamsofcode and use my coupon code DREAMSOFCODE to get 10% off a long term VPS instance.\n\nBoth...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uyNdM9ag5Vw",
        "title": "I finally found my favorite laptop backpack",
        "publishedAt": "8 months ago",
        "durationSeconds": 1398,
        "views": 133516,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "After a long time (and a lot of $ spent) searching for the perfect laptop bag, I finally found one that fits my needs perfectly.\n\nThis video is NOT sponsored, and everything was purchased by...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8fcjcoXXMVQ",
        "title": "json/v2 is fixing many of Go's JSON quirks",
        "publishedAt": "8 months ago",
        "durationSeconds": 1055,
        "views": 33213,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click this link https://boot.dev/?promo=DREAMSOFCODE and use my code  DREAMSOFCODE  to get 25% off your first payment for boot.dev.\n\nThe new experimental \"encoding/json/v2\" package brings a...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EJ6uvqhKR4M",
        "title": "10 CLI apps that have actually improved the way I work in the terminal",
        "publishedAt": "8 months ago",
        "durationSeconds": 1464,
        "views": 210083,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "To get your own VPS instance  - visit https://hostinger.com/dreamsofcode and make sure to use my coupon code DREAMSOFCODE for an additional 10% discount.\n\nI've been working in the terminal...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dNY4FKXwTsM",
        "title": "Better Auth is so good that I **almost** switched programming languages",
        "publishedAt": "9 months ago",
        "durationSeconds": 1634,
        "views": 103951,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click this link https://boot.dev/?promo=DREAMSOFCODE and use my code  DREAMSOFCODE  to get 25% off your first payment for boot.dev\n\nFortunately, I didn't have to... here's why.\n\nThis video...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ELkPcuO5ebo",
        "title": "Dokploy is my absolute favorite way to deploy to a VPS in 2025",
        "publishedAt": "9 months ago",
        "durationSeconds": 1501,
        "views": 175428,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "To get your own VPS instance for use with Dokploy - visit https://hostinger.com/dreamsofcode and make sure to use my coupon code DREAMSOFCODE for an additional 10% discount.\n\nI didn't think...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PDMxbbejgcA",
        "title": "I tried vibe coding for 30 days. Here's what I learnt...",
        "publishedAt": "10 months ago",
        "durationSeconds": 1637,
        "views": 147007,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "and it's definitely changed my opinion on using A.I.\n\nLinks:-\nClaude Code: https://www.anthropic.com/claude-code\nAgent Half Life: https://cognaptus.com/blog/2025-05-11-halflife-crisis-why-ai-agents...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RVZuYL0aehY",
        "title": "Securing a VPS using the \"Belt and Braces\" approach (ft Tailscale)",
        "publishedAt": "10 months ago",
        "durationSeconds": 1019,
        "views": 37550,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "To get 3 months free of Tailscale on Personal plus, Starter, or Premium plans, visit https://dub.sh/qcNuSvY and use my coupon code \"DREAMSOFCODE\"\n\nFor the longest time, I've been constantly...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "d05vNPmIIqc",
        "title": "This is perhaps my favorite use of A.I. so far. (MCP)",
        "publishedAt": "11 months ago",
        "durationSeconds": 1192,
        "views": 55584,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "To try out everything that Neon has to offer, visit: https://fyi.neon.tech/1doc\n\nNot only has this managed to save me hundreds of hours, but it's also enabled me to make my content even better....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XbN66h912NU",
        "title": "Everything that I like, dislike, and plan to change in my tech stack.",
        "publishedAt": "11 months ago",
        "durationSeconds": 1482,
        "views": 100039,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This tech stack has been really fun to learn, but it certainly hasn't been without it's challenges, and having built a full application with it now, I know what I plan to change!\n\nGet early...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sYurw5ongRA",
        "title": "I honestly thought it was over for Redis...",
        "publishedAt": "1 year ago",
        "durationSeconds": 524,
        "views": 37144,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Turns out, it might not be over just yet...\n\nLinks:\nRedis Open Source Announcement: https://redis.io/blog/agplv3/\nAntirez Returns: https://redis.io/blog/welcome-back-to-redis-antirez/\nRedis...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uptpnVdwFM4",
        "title": "There's more than one way to scale Redis/Valkey to 1M op/s...",
        "publishedAt": "1 year ago",
        "durationSeconds": 1681,
        "views": 30315,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "...but which one is the best?\n\nThis video was sponsored by DragonflyDB who provide their own Redis compatible datastore without the need to go through the steps I did in this video :)\n\nLearn...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tBS2PY2t9Mw",
        "title": "It's time for a change",
        "publishedAt": "1 year ago",
        "durationSeconds": 554,
        "views": 56857,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "And it's one I think I'm going to be happy with.\n\nFramework 13: https://frame.work/laptop13\n\nMy recent inspiration:-\nMarko: @withmarko \nLife of Riza: @LifeOfRiza \nMatthew Encina: @MatthewEncina...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ViWcOJkQsHI",
        "title": "Rolling my own auth ended up being a mistake...",
        "publishedAt": "1 year ago",
        "durationSeconds": 704,
        "views": 72480,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "But not for the reason you might think.\n\nMy new course is now available for early access! \nWatch for free at: https://dreamsofcode.io/courses/cli-apps-go/learn\n\nPurchase now to get 33% off...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vLB7r8neQvE",
        "title": "Alpine.js makes client side interactivity stupidly simple",
        "publishedAt": "1 year ago",
        "durationSeconds": 1802,
        "views": 107196,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "To try everything Brilliant has to offer—free—for a full 30 days, visit https://brilliant.org/DreamsofCode/ . You’ll also get 20% off an annual premium subscription.\n\nRecently, I've been...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "v9NC2P328sI",
        "title": "What I've been up to recently...",
        "publishedAt": "1 year ago",
        "durationSeconds": 416,
        "views": 70365,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "And, I've been having a lot of fun doing it.\n\nCore vs context is an interesting topic. Whilst I probably agree that it's a better use of time from a business point of view to focus on the core,...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 2,
      "uploadsLast90d": 7,
      "uploadCadenceWeekly": 0.54,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 73956,
      "viewsPerVideoP90Last90d": 91909,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 73956,
      "p90Views": 91909,
      "p99Views": 91909,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 3,
      "sponsorBrandsDetected": [
        "Hostinger",
        "This video",
        "Neon",
        "Boot",
        "DragonflyDB who provide their own Redis"
      ],
      "affiliateLinkHosts": [
        "amzn.to",
        "brilliant.org"
      ],
      "sponsorshipFrequencyPercent": 43,
      "lastSponsoredVideoDate": "2026-03-15",
      "detectionDetail": [
        {
          "brand": "Hostinger",
          "videoId": "WhjEL817Onw",
          "confidence": 0.95,
          "evidence": "description: sponsored by hostinger.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:55.040Z"
        },
        {
          "brand": "Hostinger",
          "videoId": "Z-FXHuiUJSU",
          "confidence": 0.95,
          "evidence": "description: sponsored by Hostinger.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:55.040Z"
        },
        {
          "brand": "This video",
          "videoId": "CpBgjjnXuy4",
          "confidence": 0.7,
          "evidence": "description: this video is sponsored by Neon",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:55.040Z"
        },
        {
          "brand": "Neon",
          "videoId": "CpBgjjnXuy4",
          "confidence": 0.7,
          "evidence": "description: sponsored by Neon",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:55.040Z"
        },
        {
          "brand": "This video",
          "videoId": "3fVAtaGhUyU",
          "confidence": 0.7,
          "evidence": "description: this video is sponsored by Boot.dev",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:55.040Z"
        },
        {
          "brand": "Boot",
          "videoId": "3fVAtaGhUyU",
          "confidence": 0.7,
          "evidence": "description: sponsored by Boot.dev",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:55.040Z"
        },
        {
          "brand": "This video",
          "videoId": "GFnKgGtFKFQ",
          "confidence": 0.7,
          "evidence": "description: this video is sponsored by Hostinger ",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:55.040Z"
        },
        {
          "brand": "Hostinger",
          "videoId": "GFnKgGtFKFQ",
          "confidence": 0.95,
          "evidence": "description: sponsored by Hostinger ",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:55.040Z"
        },
        {
          "brand": "This video",
          "videoId": "kEyXx955EEo",
          "confidence": 0.7,
          "evidence": "description: this video is sponsored by Boot.dev",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:55.040Z"
        },
        {
          "brand": "Boot",
          "videoId": "kEyXx955EEo",
          "confidence": 0.7,
          "evidence": "description: sponsored by Boot.dev",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:55.040Z"
        },
        {
          "brand": "DragonflyDB who provide their own Redis",
          "videoId": "uptpnVdwFM4",
          "confidence": 0.7,
          "evidence": "description: sponsored by DragonflyDB who provide their own Redis ",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:51:55.040Z"
        }
      ]
    },
    "sponsorshipMaturity": {
      "tier": "regular",
      "evidence": {
        "sponsoredVideoCountLast90d": 3,
        "uniqueSponsorBrandsLast90d": 5,
        "firstSponsoredVideoDate": "2026-05-14"
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "web-services",
          "confidence": 0.25,
          "evidence": [
            "historical-sponsor:Hostinger"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "dreamsofcode.io",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "medium",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": true,
        "affiliateLinksPresent": true
      },
      "interpretation": "Reachable but with gaps: missing one or more of email validation, sponsor history, or external website."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.87,
        "evidenceVideoIds": [
          "yeeEmnAnAVs",
          "qwo6w_sLTSw",
          "4LwTJpURhTY",
          "WhjEL817Onw",
          "_aQ8xJ5DuHY"
        ]
      },
      {
        "label": "get",
        "share": 0.77,
        "evidenceVideoIds": [
          "yeeEmnAnAVs",
          "qwo6w_sLTSw",
          "4LwTJpURhTY",
          "WhjEL817Onw",
          "_aQ8xJ5DuHY"
        ]
      },
      {
        "label": "dreamsofcode",
        "share": 0.67,
        "evidenceVideoIds": [
          "yeeEmnAnAVs",
          "qwo6w_sLTSw",
          "4LwTJpURhTY",
          "WhjEL817Onw",
          "_aQ8xJ5DuHY"
        ]
      },
      {
        "label": "com",
        "share": 0.57,
        "evidenceVideoIds": [
          "yeeEmnAnAVs",
          "qwo6w_sLTSw",
          "4LwTJpURhTY",
          "WhjEL817Onw",
          "_aQ8xJ5DuHY"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "B",
      "rationale": "active sponsor history, content pillars match high-value sponsor categories, strong views-per-subscriber ratio.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "strong",
        "businessContactSignal": "moderate",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "regular"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 61,
      "reason": "regular sponsor history x fits web-services",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.85
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.6
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.45
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.6,
      "level": "medium",
      "coldStart": false
    },
    "whyThisMatters": "regular sponsor history + fits web-services. Channel is in the active outreach window.",
    "whyNow": "Last sponsored video 60 days ago — within typical sponsorship-decision lookback for similar creators.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Dreams of Code — 0.2M subs, B-tier sponsorship readiness, medium contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 61,
      "readyForOutreach": false,
      "blockers": [
        "contactability:medium — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.49,
      "urgency": 0,
      "noiseRisk": 0.4
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": true,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "active sponsor history + no business email typically correlates with higher outreach responsiveness for mid-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:regular",
        "email-line-type:none",
        "channel-tier:mid"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mid-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": true,
      "requiresEnrichment": true,
      "priorityQueue": "medium"
    },
    "benchmarkRange": {
      "creatorTier": "mid",
      "sponsorCategory": "web-services",
      "historicalTypicalReplyRange": "5-12%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mid-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "B-tier readiness — nurture or enrich before outreach.",
      "appliedRules": [
        "lastSponsored<90d"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "late",
      "reason": "Last sponsored video 60 days ago; past typical 14-30d decision-cycle for similar creators.",
      "decayRisk": 0.7
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 52,
      "reasons": [
        "Active sponsor history within last 90d (3 videos)"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "b822fedc6828b157202e49861ff1804e2f02ef1c55ea4f97fb737bfbf672d06d",
      "inputsHash": "56d37bd47dec36e206b3aba6f334d320116ea8468dc6a816cdc8b660483265c1",
      "rulesApplied": [
        "sponsorship-history-regular",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:54.221Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "7cdb460adf3a11c26a996e8753fb9c65217f7b3dd9d63737fd3d8eb907d2d850",
    "channelId": "UCxX9wt5FWQUAAz4UrysqK9A",
    "channelHandle": "@CSDojo",
    "channelName": "CS Dojo",
    "channelUrl": "https://www.youtube.com/@CSDojo",
    "description": "Hello! My name is YK, and I usually make videos about programming and computer science here :)\n\nBusiness email: https://www.csdojo.io/contact/\nThe logo was made by: my friend Youdong Zhang",
    "joinDate": null,
    "location": null,
    "subscribers": 1950000,
    "totalVideos": 114,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_mxJvgrBjcgK94ZJQwDphl0UFkCKRL8AOa7UvmR__MIyg=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "csdojo.io",
        "url": "https://www.csdojo.io/community"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/ykdojo"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/csdojo404"
      },
      {
        "platform": "csdojo.io",
        "url": "https://www.csdojo.io/"
      },
      {
        "platform": "csdojo.io",
        "url": "https://www.csdojo.io/coaching"
      },
      {
        "platform": "csdojo.io",
        "url": "https://www.csdojo.io/contact/"
      }
    ],
    "recentVideos": [
      {
        "videoId": "hiISl558JGE",
        "title": "Data Processing & Visualization with Claude Code in 10 Minutes",
        "publishedAt": "4 months ago",
        "durationSeconds": 779,
        "views": 20334,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Here's my multi Claude Code workflow with voice input, showing how to process and visualize data with Python and a bit of JavaScript.\n\n40+ Claude Code tips: https://github.com/ykdojo/claude-code...\nDaft: https://github.com/eventual-Inc/Daft\nMy LinkedIn:   / ykdojo",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9UdZhTnMrTA",
        "title": "Claude Code Masterclass",
        "publishedAt": "5 months ago",
        "durationSeconds": 1179,
        "views": 26695,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Everything I've learned about Claude Code since its launch.\n\nLinkedIn: https://www.linkedin.com/in/ykdojo/\nSuper Voice Assistant: https://github.com/ykdojo/super-voice-assistant",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-Xmf8WEpW8Y",
        "title": "10 Commandments for Vibe Coding",
        "publishedAt": "10 months ago",
        "durationSeconds": 928,
        "views": 10022,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Here are the 10 most important principles & techniques to bring vibe coding / agentic coding / AI coding to the next level so it's production-ready.\n\nA blog post version of this video: https://agenticcoding.substack.com/p/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fYWz7pUiwls",
        "title": "12 Principles for Coding with AI (Beyond the Basics)",
        "publishedAt": "1 year ago",
        "durationSeconds": 1228,
        "views": 13034,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Here are the 12 most important principles for coding with AI that can make you at least 10-20% more productive, and even 30-40% more in the best-case scenarios.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pJ5dLwpG0_I",
        "title": "Is AI Replacing Software Engineering?",
        "publishedAt": "1 year ago",
        "durationSeconds": 969,
        "views": 94975,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Is AI replacing software engineering jobs? You'll find out through this video.\n\nSpeaking: https://www.csdojo.io/speaking\n\nThe talk recording I mentioned at the end:    • Context is King - the Evolution of a Moder...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MNN--Ml9XJg",
        "title": "Coding on Windows (and Linux) in 2024?! | Introduction to C# and .NET | Scott Hanselman",
        "publishedAt": "2 years ago",
        "durationSeconds": 3357,
        "views": 14077,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Live coding / podcast session with Scott Hanselman to dive into the world of programming on Windows as well as C# and .NET!\n\nTwitter:   / ykdojo  \nTwitch:   / ykdojo  \n\nScott's website: https://www.hanselman.com/\nScott's YouTube channel:    / shanselman",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "h-MBPwE_vxo",
        "title": "How She Raised $6,000,000 for an Open Source Company",
        "publishedAt": "2 years ago",
        "durationSeconds": 1812,
        "views": 10821,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A story of how JZ, COO of Charm, was a key part in raising $6,000,000.\n\nMy Twitter: https://twitter.com/ykdojo\nLinkedIn: https://www.linkedin.com/in/ykdojo\n\nJZ's Twitter: https://twitter.com/jzmusi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nydRe2_qD4k",
        "title": "Evan You, Creator of Vue.js & Vite | Full Interview/Conversation | Recorded LIVE in Singapore",
        "publishedAt": "2 years ago",
        "durationSeconds": 3035,
        "views": 12634,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Full interview with Evan You, the creator of Vue.js and Vite!\n\nFeel free to join the channel as a member for Part 2.\n\nTimestamps:\n0:19: Why Evan moved to Singapore\n3:04: Living in Singapore vs US\n5:43: Vue vs React\n11:54: A bit more about Singapore\n12:49: How to choose a JavaScript framework\n16:09: Framework ecosystems\n18:42: How to choose a framework as a company\n21:22: How Evan started Vite\n26:44: Evan's questions about this YouTube channel\n34:25: Audience questions\n47:30: Final thoughts",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "l74r37rA--A",
        "title": "Evan You, Creator of Vue.js & Vite | Part 2 | Members Only",
        "publishedAt": "2 years ago",
        "durationSeconds": 2655,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "0:00: How to stay competitive in the current job market\n2:34: Evan's advice on contributing to open source\n4:06: How important is Leetcode?\n6:01: Thriving in the age of LLMs\n11:21: How to make open source work a real job option",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "U9WwJzMhcKA",
        "title": "The Complete Roadmap to Get a Job in Tech in 2024",
        "publishedAt": "2 years ago",
        "durationSeconds": 599,
        "views": 34761,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Here’s a 6-step guide to maximize your chance of getting a software engineer job / job in tech in 2024.\n\nA blog version of this video: https://csdojo.substack.com/p/the-com...\n\n---\n\nBackground music:\n\n\"Savfk - Journey To The Stars\" is under a Creative Commons (CC-BY 3.0) license\n / savfkmusic   \nMusic promoted by BreakingCopyright: http://bit.ly/journey-stars-song",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MkaIrwOlP6Y",
        "title": "How to Get Started with Open Source | A Beginner-Friendly Guide",
        "publishedAt": "3 years ago",
        "durationSeconds": 1354,
        "views": 91132,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want to get started with open source? Watch this video to find out how.\n\nTwitter: https://twitter.com/ykdojo\nDiscord: https://discord.com/invite/nNtVfKddDD\nTwitch: https://www.twitch.tv/ykdojo...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bB3fHB-QTXw",
        "title": "How to Learn AI & ML in 2022 - A Complete Roadmap",
        "publishedAt": "4 years ago",
        "durationSeconds": 714,
        "views": 149527,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How to learn AI and machine learning in 2022 for beginners? Watch this video to find out!\n\nLouis' channel, What's AI: https://www.youtube.com/channel/UCUzGQrN-lyyc0BWTYoJM_Sg\nRoadmap article...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QtEtcXPqRPk",
        "title": "Binary String Addition | Facebook Coding Interview Question & Answer",
        "publishedAt": "4 years ago",
        "durationSeconds": 594,
        "views": 37699,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Add two binary numbers in strings without converting them to numbers.\nIf you're using Python, you can practice here: https://replit.com/@ykdojo/binary-addition#main.py\n\nDiscord: https://csdojo.io/d...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "i-MKEOnPyAI",
        "title": "Writing a Python Script to Check If Any ACs Are Available Every 5 Minutes",
        "publishedAt": "4 years ago",
        "durationSeconds": 738,
        "views": 65179,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "It's been ridiculously hot in Vancouver recently, and it's almost impossible to find ACs.\n\nSo I wrote a simple Python script (with Selenium) to check if any AC's are available at Best Buy every...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "NwBWW8cNCP4",
        "title": "How To Create A Telegram Bot With Python",
        "publishedAt": "5 years ago",
        "durationSeconds": 1223,
        "views": 671066,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to make a Telegram bot with Python - a guest video by Jacob from ClarityCoders.\n\nCheck out my Twitter for more content: https://twitter.com/ykdojo\nAlso check out Jacob's channel for...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zH3zyZ4q0oU",
        "title": "Making a Snake Game Where You're the Food in Python",
        "publishedAt": "5 years ago",
        "durationSeconds": 1174,
        "views": 239835,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I made a snake game in Python that works in the terminal... but this time, you're the food! lol\n\nYou can check out the game and the code here: https://replit.com/talk/share/snake-game-but-youre-the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sfWyugl4JWA",
        "title": "Introduction to Hash Tables and Dictionaries (Data Structures & Algorithms #13)",
        "publishedAt": "5 years ago",
        "durationSeconds": 1120,
        "views": 396046,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Here’s my introduction to hash tables and dictionaries!\n\nThe coding interview problem I mentioned at the end: https://youtu.be/GJdiM-muYqc\nAnd here’s my Python implementation: https://gist.gith...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "A3ZUpyrnCbM",
        "title": "Introduction to Stacks and Queues (Data Structures & Algorithms #12)",
        "publishedAt": "5 years ago",
        "durationSeconds": 990,
        "views": 371118,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Here's my introduction to stacks, queues, and deques (double-ended queues)!\nYou can check out the problem I mentioned at the end of the video here: https://www.algoexpert.io/csdojo (it's a...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0SkOjNaO1XY",
        "title": "A Complete Overview of Quicksort (Data Structures & Algorithms #11)",
        "publishedAt": "5 years ago",
        "durationSeconds": 1459,
        "views": 239370,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Here's my introduction to / overview of the quicksort / quick sort algorithm!\n\nPatreon: https://csdojo.io/pat\nThe book I mentioned (referral link): https://amzn.to/3j6e6wN\nMy sample code: https://w...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6ysjqCUv3K4",
        "title": "Introduction to Binary Search (Data Structures & Algorithms #10)",
        "publishedAt": "5 years ago",
        "durationSeconds": 863,
        "views": 267695,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Here’s my introduction to the binary search algorithm.\n\nCheck out the practice problem from https://algoexpert.io/csdojo at 12:17.\n\nYou can find my Python and Java sample code at: https://www.csd...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1-l_UOFi1Xw",
        "title": "Introduction to Trees (Data Structures & Algorithms #9)",
        "publishedAt": "5 years ago",
        "durationSeconds": 630,
        "views": 412079,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Here is my intro to the tree data structure!\n\nAnd here's another interesting tree problem: https://youtu.be/7HgsS8bRvjo\n\nYou can download my sample code in Python and Java here: https://www.csdojo....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bI5jpueiCWw",
        "title": "Why and How I Used Vue.js for My Python/Django Web App (and why not React)",
        "publishedAt": "5 years ago",
        "durationSeconds": 1234,
        "views": 160735,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Here’s why and how I used Vue.js for my Python/Django web app.\n\nYou can try using this website here: https://csqa.io/\nAnd here’s the article I used for setting up Django with React for...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RwOC7onT48Y",
        "title": "I Created a New Q&A Website for Coders with Python | Devlog #1",
        "publishedAt": "6 years ago",
        "durationSeconds": 496,
        "views": 166613,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This is the first video in my new devlog series, where I'm going to do some development and talk about it every 1-2 weeks.\nYou can find the website I made this week here: https://csqa.io/\nYou...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DxK5nMLShGc",
        "title": "Web Development Essentials 2020 (w/ Chris Castiglione)",
        "publishedAt": "6 years ago",
        "durationSeconds": 1422,
        "views": 118023,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This video was made in collaboration with Chris Castiglione of One Month (http://www.onemonth.com).\n\n0:51 : What’s a tech stack?\n3:50 : Back-end\n9:40 : Databases\n12:44 : Front-end frameworks...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "iVq3qcNWayw",
        "title": "5 Tips for Getting a Data Science Job [INTERVIEW]",
        "publishedAt": "6 years ago",
        "durationSeconds": 1093,
        "views": 69131,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Here are the 5 tips for getting a data science job by Peter Scobas, a data scientist who used to work at TuneIn!\nTo brush up on probability concepts, I’d recommend Brilliant: https://brilliant.or...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5W3oTG3F-Dw",
        "title": "How They Built A Startup While Traveling ($500,000 / year in revenue)",
        "publishedAt": "6 years ago",
        "durationSeconds": 1581,
        "views": 85351,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This is my interview with Sarah and Andrew from Canny, who built their startup while traveling!\n\nYou can go to https://skl.sh/csdojo to get 2 months of Skillshare for free. (They're this video's...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eMEe-0UMf24",
        "title": "A YouTuber's Minimalist Apartment + Equipment Setup Tour",
        "publishedAt": "6 years ago",
        "durationSeconds": 571,
        "views": 127880,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "As requested, here's my apartment tour + a bit about how I make videos!\n\nFind me on IG: https://www.instagram.com/ykdojo/\nJoin our community: https://www.csdojo.io/community\nMy FAQ page (with...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qpLlpRn5oJ8",
        "title": "Real Talk with Google Software Engineer",
        "publishedAt": "6 years ago",
        "durationSeconds": 1113,
        "views": 214453,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This was a really fun video to make! It’s just me interviewing my friend Jane about working at Google :)\n\nCheck out Triplebyte, the sponsor of this video: http://csdojo.io/triple\n\nJane’s...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7GMCujlzVKA",
        "title": "I was hospitalized for a week. Here are 3 lessons I learned from it",
        "publishedAt": "6 years ago",
        "durationSeconds": 466,
        "views": 160828,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Thank you for helping me hit 1M subs!\nHelp me get to 1 mil on IG, too LOL: https://www.instagram.com/ykdojo/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gFGuQp9Vde8",
        "title": "How He Got a $240K Software Eng Job, Got Through Depression, and More (ft. Joma Tech)",
        "publishedAt": "7 years ago",
        "durationSeconds": 1339,
        "views": 325372,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this interview, Joma Tech discusses his transition from data science to software engineering, how he got his $240K/year software engineering job, and how he got through depression.\nFind...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "bit.ly",
        "amzn.to",
        "skl.sh"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "csdojo.io",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.77,
        "evidenceVideoIds": [
          "hiISl558JGE",
          "9UdZhTnMrTA",
          "-Xmf8WEpW8Y",
          "pJ5dLwpG0_I",
          "MNN--Ml9XJg"
        ]
      },
      {
        "label": "com",
        "share": 0.47,
        "evidenceVideoIds": [
          "hiISl558JGE",
          "9UdZhTnMrTA",
          "-Xmf8WEpW8Y",
          "MNN--Ml9XJg",
          "h-MBPwE_vxo"
        ]
      },
      {
        "label": "www",
        "share": 0.4,
        "evidenceVideoIds": [
          "9UdZhTnMrTA",
          "pJ5dLwpG0_I",
          "MNN--Ml9XJg",
          "h-MBPwE_vxo",
          "MkaIrwOlP6Y"
        ]
      },
      {
        "label": "python",
        "share": 0.33,
        "evidenceVideoIds": [
          "hiISl558JGE",
          "QtEtcXPqRPk",
          "i-MKEOnPyAI",
          "NwBWW8cNCP4",
          "zH3zyZ4q0oU"
        ]
      },
      {
        "label": "csdojo",
        "share": 0.33,
        "evidenceVideoIds": [
          "pJ5dLwpG0_I",
          "U9WwJzMhcKA",
          "QtEtcXPqRPk",
          "A3ZUpyrnCbM",
          "0SkOjNaO1XY"
        ]
      },
      {
        "label": "machine learning",
        "share": 0.03,
        "evidenceVideoIds": [
          "bB3fHB-QTXw"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Friday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 32,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "CS Dojo — 1.9M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 32,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.78,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "7cdb460adf3a11c26a996e8753fb9c65217f7b3dd9d63737fd3d8eb907d2d850",
      "inputsHash": "f34800a35b23952fcadc4eb094db13076d8a2b833fb22868adc392873c3cef31",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:54.442Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "b71cea7224c5c0088eecaa4fe81c01b62000924dcd3ad4c8c9b16aa093e95bda",
    "channelId": "UC80PWRj_ZU8Zu0HSMNVwKWw",
    "channelHandle": "@Codevolution",
    "channelName": "Codevolution",
    "channelUrl": "https://www.youtube.com/@Codevolution",
    "description": "Tutorials on the latest tech in web development!",
    "joinDate": null,
    "location": null,
    "subscribers": 754000,
    "totalVideos": 1800,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/CZz3YkQI3pkX-F9yoNrKG1KDWWtcas4jXPcZ98ldQx6T-dGdo1t30kKKXHpZ4k4tjfEY4pskoQ=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "twitter",
        "url": "https://twitter.com/CodevolutionWeb"
      }
    ],
    "recentVideos": [
      {
        "videoId": "0rm9bTlDx-A",
        "title": "5 AI Coding Practices That Changed My Next.js Workflow",
        "publishedAt": "2 months ago",
        "durationSeconds": 1155,
        "views": 11959,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build a Voice AI Interview Coach App in 30 Minutes (Next.js + Claude Code + ElevenLabs)\n\nTry ElevenLabs https://elevenlabs.io/\nHow to write CLAUDE.md https://www.builder.io/blog/claude-md...\n\nBecome an AI Engineer with Scrimba  https://scrimba.com/t0ai?via=Codevolu... (Start Free, save 20% on Pro)\n\nTwitter -   / codevolutionweb  \nBusiness - codevolution.business@gmail.com\n\nSystem prompt:\nYou are a helpful assistant.You are an Interview Coach — a warm, encouraging, and professional behavioral interview coach.\n YOUR ROLE:\n You conduct mock behavioral interviews to help people practice and improve their interview skills. You evaluate answers using the STAR\n method (Situation, Task, Action, Result) and assess soft skills including communication clarity, confidence, empathy, leadership\n presence, and self-awareness.\n SESSION FORMAT:\n 1. After your greeting, ask exactly 5 behavioral interview questions, one at a time. Cover a mix of:\nLeadership and initiative\nTeamwork and collaboration\nConflict resolution\nAdaptability and problem-solving\nCommunication and influence\n 2. Use \"Tell me about a time when...\" style questions.\n 3. After each answer, give brief feedback (1-2 sentences), then move to the next question.\n 4. After the 5th answer, transition to detailed feedback mode. Say something like \"Great, that completes our practice interview. Let me\n share my detailed feedback.\"\n DETAILED FEEDBACK:\n For each of the 5 questions, provide:\nA pass or needs-improvement assessment\nWhat they did well (specifically referencing STAR elements they used)\nWhat could be improved\nA specific tip for next time\n Then provide overall observations about their soft skills (empathy, leadership presence, self-awareness, communication clarity,\n confidence) and end with an encouraging closing message.\n TONE:\nWarm, professional, and encouraging throughout\nDuring the interview: attentive, brief feedback after each answer\nDuring detailed feedback: supportive and constructive\nNever harsh or discouraging\n Keep questions under 30 seconds. Be conversational and natural.\n\nFirst message:\nHi there! I'm your Interview Coach. Today we'll do a quick practice session — I'll ask you 5 behavioral interview questions. Answer naturally, and I'll give you brief feedback after each one, plus a detailed review at the end. Ready? Let's begin!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wJpeiBK95is",
        "title": "AI & I: Found a Cheat Code for Design (As a Developer)",
        "publishedAt": "3 months ago",
        "durationSeconds": 519,
        "views": 9243,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This might be the best design tool for developers\n\nBecome an AI Engineer with Scrimba  https://scrimba.com/t0ai?via=Codevolu... (Start Free, save 20% on Pro)\n\nTwitter -   / codevolutionweb  \nBusiness - codevolution.business@gmail.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lP8IPcpGb9M",
        "title": "AI & I: Pivoting for 2026",
        "publishedAt": "3 months ago",
        "durationSeconds": 136,
        "views": 10717,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "AI & I: A new journey\n\nFollow me\n+ Twitter - https://twitter.com/CodevolutionWeb\n\nBusiness - codevolution.business@gmail.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "J6CHZWoygeM",
        "title": "The React + AI Stack for 2026",
        "publishedAt": "3 months ago",
        "durationSeconds": 401,
        "views": 21341,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The ultimate React stack for 2026. The best React libraries, tools, tips, and AI integration\n\nLet’s talk about how AI is changing the way we write code and why React has become the go-to choice for developers today. In this video, I’ll walk you through the React stack for 2026, starting with the basics like TypeScript and how AI fits into your workflow. We’ll look at popular frameworks like Next.js and TanStack Start, styling with Tailwind, UI component libraries, state management, data fetching, and a lot more. And whether you’re building chat interfaces or full LLM-powered apps, this video will give you a clear picture of the tools and practices you need to build modern React apps faster.\n\n00:00 AI's Influence + React's Dominance\n00:36 The Foundation\n00:48 Framework Choices\n01:11 Styling\n01:25 UI Components\n01:46 Data Fetching\n01:59 Routing\n02:20 State Management\n02:33 Forms\n02:41 Testing\n02:59 Adding AI Features\n03:27 Type Safe APIs\n03:40 Validation\n03:53 Backend\n04:22 ORM\n04:41 Authentication\n05:00 Animation\n05:17 Data Tables\n05:26 Mobile Development\n05:40 Component Development\n05:53 AI Assisted Development Tools\n06:27 The React Stack for 2026\n\nFollow me\nTwitter -   / codevolutionweb  \n\nBusiness - codevolution.business@gmail.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "O1mleqDJ-Wg",
        "title": "React 19 Tutorial - 38 - Manipulate the DOM with Refs",
        "publishedAt": "3 months ago",
        "durationSeconds": 201,
        "views": 5585,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-T...\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0...\n\nFollow me\nTwitter -   / codevolutionweb  \n\nBusiness - codevolution.business@gmail.com\n\nManipulate the DOM with Refs in React 19",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "b4VbMlgciYg",
        "title": "React 19 Tutorial - 37 - Refs and useRef Hook",
        "publishedAt": "3 months ago",
        "durationSeconds": 443,
        "views": 4113,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-T...\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0...\n\nFollow me\nTwitter -   / codevolutionweb  \n\nBusiness - codevolution.business@gmail.com\n\nRefs and useRef Hook in React 19",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pvMGRSZJ4Jw",
        "title": "Best AI Coding Tools for Developers in 2026",
        "publishedAt": "4 months ago",
        "durationSeconds": 515,
        "views": 81031,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Become a Fullstack AI Engineer - https://scrimba.com/fullstack-path-c0...\n\nTry Builder.io & get 20% extra credits when you go Pro:\nhttps://builder.io/app/credits/redeem...\n\nAI coding tools for Developers in 2026: A comprehensive guide\nIn this video, we explore the top AI coding tools of 2026 that are changing software development. From coding assistants to code generation, best AI IDEs to vibe coding app builders, and code quality enhancement, these AI tools can help you work faster and more efficiently. Learn how to integrate these AI tools into your workflow and amplify your coding capabilities.\n\nFollow me\nTwitter -   / codevolutionweb  \n\nBusiness - codevolution.business@gmail.com\n\n00:00 Intro\n00:38 Best AI IDEs\n01:52 Best Conversational AI Assistants\n02:47 Best AI App Builders\n03:24 Best AI Agents & Extensions\n04:18 Best AI Code Review Tools\n05:19 Best AI Debugging Tools\n05:48 Best AI Documentation Tools\n06:34 Fullstack AI Engineer Path\n07:10 3 Pro Tips for Better AI Code",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xhXvB2xRhMM",
        "title": "10 Best React UI Libraries for 2026",
        "publishedAt": "4 months ago",
        "durationSeconds": 290,
        "views": 31375,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A practical guide to the 10 best React UI component libraries for 2026, from full design systems to unstyled primitives and Tailwind-first libraries.\n\nGithub - https://github.com/gopinav/React-19-T...\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0...\n\nFollow me\nTwitter -   / codevolutionweb  \n\nBusiness - codevolution.business@gmail.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "18sbaJl06N0",
        "title": "React 19 Tutorial - 36 - use API for Context",
        "publishedAt": "4 months ago",
        "durationSeconds": 254,
        "views": 5528,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-T...\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0...\n\nFollow me\nTwitter -   / codevolutionweb  \n\nBusiness - codevolution.business@gmail.com\n\nuse API for Context in React 19",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Iy2u57d3pLU",
        "title": "React 19 Tutorial - 35 - Context with State",
        "publishedAt": "4 months ago",
        "durationSeconds": 470,
        "views": 4503,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-T...\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0...\n\nFollow me\nTwitter -   / codevolutionweb  \n\nBusiness - codevolution.business@gmail.com\n\nReact 19 Context with State",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "BdKykWVTPtU",
        "title": "React 19 Tutorial - 34 - Context and useContext Hook",
        "publishedAt": "4 months ago",
        "durationSeconds": 499,
        "views": 5943,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-Tutorials\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0fullstack?via=Codevolution\n\nFollow me\n+ Twitter - https://twi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IgZjyyG6DjQ",
        "title": "React 19 Tutorial - 33 - The Prop Drilling Problem",
        "publishedAt": "4 months ago",
        "durationSeconds": 341,
        "views": 4025,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-Tutorials\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0fullstack?via=Codevolution\n\nFollow me\n+ Twitter - https://twi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jfxERvIgOp4",
        "title": "React 19 Tutorial - 32 - useState vs useReducer",
        "publishedAt": "5 months ago",
        "durationSeconds": 227,
        "views": 3885,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-Tutorials\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0fullstack?via=Codevolution\n\nFollow me\n+ Twitter - https://twi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5BwYRc84qgc",
        "title": "React 19 Tutorial - 31 - Implementing useState with useReducer",
        "publishedAt": "5 months ago",
        "durationSeconds": 579,
        "views": 4065,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-Tutorials\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0fullstack?via=Codevolution\n\nFollow me\n+ Twitter - https://twi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XKVlIu2RKmo",
        "title": "React 19 Tutorial - 30 - useReducer Lazy Initialization",
        "publishedAt": "5 months ago",
        "durationSeconds": 373,
        "views": 4188,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-Tutorials\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0fullstack?via=Codevolution\n\nFollow me\n+ Twitter - https://twi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9QRq2kbP7PA",
        "title": "React 19 Tutorial - 29 - useReducer (complex state and actions)",
        "publishedAt": "5 months ago",
        "durationSeconds": 1257,
        "views": 6605,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-Tutorials\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0fullstack?via=Codevolution\n\nFollow me\n+ Twitter - https://twi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WaqlQYpNSWI",
        "title": "React 19 Tutorial - 28 - useReducer (simple state and action)",
        "publishedAt": "5 months ago",
        "durationSeconds": 492,
        "views": 5979,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-Tutorials\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0fullstack?via=Codevolution\n\nFollow me\n+ Twitter - https://twi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "I2B_vbo_4B0",
        "title": "React 19 Tutorial - 27 - useReducer Hook",
        "publishedAt": "5 months ago",
        "durationSeconds": 291,
        "views": 6393,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-Tutorials\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0fullstack?via=Codevolution\n\nFollow me\n+ Twitter - https://twi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YpjvL5SvVhM",
        "title": "React 19 Tutorial - 26 - Sharing State Between Components",
        "publishedAt": "5 months ago",
        "durationSeconds": 736,
        "views": 8859,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-Tutorials\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0fullstack?via=Codevolution\n\nFollow me\n+ Twitter - https://twi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "m0FUyg5ntlM",
        "title": "React 19 Tutorial - 25 - useState with Arrays",
        "publishedAt": "5 months ago",
        "durationSeconds": 532,
        "views": 6353,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-Tutorials\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0fullstack?via=Codevolution\n\nFollow me\n+ Twitter - https://twi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MCIfZlQlmSc",
        "title": "React 19 Tutorial - 24 - useState with Objects",
        "publishedAt": "5 months ago",
        "durationSeconds": 568,
        "views": 6292,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-Tutorials\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0fullstack?via=Codevolution\n\nFollow me\n+ Twitter - https://twi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IXrMupqNlog",
        "title": "React 19 Tutorial - 23 - How React Batches Updates",
        "publishedAt": "5 months ago",
        "durationSeconds": 244,
        "views": 6634,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-Tutorials\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0fullstack?via=Codevolution\n\nFollow me\n+ Twitter - https://twi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7PsTafZluL0",
        "title": "React 19 Tutorial - 22 - setState using Previous State",
        "publishedAt": "5 months ago",
        "durationSeconds": 478,
        "views": 6686,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-Tutorials\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0fullstack?via=Codevolution\n\nFollow me\n+ Twitter - https://twi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hjNExKVUHSw",
        "title": "React 19 Tutorial - 21 - State as a Snapshot",
        "publishedAt": "5 months ago",
        "durationSeconds": 347,
        "views": 7243,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-Tutorials\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0fullstack?via=Codevolution\n\nFollow me\n+ Twitter - https://twi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qiPHXVeNi_w",
        "title": "React 19 Tutorial - 20 - How State Updates Work",
        "publishedAt": "5 months ago",
        "durationSeconds": 355,
        "views": 7308,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-Tutorials\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0fullstack?via=Codevolution\n\nFollow me\n+ Twitter - https://twi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YdJPtx-ovWM",
        "title": "React 19 Tutorial - 19 - Rules of Hooks",
        "publishedAt": "5 months ago",
        "durationSeconds": 560,
        "views": 8415,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-Tutorials\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0fullstack?via=Codevolution\n\nFollow me\n+ Twitter - https://twi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "akZJe9Mx-Xc",
        "title": "React 19 Tutorial - 18 - useState Hook",
        "publishedAt": "5 months ago",
        "durationSeconds": 649,
        "views": 8927,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-Tutorials\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0fullstack?via=Codevolution\n\nFollow me\n+ Twitter - https://twi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CRZSGDUfgsw",
        "title": "React 19 Tutorials - 17 - Introduction to State",
        "publishedAt": "5 months ago",
        "durationSeconds": 398,
        "views": 8524,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-Tutorials\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0fullstack?via=Codevolution\n\nFollow me\n+ Twitter - https://twi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XzZoUojeuF0",
        "title": "React 19 Tutorial - 16 - Event Handlers as Props",
        "publishedAt": "5 months ago",
        "durationSeconds": 634,
        "views": 10436,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-Tutorials\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0fullstack?via=Codevolution\n\nFollow me\n+ Twitter - https://twi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "peewECGtPCI",
        "title": "React 19 Tutorial - 15 - Event Handling",
        "publishedAt": "5 months ago",
        "durationSeconds": 450,
        "views": 9692,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Github - https://github.com/gopinav/React-19-Tutorials\nBecome a Fullstack Developer with Scrimba - https://scrimba.com/fullstack-path-c0fullstack?via=Codevolution\n\nFollow me\n+ Twitter - https://twi...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 6,
      "uploadCadenceWeekly": 0.47,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 9243,
      "viewsPerVideoP90Last90d": 11959,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": 9243,
      "p90Views": 11959,
      "p99Views": 11959,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "ai-saas",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:AI assistants"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": null,
      "additionalContacts": []
    },
    "contactability": {
      "tier": "none",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": false,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Not reachable through public business channels. No published business email and no external website detected."
    },
    "topicPillars": [
      {
        "label": "com",
        "share": 1,
        "evidenceVideoIds": [
          "0rm9bTlDx-A",
          "wJpeiBK95is",
          "lP8IPcpGb9M",
          "J6CHZWoygeM",
          "O1mleqDJ-Wg"
        ]
      },
      {
        "label": "twitter",
        "share": 1,
        "evidenceVideoIds": [
          "0rm9bTlDx-A",
          "wJpeiBK95is",
          "lP8IPcpGb9M",
          "J6CHZWoygeM",
          "O1mleqDJ-Wg"
        ]
      },
      {
        "label": "codevolution",
        "share": 1,
        "evidenceVideoIds": [
          "0rm9bTlDx-A",
          "wJpeiBK95is",
          "lP8IPcpGb9M",
          "J6CHZWoygeM",
          "O1mleqDJ-Wg"
        ]
      },
      {
        "label": "https",
        "share": 0.97,
        "evidenceVideoIds": [
          "0rm9bTlDx-A",
          "wJpeiBK95is",
          "lP8IPcpGb9M",
          "O1mleqDJ-Wg",
          "b4VbMlgciYg"
        ]
      },
      {
        "label": "become",
        "share": 0.97,
        "evidenceVideoIds": [
          "0rm9bTlDx-A",
          "wJpeiBK95is",
          "J6CHZWoygeM",
          "O1mleqDJ-Wg",
          "b4VbMlgciYg"
        ]
      },
      {
        "label": "AI assistants",
        "share": 0.03,
        "evidenceVideoIds": [
          "pvMGRSZJ4Jw"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Monday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "D",
      "rationale": "content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 27,
      "reason": "fits ai-saas",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.05
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.35
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "fits ai-saas. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 30,
    "failureType": null,
    "summary": "Codevolution — 0.8M subs, D-tier sponsorship readiness, none contactability, respond within 30 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 27,
      "readyForOutreach": false,
      "blockers": [
        "contactability:none — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.83,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 2,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 2
      }
    },
    "channelStrategy": {
      "primary": "enrichment",
      "secondary": "linkedin",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [],
      "missedOpportunities": [
        "no-external-website-detected",
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.02
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.02,
      "gap": 0.92,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "unknown",
      "score": 0,
      "factors": [],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "none"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "ai-saas",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "ignore",
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": {
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "gaps": [
        "tier:D",
        "contactability:none"
      ]
    },
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "b71cea7224c5c0088eecaa4fe81c01b62000924dcd3ad4c8c9b16aa093e95bda",
      "inputsHash": "ff4ac99ca9aa16ca03a8b150106e8b8234189befe46002ccccacaeb45812cceb",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:55.433Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "4f927dc35eeee0cfb818b00290490f6eb36928f74031686a3bbd6c03bab17f66",
    "channelId": "UCmXmlB4-HJytD7wek0Uo97A",
    "channelHandle": "@javascriptmastery",
    "channelName": "JavaScript Mastery",
    "channelUrl": "https://www.youtube.com/@javascriptmastery",
    "description": "Master modern web development with a project-based approach",
    "joinDate": null,
    "location": null,
    "subscribers": 1240000,
    "totalVideos": 202,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ek0JxMA0h1uXpnYKFL_dYo1ny3LWzAuLwGvaqQwb9Qh2oEQJIPNEPjDrY9yKsvMmIrq_Ooq_=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "jsmastery.com",
        "url": "https://www.jsmastery.com/"
      }
    ],
    "recentVideos": [
      {
        "videoId": "14RP8liACqo",
        "title": "How Senior Engineers Actually Build With AI in 2026 | Build a Full Stack Systems Architecture App",
        "publishedAt": "12 days ago",
        "durationSeconds": 14298,
        "views": 236387,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build a production-ready SaaS without writing code by hand. Architecture-first workflow, proper context management for AI agents, and a real app shipped with Next.js, Prisma, Postgres, TypeScript, and Tailwind.\n\nClerk: https://jsm.dev/ghost-clerk\nTrigger.dev: https://jsm.dev/ghost-triggerdev\nLiveblocks: https://jsm.dev/ghost-liveblocks\nCodeRabbit: https://jsm.dev/ghost-coderabbit\n\n📘 FREE Six-File Methodology for Spec-Driven Dev: https://jsm.dev/ghost-context\n📋 Join the Agentic Course Waitlist: https://jsm.dev/ghost-agentic\n 🎁 Video Kit (Code, Assets, Prompts): https://jsm.dev/ghost-kit\n⭐ Join JS Mastery Pro: https://jsm.dev/ghost-jsm\n\n➤ Links not working? Some regions may need a VPN.\n\n  / discord     / jsmasterypro     / javascriptmastery     / javascriptmastery  \n\nBusiness Inquiries: contact@jsmastery.pro\n\nTimestamps: \n00:00:00 — Introduction\n00:03:15 — Crash Course\n00:14:31 — Project Setup\n00:21:43 — Preparing Context\n00:39:51 — UI Primitive Components\n00:48:14 — Layout Setup\n00:58:17 — Authentication\n01:21:05 — Project Dialogues\n01:31:00 — Prisma Setup\n01:38:58 — Project CRUD APIs\n01:51:18 — Editor: Access Sharing\n02:04:02 — Editor: Liveblocks Canvas\n02:23:54 — Editor: Canvas Features\n02:46:19 — Avatar Feature, Chat Sidebar UI & Auto Save\n03:05:01 — Trigger.dev Setup\n03:15:32 — AI Architecture Design Generation Flow\n03:39:21 — AI Spec Generation\n03:50:28 — Deployment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Ua__7-x6MWs",
        "title": "TanStack Start Full Course 2026 | Build and Deploy a Full Stack Application",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 11602,
        "views": 73020,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "📘 FREE TanStack Start ebook (full mental model, 60 pages):\n→ https://jsm.dev/tanstack-ebook\n\n🟦 TanStack Start Pro course → https://jsm.dev/tanstack-course\nDay Zero access is live for 7 days.\nLowest price this course will ever be.\nPrice goes up when the course ships complete.\n\n━━━━━━━━━━━━━━━━━━━━\n\nIn this video you'll learn what TanStack Start actually is,\nwhy it fixes hydration errors and \"use client\" directive hell,\nand how to think about routing, data fetching, server functions,\nAPI routes, and SEO from first principles.\n\nThen you'll put it all to work building Skild, a full-stack agent\nskills marketplace, from empty folder to live deployment.\n\n━━━━━━━━━━━━━━━━━━━━\n\nClerk: https://jsm.dev/tanstack-clerk\nPostHog: https://jsm.dev/tanstack-posthog\nCodeRabbit: https://jsm.dev/tanstack-coderabbit\n\nExplore my Pro Content: \n⭐ Join JS Mastery Pro: https://jsm.dev/tanstack-jsm\n💎 Become Top 1% Next.js Developer: https://jsm.dev/tanstack-nextjs\n👨‍🔬 Master Next.js Testing: https://jsm.dev/tanstack-testing\n📗 GSAP Animations Course: https://jsm.dev/tanstack-gsap\n📕 Three.js 3D Course: https://jsm.dev/tanstack-threejs\n📙 JavaScript Course: https://jsm.dev/tanstack-javascript\n🚀 Launch Your SaaS: https://jsm.dev/tanstack-saas\n\n📁 FREE Video Kit (Code, Assets, Figma, and more): https://jsm.dev/tanstack-kit\n\nMore courses launching soon! Join the waitlists to get notified! 🔥\n👉 Backend Course Waitlist: https://jsm.dev/tanstack-backend\n👉 Agentic Development Course Waitlist: https://jsm.dev/tanstack-agentic\n👉 React Native Course Waitlist: https://jsm.dev/tanstack-native\n👉 React Course Waitlist: https://jsm.dev/tanstack-react\n👉 Tailwind Course Waitlist: https://jsm.dev/tanstack-tailwind\n\n➤ Links not working? \nIf you're in Nigeria, you might have to use a VPN to access the links.\n\n➤ If something mentioned in the video isn’t listed here or a link is broken:\nLeave a comment, or contact support@jsmastery.pro\n\nRate us on TrustPilot: https://jsm.dev/trustpilot\n\n  / discord     / jsmasterypro     / javascriptmastery     / javascriptmastery  \n\nBusiness Inquiries: contact@jsmastery.pro\n\nTimestamps: \n00:00:00 — Introduction\n—\n00:04:17 — TanStack\n00:08:09 — The Request Lifecycle\n00:11:35 — Installation\n00:15:13 — Project Structure\n00:23:17 — Components & Styles\n00:37:12 — Routing\n00:48:06 — Data Fetching\n00:59:38 — Server Functions\n01:11:49 — API Routes\n01:18:44 — Metadata & SEO\n01:21:58 — Course Outro\n—\n01:23:35 — Installation\n01:30:18 — Layout\n01:41:14 — Home Page\n02:11:41 — Authentication\n02:22:20 — Analytics\n02:32:55 — Firebase\n02:36:22 — Database Setup\n02:51:34 — Data Fetching\n03:11:41 — Going further",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4nVoLX2taFg",
        "title": "React Native Full Course 2026 | Build, Publish and Monetize a Full Stack Mobile App to App Store",
        "publishedAt": "1 month ago",
        "durationSeconds": 13395,
        "views": 210291,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, you'll bridge the gap between web and mobile with an intensive crash course on React Native fundamentals and modern features like file-based routing and server components. Then, you’ll build Recurrly, a subscription tracker using Expo. You’ll implement essential real-world features before taking the leap that most tutorials skip: publishing your app to the Apple App Store and Google Play Store so you can actually start monetizing your work.\n\nExpo: https://jsm.dev/nativesub-expo\nExpo EAS : https://jsm.dev/nativesub-eas\n\nClerk: https://jsm.dev/nativesub-clerk\nPostHog: https://jsm.dev/nativesub-posthog\nCodeRabbit: https://jsm.dev/nativesub-coderabbit\nJunie AI: https://jsm.dev/nativesub-junie \nWebStorm: https://jsm.dev/nativesub-webstorm\n\nExplore my Pro Content: \n⭐ Join JS Mastery Pro: https://jsm.dev/nativesub-jsm\n💎 Become Top 1% Next.js Developer: https://jsm.dev/nativesub-nextjs\n👨‍🔬 Master Next.js Testing: https://jsm.dev/nativesub-testing\n📗 GSAP Animations Course: https://jsm.dev/nativesub-gsap\n📕 Three.js 3D Course: https://jsm.dev/nativesub-threejs\n📙 JavaScript Course: https://jsm.dev/nativesub-javascript\n🚀 Launch Your SaaS: https://jsm.dev/nativesub-saas\n\n📁 FREE Video Kit (Code, Figma, Assets, and more): https://jsm.dev/nativesub-kit\n\nMore courses launching soon! Join the waitlists to get notified! 🔥\n👉 Backend Course Waitlist: https://jsm.dev/nativesub-backend\n👉 Agentic Coding Course Waitlist: https://jsm.dev/nativesub-agentic\n👉 React Native Course Waitlist: https://jsm.dev/nativesub-native\n👉 React Course Waitlist: https://jsm.dev/nativesub-react\n👉 Tailwind Course Waitlist: https://jsm.dev/nativesub-tailwind\n\n➤ Links not working? \nIf you're in Nigeria, you might have to use a VPN to access the links.\n\n➤ If something mentioned in the video isn’t listed here or a link is broken:\nLeave a comment, or contact support@jsmastery.pro\n\nRate us on TrustPilot: https://jsm.dev/trustpilot\n\n  / discord     / jsmasterypro     / javascriptmastery     / javascriptmastery  \n\nBusiness Inquiries: contact@jsmastery.pro\n\nTimestamps: \n00:00:00 — Introduction\n00:03:19 — Crash Course\n00:13:14 — Fundamentals\n00:23:44 — Project Setup\n00:35:19 — Setup Styling (Nativewind)\n00:45:17 — Routing & Navigation\n01:03:10 — Tab Navigation\n01:27:55 — Custom Fonts\n01:36:11 — Home UI\n02:24:13 — Clerk Setup\n02:28:37 — Authentication\n02:53:40 — PostHog\n03:05:44 — Subscription Tab\n03:10:16 — Create Subscriptions \n03:13:57 — PostHog Custom Events\n03:26:04 — EAS Build & Deploy\n03:39:39 — Closing & What's Next",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uqpXAfNEY4g",
        "title": "I Vibe Coded a $50K Website in One Weekend Using AI",
        "publishedAt": "2 months ago",
        "durationSeconds": 1276,
        "views": 171347,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Can \"vibe coding\" build high-end 3D product experiences? Create cinematic scroll-driven animations, integrated physics, and responsive 3D hooks—streamlining complex frontend development with Three.js and GSAP. We’re breaking down the structured agentic workflow used to build production-grade 3D scenes entirely through AI.\n\n👉 Join the Agentic Dev Course Waitlist: https://jsm.dev/slamdunk-ai\n👉 Follow us on X: https://x.com/thebuggeddev\n\n✨ Try my DesignToPrompt tool: https://www.morphen.ai\n🏀 Check the deployed website: https://slamdunk-five.vercel.app\n\nExplore our Pro Content: \n⭐ Join JS Mastery Pro: https://jsm.dev/slamdunk-jsm\n💎 Become Top 1% Next.js Developer: https://jsm.dev/slamdunk-nextjs\n👨‍🔬 Master Next.js Testing: https://jsm.dev/slamdunk-testing\n📗 GSAP Animations Course: https://jsm.dev/slamdunk-gsap\n📕 Three.js 3D Course: https://jsm.dev/slamdunk-threejs\n📙 JavaScript Course: https://jsm.dev/slamdunk-javascript\n🚀 Launch Your SaaS: https://jsm.dev/slamdunk-saas\n\nMore courses launching soon! Join the waitlists to get notified! 🔥\n👉 Backend Course Waitlist: https://jsm.dev/slamdunk-backend\n👉 React Native Course Waitlist: https://jsm.dev/slamdunk-native\n👉 React Course Waitlist: https://jsm.dev/slamdunk-react\n👉 Tailwind Course Waitlist: https://jsm.dev/slamdunk-tailwind\n\n➤ Links not working? \n→ If you're in Nigeria, you might have to use a VPN to access the links.\n\n➤ If something mentioned in the video isn’t listed here or a link is broken:\n→ Leave a comment, or contact support@jsmastery.pro\n\nRate us on TrustPilot: https://jsm.dev/trustpilot\n\n  / discord     / jsmasterypro     / javascriptmastery     / javascriptmastery  \n\nBusiness Inquiries: contact@jsmastery.pro\n\nTimestamps: \n00:00:00 — Introduction\n00:02:40 — Tech Stack\n00:07:26 — #1 Research before you prompt\n00:08:14 — #2 Define goals before you open the tool\n00:08:54 — #3 Build a master prompt\n00:14:02 — #4 Iterate surgically\n00:15:40 — #5 One problem at a time\n00:16:38 — #6 Understand what you ship\n00:17:16 — #7 Build in public",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "NiwawEe92Co",
        "title": "The Right Way to Build AI Apps in 2026 | Next.js 16 Course",
        "publishedAt": "2 months ago",
        "durationSeconds": 14250,
        "views": 149717,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, you'll learn how to build Bookified, an AI-powered platform for real-time voice conversations with your books. Using Next.js 16, Vapi, and MongoDB, you will transform static PDFs into interactive experiences with natural voice synthesis and ElevenLabs persona previews. You’ll master PDF text extraction, secure authentication, and session transcripts to create a seamless library where you can literally talk to your data.\n\nVapi: https://jsm.dev/books-vapi\nClerk: https://jsm.dev/books-clerk\n\nCodeRabbtit: https://jsm.dev/books-coderabbit\nJunie AI: https://jsm.dev/books-junie \nWebStorm: https://jsm.dev/books-webstorm\n\nExplore my Pro Content: \n⭐ Join JS Mastery Pro: https://jsm.dev/books-jsm\n💎 Become Top 1% Next.js Developer: https://jsm.dev/books-nextjs\n👨‍🔬 Master Next.js Testing: https://jsm.dev/books-testing\n📗 GSAP Animations Course: https://jsm.dev/books-gsap\n📕 Three.js 3D Course: https://jsm.dev/books-threejs\n📙 JavaScript Course: https://jsm.dev/books-cpjsm\n🚀 Launch Your SaaS: https://jsm.dev/books-saas\n\nVideo Kit (Code, Figma, Assets, and more): https://jsm.dev/books-kit\n\nMore courses launching soon! Join the waitlists to get notified! 🔥\n👉 Backend Course Waitlist: https://jsm.dev/books-backend\n👉 AI Development Course Waitlist: https://jsm.dev/books-ai\n👉 React Native Course Waitlist: https://jsm.dev/books-native\n👉 Tailwind Course Waitlist: https://jsm.dev/books-tailwind\n👉 React.js Course Waitlist: https://jsm.dev/books-react\n\n➤ Links not working? \nIf you're in Nigeria, you might have to use a VPN to access the links.\n\n➤ If something mentioned in the video isn’t listed here or a link is broken:\nLeave a comment, or contact support@jsmastery.pro\n\nRate us on TrustPilot: https://jsm.dev/trustpilot\n\n  / discord     / jsmasterypro     / javascriptmastery     / javascriptmastery  \n\nBusiness Inquiries: contact@jsmastery.pro\n\nTime Stamps: \n00:00:00 — Introduction\n00:03:59 — Project Setup\n00:11:52 — Navbar\n00:18:40 — Authentication\n00:24:32 — Homepage UI\n00:36:37 — Create Book Page\n00:58:46 — Database & Schema\n01:13:42 — Create Book (Part 1)\n01:45:05 — Create Book (Part 2)\n01:59:37 — Fetch Books from DB\n02:11:22 — Develop Book UI with your Agent\n02:15:45 — Vapi Initial Setup\n02:25:30 — Voice Hook & Conversation UI\n03:01:43 — Search Tool & Deployment\n03:18:45 — Add Subscription Plans\n03:23:02 — Enforce Plan Limits with your Agent\n03:45:52 — Final Fixes & Deployment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sO6NSSOWDO0",
        "title": "Deploy Your Own AI Agent in 45 Minutes | Beginner OpenClaw Tutorial",
        "publishedAt": "2 months ago",
        "durationSeconds": 2592,
        "views": 166298,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, you'll learn how to deploy and master OpenClaw; an open-source orchestration layer that transforms AI models into autonomous digital agents. You will follow a step-by-step guide to hosting your own agent on a VPS and connecting it to your preferred messaging apps for full computer control. By the end of this tutorial, you will have a 24/7 AI employee ready to deploy code, manage your inbox, and handle complex developer workflows from anywhere.\n\nSet up your OpenClaw Bot here (special discount applied): \n👉 Hostinger: https://jsm.dev/openclaw-hostinger + Use code JAVASCRIPTMASTERY\n\nExplore my Pro Content: \n⭐ Join JS Mastery Pro: https://jsm.dev/openclaw-jsm\n💎 Become Top 1% Next.js Developer: https://jsm.dev/openclaw-nextjs\n👨‍🔬 Master Next.js Testing: https://jsm.dev/openclaw-testing\n📗 GSAP Animations Course: https://jsm.dev/openclaw-gsap\n📕 Three.js 3D Course: https://jsm.dev/openclaw-threejs\n📙 JavaScript Course: https://jsm.dev/openclaw-javascript\n🚀 Launch Your SaaS: https://jsm.dev/openclaw-saas\n\n📁 Video Kit (Code, Figma, Assets, and more): https://jsm.dev/openclaw-kit\n\nMore courses launching soon! Join the waitlists to get notified! 🔥\n👉 Agentic Coding Course Waitlist: https://jsm.dev/openclaw-agentic\n👉 Backend Course Waitlist: https://jsm.dev/openclaw-backend\n👉 React Native Course Waitlist: https://jsm.dev/openclaw-native\n👉 React Course Waitlist: https://jsm.dev/openclaw-react\n👉 Tailwind Course Waitlist: https://jsm.dev/openclaw-tailwind\n\n➤ Links not working? \n→ If you're in Nigeria, you might have to use a VPN to access the links.\n\n➤ If something mentioned in the video isn’t listed here or a link is broken:\n→ Leave a comment, or contact support@jsmastery.pro\n\nRate us on TrustPilot: https://jsm.dev/trustpilot\n\n  / discord     / jsmasterypro     / javascriptmastery     / javascriptmastery  \n\nBusiness Inquiries: contact@jsmastery.pro\n\nTimestamps: \n00:00:00 — Introduction\n—\nSet Up & Deploy on Hostinger VPS\n00:03:49 — Why use a VPS?\n00:05:07 — One-Click Deployment + AI Model Setup\n00:10:43 — Connect Telegram\n00:15:30 — Set the System Prompt\n00:18:29 — Moment of Truth\n—\nFive Developer Use Cases That Actually Matter\n00:20:17 — Usecases\n00:20:48 — Case #1 \"Build and Deploy This\" From Your Phone\n00:27:16 — Case #2 Email Command Center\n00:32:11 — Case #3 Research on Demand\n00:33:54 — Case #4 Second Brain That Never Forgets\n00:36:23 — Case #5 Custom Skills\n—\n00:39:14 — Advanced tips + What's Next",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JiwTGGGIhDs",
        "title": "Build and Deploy a Full-Stack AI App (Completely Free)",
        "publishedAt": "3 months ago",
        "durationSeconds": 11009,
        "views": 170784,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, you'll build an AI-powered architectural visualization SaaS using React, TypeScript, and Puter.js Use AI models from Claude to Gemini to transform 2D floor plans into photorealistic 3D renders with permanent hosting and persistent metadata. This project features 2D-to-3D photorealistic rendering, serverless workers, high-performance KV storage, and a global community feed.\n\nPuter.js: https://jsm.dev/roomify-puterjs\nPuter.com: https://jsm.dev/roomify-puter\nCodeRabbit: https://jsm.dev/roomify-coderabbit\nJunie AI: https://jsm.dev/roomify-junie\nWebStorm: https://jsm.dev/roomify-webstorm\n\nExplore my Pro Content: \n⭐ Join JS Mastery Pro: https://jsm.dev/roomify-jsm\n💎 Become Top 1% Next.js Developer: https://jsm.dev/roomify-nextjs\n👨‍🔬 Master Next.js Testing: https://jsm.dev/roomify-testing\n📗 GSAP Animations Course: https://jsm.dev/roomify-gsap\n📕 Three.js 3D Course: https://jsm.dev/roomify-threejs\n📙 JavaScript Course: https://jsm.dev/roomify-cpjsm\n🚀 Launch Your SaaS: https://jsm.dev/roomify-saas\n\n📁 Video Kit (Code, Assets, and more): https://jsm.dev/roomify-kit\n\nMore courses launching soon! Join the waitlists to get notified! 🔥\n👉 Backend Course Waitlist: https://jsm.dev/roomify-backend\n👉 AI Development Course Waitlist: https://jsm.dev/roomify-ai\n👉 React Native Course Waitlist: https://jsm.dev/roomify-native\n👉 React Course Waitlist: https://jsm.dev/roomify-react\n👉 Tailwind Course Waitlist: https://jsm.dev/roomify-tailwind\n\n⚠ Links not working? \nIf you're in Nigeria, you might have to use a VPN to access the links.\n\n⚠ If something mentioned in the video isn’t listed here or a link is broken\nLeave a comment, or contact support@jsmastery.pro\n\nRate us on TrustPilot: https://jsm.dev/trustpilot\n\n  / discord     / jsmasterypro     / javascriptmastery     / javascriptmastery  \n\nBusiness Inquiries: contact@jsmastery.pro\n\nTimestamps: \n00:00:00 — Introduction\n00:04:46 — Project Setup\n00:12:16 — Navbar\n00:22:44 — Authentication\n00:36:19 — Homepage\n00:46:13 — Upload Files\n01:09:18 — Project Architecture\n01:12:13 — Hosting Images\n01:26:18 — Create Project\n01:48:11 — Generate 3D Design\n02:11:05 — Worker in Action\n02:21:47 — Display Data\n02:47:22 — Compare Designs\n02:59:53 — Deployment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pbOXOY78dNA",
        "title": "Real-Time WebSockets Course | Build a Live Sports Dashboard with Node.js & PostgreSQL",
        "publishedAt": "3 months ago",
        "durationSeconds": 13303,
        "views": 229577,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Master WebSockets in this crash course, moving from core theory to building a high-frequency \"Broadcast Engine.\" Learn how to ingest data from admin sources or APIs to deliver live match scores, commentary, and ball-by-ball updates to 100,000+ simultaneous users with sub-second latency. This project covers everything from the initial handshake to deployment, demonstrating how to architect a system that broadcasts real-time data to millions of clients without crashing the server.\n\nHostinger: https://jsm.dev/sportz-hostinger + Use code JAVASCRIPTMASTERY\n\nSite24x7: https://jsm.dev/sportz-site24x7\nMonitoring is just the start, go full-scale with ManageEngine:\n👉 https://jsm.dev/sportz-manage-engine \n\nArcjet: https://jsm.dev/sportz-arcjet\nCodeRabbit: https://jsm.dev/sportz-coderabbit\nJunie AI: https://jsm.dev/sportz-junie \nWebStorm: https://jsm.dev/sportz-webstorm\n\nExplore our Pro Content: \n⭐ Join JS Mastery Pro: https://jsm.dev/sportz-jsm\n💎 Become Top 1% Next.js Developer: https://jsm.dev/sportz-nextjs\n👨‍🔬 Master Next.js Testing: https://jsm.dev/sportz-testing\n📗 GSAP Animations Course: https://jsm.dev/sportz-gsap\n📕 Three.js 3D Course: https://jsm.dev/sportz-threejs\n📙 JavaScript Course: https://jsm.dev/sportz-cpjsm\n🚀 Launch Your SaaS: https://jsm.dev/sportz-saas\n\n📁 FREE Video Kit (Code, Figma, Assets, and more): https://jsm.dev/sportz-kit\nDATA.JSON & SEED.JS are provided in the VIDEO KIT → ASSETS  LINK\n\nMore courses launching soon! Join the waitlists to get notified! 🔥\n👉 Backend Course Waitlist: https://jsm.dev/sportz-backend\n👉 React Native Course Waitlist: https://jsm.dev/sportz-native\n👉 React Course Waitlist: https://jsm.dev/sportz-react\n👉 Tailwind Course Waitlist: https://jsm.dev/sportz-tailwind\n👉 AI Development Course Waitlist: https://jsm.dev/sportz-ai\n\n➤ Links not working? \nIf the links aren’t working for you, please try using a VPN (e.g., in Nigeria)\n\n➤ If something mentioned in the video isn’t listed here or a link is broken:\nLeave a comment, or contact support@jsmastery.pro\n\nRate us on TrustPilot: https://jsm.dev/trustpilot\n\n  / discord     / jsmasterypro     / javascriptmastery     / javascriptmastery  \n\nBusiness Inquiries: contact@jsmastery.pro\n\nTimestamps: \n00:00:00 — Introduction\n— Course\n00:04:59 — The Real Time Shift\n00:08:31 — Architecture\n00:14:29 — Websocket in Action\n00:19:58 — Websocket in Action (Demo)\n00:50:06 — Socket Patterns\n00:57:12 — Beyond The Socket\n01:03:07 — Course Outro\n— Build\n01:07:13 — Project Demo\n01:10:08 — Hostinger\n01:13:12 — Project Setup\n01:21:33 — Database Schema\n01:39:04 — Matches Rest API\n02:04:38 — WebSocket Server\n02:25:33 — Security with Arcjet\n02:46:42 — Commentary Rest API\n02:57:29 — Broadcast Commentary \n03:20:41 — Site 24x7 APM\n03:25:01 — Deployment, Seeding & Insights",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ek7hmv5PVV8",
        "title": "Full Stack Engineering Course | Build and Deploy a Full Stack PERN Admin Dashboard in 2026",
        "publishedAt": "4 months ago",
        "durationSeconds": 28402,
        "views": 380289,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Master the PERN stack in this comprehensive guide, starting with a theoretical crash course on PostgreSQL, Express, React, and Node before building a full-scale University Management Dashboard from scratch. You’ll develop a production-ready system featuring multi-role authentication, secure join codes, and Cloudinary media uploads, then learn to accelerate your workflow using AI for rapid development. Finally, we’ll put your new skills to the test by attempting to rebuild the entire Google Classroom-style project using an AI agent to compare human craftsmanship with automated efficiency.\n\nRefine: https://jsm.dev/pern-refine\nRefine Core: https://jsm.dev/pern-refinecore\n👉 Use coupon JSMASTERY10 to get $10 off.\n\nCloudinary: https://jsm.dev/pern-cloudinary\n👉 Earn 3 extra credits: register and send your Email and \"Cloud/Project name\"\n\nArcjet: https://jsm.dev/pern-arcjet\nSite24x7: https://jsm.dev/pern-site24x7\nCodeRabbit: https://jsm.dev/pern-coderabbit\n\nJunie AI: https://jsm.dev/pern-junie \nWebStorm: https://jsm.dev/pern-webstorm\n\n⭐ Join JS Mastery Pro: https://jsm.dev/pern-jsmpro\n💎 Become a Top 1% Next.js Developer: https://jsm.dev/pern-nextjs\n💎 Master Next.js Testing: https://jsm.dev/pern-testing\n\nExplore our Pro Courses: \n📗 GSAP Pro Course (includes GTAVI Website): https://jsm.dev/pern-gsap\n📕 Three.js 3D Pro Course: https://jsm.dev/pern-threejs\n📙 JavaScript Pro Course: https://jsm.dev/pern-cpjsm\n🚀 Launch Your SaaS Pro Course: https://jsm.dev/pern-saas\n\n📁 FREE Video Kit (Code, Figma, Assets, and more): https://jsm.dev/pern-kit\n\nOther Courses mentioned: \nReact 19:    • React JS 19 Full Course 2025 | Build an Ap...  \nTailwind v4:    • Tailwind CSS v4 Full Course 2025 | Master ...  \nDocker:    • Learn Docker in 1 Hour | Full Docker Cours...  \n\n👉 React Native Pro Course Waitlist: https://jsm.dev/pern-native\n👉 Backend Pro Course Waitlist: https://jsm.dev/pern-backend\n👉 React.js Pro Course Waitlist: https://jsm.dev/pern-react\n👉 Tailwind Pro Course Waitlist: https://jsm.dev/pern-tailwind\n👉 AI Development Pro Course Waitlist: https://jsm.dev/pern-aidev\n\n➤ Links not working? \nIf the links aren’t working for you, please try using a VPN (e.g., in Nigeria)\n\n➤ If something mentioned in the video isn’t listed here or a link is broken:\nLeave a comment, or contact support@jsmastery.pro\n\nRate us on TrustPilot: https://jsm.dev/trustpilot\n\n  / discord     / jsmasterypro     / javascriptmastery     / javascriptmastery  \n\nBusiness Inquiries: contact@jsmastery.pro\n\nTime Stamps: \n00:00:00 — Introduction\n—\n00:05:15 — The Old Way (Course Intro)\n00:08:12 — JavaScript Journey\n00:12:42 — The Birth of NodeJS\n00:16:43 — NodeJS Fundamentals\n00:24:29 — Express: Why It Still Dominates\n00:48:43 — Introduction to Databases\n00:55:45 — PostgreSQL Fundamentals\n01:09:47 — Connecting Node.js to PostgreSQL\n01:15:02 — Connect to API\n01:27:53 — React Fundamentals\n01:29:43 — Create React.js Project\n01:43:42 — React Conclusion\n01:45:03 — Course Outro\n—\n01:45:40 — Project Demo\n01:50:51 — Project Intro\n01:55:42 — Frontend Setup\n02:03:38 — Create Frontend Routes\n02:15:02 — Displaying Data\n02:53:33 — Backend Setup\n03:00:25 — Database Schema (Part 1)\n03:24:19 — Write your first Query\n03:45:51 — REST Data Provider\n04:01:46 — Refine\n04:13:34 — Create Class Form\n04:35:57 — Cloudinary Integration\n05:05:33 — Database Schema (Part 2)\n05:17:13 — Arcjet Security Middleware\n05:42:06 — Better-Auth (Authentication)\n05:53:49 — Site 24x7 APM\n06:07:41 — Class Submission\n06:23:31 — Site 24x7 RUM\n06:38:56 — Display all Classes\n06:45:48 — Class Details Page\n07:21:50 — Refine Finalization",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-vsh_GxC-vg",
        "title": "Crypto Trading Terminal Course | Build a Real-Time Dashboard with WebSockets & Next.js",
        "publishedAt": "4 months ago",
        "durationSeconds": 14173,
        "views": 214684,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, you'll build CryptoPulse, a real-time crypto analytics terminal with global market stats, trending tokens, a searchable tokens table, and a full token detail page featuring charts, live prices, and exchange data.\n\nPowered by the CoinGecko API REST endpoints and crypto WebSocket API to stream real-time, sub-second, ultra-low latency market data – giving everyone the ability to build industry-leading, data-driven crypto and Web3 projects.\n\n⭐ CoinGecko API: https://jsm.dev/crypto-gecko\n\n💰 Use code JSMASTERY10 for 10% OFF your first CoinGecko API plan subscription\n\nWhat you'll learn:\nHow to use CoinGecko's WebSocket API for real-time, sub-second price streaming and live candlestick chart updates\nBuilding a real-time crypto analytics dashboard with live price feeds and trade data\nFetching cryptocurrency market data using CoinGecko REST API endpoints (coins, markets, OHLC, trending)\nBuilding a crypto price converter with multi-currency support using CoinGecko's market data\nDisplaying real-time on-chain trades streamed via WebSocket API\nFetch and display trending coins, top gainers and losers, and coin categories using CoinGecko API's discovery endpoints\n\nCodeRabbit: https://jsm.dev/crypto-rabbit\nJunie AI: https://jsm.dev/crypto-junie \nWebStorm: https://jsm.dev/crypto-webstorm\n\nExplore my Pro Content: \n⭐ Join JS Mastery Pro: https://jsm.dev/crypto-jsm\n💎 Become Top 1% Next.js Developer: https://jsm.dev/crypto-nextjs\n👨‍🔬 Master Next.js Testing: https://jsm.dev/crypto-testing\n📗 GSAP Animations Course: https://jsm.dev/crypto-gsap\n📕 Three.js 3D Course: https://jsm.dev/crypto-threejs\n📙 JavaScript Course: https://jsm.dev/crypto-cpjsm\n🚀 Launch Your SaaS: https://jsm.dev/crypto-saas\n\n📁 FREE Video Kit (Code, Figma, Assets, and more): https://jsm.dev/crypto-kit\n🎨 FREE TailwindCSS Course:    • Tailwind CSS v4 Full Course 2025 | Master ...  \n\nMore courses launching soon! Join the waitlists to get notified! 🔥\n👉 React Native Course Waitlist: https://jsm.dev/crypto-native\n👉 Backend Course Waitlist: https://jsm.dev/crypto-backend\n👉 React Course Waitlist: https://jsm.dev/crypto-react\n👉 Tailwind Course Waitlist: https://jsm.dev/crypto-tailwind\n👉 AI Development Course Waitlist: https://jsm.dev/crypto-aidev\n\n⚠ Links not working? \n→ If you're in Nigeria, you'll have to use a VPN due to regional restrictions.\nRate us on TrustPilot: https://jsm.dev/trustpilot\n\n⚠ If something mentioned in the video isn’t listed here or a link is broken:\n→ contact support@jsmastery.pro\n\n  / discord     / jsmasterypro     / javascriptmastery     / javascriptmastery  \n\nBusiness Inquiries: contact@jsmastery.pro\n\nTimestamps: \n00:00:00 — Introduction\n00:03:25 — Project Setup\n00:10:54 — Navigation\n00:22:09 — CoinGecko API\n00:24:38 — Homepage\n00:46:00 — Suspense & Streaming\n01:16:31 — Candlestick Chart\n01:48:54 — Top Categories\n02:03:14 — Coins Page\n02:21:40 — Custom Hook\n02:45:18 — Coin Details Page (Part 1)\n03:08:43 — Realtime Chart\n03:20:25 — Coin Details Page (Part 2)\n03:50:28 — Create Global Search\n03:52:24 — Deployment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ATdaYQw0ptk",
        "title": "Creative Frontend Course | Master GSAP, Three.js & React in 10 Hours",
        "publishedAt": "5 months ago",
        "durationSeconds": 35141,
        "views": 187655,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Unlock the world of creative web experiences in this 10-hour GSAP & Three.js full course. Start with crash courses for GSAP and Three.js, then build real-world projects like a Mojito Cocktails...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "j9ZD_hlyHOA",
        "title": "Build and Deploy a MacOS style Portfolio with React, GSAP & Tailwind",
        "publishedAt": "5 months ago",
        "durationSeconds": 11231,
        "views": 171436,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, you’ll build a macOS-style portfolio from scratch using React, GSAP, and Tailwind CSS. Step by step, you’ll recreate the interactive Apple Dock, draggable and resizable applicati...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UtXzdmpysmU",
        "title": "Build AI Agents with n8n | Complete Beginner’s Automation Course 2025",
        "publishedAt": "6 months ago",
        "durationSeconds": 5812,
        "views": 232970,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to build smart AI workflows with N8N: automate tasks, connect apps, and deploy AI agents.\n\nHostinger: https://jsm.dev/n8n-hostinger + Use code JAVASCRIPTMASTERY\nSite24x7: https://jsm.dev/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "I1V9YWqRIeI",
        "title": "Next.js 16 Full Course | Build and Deploy a Production-Ready Full Stack App",
        "publishedAt": "6 months ago",
        "durationSeconds": 15018,
        "views": 636582,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this course, you’ll master Next.js 16, the latest version of the official React framework, and learn how to build powerful, full-stack applications using its new caching and performance...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DEeaT6FxEws",
        "title": "Master Creative Frontend in 2 Hours with React, Three.js & GSAP",
        "publishedAt": "7 months ago",
        "durationSeconds": 8517,
        "views": 266109,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build an Apple-style website with React, Three.js, GSAP and TailwindCSS. Create 3D product scenes, scroll animations, pinned sections, and responsive design.\n\nHostinger: https://jsm.dev/mbook-hosti...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gu4pafNCXng",
        "title": "Build and Deploy a Real-Time Stock Market App with Alerts, Charts & AI Insights | Next.js, Inngest",
        "publishedAt": "7 months ago",
        "durationSeconds": 15436,
        "views": 635969,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build a real-time stock market app with live prices, search, personalized alerts, interactive charts, AI-powered insights, daily news summary, watchlists, powered by Next.js, Better Auth, and...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "H5FAxTBuNM8",
        "title": "DevOps from Zero to Hero: Build and Deploy a Production API",
        "publishedAt": "8 months ago",
        "durationSeconds": 18007,
        "views": 1028497,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn DevOps fast in this crash course covering Git & GitHub, CI/CD pipelines, Docker, Kubernetes, IaC, and API deployment. Everything you need to automate dev and deployment.\n\n⭐ Join JS...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fZdTYswuZjU",
        "title": "Build Nike’s Billion-Dollar eCommerce App in 3 Hours",
        "publishedAt": "8 months ago",
        "durationSeconds": 10833,
        "views": 412378,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Can Devin AI help you build a Nike-style eCommerce MVP? In this video, we’ll master prompting while building sleek product pages powered by Next.js 15, TypeScript, TailwindCSS, and Better...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "BTfcnxXevm0",
        "title": "Build and Deploy 3 Full-Stack React Native Apps That'll Get You Hired | Full 10-Hour Course",
        "publishedAt": "9 months ago",
        "durationSeconds": 37680,
        "views": 615025,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Kick off your iOS/Android mobile development with React Native and Expo by creating a mobile movie app, a Real Estate app with Google Authentication and dynamic routing, and a Food Delivery...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "iYOz165wGkQ",
        "title": "Build and Deploy a Full AI-Powered Applicant Tracking System",
        "publishedAt": "9 months ago",
        "durationSeconds": 9383,
        "views": 733093,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build an AI-powered Resume Analyzer with React, React Router, and Puter.js! Create job listings, upload candidate resumes, and use AI to automatically evaluate and match resumes to job requirements...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LKrX390fJMw",
        "title": "Build a Full Stack Food Delivery App in React Native with Scalable Database Architecture",
        "publishedAt": "10 months ago",
        "durationSeconds": 14438,
        "views": 628445,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Kick off your iOS/Android mobile development journey by building a full-stack Food Delivery App with React Native! Learn Google Auth, dynamic search, filters, cart functionality, and smooth...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AW1yfBKRMKc",
        "title": "Master Web Animations in 2 Hours | Build an Awwwards-Level Website",
        "publishedAt": "10 months ago",
        "durationSeconds": 8881,
        "views": 1056535,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If this video made you think, “I wish I could build this,” this is for you.\nWe just launched Motion Authority, built to help devs move from\n“it works.” → “This feels finished.”...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8vIDZO_w7lY",
        "title": "Build 3 Complete Full-Stack Web Apps and Launch Your Developer Career",
        "publishedAt": "11 months ago",
        "durationSeconds": 41543,
        "views": 326478,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 Tool that I use: \nGet 10% off with code JSMASTERY\nOpenclaw VPS Setup: https://jsm.dev/openclaw-hostinger\nLearn how to use OpenClaw with me: https://jsm.dev/openclaw-course\n\nBuild and deploy...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XUkNR-JfHwo",
        "title": "SaaS App Full Course 2025 | Launch Your SaaS in Under 7 Days with Next JS, Supabase & Payments",
        "publishedAt": "11 months ago",
        "durationSeconds": 14199,
        "views": 975147,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 Tool that I use: \nGet 10% off with code JSMASTERY\nOpenclaw VPS Setup: https://jsm.dev/openclaw-hostinger\nLearn how to use OpenClaw with me: https://jsm.dev/openclaw-course\n\nBuild an LMS...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "honnJp7-cCU",
        "title": "Build and Deploy a Full Stack Screen Recording & Video Sharing Platform | Next.js, Better Auth",
        "publishedAt": "1 year ago",
        "durationSeconds": 15542,
        "views": 835110,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 Tool that I use: \nGet 10% off with code JSMASTERY\nOpenclaw VPS Setup: https://jsm.dev/openclaw-hostinger\nLearn how to use OpenClaw with me: https://jsm.dev/openclaw-course\n\nMaster video...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xZ1ba-RLrjo",
        "title": "Build and Deploy a Full Stack React Admin Dashboard with Tables, Charts and Real Data",
        "publishedAt": "1 year ago",
        "durationSeconds": 20218,
        "views": 878465,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 Tool that I use: \nGet 10% off with code JSMASTERY\nOpenclaw VPS Setup: https://jsm.dev/openclaw-hostinger\nLearn how to use OpenClaw with me: https://jsm.dev/openclaw-course\n\nBuild a dynamic...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "E-fdPfRxkzQ",
        "title": "Build and Deploy a Unique 3D Web Developer Portfolio with React, Three JS & GSAP",
        "publishedAt": "1 year ago",
        "durationSeconds": 12759,
        "views": 1116706,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 Tool that I use: \nGet 10% off with code JSMASTERY\nOpenclaw VPS Setup: https://jsm.dev/openclaw-hostinger\nLearn how to use OpenClaw with me: https://jsm.dev/openclaw-course\n\nIf this video...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8GK8R77Bd7g",
        "title": "Full Stack AI App: Build a Real-Time Voice Agent Interview Platform",
        "publishedAt": "1 year ago",
        "durationSeconds": 13945,
        "views": 1124958,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 Tool that I use: \nGet 10% off with code JSMASTERY\nOpenclaw VPS Setup: https://jsm.dev/openclaw-hostinger\nLearn how to use OpenClaw with me: https://jsm.dev/openclaw-course\n\nBuild Your...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "f8Z9JyB2EIE",
        "title": "React Native Course for Beginners in 2025 | Build a Full Stack React Native App",
        "publishedAt": "1 year ago",
        "durationSeconds": 11179,
        "views": 1859992,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 Tool that I use: \nGet 10% off with code JSMASTERY\nOpenclaw VPS Setup: https://jsm.dev/openclaw-hostinger\nLearn how to use OpenClaw with me: https://jsm.dev/openclaw-course\n\nGet hands-on...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6biMWgD6_JY",
        "title": "Tailwind CSS v4 Full Course 2025 | Master Tailwind in One Hour",
        "publishedAt": "1 year ago",
        "durationSeconds": 3261,
        "views": 1913587,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 Tool that I use: \nGet 10% off with code JSMASTERY\nOpenclaw VPS Setup: https://jsm.dev/openclaw-hostinger\nLearn how to use OpenClaw with me: https://jsm.dev/openclaw-course\n\nBuild stunning,...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 3,
      "uploadsLast90d": 8,
      "uploadCadenceWeekly": 0.62,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 170784,
      "viewsPerVideoP90Last90d": 229577,
      "viewVelocityTrend": "stable"
    },
    "performanceBaseline": {
      "p50Views": 170784,
      "p90Views": 229577,
      "p99Views": 229577,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "jsmastery.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "none",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Not reachable through public business channels. No published business email and no external website detected."
    },
    "topicPillars": [
      {
        "label": "build",
        "share": 1,
        "evidenceVideoIds": [
          "14RP8liACqo",
          "Ua__7-x6MWs",
          "4nVoLX2taFg",
          "uqpXAfNEY4g",
          "NiwawEe92Co"
        ]
      },
      {
        "label": "course",
        "share": 0.77,
        "evidenceVideoIds": [
          "14RP8liACqo",
          "Ua__7-x6MWs",
          "4nVoLX2taFg",
          "uqpXAfNEY4g",
          "NiwawEe92Co"
        ]
      },
      {
        "label": "dev",
        "share": 0.7,
        "evidenceVideoIds": [
          "14RP8liACqo",
          "Ua__7-x6MWs",
          "4nVoLX2taFg",
          "uqpXAfNEY4g",
          "NiwawEe92Co"
        ]
      },
      {
        "label": "full",
        "share": 0.67,
        "evidenceVideoIds": [
          "14RP8liACqo",
          "Ua__7-x6MWs",
          "4nVoLX2taFg",
          "sO6NSSOWDO0",
          "JiwTGGGIhDs"
        ]
      },
      {
        "label": "https",
        "share": 0.67,
        "evidenceVideoIds": [
          "14RP8liACqo",
          "Ua__7-x6MWs",
          "4nVoLX2taFg",
          "uqpXAfNEY4g",
          "NiwawEe92Co"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, none contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "moderate",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 29,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.05
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.55
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "JavaScript Mastery — 1.2M subs, C-tier sponsorship readiness, none contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 29,
      "readyForOutreach": false,
      "blockers": [
        "contactability:none — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.81,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 2,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 2
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.02
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.02,
      "gap": 0.92,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "4f927dc35eeee0cfb818b00290490f6eb36928f74031686a3bbd6c03bab17f66",
      "inputsHash": "447a446cf988e262c5589aef6b778163e57c39f332bd44e125d18cae95b14c05",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-stable",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:55.469Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "skipped",
    "eventId": "30e5d689da1e1d6b3f3ba42713e079eaa420492d7ac55cc9de1df745235655e1",
    "channelHandle": "@ColtSteele",
    "channelId": "UCwCRKSUbmZffgnGyF-Sm1ZQ",
    "subscribers": 4,
    "skipReason": {
      "source": "quality-gate",
      "rules": [
        "minSubscribers<50000"
      ],
      "message": "Channel filtered out by quality gate: minSubscribers<50000. No PPE event charged."
    },
    "summary": "Skipped @ColtSteele — failed gate: minSubscribers<50000.",
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:57.992Z"
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "425f286e7cc3ef6fa9626135f65c446ce28a902a20700e6eb5b86690ce6db259",
    "channelId": "UCz-BYvuntVRt_VpfR6FKXJw",
    "channelHandle": "@KentCDodds-vids",
    "channelName": "Kent C. Dodds",
    "channelUrl": "https://www.youtube.com/@KentCDodds-vids",
    "description": "Hi, I'm Kent C. Dodds. I help people make the world better through quality software.",
    "joinDate": null,
    "location": null,
    "subscribers": 57200,
    "totalVideos": 1200,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_l5mlBdK-rgKu8t71_VJmVt219LuaxuWU0eyAi3yGyeve0=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "kentcdodds.com",
        "url": "https://kentcdodds.com"
      },
      {
        "platform": "twitter",
        "url": "https://x.com/kentcdodds"
      },
      {
        "platform": "github",
        "url": "https://github.com/kentcdodds"
      },
      {
        "platform": "bsky.app",
        "url": "https://bsky.app/profile/kentcdodds.com"
      }
    ],
    "recentVideos": [
      {
        "videoId": "RUUXMY7W-BE",
        "title": "Customer research, desire, and Sales Safari - product engineering with Alex Hillman",
        "publishedAt": "14 hours ago",
        "durationSeconds": 4307,
        "views": 63,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Kent talks with Alex Hillman of Stacking the Bricks about customer research, product fit, and the kind of product engineering that starts before implementation: understanding who you are serving, what they already believe, and how to make people feel understood instead of sold to.\n\nThey cover audience selection, observational research, helping in public, aligning your work with customer and business priorities, and why AI makes human judgment, trust, and synthesis more important rather than less.\n\nAlex brings a product and marketing lens that fits this season perfectly: great products do not just solve technical problems, they help the right people recognize that you understand their world. The conversation starts with finding an audience and quickly turns into a practical way to build product sense inside a company: learn how customers describe themselves, observe where they gather, listen for the language they use, and speak from their priorities instead of your own taste.\n\nThe second half gets into Sales Safari, Stacking the Bricks' observational research practice. Alex explains why surveys and interviews can miss important signal, what to look for in real conversations, and how notes on jargon, pain, worldview, and recommendations can turn scattered internet conversations into useful product understanding. The through-line is simple and demanding: reduce the distance between you and the people you serve so your software, messaging, and decisions feel anticipated rather than manipulative.\n\nHomework\nThe next time coworkers or product teammates disagree about direction, step back and observe the conversation.\nAsk: who is this disagreement in service of? Is it serving the customer, the decision maker, the loudest person, or someone else?\nPractice this once a day or once a week, then use the patterns you notice to decide what you should contribute.\n\nResources\nStacking the Bricks — https://stackingthebricks.com/\n30x500 — https://stackingthebricks.com/30x500/\nThe Tiny MBA — https://tiny.mba/\nThe Mom Test — https://www.momtestbook.com/\nAlex Hillman on X — https://x.com/alexhillman\n\nGuest: Alex Hillman\nCompany: Stacking the Bricks — https://stackingthebricks.com/\nGitHub: @alexknowshtml — https://github.com/alexknowshtml\nX: @alexhillman — https://x.com/alexhillman\n\nHost: Kent C. Dodds\nWebsite: kentcdodds.com — https://kentcdodds.com/\nX: @kentcdodds — https://x.com/kentcdodds\nGitHub: @kentcdodds — https://github.com/kentcdodds\nYouTube: Kent C. Dodds —    / @kentcdodds-vids  \nPodcast: epicproduct.engineer — https://epicproduct.engineer",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "aCPaZ1tnFiA",
        "title": "Customer research, desire, and Sales Safari - product engineering with Alex Hillman",
        "publishedAt": "13 hours ago",
        "durationSeconds": 4307,
        "views": 36,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Alex brings a product and marketing lens that fits this season perfectly: great products do not just solve technical problems, they help the right people recognize that you understand their world. The conversation starts with finding an audience and quickly turns into a practical way to build product sense inside a company: learn how customers describe themselves, observe where they gather, listen for the language they use, and speak from their priorities instead of your own taste.\n\n\n\nThe second half gets into Sales Safari, Stacking the Bricks' observational research practice. Alex explains why surveys and interviews can miss important signal, what to look for in real conversations, and how notes on jargon, pain, worldview, and recommendations can turn scattered internet conversations into useful product understanding. The through-line is simple and demanding: reduce the distance between you and the people you serve so your software, messaging, and decisions feel anticipated rather than manipulative.\n\nHomework\n\n\n     \n      \n  •  The next time coworkers or product teammates disagree about direction, step back and observe the conversation.\n     \n      \n  •  Ask: who is this disagreement in service of? Is it serving the customer, the decision maker, the loudest person, or someone else?\n     \n      \n  •  Practice this once a day or once a week, then use the patterns you notice to decide what you should contribute.\n     \n     \nResources\n\n\n     \n      \n  •  Stacking the Bricks (https://stackingthebricks.com/) \n     \n      \n  •  30x500 (https://stackingthebricks.com/30x500/) \n     \n      \n  •  The Tiny MBA (https://tiny.mba/) \n     \n      \n  •  The Mom Test (https://www.momtestbook.com/) \n     \n      \n  •  Alex Hillman on X (https://x.com/alexhillman) \n     \n     \nGuest: Alex Hillman\n\n\n     \n      \n  •  Company: Stacking the Bricks (https://stackingthebricks.com/) \n     \n      \n  •  GitHub: @alexknowshtml (https://github.com/alexknowshtml) \n     \n      \n  •  𝕏: @alexhillman (https://x.com/alexhillman) \n     \n     \nHost: Kent C. Dodds\n\n\n     \n      \n  •  Website: kentcdodds.com (https://kentcdodds.com/) \n     \n      \n  •  𝕏: @kentcdodds (https://x.com/kentcdodds) \n     \n      \n  •  GitHub: @kentcdodds (https://github.com/kentcdodds) \n     \n      \n  •  YouTube: Kent C. Dodds (   / @kentcdodds-vids  ) \n     \n     \nVideo\n\n\n\nWatch this episode on YouTube (   • Customer research, desire, and Sales Safar...  )",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hKvw5l0BalA",
        "title": "Speed, prioritization, and maintainability — product engineering with Julius Marminge",
        "publishedAt": "7 days ago",
        "durationSeconds": 2529,
        "views": 684,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Kent talks with Julius Marminge about building T3 Code in the agent-orchestrator wave: why speed still matters, why fast shipping does not mean shipping every possible feature, and how product judgment becomes more important as parallel AI workflows make implementation cheap.\n\nThey dig into dogfooding, core-product trade-offs, monetization pressure, customization vs defaults, and how to keep agent-built software maintainable over time.\n\nChapters\n0:00 Introduction to Product Engineering\n0:42 Julius's Background and T3 Code\n2:05 Speed as a Product Differentiator\n6:21 Parallelism and the Orchestrator Shift\n9:48 Deciding What Belongs in the Core Product\n13:21 Pressure to Ship Fast vs. Shipping Quality\n15:45 Slowing Down for Maintainability\n19:22 Product Vision, Open Source, and Team Constraints\n20:50 Monetization and Building What the Ecosystem Lacks\n23:53 Pricing, Inference Costs, and Sustainable Products\n27:34 Feature Parity, Dogfooding, and Early Priorities\n30:29 Building for Users Who Aren't You\n31:30 Supervising Agents and Avoiding Bad Directions\n34:18 Custom Workflows, Defaults, and the Core UX\n39:15 Homework: Step Back and Look at the Whole Product\n\nJulius is building right in the middle of one of the fastest-moving product categories in software, and that gives this episode a useful tension: everything feels possible, but that does not mean everything belongs in the product. The conversation covers the shift from one-agent-at-a-time coding to orchestration, why T3 Code focuses so much on a fast app layer, and how Julius thinks about what should live in the core product versus forks, plugins, or future work.\n\nThe deeper lesson is about judgment under speed. Julius and Kent keep returning to the same idea from different angles: when agents can generate a lot of implementation quickly, the real work is deciding what is worth building, what will age well, and what future decisions you might accidentally box yourself out of.\n\nHomework\nTake a step back and look at your product from the whole picture, not just the slice you currently touch.\nBefore prioritizing a feature, ask whether it keeps the product maintainable long-term and whether it fits the job to be done for your users.\n\nResources\nT3 Code — https://github.com/pingdotgg/t3code\nT3 Chat — https://t3.chat/\nJulius Marminge — GitHub — https://github.com/juliusmarminge\nOpenCode — https://opencode.ai/\n\nGuest: Julius Marminge\nGitHub: @juliusmarminge — https://github.com/juliusmarminge\nX: @jullerino — https://x.com/jullerino\n\nHost: Kent C. Dodds\nWebsite: kentcdodds.com — https://kentcdodds.com/\nX: @kentcdodds — https://x.com/kentcdodds\nGitHub: @kentcdodds — https://github.com/kentcdodds\nYouTube: Kent C. Dodds —    / @kentcdodds-vids  \nPodcast: epicproduct.engineer — https://epicproduct.engineer",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "G_rnq-2itgM",
        "title": "Speed, prioritization, and maintainability — product engineering with Julius Marminge",
        "publishedAt": "7 days ago",
        "durationSeconds": 2529,
        "views": 235,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Julius is building right in the middle of one of the fastest-moving product categories in software, and that gives this episode a useful tension: everything feels possible, but that does not mean everything belongs in the product. The conversation covers the shift from one-agent-at-a-time coding to orchestration, why T3 Code focuses so much on a fast app layer, and how Julius thinks about what should live in the core product versus forks, plugins, or future work.\n\n\n\nThe deeper lesson is about judgment under speed. Julius and Kent keep returning to the same idea from different angles: when agents can generate a lot of implementation quickly, the real work is deciding what is worth building, what will age well, and what future decisions you might accidentally box yourself out of.\n\nHomework\n\n\n     \n      \n  •  Take a step back and look at your product from the whole picture, not just the slice you currently touch.\n     \n      \n  •  Before prioritizing a feature, ask whether it keeps the product maintainable long-term and whether it fits the job to be done for your users.\n     \n     \nResources\n\n\n     \n      \n  •  T3 Code (https://github.com/pingdotgg/t3code) \n     \n      \n  •  T3 Chat (https://t3.chat/) \n     \n      \n  •  Julius Marminge — GitHub (https://github.com/juliusmarminge) \n     \n      \n  •  OpenCode (https://opencode.ai/) \n     \n     \nGuest: Julius Marminge\n\n\n     \n      \n  •  GitHub: @juliusmarminge (https://github.com/juliusmarminge) \n     \n      \n  •  𝕏: @jullerino (https://x.com/jullerino) \n     \n     \nHost: Kent C. Dodds\n\n\n     \n      \n  •  Website: kentcdodds.com (https://kentcdodds.com/) \n     \n      \n  •  𝕏: @kentcdodds (https://x.com/kentcdodds) \n     \n      \n  •  GitHub: @kentcdodds (https://github.com/kentcdodds) \n     \n      \n  •  YouTube: Kent C. Dodds (   / @kentcdodds-vids  ) \n     \n     \nVideo\n\n\n\nWatch this episode on YouTube (   • Speed, prioritization, and maintainability...  )",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DBmdLCbgsc8",
        "title": "Stakeholder empathy, UX, and durable product skills — product engineering with Jamon Holmgren",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 3385,
        "views": 230,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Kent talks with Jamon Holmgren about product engineering from a long-running consultancy lens: how working with clients, stakeholders, and non-technical users sharpens your product sense, and why those skills matter even more as implementation gets cheaper with AI.\n\nThey cover React Native, consulting, game design, stakeholder failures, feedback loops, and what software builders need to keep learning as the job shifts up the stack.\n\nChapters\n0:00 Introduction to Product Engineering\n6:08 The Importance of Product Engineering\n9:08 Transitioning in the Tech Landscape\n12:06 The Role of AI in Product Engineering\n15:03 Human Element in Product Design\n17:59 Future of Product Engineering and AI\n25:59 The Relevance of Game Design Today\n27:03 The Role of Product Engineering\n28:23 Learning from Failures in Stakeholder Engagement\n30:16 The Importance of Feedback in Product Development\n32:05 Designing User-Friendly Interfaces\n34:32 The Value of Experienced Designers\n35:40 The Evolving Workflow of Product Engineering\n37:32 Balancing Speed and Quality in Development\n39:20 The Role of Junior Engineers in the Industry\n40:45 Engaging Stakeholders for Successful Projects\n44:21 Navigating Bad Requirements\n46:41 Avoiding Premature Optimization\n52:31 The Future of Product Engineering\n54:12 Practical Homework for Improving Product Sense\n\nJamon brings a useful mix to this conversation: founder of Infinite Red, longtime consultant, React Native specialist, and now indie game developer. That perspective makes the episode unusually practical. He has spent years watching where projects go wrong when product thinking is weak: bad requirements, unclear stakeholder alignment, UX details nobody owned, and engineers optimizing the wrong thing too early.\n\nThe thread through the whole episode is durability. Product engineering is not just about shipping faster with agents or getting better at a specific tool. It is about understanding people, shaping better requirements, recognizing when the human side of the workflow matters more than the code, and making decisions that keep paying off as the technology changes around you.\n\nHomework\nSit down with a non-technical person and watch them try to use a feature you built.\nWrite down every hesitation, workaround, double-click, or confusing step you notice, then use that list to reprioritize what you fix next.\n\nResources\nInfinite Red — https://infinite.red/\nJamon Holmgren — site — https://jamon.dev/\nNight Shift Agentic Workflow — https://jamon.dev/night-shift\nGunship Origins on Steam — https://store.steampowered.com/app/40...\n\nGuest: Jamon Holmgren\nCompany: Infinite Red — https://infinite.red/\nGitHub: @jamonholmgren — https://github.com/jamonholmgren\nX: @jamonholmgren — https://x.com/jamonholmgren\n\nHost: Kent C. Dodds\nWebsite: kentcdodds.com — https://kentcdodds.com/\nX: @kentcdodds — https://x.com/kentcdodds\nGitHub: @kentcdodds — https://github.com/kentcdodds\nYouTube: Kent C. Dodds —    / @kentcdodds-vids  \nPodcast: epicproduct.engineer — https://epicproduct.engineer",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "w1WNqtiFcMM",
        "title": "Stakeholder empathy, UX, and durable product skills — product engineering with Jamon Holmgren",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 3385,
        "views": 86,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Jamon brings a useful mix to this conversation: founder of Infinite Red, longtime consultant, React Native specialist, and now indie game developer. That perspective makes the episode unusually practical. He has spent years watching where projects go wrong when product thinking is weak: bad requirements, unclear stakeholder alignment, UX details nobody owned, and engineers optimizing the wrong thing too early.\n\n\n\nThe thread through the whole episode is durability. Product engineering is not just about shipping faster with agents or getting better at a specific tool. It is about understanding people, shaping better requirements, recognizing when the human side of the workflow matters more than the code, and making decisions that keep paying off as the technology changes around you.\n\nHomework\n\n\n     \n      \n  •  Sit down with a non-technical person and watch them try to use a feature you built.\n     \n      \n  •  Write down every hesitation, workaround, double-click, or confusing step you notice, then use that list to reprioritize what you fix next.\n     \n     \nResources\n\n\n     \n      \n  •  Infinite Red (https://infinite.red/) \n     \n      \n  •  Jamon Holmgren — site (https://jamon.dev/) \n     \n      \n  •  Night Shift Agentic Workflow (https://jamon.dev/night-shift) \n     \n      \n  •  Gunship Origins on Steam (https://store.steampowered.com/app/40...) \n     \n     \nGuest: Jamon Holmgren\n\n\n     \n      \n  •  Company: Infinite Red (https://infinite.red/) \n     \n      \n  •  GitHub: @jamonholmgren (https://github.com/jamonholmgren) \n     \n      \n  •  𝕏: @jamonholmgren (https://x.com/jamonholmgren) \n     \n     \nHost: Kent C. Dodds\n\n\n     \n      \n  •  Website: kentcdodds.com (https://kentcdodds.com/) \n     \n      \n  •  𝕏: @kentcdodds (https://x.com/kentcdodds) \n     \n      \n  •  GitHub: @kentcdodds (https://github.com/kentcdodds) \n     \n      \n  •  YouTube: Kent C. Dodds (   / @kentcdodds-vids  ) \n     \n     \nVideo\n\n\n\nWatch this episode on YouTube (   • Stakeholder empathy, UX, and durable produ...  )",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Uzd50GdnPkg",
        "title": "Watch users, fix systems, and design for humanity — product engineering with Don Norman",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 4589,
        "views": 630,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Kent talks with Don Norman about why the core work of product engineering has not changed: watch people work, treat so-called user error as a design problem, and fix root causes instead of blaming symptoms.\n\nDon walks through a remarkable arc from electrical engineering and cognitive psychology to Three Mile Island, Xerox PARC, Apple, and the first use of user experience in a job title. They talk about timing and failed products, cross-functional product teams, what AI changes for software builders, and why Don now cares most about designing for humanity, not only usability.\n\nChapters\n0:00 Introduction to Product Engineering and Design\n1:13 Don Norman's Journey in Engineering and Psychology\n5:53 The Intersection of Human Error and Design\n10:39 The Evolution of Technology and User Experience\n16:53 Lessons from Apple and Product Development\n22:59 The Importance of Failure and Learning\n24:23 Cognitive Science and Its Impact on Design\n26:17 The Evolution of Neural Networks\n30:09 Challenges of Change and Innovation\n34:10 The Role of Early Adopters\n37:05 Learning from Failure\n40:19 Vision and Long-Term Impact\n47:34 Empowering Engineers for Societal Good\n49:41 Navigating Technological Change and Advocacy\n51:30 Understanding the Role of Advisors and Consultants\n54:41 The Impact of AI on Software Development\n59:47 The Future of Programming in an AI-Driven World\n1:06:35 Designing for Humanity and Sustainability\n\nDon's career makes this episode unusually wide-ranging: early computing, human error, aviation safety, Unix, Apple product decisions, digital cameras, color TV, and the long arc from usable products to systems that shape society. The through-line is straightforward but demanding: if you want better products, watch what people actually do, notice the workarounds they no longer complain about, and treat clusters of small usability problems like real product debt.\n\nThe second half brings that thinking into the present. Don and Kent talk about AI coding tools as force multipliers that still need direction, architecture, and supervision, then zoom out to Design for a Better World and the Don Norman Design Award. The result is a conversation about product sense that spans decades without feeling dated: the tools change, but the responsibility to understand people, systems, and consequences does not.\n\nHomework\nSpend time watching people do real work before you ask them for solutions; observation reveals the hidden setup, workarounds, and friction they now assume are just \"how it works.\"\nAfter a release, step back and fix clusters of small usability issues as a system instead of waiting for one confusing bug to become catastrophic.\nTreat AI as a force multiplier you must instruct and supervise; stay responsible for the problem definition, architecture, and review.\n\nResources\nDon Norman Design Award (DNDA) — https://dnda.design/\nDesign for a Better World — https://jnd.org/books/design-for-a-be...\nThe Design of Everyday Things — https://jnd.org/books/the-design-of-e...\nNielsen Norman Group — Don Norman — https://www.nngroup.com/people/don-no...\nUnited Nations Sustainable Development Goals — https://sdgs.un.org/goals\n\nGuest: Don Norman\nCompany: Don Norman Design Award (DNDA) — https://dnda.design/\n\nHost: Kent C. Dodds\nWebsite: kentcdodds.com — https://kentcdodds.com/\nX: @kentcdodds — https://x.com/kentcdodds\nGitHub: @kentcdodds — https://github.com/kentcdodds\nYouTube: Kent C. Dodds —    / @kentcdodds-vids  \nPodcast: epicproduct.engineer — https://epicproduct.engineer",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "E1B3TQ7kJaE",
        "title": "Watch users, fix systems, and design for humanity — product engineering with Don Norman",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 4589,
        "views": 105,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Don's career makes this episode unusually wide-ranging: early computing, human error, aviation safety, Unix, Apple product decisions, digital cameras, color TV, and the long arc from usable products to systems that shape society. The through-line is straightforward but demanding: if you want better products, watch what people actually do, notice the workarounds they no longer complain about, and treat clusters of small usability problems like real product debt.\n\n\n\nThe second half brings that thinking into the present. Don and Kent talk about AI coding tools as force multipliers that still need direction, architecture, and supervision, then zoom out to Design for a Better World and the Don Norman Design Award. The result is a conversation about product sense that spans decades without feeling dated: the tools change, but the responsibility to understand people, systems, and consequences does not.\n\nHomework\n\n\n     \n      \n  •  Spend time watching people do real work before you ask them for solutions; observation reveals the hidden setup, workarounds, and friction they now assume are just \"how it works.\"\n     \n      \n  •  After a release, step back and fix clusters of small usability issues as a system instead of waiting for one confusing bug to become catastrophic.\n     \n      \n  •  Treat AI as a force multiplier you must instruct and supervise; stay responsible for the problem definition, architecture, and review.\n     \n     \nResources\n\n\n     \n      \n  •  Don Norman Design Award (DNDA) (https://dnda.design/) \n     \n      \n  •  Design for a Better World (https://jnd.org/books/design-for-a-be...) \n     \n      \n  •  The Design of Everyday Things (https://jnd.org/books/the-design-of-e...) \n     \n      \n  •  Nielsen Norman Group — Don Norman (https://www.nngroup.com/people/don-no...) \n     \n      \n  •  United Nations Sustainable Development Goals (https://sdgs.un.org/goals) \n     \n     \nGuest: Don Norman\n\n\n     \n      \n  •  Company: Don Norman Design Award (DNDA) (https://dnda.design/) \n     \n     \nHost: Kent C. Dodds\n\n\n     \n      \n  •  Website: kentcdodds.com (https://kentcdodds.com/) \n     \n      \n  •  𝕏: @kentcdodds (https://x.com/kentcdodds) \n     \n      \n  •  GitHub: @kentcdodds (https://github.com/kentcdodds) \n     \n      \n  •  Youtube: Kent C. Dodds (   / @kentcdodds-vids  ) \n     \n     \nVideo\n\n\n\nWatch this episode on YouTube (   • Watch users, fix systems, and design for h...  )",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7f5_QAigz1Q",
        "title": "Human factors, product debt, and industrial design — product engineering with Will King",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 3716,
        "views": 400,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Kent talks with Will King about bringing an industrial design mindset into software: human factors, observing real users, and why good product engineering starts with caring enough to notice what frustrates people.\n\nThey dig into product debt, support as a product superpower, pruning features without breaking trust, and how to use AI agents for exploration and critique instead of only faster implementation.\n\nChapters\n0:00 Introduction to Product Engineering\n2:12 The Transition from Industrial Design to Software\n6:58 Human Factors in Software Design\n9:41 Understanding User Demographics\n13:40 Observing User Behavior\n18:45 The Importance of User Feedback\n26:20 The Role of Problem Solving in Product Engineering\n31:43 Understanding Product Debt\n34:26 The Importance of Pruning Features\n38:43 Balancing User Experience and Product Changes\n43:27 Navigating User Feedback\n46:57 The Future of Software Development\n53:27 The Role of Product Engineers vs. Product Managers\n56:57 Actionable Steps for Product Engineers\n\nWill's path runs from designing bucket trucks to self-taught software engineering, education products, and database tooling, and that background gives this episode a distinctive lens: software is still a product people use with bodies, habits, emotions, and mental models. The conversation makes product sense concrete through examples like onboarding timing, course complexity, support workflows, and the small confidence signals that separate stable-feeling products from merely functional ones.\n\nYou'll hear why watching users work keeps surfacing across this series, how to tell broken experiences from merely unpopular ones, why user feedback usually improves polish more than strategy, and how product engineers can stay valuable in an agent-heavy future by understanding both the user and the constraints of the software medium.\n\nHomework\nUse AI agents more for gathering than executing: explore multiple solution paths, adjacent domains, and missing context before you ship.\nGive agents richer context like user demographics, constraints, and likely mental models, then use your own judgment to evaluate what comes back.\nSlow down long enough to question assumptions before implementation; use AI as a creativity and critique tool, not just a code accelerator.\n\nResources\nWill King - site — https://wking.dev/\nDeploy Empathy (Michele Hansen) — https://deployempathy.com/home/\nThe Mom Test (Rob Fitzpatrick) — https://momtestbook.com/\nInterface Craft (Josh Puckett) — https://www.interfacecraft.dev/\n\nGuest: Will King\nCompany: Crunchy Data — https://www.crunchydata.com/\nGitHub: @wking-io — https://github.com/wking-io\nX: @willking — https://x.com/willking\n\nHost: Kent C. Dodds\nWebsite: kentcdodds.com — https://kentcdodds.com/\nX: @kentcdodds — https://x.com/kentcdodds\nGitHub: @kentcdodds — https://github.com/kentcdodds\nYouTube: Kent C. Dodds —    / @kentcdodds-vids  \nPodcast: epicproduct.engineer — https://epicproduct.engineer",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "05r9dMffQqM",
        "title": "Human factors, product debt, and industrial design - product engineering with Will King",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 3716,
        "views": 150,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Will's path runs from designing bucket trucks to self-taught software engineering, education products, and database tooling, and that background gives this episode a distinctive lens: software is still a product people use with bodies, habits, emotions, and mental models. The conversation makes product sense concrete through examples like onboarding timing, course complexity, support workflows, and the small confidence signals that separate stable-feeling products from merely functional ones.\n\n\n\nYou'll hear why watching users work keeps surfacing across this series, how to tell broken experiences from merely unpopular ones, why user feedback usually improves polish more than strategy, and how product engineers can stay valuable in an agent-heavy future by understanding both the user and the constraints of the software medium.\n\nHomework\n\n\n     \n      \n  •  Use AI agents more for gathering than executing: explore multiple solution paths, adjacent domains, and missing context before you ship.\n     \n      \n  •  Give agents richer context like user demographics, constraints, and likely mental models, then use your own judgment to evaluate what comes back.\n     \n      \n  •  Slow down long enough to question assumptions before implementation; use AI as a creativity and critique tool, not just a code accelerator.\n     \n     \nResources\n\n\n     \n      \n  •  Will King - site (https://wking.dev/) \n     \n      \n  •  Deploy Empathy (Michele Hansen) (https://deployempathy.com/home/) \n     \n      \n  •  The Mom Test (Rob Fitzpatrick) (https://momtestbook.com/) \n     \n      \n  •  Interface Craft (Josh Puckett) (https://www.interfacecraft.dev/) \n     \n     \nGuest: Will King\n\n\n     \n      \n  •  Company: Crunchy Data (https://www.crunchydata.com/) \n     \n      \n  •  GitHub: @wking-io (https://github.com/wking-io) \n     \n      \n  •  𝕏: @wking__ (https://x.com/wking__) \n     \n     \nHost: Kent C. Dodds\n\n\n     \n      \n  •  Website: kentcdodds.com (https://kentcdodds.com/) \n     \n      \n  •  𝕏: @kentcdodds (https://x.com/kentcdodds) \n     \n      \n  •  GitHub: @kentcdodds (https://github.com/kentcdodds) \n     \n      \n  •  Youtube: Kent C. Dodds (   / @kentcdodds-vids  ) \n     \n     \nVideo\n\n\n\nWatch this episode on YouTube (   • Human factors, product debt, and industria...  )",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Dp11Wg_QPgc",
        "title": "Vertical slices, Solo, and empathy — product engineering with Aaron D. Francis",
        "publishedAt": "1 month ago",
        "durationSeconds": 2740,
        "views": 300,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Aaron builds in public—Laravel roots, education, and now Solo, a terminal multiplexer–style desktop app for organizing agents and dev stacks. This episode is a practical tour of product...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LnGQb6_ujl8",
        "title": "Vertical slices, Solo, and empathy — product engineering with Aaron D. Francis",
        "publishedAt": "1 month ago",
        "durationSeconds": 2740,
        "views": 1791,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Kent talks with Aaron D. Francis about product engineering: why ticket-taking implementation is losing ground to agents, what a vertical slice from UI to database really means, and how Aaron’s...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UCUv6vuT-h4",
        "title": "Foundations, feedback, and agents — Dillon Mulroy on product at Cloudflare",
        "publishedAt": "1 month ago",
        "durationSeconds": 2943,
        "views": 913,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Kent talks with Dillon Mulroy, Principal Engineer at Cloudflare, about Agent Experience and dogfooding AI platform work: how Cloudflare closes the loop between builders and customers, why observabi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AoUYWkoxiMI",
        "title": "The right thing before the thing right — product engineering with Wayne Allan",
        "publishedAt": "1 month ago",
        "durationSeconds": 3032,
        "views": 599,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Kent talks with Wayne Allan (engineer, PM, and consultant) about product engineering in practice: why “building the thing right” only matters after you’re building the right thing, how...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cbgSkrQ3HNg",
        "title": "Product sense, restraint, and OpenCode with Dax Raad",
        "publishedAt": "1 month ago",
        "durationSeconds": 3240,
        "views": 5552,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Kent talks with Dax Raad about building OpenCode: https://opencode.ai in a crowded coding-agent market: why dev tools are still a consumer-style product, how fast shipping can make good products...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TXHyplCoxQs",
        "title": "Introducing Season 7: Become a Product Engineer",
        "publishedAt": "1 month ago",
        "durationSeconds": 167,
        "views": 2814,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Kent kicks off Chats with Kent season 7: why product engineering is the durable skill as AI takes on more implementation, and how this season’s guests will help you move closer to product...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eFA8YZcPkgM",
        "title": "Foundations, feedback, and agents — Dillon Mulroy on product at Cloudflare",
        "publishedAt": "1 month ago",
        "durationSeconds": 2943,
        "views": 187,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Dillon's path runs from internal insurance tools to Vercel Domains to Cloudflare's agent and dashboard work-always with the same through-line: care about the user, get real feedback, and invest...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SuNoa6uttK8",
        "title": "The right thing before the thing right — product engineering with Wayne Allan",
        "publishedAt": "1 month ago",
        "durationSeconds": 3032,
        "views": 145,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Wayne blends delivery and product leadership—his stories range from a flagship-adjacent launch that nobody used to the everyday discipline of listening to customers without waiting two weeks...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pZuvXnIiNSM",
        "title": "Product sense, restraint, and OpenCode with Dax Raad",
        "publishedAt": "1 month ago",
        "durationSeconds": 3240,
        "views": 336,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Dax has spent years building tools developers actually use; on OpenCode he's thinking hard about product process while the space moves at breakneck speed. This episode is a practical look at...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2fCTQ_stC8w",
        "title": "Become a Product Engineer - Introducing Season 7",
        "publishedAt": "1 month ago",
        "durationSeconds": 167,
        "views": 298,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Software keeps changing, and a lot of the spotlight is on AI—but the shift Kent cares about is bigger than models and agents. Implementation is increasingly delegated to tools that will keep...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0NCZQer9tBQ",
        "title": "Exposing internal styles from design system",
        "publishedAt": "2 months ago",
        "durationSeconds": 244,
        "views": 224,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A caller wants to expose internal styles from their component library to consumers. Kent suggests using a variable to export the class names and using a library like CVA to create multiple...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_f9XS1UUz0I",
        "title": "What to learn",
        "publishedAt": "2 months ago",
        "durationSeconds": 1152,
        "views": 394,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Kent C. Dodds answers a question about what to focus on in the future of software development, including the role of agents, MCPs, and workflows. He shares his thoughts on how to bring clarity...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "71bODdWnAPk",
        "title": "Practical TypeScript: Foundations to Fluency is now live!",
        "publishedAt": "2 months ago",
        "durationSeconds": 484,
        "views": 1156,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://www.epicweb.dev/practical-typescript\n\nThe first two workshops are free, the whole bundle is $200. There's a 40% discount for one week only! Check out the home page to answer your burning...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MM7x9p8Tf5k",
        "title": "Bridging the Gap to Community Influence as a Senior Engineer",
        "publishedAt": "2 months ago",
        "durationSeconds": 409,
        "views": 112,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Kent C. Dodds shares his insights on navigating the transition from a senior engineer to a recognized leader in the community. He emphasizes the importance of having a solid proof of work,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Z7sebXJJk4w",
        "title": "Call Kent Podcast Updates",
        "publishedAt": "2 months ago",
        "durationSeconds": 245,
        "views": 95,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Kent discusses the new features on the Call Kent Podcast, including the ability to type questions and have them answered with an AI voice, and the option to remain anonymous. He also explains...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GcBde2kiY_g",
        "title": "From AI Automation to Full-Stack Engineering",
        "publishedAt": "4 months ago",
        "durationSeconds": 565,
        "views": 310,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How to build toward full-stack software engineering while already working in AI automation, without starting over or losing career stability.\n\n\n     \n     \n  •  https://www.EpicWeb.dev/faq...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "p73nejm7ml4",
        "title": "Introducing Epic MCP Workshop Series",
        "publishedAt": "5 months ago",
        "durationSeconds": 219,
        "views": 749,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Master AI-powered workflows with **Epic MCP: From Scratch to Production** — a new workshop series that shows you how to build custom Model Context Protocol tools end-to-end. Learn how to...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tm7wouEfFTs",
        "title": "Conference Workshop Advice",
        "publishedAt": "5 months ago",
        "durationSeconds": 1057,
        "views": 113,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Asking for advice on workshops at tech conferences. I'm one of the planners for a conference we host in Chattanooga,  https://sceniccitysummit.com/. Last year we hosted our first day of workshops....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nrTT_PhM4dE",
        "title": "Getting a Developer Job in the AI chaos",
        "publishedAt": "5 months ago",
        "durationSeconds": 272,
        "views": 381,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I ask Kent -- how to get a full-stack role at a great product-focused team given the AI scenario around.\n\n\n\nI added a mini-question as well that -- I want to build my own small things on the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lFer3I8qe1o",
        "title": "Significance of '===' in typescript applications",
        "publishedAt": "6 months ago",
        "durationSeconds": 337,
        "views": 281,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "As '===' compares both type and value, what is the significance  of '===' in Typescript app when variables are already typed. When the same functionality can be achieved with '==', why do we...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 20,
      "uploadsLast90d": 25,
      "uploadCadenceWeekly": 1.94,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 298,
      "viewsPerVideoP90Last90d": 1156,
      "viewVelocityTrend": "rising"
    },
    "performanceBaseline": {
      "p50Views": 298,
      "p90Views": 1156,
      "p99Views": 2814,
      "outperformingVideosLast90d": 4
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "kentcdodds.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "product",
        "share": 0.7,
        "evidenceVideoIds": [
          "RUUXMY7W-BE",
          "aCPaZ1tnFiA",
          "hKvw5l0BalA",
          "G_rnq-2itgM",
          "DBmdLCbgsc8"
        ]
      },
      {
        "label": "kent",
        "share": 0.7,
        "evidenceVideoIds": [
          "RUUXMY7W-BE",
          "aCPaZ1tnFiA",
          "hKvw5l0BalA",
          "G_rnq-2itgM",
          "DBmdLCbgsc8"
        ]
      },
      {
        "label": "engineering",
        "share": 0.53,
        "evidenceVideoIds": [
          "RUUXMY7W-BE",
          "aCPaZ1tnFiA",
          "hKvw5l0BalA",
          "G_rnq-2itgM",
          "DBmdLCbgsc8"
        ]
      },
      {
        "label": "https",
        "share": 0.47,
        "evidenceVideoIds": [
          "RUUXMY7W-BE",
          "aCPaZ1tnFiA",
          "hKvw5l0BalA",
          "G_rnq-2itgM",
          "DBmdLCbgsc8"
        ]
      },
      {
        "label": "dodds",
        "share": 0.4,
        "evidenceVideoIds": [
          "RUUXMY7W-BE",
          "aCPaZ1tnFiA",
          "hKvw5l0BalA",
          "G_rnq-2itgM",
          "DBmdLCbgsc8"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Tuesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 42,
      "reason": "growth rising last 90d",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.85
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "rising 90d view velocity. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Kent C. Dodds — 0.1M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 42,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.68,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mid-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mid"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mid-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mid",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "5-12%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mid-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "425f286e7cc3ef6fa9626135f65c446ce28a902a20700e6eb5b86690ce6db259",
      "inputsHash": "b12689351431add27ffb6ad90e55075a28fc996b1c5a54ecb4f9ca2969c9b540",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-rising",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:58.314Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "1e789228bf57d42c2c6a0924e7bcea192e5ea40b91facc866e51e6d89cf3db81",
    "channelId": "UCoebwHSTvwalADTJhps0emA",
    "channelHandle": "@WesBos",
    "channelName": "Wes Bos",
    "channelUrl": "https://www.youtube.com/@WesBos",
    "description": "HTML, CSS, JavaScript , Node web development!\n\nFacebook: Wes Bos\nInstagram: wesbos\ntiktok: wesbos\n𝕏: wesbos",
    "joinDate": null,
    "location": null,
    "subscribers": 220000,
    "totalVideos": 384,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/-r9AiV0b9XAD8LOscvXAPe5VIxulU_BnPz57yRaGLSlXNAFrc9PJOdk9pswSgXaBmLqluAB0=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "wesbos.com",
        "url": "http://www.wesbos.com"
      },
      {
        "platform": "beginnerjavascript.com",
        "url": "https://BeginnerJavaScript.com"
      },
      {
        "platform": "reactforbeginners.com",
        "url": "https://ReactForBeginners.com"
      },
      {
        "platform": "flexbox.io",
        "url": "http://Flexbox.io"
      },
      {
        "platform": "cssgrid.io",
        "url": "http://CSSGrid.io"
      },
      {
        "platform": "wesbos.com",
        "url": "http://wesbos.com/courses"
      }
    ],
    "recentVideos": [
      {
        "videoId": "CUAuy5SWJcw",
        "title": "pretext is a bigger deal than you think",
        "publishedAt": "1 month ago",
        "durationSeconds": 671,
        "views": 43363,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Digging into what pretext is, why you might want to use it and some predictions on why this was made  \n\nhttps://github.com/chenglou/pretext\n\n0:00 Pretext!\n0:34 What does Pretext Do?\n2:11 Fit Text\n2:23 Bee Movie Demo\n3:22 WHERE is this useful?!\n3:22 Where and why is this useful?\n5:08 Midjourney Figma Killer?\n7:04 Goodbye DOM?\n7:52 CSS Can already do this!\n8:47 Cracked Eng with AI\n10:11 CSS Houdini",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kmlMNtjFgoY",
        "title": "i’m gonna crash out (react2shell vulnerability)",
        "publishedAt": "5 months ago",
        "durationSeconds": 1015,
        "views": 21652,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "00:00 Wrong\n01:43 The Code Explained\n03:10 The React2Shell Hack\n08:00 Mixing Client + Server Code\n09:05 How RSC Works\n11:48 Tanstack Start\n13:41 Svelte Kit\n14:42 What about separation of Concerns?!\n15:23 SQL Injections!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vOJtAY9qJpQ",
        "title": "I shouldn’t have built this — pizza agent",
        "publishedAt": "5 months ago",
        "durationSeconds": 1823,
        "views": 3905,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "subscribe you weirdos. code https://github.com/wesbos/pizza-bot",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sPdRCYbO6so",
        "title": "this cursor effect is NUTS (BREAKDOWN + CODE)",
        "publishedAt": "6 months ago",
        "durationSeconds": 492,
        "views": 17015,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Looking into, recreating and extending the creepy, but cool, cursor face looker effect. \n\nCode: https://github.com/wesbos/eye-ballz\nKylan's Site: https://www.kylanoconnor.com/\n@kylancodes: https://x.com/kylancodes\n@fofrAI: https://x.com/fofrAI\n@wesbos  https://x.com/wesbos\n\n00:00 Face Looker Effect\n00:29 How it Works\n01:10 The Code\n01:36 Replicate\n02:35 Making a Video with the frames\n04:02 Adding Depth Maps\n05:55 Kylans Generator\n06:44 Some More Ideas",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_jPm_zN95FE",
        "title": "this conference badge is nuts!",
        "publishedAt": "6 months ago",
        "durationSeconds": 244,
        "views": 418178,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "hacking my github universe 2025 conference badge with custom code.\n\nJavaScript Roomba: https://youtu.be/4jAM5P7PcK0\nPimoroni:  https://shop.pimoroni.com/products/tufty-2040?variant=40036912595027",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zIejF3IGtWk",
        "title": "Copilot gets Cursor's killer feature: Agent Mode",
        "publishedAt": "1 year ago",
        "durationSeconds": 787,
        "views": 46712,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A first look at copilot's new agent mode! \n\n0:00 - Intro\n0:35 - Adding a New Feature\n2:43 - Adding Sound!\n4:15 - Fixing an Issue with the Code\n6:55 - Styling the App\n9:57 - Terminal Commands\n12:42 - Wrap Up",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4jAM5P7PcK0",
        "title": "I put JavaScript on my Roomba Vacuum",
        "publishedAt": "1 year ago",
        "durationSeconds": 1181,
        "views": 51917,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Detailing my journey building a Robot vacuum controlled by JavaScript.\n\nGithub Code: https://github.com/wesbos/roomba\nESP32 Dev Board: https://amzn.to/3CnuS9W\nJumper Wires: https://amzn.to/40MEZP5 \nThese are affiliate links, I'll get rich if you click\n\n00:00 Driving the robot Vacuum\n00:11 Intro\n01:31 The Hardware\n02:07 Serial Port Connections\n03:24 Node.js Control\n05:03 Browser Serial Control\n06:53 Bluetooth Attempt + ESP32\n07:43 ESP32 Websockets\n08:19 JS on a Microcontroller\n08:57 C++ Web Server\n09:55 Compiling the C++ for ESP32\n11:30 Loading the JS App\n12:06 Going Wireless\n12:56 Controlling the Motors with Binary\n14:17 Accessing Sensors\n15:27 The React.js UI\n17:06 Putting React on the Microcontroller\n17:57 Future Ideas + Real Talk",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8327_1PINWI",
        "title": "Stop using position absolute — use CSS Grid stacking!",
        "publishedAt": "1 year ago",
        "durationSeconds": 282,
        "views": 36507,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Quick video on CSS Grid Stacking to create a button that is sized by it's largest contents",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MA9WAHEEfGM",
        "title": "Custom dropdowns just got a whole lot easier (finally!)",
        "publishedAt": "1 year ago",
        "durationSeconds": 273,
        "views": 39638,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Introducing the new Customizable Select that make it easy to create totaly custom dropdown selects with just HTML and CSS.\n\nCode: https://github.com/wesbos/hot-tips/tr... \nWhatWG Progress: https://github.com/whatwg/html/issues... \nUna Kravets Demos: https://developer.chrome.com/blog/rfc... \n\n00:00 - Introducing Customizable Select \n00:25 - The HTML\n01:00 - Selected Option Slot\n01:15 - The CSS\n02:15 - Styling the Selected Option \n02:31 - Multiple Select\n02:50 - Form and JS API\n03:11 - Browser Support and Fallbacks\n03:58 - Trying it out and More Demos\n04:31 - Jump Scare",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_ze1FvvLq3o",
        "title": "Coding apps with English",
        "publishedAt": "1 year ago",
        "durationSeconds": 845,
        "views": 26996,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Taking a look at Github Spark, v0 and Bolt.new - three tools to create and run apps entirely with english prompts.\n\nGithub Spark: https://spark.githubnext.com/\nVercel v0: https://v0.dev\nBolt.new: https://bolt.new/ \n\n00:00 - Intro\n01:38 It's the Runtime\n03:20 Bolt.new\n06:00 V0.dev\n07:03 App 2: Photo Booth\n07:21 Photo Booth: Github Spark\n08:53 Photo Booth: Bolt.new\n09:53 Photo Booth: V0\n10:38 App 3: Interest Calculator\n10:57 Uploading Files\n11:24 Interest Calculator: Github Spark\n11:59 Interest Calculator: Bolt.new\n12:31 Interest Calculator: V0\n13:32 Are we cooked?",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-Ln-8QM8KhQ",
        "title": "How is this Website so fast!?",
        "publishedAt": "1 year ago",
        "durationSeconds": 819,
        "views": 2381671,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Breaking down the McMaster Carr website and the techniques they use to make it so dang fast.\n\n00:00 - Intro\n00:38 - Server Rendered HTML\n00:54 - Prefetching HTML\n02:02 - CDN Caching\n02:36 -...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VlXIPf7dz0I",
        "title": "This CSS Backlight Effect is so damn cool!",
        "publishedAt": "1 year ago",
        "durationSeconds": 198,
        "views": 18316,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This CSS Backlight Effect is sooooo damn cool! \n\nI've taken it a step further with SVG Filters\n\nMakes it work with any element - including video!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vWJ95E71cow",
        "title": "How did I not know about this CSS Grid + Flexbox helper sooner?!",
        "publishedAt": "1 year ago",
        "durationSeconds": 143,
        "views": 42166,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How am I just finding out about display: contents; Suuuuper handy for CSS Flexbox + Grid where the children aren't direct descendants. \n\nImportant to note for accessibility, use only on wrappers,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hHWgGfZpk00",
        "title": "Why did OpenAI move from Next.js to Remix?",
        "publishedAt": "1 year ago",
        "durationSeconds": 641,
        "views": 226230,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Big hubub on ChatGPT moving from Next to Remix. But why? Here are my thoughts",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XSFs7zRe6Lg",
        "title": "New Node.js Styled Text API",
        "publishedAt": "2 years ago",
        "durationSeconds": 124,
        "views": 4358,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": null,
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KIH_OiZPn0M",
        "title": "Running JS Promises concurrently - but not too many at once!",
        "publishedAt": "2 years ago",
        "durationSeconds": 112,
        "views": 5433,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Running Promises concurrently - but not too many at once! p-map is a nice balance between Promise.all() and sequential await when working with compute heavy functions.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jStzo0tlr6Y",
        "title": "New CSS :user-invalid Pseudo Selector #css",
        "publishedAt": "2 years ago",
        "durationSeconds": 61,
        "views": 7475,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Suuuper handy new CSS:\n\n:user-invalid and :user-valid pseudo selectors let you style inputs only once they have been interacted with\n\n Just landed in Chrome + Safari, been in Firefox for years.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wsqNEqic93k",
        "title": "AI Webcam App ROASTS me",
        "publishedAt": "2 years ago",
        "durationSeconds": 124,
        "views": 4307,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Fun little experiment with GPT4-Vision and eleven labs. Code here: https://github.com/wesbos/ai-webcam",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3Hye_47c0Pc",
        "title": "This isn't websockets! fun multi-window demo",
        "publishedAt": "2 years ago",
        "durationSeconds": 199,
        "views": 145730,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "pretty fun. Code here: https://github.com/wesbos/hot-tips/tree/main/fun-windows",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bnEf-4Kdwkg",
        "title": "Unreal. AI writing Tailwind + JS from a sketch",
        "publishedAt": "2 years ago",
        "durationSeconds": 130,
        "views": 11001,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Trying the new TLDraw \"Make Real\" Button",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "APJx-YCKw6g",
        "title": "Here's how stale-while-revalidate works",
        "publishedAt": "2 years ago",
        "durationSeconds": 235,
        "views": 4335,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": null,
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3ZvdJlYMv64",
        "title": "JavaScript Maps are super underrated",
        "publishedAt": "2 years ago",
        "durationSeconds": 125,
        "views": 8191,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "JavaScript Maps are super underrated.\n\nKeys of a map can be anything - including an object!\n\nHere I'm using the new groupBy proposed API to group array items →",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IS698Tc5M7Q",
        "title": "CSS Logical Properties: A good use case",
        "publishedAt": "3 years ago",
        "durationSeconds": 96,
        "views": 6849,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "CSS logical properties specifies width/height/padding/border/etc using inline + block instead of top + bottom.\n\nBut where is that actually useful?\n\nHeres a good example I just ran into with...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6pA3jufJA-k",
        "title": "Node.js AsyncLocalStorage Explained in 84.3 seconds",
        "publishedAt": "3 years ago",
        "durationSeconds": 84,
        "views": 13568,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": null,
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VsHOyI0uTbQ",
        "title": "CSS Text Mask with Video or Canvas (probably not a good idea)",
        "publishedAt": "3 years ago",
        "durationSeconds": 135,
        "views": 4190,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I had to show someone this.\n\nI wanted to use background-clip: text; but with a canvas or video element - not just a background image.\n\nSo I came up with this monstrosity that actually works!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "p4Sc_-2yJHs",
        "title": "Amazon Code Whisperer VS Github Copilot",
        "publishedAt": "3 years ago",
        "durationSeconds": 795,
        "views": 39469,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Which Robot write better TypeScript? I compare the free Amazon Code Whisperer to my paid Github Copilot",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YLkXkBE0bZs",
        "title": "Move over Sass, CSS Selector Nesting is here!",
        "publishedAt": "3 years ago",
        "durationSeconds": 133,
        "views": 6903,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": null,
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jPVR-ayGj-g",
        "title": "The Fullstack Shack: Backyard Office Tour",
        "publishedAt": "3 years ago",
        "durationSeconds": 652,
        "views": 9529,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Here is a tour of my cottage office I built a few years back. Amazing place to code and create.\n\n00:00 Fullstack Shack\n00:30 Inside the Shack\n00:42 Desk Setup\n01:58 The Build\n03:14 Office Decor...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DxJXvTFiWSI",
        "title": "3 New & Nifty CSS Things: :has, Container Queries, and Animated CSS  Grid",
        "publishedAt": "3 years ago",
        "durationSeconds": 304,
        "views": 6696,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Code: https://github.com/wesbos/hot-tips/blob/main/css-grid/animated-grid-row-and-column.html",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6DmQ_V9ZRlk",
        "title": "Fix your life with Greasemonkey Scripts",
        "publishedAt": "3 years ago",
        "durationSeconds": 429,
        "views": 25543,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": null,
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 1,
      "uploadsLast90d": 1,
      "uploadCadenceWeekly": 0.08,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 43363,
      "viewsPerVideoP90Last90d": 43363,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 43363,
      "p90Views": 43363,
      "p99Views": 43363,
      "outperformingVideosLast90d": 1
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "amzn.to"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "developer-tools",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:github"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "wesbos.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "code",
        "share": 0.4,
        "evidenceVideoIds": [
          "kmlMNtjFgoY",
          "vOJtAY9qJpQ",
          "sPdRCYbO6so",
          "_jPm_zN95FE",
          "zIejF3IGtWk"
        ]
      },
      {
        "label": "github",
        "share": 0.37,
        "evidenceVideoIds": [
          "CUAuy5SWJcw",
          "vOJtAY9qJpQ",
          "sPdRCYbO6so",
          "_jPm_zN95FE",
          "4jAM5P7PcK0"
        ]
      },
      {
        "label": "https",
        "share": 0.33,
        "evidenceVideoIds": [
          "CUAuy5SWJcw",
          "vOJtAY9qJpQ",
          "sPdRCYbO6so",
          "_jPm_zN95FE",
          "4jAM5P7PcK0"
        ]
      },
      {
        "label": "com",
        "share": 0.33,
        "evidenceVideoIds": [
          "CUAuy5SWJcw",
          "vOJtAY9qJpQ",
          "sPdRCYbO6so",
          "_jPm_zN95FE",
          "4jAM5P7PcK0"
        ]
      },
      {
        "label": "css",
        "share": 0.33,
        "evidenceVideoIds": [
          "CUAuy5SWJcw",
          "8327_1PINWI",
          "MA9WAHEEfGM",
          "VlXIPf7dz0I",
          "vWJ95E71cow"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Monday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "content pillars match high-value sponsor categories, strong views-per-subscriber ratio.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "strong",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 29,
      "reason": "fits developer-tools",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.35
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "fits developer-tools. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Wes Bos — 0.2M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 29,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.81,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mid-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mid"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mid-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mid",
      "sponsorCategory": "developer-tools",
      "historicalTypicalReplyRange": "5-12%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mid-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "1e789228bf57d42c2c6a0924e7bcea192e5ea40b91facc866e51e6d89cf3db81",
      "inputsHash": "2d4cf132bd01cd3c5484611811cc9c663b9b4bdb0b3d0b2d9012364c5ebe4628",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:58.387Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "82b3df0fed4c4773bee1e9ff861f01d5487093fc94f8736778e12281640661f3",
    "channelId": "UCSJbGtTlrDami-tDGPUV9-w",
    "channelHandle": "@academind",
    "channelName": "Academind",
    "channelUrl": "https://www.youtube.com/@academind",
    "description": "There's always something to learn!\n\nWe create courses and tutorials on tech-related topics since 2016!\n\nWe teach development and web development (Python, React.js, JavaScript, Next.js, Flutter and many more) but also new technologies like ChatGPT. Check our YouTube channel, official website and social media and start learning today!\n\n🖥️ Official Website\nhttps://academind.com/\n\n🧑‍💻We Build Apps\nhttps://buildmygraphic.com/\n\n🎥 Udemy Courses\nhttps://www.udemy.com/user/academind\n\n👉Academind Pro Membership (50+ courses included)\nhttps://pro.academind.com/\n\n🤝 Social Media\n• Twitter: @maxedapps (https://twitter.com/maxedapps) and @academind_real (https://twitter.com/academind_real)\n• Instagram: @academind_real (https://www.instagram.com/academind_real/)\n• Facebook: academindchannel (https://www.facebook.com/academindchannel)\n\n💻 Academind Official Website\nhttps://academind.com/\n\nSee you in the videos!\n\nImprint: https://academind.com/impressum/en",
    "joinDate": null,
    "location": null,
    "subscribers": 928000,
    "totalVideos": 756,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/M4mm6T9eYXgCaQAaiROvSk96-VxRZzBn4bU41WBHDJkVSpV1AURGa1ZXqF6VJ-JXvdiVlOn6kw=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "buildmygraphic.com",
        "url": "https://buildmygraphic.com/"
      },
      {
        "platform": "academind.com",
        "url": "https://academind.com"
      },
      {
        "platform": "academind.com",
        "url": "https://academind.com/courses"
      },
      {
        "platform": "academind.com",
        "url": "https://academind.com/"
      },
      {
        "platform": "udemy.com",
        "url": "https://www.udemy.com/user/academind"
      },
      {
        "platform": "pro.academind.com",
        "url": "https://pro.academind.com/"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/maxedapps"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/academind_real"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/academind_real/"
      },
      {
        "platform": "facebook",
        "url": "https://www.facebook.com/academindchannel"
      },
      {
        "platform": "academind.com",
        "url": "https://academind.com/impressum/en"
      }
    ],
    "recentVideos": [
      {
        "videoId": "N9nU9oLZ30o",
        "title": "Key features of the NEW Claude Code desktop app you MUST know!",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 437,
        "views": 23094,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Anthropic released a new version of their Claude (Code) Desktop app. It's pretty nice. Fast and has a couple of great features. Here's a quick walkthrough of all the features you should know.\n\nComplete Claude Code course (already updated!): https://acad.link/claude-code\n\n🖥️ Official Website & Courses\nhttps://academind.com/courses/\n\n💬 Academind Community\nhttps://academind.com/community\n\n👋 Social Media\n  / maxedapps  \n  / academind_real  \n  / academind_real  \n  / academindchannel  \n  / maximilian-schwarzmueller  \n  / manuel-lorenz-808b5185  \n  / academind-gmbh  \n  / academind-pro  \n  / academind_real",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Fs6YDVJq5As",
        "title": "Protecting against supply chain attacks - full guide",
        "publishedAt": "1 month ago",
        "durationSeconds": 1237,
        "views": 11387,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Supply chain attacks are becoming more frequent. Especially in the JavaScript ecosystem. The recent axios attack (see my video:    • What happened, are you affected & how to p...  ) is just one example.\n\nBut you can protect yourself against such attacks!\n\n🖥️ Official Website & Courses\nhttps://academind.com/courses/\n\n💬 Academind Community\nhttps://academind.com/community\n\n👋 Social Media\n  / maxedapps  \n  / academind_real  \n  / academind_real  \n  / academindchannel  \n  / maximilian-schwarzmueller  \n  / manuel-lorenz-808b5185  \n  / academind-gmbh  \n  / academind-pro  \n  / academind_real",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eLaf8rCSwIM",
        "title": "5 ways of using Claude Code remotely - and when to use which",
        "publishedAt": "1 month ago",
        "durationSeconds": 760,
        "views": 4112,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Claude Code offers multiple ways of using it remotely ... remote control, dispatch, channels and more.\nBut when should you use which? And how do these approaches differ?\n\nClaude Code - The Practical Guide: https://acad.link/claude-code\nALL courses spring sale: https://academind.com/spring-sale-2026\n\n🖥️ Official Website & Courses\nhttps://academind.com/courses/\n\n💬 Academind Community\nhttps://academind.com/community\n\n👋 Social Media\n  / maxedapps  \n  / academind_real  \n  / academind_real  \n  / academindchannel  \n  / maximilian-schwarzmueller  \n  / manuel-lorenz-808b5185  \n  / academind-gmbh  \n  / academind-pro  \n  / academind_real",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "BC4xJzNqutc",
        "title": "You're likely missing out on agent skills true potential!",
        "publishedAt": "1 month ago",
        "durationSeconds": 783,
        "views": 16238,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Agent skills are truly useful. Yes, just markdown files but EXTREMELY useful. And you can (and should!) use them for more than just documentation!\n\nLearn all about AI for devs & programming fundamentals in our spring sale!\n👉 https://academind.com/spring-sale-2026\n\n🖥️ Official Website & Courses\nhttps://academind.com/courses/\n\n💬 Academind Community\nhttps://academind.com/community\n\n👋 Social Media\n  / maxedapps  \n  / academind_real  \n  / academind_real  \n  / academindchannel  \n  / maximilian-schwarzmueller  \n  / manuel-lorenz-808b5185  \n  / academind-gmbh  \n  / academind-pro  \n  / academind_real",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Ads1B6_2Yjg",
        "title": "Getting the most out of Codex",
        "publishedAt": "2 months ago",
        "durationSeconds": 841,
        "views": 58993,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Codex is pretty amazing. It's like Claude Code but to some extent it's better. Either way, it's worth a closer look at least!\n\nLearn Claude Code: https://acad.link/claude-code\nLearn Codex: https://acad.link/codex\n\n🖥️ Official Website & Courses\nhttps://academind.com/courses/\n\n💬 Academind Community\nhttps://academind.com/community\n\n👋 Social Media\n  / maxedapps  \n  / academind_real  \n  / academind_real  \n  / academindchannel  \n  / maximilian-schwarzmueller  \n  / manuel-lorenz-808b5185  \n  / academind-gmbh  \n  / academind-pro  \n  / academind_real",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WwdIYp5fuxY",
        "title": "My top 6 tips & ways of using Claude Code efficiently",
        "publishedAt": "3 months ago",
        "durationSeconds": 1064,
        "views": 162041,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Claude Code is a great agentic engineering tool. But as with all tools, using it correctly is key to getting good results.\n\nLearn how to efficiently use Claude Code & its key features via our complete \"Claude Code - The Practical Guide\" course:\n👉 https://acad.link/claude-code\n\n🖥️ Official Website & Courses\nhttps://academind.com/courses/\n\n💬 Academind Community\nhttps://academind.com/community\n\n👋 Social Media\n  / maxedapps  \n  / academind_real  \n  / academind_real  \n  / academindchannel  \n  / maximilian-schwarzmueller  \n  / manuel-lorenz-808b5185  \n  / academind-gmbh  \n  / academind-pro  \n  / academind_real",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "O3DhX5tX67c",
        "title": "Automatic animations via the browser's View Transitions API",
        "publishedAt": "3 months ago",
        "durationSeconds": 442,
        "views": 7341,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Add animations / transitions easily to your website - WITHOUT writing complex JS code or adding a bunch of third-party packages - via the browser's built-in View Transitions API.\n\n🖥️ Official Website & Courses\nhttps://academind.com/courses/\n\n💬 Academind Community\nhttps://academind.com/community\n\n👋 Social Media\n  / maxedapps  \n  / academind_real  \n  / academind_real  \n  / academindchannel  \n  / maximilian-schwarzmueller  \n  / manuel-lorenz-808b5185  \n  / academind-gmbh  \n  / academind-pro  \n  / academind_real",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1NX2kmvbWFQ",
        "title": "Making Sense of OKLCH() & Modern CSS Colors",
        "publishedAt": "4 months ago",
        "durationSeconds": 546,
        "views": 4494,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Use oklch() to define CSS colors in a modern way. It's well supported!\n\nBuild beautiful infographics with AI: https://buildmygraphic.com/\n\n🖥️ Official Website & Courses\nhttps://academind.com/courses/\n\n💬 Academind Community\nhttps://academind.com/community\n\n👋 Social Media\n  / maxedapps  \n  / academind_real  \n  / academind_real  \n  / academindchannel  \n  / maximilian-schwarzmueller  \n  / manuel-lorenz-808b5185  \n  / academind-gmbh  \n  / academind-pro  \n  / academind_real",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "R23_GNPx7f0",
        "title": "No more quirky JS-based workarounds!",
        "publishedAt": "4 months ago",
        "durationSeconds": 134,
        "views": 4510,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The :has selector is a game-changer! It allows you to style elements based on the condition of their child or sibling elements WITHOUT using any JS workarounds or anything like that!\n\n🖥️ Official Website & Courses\nhttps://academind.com/courses/\n\n💬 Academind Community\nhttps://academind.com/community\n\n👋 Social Media\n  / maxedapps  \n  / academind_real  \n  / academind_real  \n  / academindchannel  \n  / maximilian-schwarzmueller  \n  / manuel-lorenz-808b5185  \n  / academind-gmbh  \n  / academind-pro  \n  / academind_real",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XVasJ3shTYo",
        "title": "Build truly reusable components!",
        "publishedAt": "4 months ago",
        "durationSeconds": 213,
        "views": 6269,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "When building components, styling is often a nightmare. The same component may look very different in different places of your app - typically depending on the available space.\nContainer queries make that SO MUCH easier!\n\nBuild infographics like the ones you see in this video via https://buildmygraphic.com/\n\n🖥️ Official Website & Courses\nhttps://academind.com/courses/\n\n💬 Academind Community\nhttps://academind.com/community\n\n👋 Social Media\n  / maxedapps  \n  / academind_real  \n  / academind_real  \n  / academindchannel  \n  / maximilian-schwarzmueller  \n  / manuel-lorenz-808b5185  \n  / academind-gmbh  \n  / academind-pro  \n  / academind_real",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DXdGzNyV030",
        "title": "Stop using JS for managing modals!",
        "publishedAt": "4 months ago",
        "durationSeconds": 576,
        "views": 13776,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The Popover API exists. It's stable, it's ready to use. And it has great support across all major browsers. \nSo stop building your own broken, inaccessible modals with custom JS!\n\nBuild infographic...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_PMYMJrNcME",
        "title": "How to upload files to S3 & R2 with ease (and React)",
        "publishedAt": "6 months ago",
        "durationSeconds": 1015,
        "views": 5234,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Uploading files is common. It also can be tricky. But it doesn't have to be!\n\nMy Business Headshots App: https://business-headshots.ai/\n\n🖥️ Official Website & Courses\nhttps://academind.com/cou...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OcvaJ9Lm-lc",
        "title": "It's more than just a \"nice alternative\"",
        "publishedAt": "6 months ago",
        "durationSeconds": 678,
        "views": 8780,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🖥️ Official Website & Courses\nhttps://academind.com/courses/\n\n💬 Academind Community\nhttps://academind.com/community\n\n👋 Social Media\nhttps://twitter.com/maxedapps\nhttps://twitter.com/acad...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "BKS4lDIhPaM",
        "title": "Node.js can do that?",
        "publishedAt": "6 months ago",
        "durationSeconds": 615,
        "views": 70072,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Node.js is not the Node.js you might know from 2018 anymore. It's so much better. You might not need nodemon and some other packages anymore.\n\nFull Article: https://maximilian-schwarzmueller.com/ar...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "f4pCSMjGeRY",
        "title": "AGAIN another BEST model...? Testing Veo 3.1 with Replicate in n8n.",
        "publishedAt": "6 months ago",
        "durationSeconds": 696,
        "views": 2448,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Veo 3.1 was released and as with every new AI release the hype is real. I tested it and took the chance to build a text-to-video and image-to-video workflow with the Gemini API via Replicate...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "p3lFCY4nTjI",
        "title": "I built my own Sora 2 video generation workflow with n8n",
        "publishedAt": "7 months ago",
        "durationSeconds": 916,
        "views": 9111,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Since the Sora 2 app is not available in my country, I built my own n8n automation to generate videos via the Sora 2 API.\n\nFull Docker Course: https://acad.link/docker\n\n🖥️ Official Website...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Rm1pCbKDRPw",
        "title": "I Built a YouTube Research Copilot",
        "publishedAt": "8 months ago",
        "durationSeconds": 625,
        "views": 3257,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Tired of spending hours watching long YouTube videos just to find a few key points? I'll show you the life hack I use to save hours every week:\nAn AI assistant that automatically watches and...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "t-oNHD-9DdQ",
        "title": "But THIS is where the real change happens.",
        "publishedAt": "9 months ago",
        "durationSeconds": 272,
        "views": 5651,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "GPT-5 is here.\nAnd while everyone’s riding the hype train here’s the truth: Real AI change doesn’t happen on release day. It happens quietly, when nobody talks about it anymore and it...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Zz7VPZRvoh4",
        "title": "Hard times, great deals! 💰",
        "publishedAt": "1 year ago",
        "durationSeconds": 98,
        "views": 6220,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Black Friday is around the corner, time to save some money!\n\nGet our Academind Pro All Access Annual Membership for just $149/year instead of the regular $249/year!\n👉 https://sso.teachable.com/s...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qNs0Dxs5JVI",
        "title": "Don't avoid AI as a developer - embrace it!",
        "publishedAt": "1 year ago",
        "durationSeconds": 164,
        "views": 22613,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I got a new course!\nA course where I share my personal tips & tricks for using AI tools like GitHub Copilot and Cursor AI (IDE) efficiently.\n\n👉 Join \"AI For Developers With GitHub Copilot,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Igt89sDaboE",
        "title": "Next.js 15 is here! Does it fix Next 14?",
        "publishedAt": "1 year ago",
        "durationSeconds": 629,
        "views": 61754,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Next.js 15 stable was released on October 21st. What's new, what changes?\nWell ... it does definitely improve Next and fix various v14 issues!\n\nJoin my full Next.js 15 course: https://acad.link/nex...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-MMjFX5UfN4",
        "title": "🤯 Express.js 5 is here (since a month already, actually)",
        "publishedAt": "1 year ago",
        "durationSeconds": 598,
        "views": 53615,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Express 5 was released - 11 years after the release of version 4.0!\nSo what changed after all those years? Well ... maybe not that much ...\n\nLearn Node.js & Express from scratch\n👉 Node.js...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "N9zOhpqLTiM",
        "title": "(Un)expected winners & interesting trends",
        "publishedAt": "1 year ago",
        "durationSeconds": 2236,
        "views": 17255,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🖥️ Official Website & Courses\nhttps://academind.com/courses/\n\n💬 Academind Community\nhttps://academind.com/community\n\n👋 Social Media\nhttps://twitter.com/maxedapps\nhttps://twitter.com/acad...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uajb6dkd2Ik",
        "title": "My Angular course just got a HUGE update! 🎉",
        "publishedAt": "1 year ago",
        "durationSeconds": 162,
        "views": 12714,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I completely re-recorded my Angular course - now teaching modern Angular (with standalone components, signals, zoneless) from the ground up!\nI share all the details about this update in this...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "g8MgdgaOfS8",
        "title": "ACT QUICK and GET ACCESS to 49 Courses NOW!",
        "publishedAt": "1 year ago",
        "durationSeconds": 98,
        "views": 4035,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👨‍🏫 Save Your Academind Pro Spot, Discount Valid For 4 Days Only!\nhttps://academind.com/pre-summer-sale\n\n🖥️ Official Website & Courses\nhttps://academind.com/courses/\n\n💬 Academind...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JTLDuL0BtUE",
        "title": "Angular 18 is EXACTLY what we needed",
        "publishedAt": "1 year ago",
        "durationSeconds": 555,
        "views": 102332,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Angular 18 is out! And I released a big update for my \"Angular - The Complete Guide\" course to FINALLY revamp it (and re-record it from scratch).\nHere are all the details about the course update:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1QI_6Ccj0j8",
        "title": "Time to dive DEEP into the App Router...",
        "publishedAt": "2 years ago",
        "durationSeconds": 150,
        "views": 7722,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Next.js 14 Course: https://www.udemy.com/course/nextjs-react-the-complete-guide/?couponCode=NEXT14_UPDATE\nBestelling React Course: https://www.udemy.com/course/react-the-complete-guide-incl-redux/?...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9A6XzkhkuGY",
        "title": "CSS Animations & Transitions - What You Need To Know in 6 Minutes",
        "publishedAt": "2 years ago",
        "durationSeconds": 399,
        "views": 8713,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "CSS Animations and Transitions Make Your Website Stand Out - Learn To Use These Now!\n---\nKeypoints:\nTransitions vs. Animations:\nTransitions are for single-step changes and need a trigger, like...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RUoZ2XBa_tw",
        "title": "Does it work & is it a good idea? 🤔",
        "publishedAt": "2 years ago",
        "durationSeconds": 500,
        "views": 13934,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "You can use React / JSX as a Node / Express template engine - instead of EJS, Handlebars etc.\nBut should you do it?\n\nLearn all about React with my full course: https://acad.link/reactjs\nLearn...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ujBBiPtyAd8",
        "title": "Use JavaScript without writing JavaScript...",
        "publishedAt": "2 years ago",
        "durationSeconds": 164,
        "views": 31778,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Join me in my brand-new course on HTMX - and learn how to build amazing websites without writing lots of JavaScript code!\n\nFull course on Udemy (discount applied): https://acad.link/htmx\n\n🖥️...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 4,
      "uploadsLast90d": 7,
      "uploadCadenceWeekly": 0.54,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 16238,
      "viewsPerVideoP90Last90d": 58993,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 16238,
      "p90Views": 58993,
      "p99Views": 58993,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "web-services",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:website"
          ]
        },
        {
          "category": "ai-saas",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:AI assistants"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "buildmygraphic.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.7,
        "evidenceVideoIds": [
          "N9nU9oLZ30o",
          "Fs6YDVJq5As",
          "eLaf8rCSwIM",
          "BC4xJzNqutc",
          "Ads1B6_2Yjg"
        ]
      },
      {
        "label": "com",
        "share": 0.57,
        "evidenceVideoIds": [
          "N9nU9oLZ30o",
          "Fs6YDVJq5As",
          "eLaf8rCSwIM",
          "BC4xJzNqutc",
          "Ads1B6_2Yjg"
        ]
      },
      {
        "label": "website",
        "share": 0.53,
        "evidenceVideoIds": [
          "N9nU9oLZ30o",
          "Fs6YDVJq5As",
          "eLaf8rCSwIM",
          "BC4xJzNqutc",
          "Ads1B6_2Yjg"
        ]
      },
      {
        "label": "official",
        "share": 0.5,
        "evidenceVideoIds": [
          "N9nU9oLZ30o",
          "Fs6YDVJq5As",
          "eLaf8rCSwIM",
          "BC4xJzNqutc",
          "Ads1B6_2Yjg"
        ]
      },
      {
        "label": "academind",
        "share": 0.5,
        "evidenceVideoIds": [
          "N9nU9oLZ30o",
          "Fs6YDVJq5As",
          "eLaf8rCSwIM",
          "BC4xJzNqutc",
          "Ads1B6_2Yjg"
        ]
      },
      {
        "label": "AI assistants",
        "share": 0.03,
        "evidenceVideoIds": [
          "Rm1pCbKDRPw"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 29,
      "reason": "fits web-services",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.35
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "fits web-services. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Academind — 0.9M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 29,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.81,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "web-services",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "82b3df0fed4c4773bee1e9ff861f01d5487093fc94f8736778e12281640661f3",
      "inputsHash": "a13a11e9bf661f4463b41f444f28b66835de879944e3d0cc6d323b606e8bedf5",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:51:58.590Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "a5d68f5b14312ed97f870ccf969e433d6650bb6d38516becb6e2a4311ad599b2",
    "channelId": "UCNsU-y15AwmU2Q8QTQJG1jw",
    "channelHandle": "@jonasschmedtmann",
    "channelName": "Jonas Schmedtmann",
    "channelUrl": "https://www.youtube.com/@jonasschmedtmann",
    "description": "Build Responsive Real World Websites with HTML5 and CSS3 — The ONLY course on the market that teaches you how to design AND code your own beautiful websites. Premium course from Jonas Schmedtmann with 16,000+ enrolled students.\n\nThe course shows you step-by-step how to design AND code a beautiful responsive website from complete scratch, using the latest web technologies HTML5, CSS3 and jQuery. But you will not just learn how to code. You will learn the 7 proven steps of the process of building a real-world website from idea to final product. At the end of the course, you will be able to build any website you can imagine from the ground up. Perfect for complete beginners!",
    "joinDate": null,
    "location": null,
    "subscribers": 55400,
    "totalVideos": 24,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/zHbAOF1zhw8PfH1VKc7jF48uhhd363SnRRSmpBcSpqG2Lf5RLRU8y95Aiayntt1wkbdggMHaiw=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [],
    "recentVideos": [
      {
        "videoId": "9zmwGT7DEsM",
        "title": "The Ultimate React Course - Promo video",
        "publishedAt": "2 years ago",
        "durationSeconds": 153,
        "views": 44355,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Promo video for my upcoming course: \"The Ultimate React Course\", NOW available exclusively on Udemy!\n\nhttps://www.udemy.com/course/the-ultimate-react-course/?couponCode=REACT-LAUNCH\nhttps://twitter...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "e6UImq0YH_I",
        "title": "Build Responsive Real-World Websites With HTML and CSS (v2) - Promo Video",
        "publishedAt": "4 years ago",
        "durationSeconds": 195,
        "views": 36094,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://www.udemy.com/course/design-and-develop-a-killer-website-with-html5-and-css3/?referralCode=93317126211B2A500938\r\nhttps://twitter.com/jonasschmedtman",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vDQ9GZsJkms",
        "title": "I'm updating my JavaScript course! Here is a preview!",
        "publishedAt": "5 years ago",
        "durationSeconds": 239,
        "views": 55028,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Preview of the upcoming update of my complete JavaScript course on Udemy. Will be ready around October 21st!\n\nhttps://www.udemy.com/course/the-complete-javascript-course/?couponCode=YOUTUBE...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3unYpFZO4EE",
        "title": "Node.js, Express, MongoDB & More: The Complete Bootcamp - Promo Video",
        "publishedAt": "6 years ago",
        "durationSeconds": 176,
        "views": 38750,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Get the course now with 90% off!\nhttps://www.udemy.com/nodejs-express-...\n\nThe Complete Node.js, Express and MongoDB Bootcamp is your fast track to modern back-end development. It's the perfect all-in-one package that will take you from a complete beginner to an advanced, highly-skilled Node.js developer.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "psA7-_8FWtg",
        "title": "Build Responsive Real World Websites with HTML5 and CSS3 - Promo Video",
        "publishedAt": "8 years ago",
        "durationSeconds": 140,
        "views": 8992,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Promo video for my premium Udemy course \"Build Responsive Real World Websites with HTML5 and CSS3\"",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wUiR6oUeoNo",
        "title": "Up and Running with JavaScript: Free JavaScript Mini-Course — Lecture 18",
        "publishedAt": "8 years ago",
        "durationSeconds": 743,
        "views": 4145,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A fun 3-hour course to get you started with the basics of JavaScript.\nYou're gonna learn the fundamentals of JavaScript and programming: variables, data types, control flow, functions, objects, arrays and many other things.\nShare with your friends!\n\nhttps://codingheroes.io\n  / jonasschmedtman  \n  / codingheroes  \n   / @jonasschmedtmann",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_o0qRmSxpDY",
        "title": "Up and Running with JavaScript: Free JavaScript Mini-Course — Lecture 16",
        "publishedAt": "8 years ago",
        "durationSeconds": 1168,
        "views": 2846,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A fun 3-hour course to get you started with the basics of JavaScript.\nYou're gonna learn the fundamentals of JavaScript and programming: variables, data types, control flow, functions, objects, arrays and many other things.\nShare with your friends!\n\nhttps://codingheroes.io\n  / jonasschmedtman  \n  / codingheroes  \n   / @jonasschmedtmann",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6hIRX-ASDsk",
        "title": "Up and Running with JavaScript: Free JavaScript Mini-Course — Lecture 12",
        "publishedAt": "8 years ago",
        "durationSeconds": 186,
        "views": 2504,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A fun 3-hour course to get you started with the basics of JavaScript.\nYou're gonna learn the fundamentals of JavaScript and programming: variables, data types, control flow, functions, objects, arrays and many other things.\nShare with your friends!\n\nhttps://codingheroes.io\n  / jonasschmedtman  \n  / codingheroes  \n   / @jonasschmedtmann",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bSx9wDk1zko",
        "title": "Up and Running with JavaScript: Free JavaScript Mini-Course — Lecture 1",
        "publishedAt": "8 years ago",
        "durationSeconds": 54,
        "views": 23084,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A fun 3-hour course to get you started with the basics of JavaScript.\nYou're gonna learn the fundamentals of JavaScript and programming: variables, data types, control flow, functions, objects, arrays and many other things.\nShare with your friends!\n\nhttps://codingheroes.io\n  / jonasschmedtman  \n  / codingheroes  \n   / @jonasschmedtmann",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LFWAOTMj7Yo",
        "title": "The Complete JavaScript Course: Build a Real-World Project — Promo Video",
        "publishedAt": "8 years ago",
        "durationSeconds": 122,
        "views": 6944,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The Complete JavaScript Course: Build a Real-World Project.\n\nMy brand new course is here! Bigger and better than ever, this course is truly a complete JavaScript course.\n\nYou'll start with the basics of JavaScript, back it up with theory and then move up all the way to really advanced concepts by coding two beautiful, real-world apps.\n\nBy the end of the course, advanced JavaScript features like the scoping chain, the 'this keyword', prototypal inheritance, first-class functions, closures, and many more, will make perfect sense to you!\n\nSo, you're gonna really understand \"why\" something works in JavaScript, not just \"how\", leaving you ready to write good code, to debug your code and to solve real problems.\n\nhttps://codingheroes.io\n  / jonasschmedtman  \n  / codingheroes  \n   / @jonasschmedtmann",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GpvK42EeBS0",
        "title": "Build Responsive Real World Websites with HTML5 and CSS3: New Promo Video",
        "publishedAt": "10 years ago",
        "durationSeconds": 149,
        "views": 2537,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build Responsive Real World Websites with HTML5 and CSS3\n\nhttps://www.udemy.com/design-and-develop-a-killer-website-with-html5-and-css3/?couponCode= YOUTUBE1010\n\nThis course shows you step-by-step...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "e-Xb3uNK5vQ",
        "title": "Build Responsive Real World Websites with HTML5 and CSS3",
        "publishedAt": "11 years ago",
        "durationSeconds": 158,
        "views": 4602,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Web Design Tutorial for Beginners: Responsive Web Design AND Web Development with HTML5 & CSS3\n\nhttps://www.udemy.com/design-and-develop-a-killer-website-with-html5-and-css3/?couponCode=YT10...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "u7OCG4Bco3I",
        "title": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - FREE Preview 10",
        "publishedAt": "11 years ago",
        "durationSeconds": 326,
        "views": 2813,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - FREE Preview 10\n\nhttps://www.udemy.com/design-and-develop-a-killer-website-with-html5-and-css3/?couponCode=YTAMA...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sPx0uJ8pkfs",
        "title": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - FREE Preview 02",
        "publishedAt": "11 years ago",
        "durationSeconds": 282,
        "views": 5502,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - FREE Preview 02\n\nhttps://www.udemy.com/design-and-develop-a-killer-website-with-html5-and-css3/?couponCode=YTAMA...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "o0S9SChgtOs",
        "title": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - FREE Preview 09",
        "publishedAt": "11 years ago",
        "durationSeconds": 788,
        "views": 3113,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - FREE Preview 09\n\nhttps://www.udemy.com/design-and-develop-a-killer-website-with-html5-and-css3/?couponCode=YTAMA...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nzOpYNC8qFM",
        "title": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - FREE Preview 03",
        "publishedAt": "11 years ago",
        "durationSeconds": 358,
        "views": 3865,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - FREE Preview 03\n\nhttps://www.udemy.com/design-and-develop-a-killer-website-with-html5-and-css3/?couponCode=YTAMA...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "d-ZDW277J8k",
        "title": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - FREE Preview 11",
        "publishedAt": "11 years ago",
        "durationSeconds": 362,
        "views": 4327,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - FREE Preview 11\n\nhttps://www.udemy.com/design-and-develop-a-killer-website-with-html5-and-css3/?couponCode=YTAMA...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SukYENKx2iM",
        "title": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - FREE Preview 04",
        "publishedAt": "11 years ago",
        "durationSeconds": 215,
        "views": 3032,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - FREE Preview 04\n\nhttps://www.udemy.com/design-and-develop-a-killer-website-with-html5-and-css3/?couponCode=YTAMA...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Q_V5rlxaugk",
        "title": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - FREE Preview 08",
        "publishedAt": "11 years ago",
        "durationSeconds": 983,
        "views": 3168,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - FREE Preview 08\n\nhttps://www.udemy.com/design-and-develop-a-killer-website-with-html5-and-css3/?couponCode=YTAMA...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "NZmtVtPdIqQ",
        "title": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - FREE Preview 07",
        "publishedAt": "11 years ago",
        "durationSeconds": 467,
        "views": 2227,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - FREE Preview 07\n\nhttps://www.udemy.com/design-and-develop-a-killer-website-with-html5-and-css3/?couponCode=YTAMA...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LY9w5iyqvuw",
        "title": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - FREE Preview 06",
        "publishedAt": "11 years ago",
        "durationSeconds": 608,
        "views": 2648,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - FREE Preview 06\n\nhttps://www.udemy.com/design-and-develop-a-killer-website-with-html5-and-css3/?couponCode=YTAMA...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7FGbcC8NqDU",
        "title": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - FREE Preview 05",
        "publishedAt": "11 years ago",
        "durationSeconds": 338,
        "views": 2829,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - FREE Preview 05\n\nhttps://www.udemy.com/design-and-develop-a-killer-website-with-html5-and-css3/?couponCode=YTAMA...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6WjXVltHL3E",
        "title": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - FREE Preview 01",
        "publishedAt": "11 years ago",
        "durationSeconds": 267,
        "views": 9895,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - FREE Preview 01\n\nhttps://www.udemy.com/design-and-develop-a-killer-website-with-html5-and-css3/?couponCode=YTAMA...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "inEUEYSjKX8",
        "title": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - Introduction",
        "publishedAt": "11 years ago",
        "durationSeconds": 170,
        "views": 28823,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Web Design Tutorial for Beginners: Design and Develop Websites with HTML5 and CSS3 - Introduction\n\nhttps://www.udemy.com/design-and-develop-a-killer-website-with-html5-and-css3/?couponCode=YTAMAZIN...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "web-services",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:web development"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": null,
      "additionalContacts": []
    },
    "contactability": {
      "tier": "none",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": false,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Not reachable through public business channels. No published business email and no external website detected."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.96,
        "evidenceVideoIds": [
          "9zmwGT7DEsM",
          "e6UImq0YH_I",
          "vDQ9GZsJkms",
          "3unYpFZO4EE",
          "wUiR6oUeoNo"
        ]
      },
      {
        "label": "udemy",
        "share": 0.79,
        "evidenceVideoIds": [
          "9zmwGT7DEsM",
          "e6UImq0YH_I",
          "vDQ9GZsJkms",
          "3unYpFZO4EE",
          "psA7-_8FWtg"
        ]
      },
      {
        "label": "www",
        "share": 0.75,
        "evidenceVideoIds": [
          "9zmwGT7DEsM",
          "e6UImq0YH_I",
          "vDQ9GZsJkms",
          "3unYpFZO4EE",
          "GpvK42EeBS0"
        ]
      },
      {
        "label": "com",
        "share": 0.75,
        "evidenceVideoIds": [
          "9zmwGT7DEsM",
          "e6UImq0YH_I",
          "vDQ9GZsJkms",
          "3unYpFZO4EE",
          "GpvK42EeBS0"
        ]
      },
      {
        "label": "couponcode",
        "share": 0.67,
        "evidenceVideoIds": [
          "9zmwGT7DEsM",
          "vDQ9GZsJkms",
          "GpvK42EeBS0",
          "e-Xb3uNK5vQ",
          "u7OCG4Bco3I"
        ]
      },
      {
        "label": "web development",
        "share": 0.04,
        "evidenceVideoIds": [
          "e-Xb3uNK5vQ"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Sunday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "D",
      "rationale": "content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 27,
      "reason": "fits web-services",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.05
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.35
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "fits web-services. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 30,
    "failureType": null,
    "summary": "Jonas Schmedtmann — 0.1M subs, D-tier sponsorship readiness, none contactability, respond within 30 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 27,
      "readyForOutreach": false,
      "blockers": [
        "contactability:none — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.83,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 2,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 2
      }
    },
    "channelStrategy": {
      "primary": "enrichment",
      "secondary": "linkedin",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [],
      "missedOpportunities": [
        "no-external-website-detected",
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.02
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.02,
      "gap": 0.92,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "unknown",
      "score": 0,
      "factors": [],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mid-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mid"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mid-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "none"
    },
    "benchmarkRange": {
      "creatorTier": "mid",
      "sponsorCategory": "web-services",
      "historicalTypicalReplyRange": "5-12%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mid-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "ignore",
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": {
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "gaps": [
        "tier:D",
        "contactability:none"
      ]
    },
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "a5d68f5b14312ed97f870ccf969e433d6650bb6d38516becb6e2a4311ad599b2",
      "inputsHash": "4d173005f816aef527bda5e197fc14c3da745265d4aa5d2facca1fc5ca28c42a",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:01.107Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "8a10d91c89964a73a17ebf923fe39db9e3409142f049a17d696f4447832dabc0",
    "channelId": "UCzNf0liwUzMN6_pixbQlMhQ",
    "channelHandle": "@TheCoderCoder",
    "channelName": "Coder Coder",
    "channelUrl": "https://www.youtube.com/@TheCoderCoder",
    "description": "Practical tips for the beginner web developer.",
    "joinDate": null,
    "location": null,
    "subscribers": 541000,
    "totalVideos": 119,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_k44gHBoHPwPbUJz36pexiQQyqImaAzZNP-MNbbLZZ11VY=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "coder-coder.com",
        "url": "https://coder-coder.com"
      },
      {
        "platform": "twitter",
        "url": "https://www.twitter.com/thecodercoder"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/thecodercoder/"
      },
      {
        "platform": "facebook",
        "url": "https://www.facebook.com/thecodercoder/"
      }
    ],
    "recentVideos": [
      {
        "videoId": "So3k6YNmCOI",
        "title": "Build a responsive navbar with CSS | Coding Challenge",
        "publishedAt": "2 days ago",
        "durationSeconds": 1141,
        "views": 1682,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How to build a simple responsive top navigation bar in CSS, using grid and flexbox\n\n💥 Want to learn how to build a website from scratch? Check out my course: https://coder-coder.com/responsive\n\nSource code: https://github.com/thecodercoder/css-...\n\n____________\n\n💻  LEARN TO CODE  💻\n\nMY COURSE:\n🟢 Responsive Design for Beginners -- Learn how to build a website from scratch -- https://coder-coder.com/responsive\n\nRECOMMENDED RESOURCES:\nTools and resources I use myself and highly recommend, with exclusive discounts (affiliate links help support this channel-- thank you!)\n\n🔷 Frontend Mentor Pro -- Practice building real-world projects (20% off 1-yr with code JESSCHAN20) -- https://www.frontendmentor.io/?via=je...\n🔷 Boot.dev -- Learn back-end development (25% off) -- https://www.boot.dev/?promo=CODERCODER\n\nOTHER STUFF:\n🟢 Coder Coder Dark -- My VS Code theme -- https://marketplace.visualstudio.com/...\n🟢 Coder Coder Merch -- get my hoodie, coffee cup, and more! -- https://coder-coder.com/merch\n\nSOCIALS:\n  / thecodercoder  \n  / thecodercoder  \n\n#css #javascript #html",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8MrggH3yLH8",
        "title": "Build a responsive grid with auto-fit, minmax(), and min() | CSS Layout",
        "publishedAt": "9 days ago",
        "durationSeconds": 516,
        "views": 3477,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💥 Want to learn how to build a website from scratch? Check out my course: https://coder-coder.com/responsive\n\nSource code: https://github.com/thecodercoder/css-...\n\n____________\n\n💻  LEARN TO CODE  💻\n\nMY COURSE:\n🟢 Responsive Design for Beginners -- Learn how to build a website from scratch -- https://coder-coder.com/responsive\n\nRECOMMENDED RESOURCES:\nTools and resources I use myself and highly recommend, with exclusive discounts (affiliate links help support this channel-- thank you!)\n\n🔷 Frontend Mentor Pro -- Practice building real-world projects (20% off 1-yr with code JESSCHAN20) -- https://www.frontendmentor.io/?via=je...\n🔷 Boot.dev -- Learn back-end development (25% off) -- https://www.boot.dev/?promo=CODERCODER\n\nOTHER STUFF:\n🟢 Coder Coder Dark -- My VS Code theme -- https://marketplace.visualstudio.com/...\n🟢 Coder Coder Merch -- get my hoodie, coffee cup, and more! -- https://coder-coder.com/merch\n\nSOCIALS:\n  / thecodercoder  \n  / thecodercoder  \n\n#css #javascript #html",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "abBbZK5L7iU",
        "title": "How to use CSS media queries for responsive styles",
        "publishedAt": "12 days ago",
        "durationSeconds": 772,
        "views": 2226,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💥 Want to learn how to build a website from scratch? Check out my course: https://coder-coder.com/responsive\n\nSource Code: https://github.com/thecodercoder/css-...\n\n____________\n\n💻  LEARN TO CODE  💻\n\nMY COURSE:\n🟢 Responsive Design for Beginners -- Learn how to build a website from scratch -- https://coder-coder.com/responsive\n\nRECOMMENDED RESOURCES:\nTools and resources I use myself and highly recommend, with exclusive discounts (affiliate links help support this channel-- thank you!)\n\n🔷 Frontend Mentor Pro -- Practice building real-world projects (20% off 1-yr with code JESSCHAN20) -- https://www.frontendmentor.io/?via=je...\n🔷 Boot.dev -- Learn back-end development (25% off) -- https://www.boot.dev/?promo=CODERCODER\n\nOTHER STUFF:\n🟢 Coder Coder Dark -- My VS Code theme -- https://marketplace.visualstudio.com/...\n🟢 Coder Coder Merch -- get my hoodie, coffee cup, and more! -- https://coder-coder.com/merch\n\nSOCIALS:\n  / thecodercoder  \n  / thecodercoder  \n\n#css #javascript #html",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Br0nQZp2Emk",
        "title": "How to use grid-template-areas to build bento grids in CSS",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 427,
        "views": 1494,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💥 Want to learn how to build a website from scratch? Check out my course: https://coder-coder.com/responsive\n\nSource code: https://github.com/thecodercoder/css-...\n\n____________\n\n💻  LEARN TO CODE  💻\n\nMY COURSE:\n🟢 Responsive Design for Beginners -- Learn how to build a website from scratch -- https://coder-coder.com/responsive\n\nRECOMMENDED RESOURCES:\nTools and resources I use myself and highly recommend, with exclusive discounts (affiliate links help support this channel-- thank you!)\n\n🔷 Frontend Mentor Pro -- Practice building real-world projects (20% off 1-yr with code JESSCHAN10) -- https://www.frontendmentor.io/?via=je...\n🔷 Boot.dev -- Learn back-end development (25% off) -- https://www.boot.dev/?promo=CODERCODER\n\nOTHER STUFF:\n🟢 Coder Coder Dark -- My VS Code theme -- https://marketplace.visualstudio.com/...\n🟢 Coder Coder Merch -- get my hoodie, coffee cup, and more! -- https://coder-coder.com/merch\n\nSOCIALS:\n  / thecodercoder  \n  / thecodercoder  \n\n#css #javascript #html",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "J_3IN6js294",
        "title": "Use CSS grid to stack (instead of position absolute)",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 140,
        "views": 2264,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💥 Want to learn how to build a website from scratch? Check out my course: https://coder-coder.com/responsive\n\nSource code: https://github.com/thecodercoder/css-...\n\n____________\n\n💻  LEARN TO CODE  💻\n\nMY COURSE:\n🟢 Responsive Design for Beginners -- Learn how to build a website from scratch -- https://coder-coder.com/responsive\n\nRECOMMENDED RESOURCES:\nTools and resources I use myself and highly recommend, with exclusive discounts (affiliate links help support this channel-- thank you!)\n\n🔷 Frontend Mentor Pro -- Practice building real-world projects (20% off 1-yr with code JESSCHAN10) -- https://www.frontendmentor.io/?via=je...\n🔷 Boot.dev -- Learn back-end development (25% off) -- https://www.boot.dev/?promo=CODERCODER\n\nOTHER STUFF:\n🟢 Coder Coder Dark -- My VS Code theme -- https://marketplace.visualstudio.com/...\n🟢 Coder Coder Merch -- get my hoodie, coffee cup, and more! -- https://coder-coder.com/merch\n\nSOCIALS:\n  / thecodercoder  \n  / thecodercoder  \n\n#css #javascript #html",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RKWvnCrKizI",
        "title": "CSS Grid for Beginners (mini course)",
        "publishedAt": "1 month ago",
        "durationSeconds": 2020,
        "views": 3210,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to use CSS grid for building layouts, step-by-step, with this beginner friendly tutorial.\n\n💥 Want to learn how to build a website from scratch? Check out my course: https://coder-coder.com/responsive\n\nSource code: https://github.com/thecodercoder/css-...\n\n____________\n\n💻  LEARN TO CODE  💻\n\nMY COURSE:\n🟢 Responsive Design for Beginners -- Learn how to build a website from scratch -- https://coder-coder.com/responsive\n\nRECOMMENDED RESOURCES:\nTools and resources I use myself and highly recommend, with exclusive discounts (affiliate links help support this channel-- thank you!)\n\n🔷 Frontend Mentor Pro -- Get 20% off 1-yr of Frontend Mentor Pro with my code JESSCHAN20 -- https://www.frontendmentor.io/?via=je...\n🔷 Boot.dev -- Learn back-end development (25% off) -- https://www.boot.dev/?promo=CODERCODER\n\nOTHER STUFF:\n🟢 Coder Coder Dark -- My VS Code theme -- https://marketplace.visualstudio.com/...\n🟢 Coder Coder Merch -- get my hoodie, coffee cup, and more! -- https://coder-coder.com/merch\n\nSOCIALS:\n  / thecodercoder  \n  / thecodercoder  \n\n____________________\n\n0:00 - Intro & Setup\n2:07 - Create a grid container\n4:33 - grid-auto-flow\n5:34 - grid-template-columns & grid-template-rows\n7:00 - explicit & implicit grid\n10:16 - fr unit\n12:37 - repeat() function\n13:27 - grid-column & grid-row lines\n20:41 - grid-template-areas\n24:55 - justify-items, justify-self, justify-content\n28:47 - align-items, align-self, align-content\n31:32 - place-items, place-content\n\n\n\n#css #javascript #html",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lVvPFJBtOzQ",
        "title": "CSS Flexbox for beginners (mini course)",
        "publishedAt": "1 month ago",
        "durationSeconds": 1784,
        "views": 3885,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn the basics of CSS flexbox for building layouts with this beginners tutorial.\n\n🟢 Responsive Design for Beginners -- Learn how to build a website from scratch -- https://coder-coder.com/responsive\n\nSource code: https://github.com/thecodercoder/css-...\n\n____________\n\n💻  LEARN TO CODE  💻\n\nRECOMMENDED RESOURCES:\nTools and resources I use myself and highly recommend, with exclusive discounts (affiliate links help support this channel-- thank you!)\n\n🔷 Frontend Mentor Pro -- Practice building real-world projects (20% off 1-yr with code JESSCHAN20) -- https://www.frontendmentor.io/?via=je...\n🔷 Boot.dev -- Learn back-end development (25% off) -- https://www.boot.dev/?promo=CODERCODER\n\nOTHER STUFF:\n🟢 Coder Coder Dark -- My VS Code theme -- https://marketplace.visualstudio.com/...\n🟢 Coder Coder Merch -- get my hoodie, coffee cup, and more! -- https://coder-coder.com/merch\n\nSOCIALS:\n  / thecodercoder  \n  / thecodercoder  \n\n____________________________\n\n0:00 - Intro & setup\n1:57 - create the flex container with display: flex\n3:08 - flex-direction\n4:53 - flex-wrap\n6:02 - browser inspection tools\n8:23 - justify-content\n11:45 - align-items\n14:01 - align-content\n16:04 - justify & align\n17:25 - flex child items\n18:19 - flex-grow, flex-shrink, flex-basis\n22:09 - flex shorthand property\n26:41 - multiple rows of items\n28:33 - order\n\n\n\n#css #javascript #html",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xLHgJxGG0Pk",
        "title": "CSS position property explained (static, relative, absolute, fixed, sticky)",
        "publishedAt": "1 month ago",
        "durationSeconds": 1354,
        "views": 3397,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How the CSS position property works, with static, relative, absolute, fixed, and sticky elements.\n\n🟢 Responsive Design for Beginners -- Learn how to build a website from scratch -- https://coder-coder.com/responsive\n\nSource Code: https://github.com/thecodercoder/css-...\n\nMDN Stacking Contexts: https://developer.mozilla.org/en-US/d...\n\n____________\n\n💻  LEARN TO CODE  💻\n\nRECOMMENDED RESOURCES:\nTools and resources I use myself and highly recommend, with exclusive discounts (affiliate links help support this channel-- thank you!)\n\n🔷 Frontend Mentor Pro -- Get 20% off 1-yr of Pro with my code JESSCHAN20 -- https://www.frontendmentor.io/?via=je...\n🔷 Boot.dev -- Learn back-end development (25% off) -- https://www.boot.dev/?promo=CODERCODER\n\nOTHER STUFF:\n🟢 Coder Coder Dark -- My VS Code theme -- https://marketplace.visualstudio.com/...\n🟢 Coder Coder Merch -- get my hoodie, coffee cup, and more! -- https://coder-coder.com/merch\n\nSOCIALS:\n  / thecodercoder  \n  / thecodercoder  \n\n#css #javascript #html",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9I3JQ1q4IMk",
        "title": "Tailwind CSS v4 for Beginners | Full Course 2026",
        "publishedAt": "1 month ago",
        "durationSeconds": 8168,
        "views": 31367,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build websites faster as a beginner with Tailwind, the utility-first CSS framework.\n\n💥 Build a Responsive Website -- Learn how to build a website from a Figma design with HTML, CSS, and JS -- https://coder-coder.com/responsive\n\n   • VS Code for Absolute Beginners  \nSource code: https://github.com/thecodercoder/tail...\n\n____________\n\n💻  LEARN TO CODE  💻\n\nRECOMMENDED RESOURCES:\nTools and resources I use myself and highly recommend, with exclusive discounts (affiliate links help support this channel-- thank you!)\n\n🔷 Boot.dev -- Learn back-end development (25% off) -- https://www.boot.dev/?promo=CODERCODER\n🔷 Frontend Mentor Pro -- Get 20% off 1-yr of Frontend Mentor Pro with my code JESSCHAN20 -- https://www.frontendmentor.io/?via=je...\n\nOTHER STUFF:\n🟢 Coder Coder Dark -- My VS Code theme -- https://marketplace.visualstudio.com/...\n\nSOCIALS:\n  / thecodercoder  \n  / thecodercoder  \n\n____________________________\n\n0:00:00 -- What is Tailwind?\n0:02:39 -- Installation & Setup\n0:10:43 -- Text & Colors\n0:25:46 -- Wrapper Styles\n0:34:53 -- Button\n0:40:22 -- Hover States\n0:42:32 -- Custom Values\n0:45:35 -- Layouts: Top Nav (flexbox)\n1:06:03 -- Hero (grid)\n1:21:16 -- Cards (3-column grid)\n1:43:01 -- Custom Theme\n1:52:38 -- Nth-Child Selectors\n1:57:24 -- Pseudo-elements\n2:03:35 -- Layers\n2:11:22 -- Components\n\n#css #javascript #html",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RNSap_JAXL8",
        "title": "CSS display property explained (block, inline, inline-block, none)",
        "publishedAt": "2 months ago",
        "durationSeconds": 923,
        "views": 4080,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How the CSS display property works, with block, inline, and inline-block elements, and how padding, border, and margin works in each type of element.\n\n💥 Get 20% off 1-yr of Frontend Mentor Pro with my code JESSCHAN20 -- https://www.frontendmentor.io/?via=je...\n\nSource code: https://github.com/thecodercoder/css-...\n\nCSS Layouts playlist:    • CSS Layouts with Flexbox and Grid  \n\n____________\n\n💻  LEARN TO CODE  💻\n\nMY COURSE:\n🟢 Responsive Design for Beginners -- Learn how to build a website from scratch -- https://coder-coder.com/responsive\n\nRECOMMENDED RESOURCES:\nTools and resources I use myself and highly recommend, with exclusive discounts (affiliate links help support this channel-- thank you!)\n\n🔷 Frontend Mentor Pro -- Practice building real-world projects (10% off with code JESSCHAN10) -- https://www.frontendmentor.io/?via=je...\n🔷 Boot.dev -- Learn back-end development (25% off) -- https://www.boot.dev/?promo=CODERCODER\n🔷 Zero to Mastery -- Learn web dev, AI, DevOps and more with 100+ courses -- https://academy.zerotomastery.io/a/af...\n\nOTHER STUFF:\n🟢 Coder Coder Dark -- My VS Code theme -- https://marketplace.visualstudio.com/...\n🟢 Coder Coder Merch -- get my hoodie, coffee cup, and more! -- https://coder-coder.com/merch\n\nSOCIALS:\n  / thecodercoder  \n  / thecodercoder  \n\n_____________________\n\n0:00 - the display property\n0:27 - block elements\n1:59 - inline elements\n4:59 - block vs inline\n7:50 - inline-block\n13:06 - display: none\n13:44 - Layout Modes\n\n#css #javascript #html",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Edw1WTOV6gs",
        "title": "CSS margin collapse explained",
        "publishedAt": "2 months ago",
        "durationSeconds": 566,
        "views": 2183,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "What causes margin collapse in CSS, and how to prevent it from happening.\n\n💥 Get 20% off 1-yr of Frontend Mentor Pro with my code JESSCHAN20 -- https://www.frontendmentor.io/?via=jesschan...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZaiIDH0qp1c",
        "title": "CSS box model explained (padding, border, margin)",
        "publishedAt": "3 months ago",
        "durationSeconds": 1313,
        "views": 5933,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The CSS Box Model, explained for beginners: it includes the content, padding, border, and margin of every element, and is the building block of every website.\n\n💥 Get 20% off 1 year of Frontend...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lWEKiak0WVU",
        "title": "VS Code for Absolute Beginners",
        "publishedAt": "4 months ago",
        "durationSeconds": 2908,
        "views": 135627,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to install and use the free code editor, VS Code with this beginner-friendly, step-by-step tutorial to learning and customizing VSCode.\n\n💥 Get 20% off 1 yr of Frontend Mentor Pro...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wGVOtu0DoKk",
        "title": "Build a responsive website with HTML, CSS, JS (Course)",
        "publishedAt": "5 months ago",
        "durationSeconds": 10084,
        "views": 27625,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How to build a responsive website with HTML, CSS, and JavaScript (first 3 hours of my course)\n\n💥 Build a Responsive Website -- Learn how to build a website from scratch -- https://coder-coder.co...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LMyPiH1_Fkw",
        "title": "How marketing websites get made in the real world",
        "publishedAt": "7 months ago",
        "durationSeconds": 640,
        "views": 8783,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💥 My updated and re-recorded course is launching on Black Friday. Sign up to get emailed when it goes live: https://coder-coder.com/responsive/#enroll\n\n____________\n\n💻  LEARN TO CODE...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KK0H14u5DNk",
        "title": "My process building websites from scratch | ambient ASMR coding",
        "publishedAt": "8 months ago",
        "durationSeconds": 1370,
        "views": 7398,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💥 Get 10% off Frontend Mentor Pro with my code JESSCHAN10 -- https://www.frontendmentor.io/?via=jesschan\n\nWatch the full video on my second channel: https://www.youtube.com/watch?v=_0noaNi051k...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "j3PC7UKxgdQ",
        "title": "How to actually get good at web development",
        "publishedAt": "8 months ago",
        "durationSeconds": 465,
        "views": 44838,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How to actually remember the skills you're learning when you are learning to code.\n\n💥 Get 10% off Frontend Mentor Pro with my code JESSCHAN10 -- https://www.frontendmentor.io/?via=jesschan...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "oS7IVUwQniM",
        "title": "How I built a super fast minimal WordPress blog",
        "publishedAt": "10 months ago",
        "durationSeconds": 982,
        "views": 2851,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Host your website with SiteGround and get over 80% off your first year: https://www.siteground.com/go/0055sqss9d\n\n\n.-=-._.-=-  MY WEB DEV COURSE  -=-._.-=-.\n\n🔶 Responsive Design for...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lQrcQ3e4mkA",
        "title": "Web Development Roadmap for Beginners (all FREE resources!)",
        "publishedAt": "1 year ago",
        "durationSeconds": 937,
        "views": 162595,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how you can become a web developer for free! This beginner-friendly roadmap covers all the skills you need, step-by-step.\n\n💻  LEARN TO CODE  💻\n\nMY COURSE:\n🟢 Responsive Design...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "93rqHdAgNYA",
        "title": "How do domain names and web hosting work?",
        "publishedAt": "1 year ago",
        "durationSeconds": 455,
        "views": 9062,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Host your website with SiteGround: https://www.siteground.com/go/t8a5csqcyh\n\n____________________________\n\n⌨️ Learn how to build a responsive website from a Figma design with HTML,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "k1JHKN3ykSA",
        "title": "How to handle client web hosting as a freelance web developer",
        "publishedAt": "1 year ago",
        "durationSeconds": 1392,
        "views": 55595,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Host your website with SiteGround: https://www.siteground.com/go/tyeni7ok2n\n\nResources mentioned:\n🟢 CodeStitch business model -- https://codestitch.app/complete-guide-to-freelancing#busines...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LVXUTvJnFYQ",
        "title": "How I set up my Sass projects",
        "publishedAt": "1 year ago",
        "durationSeconds": 1395,
        "views": 13066,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Learn how to build a responsive website from a Figma design with HTML, Sass/SCSS, JS ➡️ https://coder-coder.com/responsive/\n\n📌 Resources:\n🔵 Source code: https://github.com/thecoderco...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dfczbF47Vqg",
        "title": "My favorite resources and tools for coding",
        "publishedAt": "1 year ago",
        "durationSeconds": 1171,
        "views": 29075,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Learn how to build a responsive website from a Figma design with HTML, Sass/SCSS, JS ➡️ https://coder-coder.com/responsive/\n\n😎 Join the Coder Coder Club for $5/mth and get sneak...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Pj7wPjFRWC4",
        "title": "My process building websites from a design | HTML & CSS | ASMR coding",
        "publishedAt": "1 year ago",
        "durationSeconds": 1461,
        "views": 147575,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Learn how to build a responsive website from a Figma design with HTML, Sass/SCSS, JS ➡️ https://coder-coder.com/responsive/\n\n😎 Join the Coder Coder Club and support the channel...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vQDgoQKfdzM",
        "title": "How to make your website responsive",
        "publishedAt": "1 year ago",
        "durationSeconds": 2353,
        "views": 96983,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻  LEARN TO CODE  💻\n\nMY COURSE:\n🟢 Responsive Design for Beginners -- Learn how to build a website from scratch -- https://coder-coder.com/responsive\n\nRECOMMENDED RESOURCES:\nTools and...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6l24PIccgqU",
        "title": "How to make full bleed wrappers with CSS grid",
        "publishedAt": "1 year ago",
        "durationSeconds": 2378,
        "views": 23568,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Learn how to build a responsive website from a Figma design with HTML, Sass/SCSS, JS ➡️ https://coder-coder.com/responsive/\n\n😎 Join the Coder Coder Club and get sneak peeks of videos:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fjrNeojb7to",
        "title": "Simple design tips for developers",
        "publishedAt": "1 year ago",
        "durationSeconds": 1862,
        "views": 15969,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Learn how to build a responsive website from a Figma design with HTML, SCSS, JS ➡️ https://coder-coder.com/responsive/\n\n0:00 - Intro\n0:33 - Choosing a color palette\n8:22 - Choosing...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xCSw6bPXZks",
        "title": "Please stop using px for font-size.",
        "publishedAt": "1 year ago",
        "durationSeconds": 918,
        "views": 267116,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Learn how to build a responsive website from a Figma design with HTML, SCSS, JS ➡️ https://coder-coder.com/responsive/\n\n😎 Join the Coder Coder Club for $5/mth and get sneak peeks...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9aPvQyGBAQs",
        "title": "Building a responsive website with Framer",
        "publishedAt": "1 year ago",
        "durationSeconds": 3014,
        "views": 16858,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 My course is out now! ➡️ https://coder-coder.com/responsive/\n\nMentioned in the video:\n@theannahickman -- https://www.youtube.com/watch?v=8lEOmKxWKig\nFrontendMentor.io -- https://www.fronte...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pBv7igaxfQE",
        "title": "How to build an accessible hamburger menu with HTML, SCSS & JS",
        "publishedAt": "2 years ago",
        "durationSeconds": 805,
        "views": 44121,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👕 NEW! Coder Coder Merch: https://coder-coder.com/merch\n\n🔥 My course: Responsive Design for Beginners! https://coder-coder.com/responsive/\n\nIn this video, I show you how to build an animated...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 9,
      "uploadsLast90d": 12,
      "uploadCadenceWeekly": 0.93,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 3210,
      "viewsPerVideoP90Last90d": 4080,
      "viewVelocityTrend": "rising"
    },
    "performanceBaseline": {
      "p50Views": 3210,
      "p90Views": 4080,
      "p99Views": 5933,
      "outperformingVideosLast90d": 3
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "web-services",
          "confidence": 0.3,
          "evidence": [
            "topic-pillar:website",
            "topic-pillar:web development"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "coder-coder.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.9,
        "evidenceVideoIds": [
          "So3k6YNmCOI",
          "8MrggH3yLH8",
          "abBbZK5L7iU",
          "Br0nQZp2Emk",
          "J_3IN6js294"
        ]
      },
      {
        "label": "responsive",
        "share": 0.8,
        "evidenceVideoIds": [
          "So3k6YNmCOI",
          "8MrggH3yLH8",
          "abBbZK5L7iU",
          "Br0nQZp2Emk",
          "J_3IN6js294"
        ]
      },
      {
        "label": "com",
        "share": 0.8,
        "evidenceVideoIds": [
          "So3k6YNmCOI",
          "8MrggH3yLH8",
          "abBbZK5L7iU",
          "Br0nQZp2Emk",
          "J_3IN6js294"
        ]
      },
      {
        "label": "website",
        "share": 0.77,
        "evidenceVideoIds": [
          "So3k6YNmCOI",
          "8MrggH3yLH8",
          "abBbZK5L7iU",
          "Br0nQZp2Emk",
          "J_3IN6js294"
        ]
      },
      {
        "label": "learn",
        "share": 0.73,
        "evidenceVideoIds": [
          "So3k6YNmCOI",
          "8MrggH3yLH8",
          "abBbZK5L7iU",
          "Br0nQZp2Emk",
          "J_3IN6js294"
        ]
      },
      {
        "label": "web development",
        "share": 0.07,
        "evidenceVideoIds": [
          "j3PC7UKxgdQ",
          "lQrcQ3e4mkA"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "moderate",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 45,
      "reason": "growth rising last 90d x fits web-services",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.85
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.5
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "rising 90d view velocity + fits web-services. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Coder Coder — 0.5M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 45,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.65,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "web-services",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "8a10d91c89964a73a17ebf923fe39db9e3409142f049a17d696f4447832dabc0",
      "inputsHash": "8acda35a2d22bca40ca3d2fd6fd923cd63daa19b90565e2768fd4ef8974b3ab6",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-rising",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:01.454Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "57c364eb3b73ac88be9d299fe08b375aedd2798356b35ae7f835b36571ad8a84",
    "channelId": "UCeU-1X402kT-JlLdAitxSMA",
    "channelHandle": "@FlorinPop",
    "channelName": "Florin Pop",
    "channelUrl": "https://www.youtube.com/@FlorinPop",
    "description": "I like building fun stuff. On my way to making $1m.\n\n 🔔 Subscribe and stay tuned!",
    "joinDate": null,
    "location": null,
    "subscribers": 170000,
    "totalVideos": 160,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/iaLfnJpWDypS9e-w-bjFI8d0Scfh0cn8LMlw2QPe2wrKDt4bBhaTQIkadsfe9NYMFmrJ4KIt=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "florin-pop.com",
        "url": "https://florin-pop.com"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/florinpop17"
      }
    ],
    "recentVideos": [
      {
        "videoId": "1p9Ni-5xKK4",
        "title": "I was tired of building alone... then I found this",
        "publishedAt": "6 months ago",
        "durationSeconds": 231,
        "views": 1365,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Tuple for free for 2 weeks at https://tuple.app/florin and use code FLORIN for 90% off your team's first 2 months post-trial.\n\nBuilding alone can be tough - the endless debugging, overthinking, and lack of feedback. I’ve been there. In this video, I share how working with my friend Mihai completely changed the way I build, and how a tool called Tuple made it feel like we were coding side by side again.\n\nIf you’ve ever felt stuck or lonely while building something on your own, this one’s for you.\nTuple made remote collaboration feel human again.\n\n👇 Socials\nWebsite: https://florin-pop.com\nX (Twitter): https://x.com/florinpop17\n\n#buildinpublic #indiehackers #entrepreneur",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "FzZhaziNfnU",
        "title": "Best platform to learn coding!",
        "publishedAt": "1 year ago",
        "durationSeconds": 352,
        "views": 4455,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I found the best place to learn programming, especially if you’re into gaming and as competitive as I am! 😄\nCheck out: https://boot.dev/?promo=florin (use code FLORIN for 25% off)\n\n👇 Socials\nBlog: https://florin-pop.com\nX (Twitter): https://x.com/florinpop17\n\n#buildinpublic #indiehackers #entrepreneur",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "BczCppr8b7E",
        "title": "I Sold My First SaaS for $50,000",
        "publishedAt": "1 year ago",
        "durationSeconds": 357,
        "views": 7978,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Here’s the full story of how I took my first SaaS (iCodeThis) from idea to building it, growing it, and eventually selling it for $50,000\n\nLearn backend: https://Boot.dev/?promo=florin (use code FLORIN for 25% off)\n\nCheck out my $1m progress: https://florin-pop.com/one-million/ \nGamified Time-tracking app: https://indieaction.club\n\n👇 Socials\nBlog: https://florin-pop.com\nX (Twitter): https://x.com/florinpop17\n\nTimeline\n00:00 - intro\n00:19 - How it started\n01:08 - Growing the platform\n02:16 - Monetizing\n03:21 - Selling iCodeThis\n04:50 - What's next?\n\n#buildinpublic #indiehackers #entrepreneur",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vcT9kMp7xJA",
        "title": "How I Built Multiple Income Streams as a Developer ($300k in Revenue)",
        "publishedAt": "1 year ago",
        "durationSeconds": 409,
        "views": 3127,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, I share my progress on the challenge to build $1 million in revenue in the next decade. Over the past 5 years, I’ve built several income streams as a developer, earning over $300k. Join me as I reflect on the milestones I’ve reached so far, the lessons I’ve learned, and what’s next in my journey to $1 million!\n\n👇 Projects\n$1m grid: https://www.florin-pop.com/one-million/\nIndie Action Club: https://indieaction.club/\niCodeThis: https://icodethis.com/\nCoding Course: https://www.udemy.com/course/50-proje...\neBook: https://florinpop17.gumroad.com/l/mak...\n\n👇 Socials\nBlog: https://florin-pop.com\nX (Twitter): https://x.com/florinpop17\n\nTimeline\n00:00 - Intro\n00:38 - My history as a developer\n02:09 - Income Source 1: YouTube\n03:03 - Income Source 2: Coding Course\n03:40 - Income Source 3: eBook\n04:05 - Income Source 4: iCodeThis SaaS\n04:42 - Income Source 5: Twitter Ads\n05:03 - Income Source 6: $1m Grid\n05:28 - Income Source 7: Indie Action Club\n05:45 - Future plans\n\nP.S. I originally posted this video on another channel at the end of last year (when the events occurred), but I also decided to upload it to this channel and continue the challenge here. ☺️\n\n#buildinpublic #indiehackers #entrepreneur",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "68wLlP1Z_eo",
        "title": "How One Simple Idea Made $2,000 in 2 Days",
        "publishedAt": "1 year ago",
        "durationSeconds": 409,
        "views": 5173,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This is the story of how I launched and monetized a simple idea without even planning to, and it has already made $2000 in two days!\n\nCheck out my $1m grid: https://www.florin-pop.com/one-million/ \nGrid source code: https://github.com/florinpop17/income...\n\nP.S. I originally posted this video on another channel at the end of last year (when the events occurred), but I also decided to upload it to this channel and continue the challenge here. ☺️\n\n👇 Socials\nBlog: https://florin-pop.com\nX (Twitter): https://x.com/florinpop17\n\n#buildinpublic #indiehackers #entrepreneur",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MLS8MHwM4ig",
        "title": "I'm Doing the $1m Challenge (as a developer)",
        "publishedAt": "1 year ago",
        "durationSeconds": 100,
        "views": 5880,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I'm taking on a challenge to make $1,000,000 as an indie hacker in the next decade by building projects and monetizing them. Will document the entire journey on this YouTube channel.\n\nYou can see how much money I have made so far on the $1m grid: https://florin-pop.com/one-million\n\nP.S. I started this challenge back in August 2024 and initially posted a few videos on a new YouTube channel (this one included), but after thinking about it, I decided that it's better to do the challenge on this channel as more people might benefit from seeing it. ☺️\n\n---\nFollow me on:\n📃 Website/Blog: https://florin-pop.com\n👉 Twitter:   / florinpop17",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "icE-23PGgu8",
        "title": "This Animation is Ridiculously Simple 🤯",
        "publishedAt": "1 year ago",
        "durationSeconds": 214,
        "views": 6986,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "While building my blog I found this elegant animation and in this video, I will show you how to recreate it from scratch using HTML, CSS, and a little bit of JavaScript.\n\n👉 The live preview on blog: https://florin-pop.com\n\n👉 Source code: https://icodethis.com/code/3860/?ref=...\n\n---\nFollow me on:\n📃 Website/Blog: https://florin-pop.com\n👉 Twitter:   / florinpop1705  \n👉 Twitch:   / florinpop17  \n👉 Linkedin:   / florinpop17  \n👉 Instagram:   / florinpop17",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "aaMfTpow_X0",
        "title": "Build a Real-time Voting App with React",
        "publishedAt": "1 year ago",
        "durationSeconds": 1199,
        "views": 5782,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I always found it fascinating to play around with real-time functionality! In this video, you'll learn how to build a voting app with real-time functionalities using React and Appwrite.\n\n👉 Appwrite: https://apwr.dev/florinpop\n👉 Docs: https://appwrite.io/docs/apis/realtime\nGitHub repo: https://github.com/florinpop17/realtime\n\n🎥 Setup Vite +: Tailwind:    • Build a CRUD app with React, Tailwind and ...  \n\n👉 Daily Coding Challenges: https://iCodeThis.com/?ref=ytb-realti...\n\n---\nFollow me on:\n📃 Website/Blog: https://florin-pop.com\n👉 Twitter:   / florinpop1705  \n👉 Twitch:   / florinpop17  \n👉 Linkedin:   / florinpop17  \n👉 Instagram:   / florinpop17",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rd6sMmf0fcA",
        "title": "Adding Authentication to a React App",
        "publishedAt": "1 year ago",
        "durationSeconds": 1279,
        "views": 916,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, you'll learn how to quickly add GitHub authentication to your React application.\n\n👉 Appwrite: https://apwr.dev/florinpop\n🎥 Previous video:    • Build a CRUD app with React, Tailwind and ...  \nGitHub repo: https://github.com/florinpop17/user-s...\n\n👉 Daily Coding Challenges: https://iCodeThis.com/?ref=ytb-github...\n\n---\nFollow me on:\n📃 Website/Blog: https://florin-pop.com\n👉 Twitter:   / florinpop1705  \n👉 Twitch:   / florinpop17  \n👉 Linkedin:   / florinpop17  \n👉 Instagram:   / florinpop17",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7MjF70xUcXs",
        "title": "Build a CRUD app with React, Tailwind and Appwrite",
        "publishedAt": "1 year ago",
        "durationSeconds": 1561,
        "views": 3413,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Let's build a CRUD (Create, Read, Update, Delete) Suggestions app using React, TailwindCSS and Appwrite for our backend / database.\n\n👉 Appwrite: https://apwr.dev/florinpop\n🎥 Adding authentication video:    • Adding Authentication to a React App  \nGitHub repo: https://github.com/florinpop17/user-s...\n\n👉 Daily Coding Challenges: https://iCodeThis.com/?ref=ytb-crud-app\n\n---\nFollow me on:\n📃 Website/Blog: https://florin-pop.com\n👉 Twitter:   / florinpop1705  \n👉 Twitch:   / florinpop17  \n👉 Linkedin:   / florinpop17  \n👉 Instagram:   / florinpop17",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qiUMlrSkXyw",
        "title": "How I made $48,000 building a SaaS (Software as a Service)",
        "publishedAt": "2 years ago",
        "durationSeconds": 516,
        "views": 8817,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Over the last year, I built a SaaS that generated $48,000 in revenue (so far). Here are the 10 lessons that I learned along the way.\n\n👉 Daily Coding Challenges: https://iCodeThis.com/?ref=ytb-my...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "aX4001ajnTo",
        "title": "Build a Complete Personal Portfolio Website with HTML and TailwindCSS",
        "publishedAt": "2 years ago",
        "durationSeconds": 2058,
        "views": 3642,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 BF Sale - Get 85% Off Your Hosting: https://hostinger.com/florinpop (use code FLORINPOP at checkout for extra discount)\n\n👉 Project Preview (and code for PRO members): https://iCodeThis.com/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kr5nR6qHScA",
        "title": "Button on Input - CSS Position Tutorial",
        "publishedAt": "2 years ago",
        "durationSeconds": 211,
        "views": 28263,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ever wondered how to put a button right on top of an input field using CSS? Well, this video is your ticket! We'll dive into the basics of CSS positioning, making it super easy and fun to learn...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "BjeoJu6agQk",
        "title": "🔥 Modern Border Animation | CSS Only",
        "publishedAt": "3 years ago",
        "durationSeconds": 132,
        "views": 21632,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to create this cool input border animation using only CSS (and a bit of HTML) in less than 2 minutes!\n\n👉 Daily Coding Challenges: https://iCodeThis.com/?ref=ytb-css-borderAnimation...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JLaq0x9GbbY",
        "title": "New Supabase Storage Feature?! 🤩 ReactJS + Uppy Demo Project",
        "publishedAt": "3 years ago",
        "durationSeconds": 175,
        "views": 5732,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Supabase is my go-to when it comes to dealing with Auth, storage, and database in a ReactJS / NextJS app! It's so easy to get it up and running!\n\nIn this video, I'm showing you how to add use...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "r_PL0K2fGkY",
        "title": "Build a Popup with JavaScript | 1-Minute Tutorial",
        "publishedAt": "3 years ago",
        "durationSeconds": 68,
        "views": 76604,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Daily Coding Challenges: https://iCodeThis.com\n\nLet's learn how to quickly build a modal (popup) in HTML, CSS and JavaScript.\n\n---\nTimestamps:\n00:00 - The HTML\n00:18 - The CSS\n00:43 -...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MjcSBu7HAD8",
        "title": "50 Projects - HTML, CSS, JavaScript",
        "publishedAt": "3 years ago",
        "durationSeconds": 128,
        "views": 33535,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get the course: https://www.udemy.com/course/50-projects-50-days/?couponCode=50PROJECTSNOV2022\n\nThis course was created with @TraversyMedia and it contains 50 projects built with HTML, CSS,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4bnJG2UDr9A",
        "title": "FlowBite - Tailwind CSS components library | Walkthrough",
        "publishedAt": "4 years ago",
        "durationSeconds": 1631,
        "views": 61799,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "FlowBite is a Tailwind CSS components library and in this video, I'm going to try it out by building a landing page with these components.\n\nTry FlowBite: https://flowbite.com/docs/getting-started/i...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sZ0bZGfg_m4",
        "title": "Movies App - React Project",
        "publishedAt": "5 years ago",
        "durationSeconds": 2552,
        "views": 179330,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Daily Coding Challenges: https://iCodeThis.com/?ref=ytb-react-movie\n\nIn this video we're going to take the Movies App we've built in the \"10 JavaScript Projects in 10 Hours\" Coding Challenge...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Rz-rey4Q1bw",
        "title": "Building 10 Websites - From Design to HTML and CSS - Coding Challenge 🔥",
        "publishedAt": "5 years ago",
        "durationSeconds": 13641,
        "views": 299653,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Daily Coding Challenges: https://iCodeThis.com/?ref=ytb-10web\n\nMy friend @Adrian Twarog who is a Designer and a fellow YouTuber decided to do a design challenge: \"10 Designs in 1 Hour\"....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8GPPJpiLqHk",
        "title": "10 JavaScript Projects in 1 Hour - Coding Challenge 🔥",
        "publishedAt": "5 years ago",
        "durationSeconds": 3671,
        "views": 271140,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Daily Coding Challenges: https://iCodeThis.com/?ref=ytb-1h\n\nLast week I completed the \"10 Projects in 10 Hours\" Coding Challenge. This week I challenged myself to go one step further and...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dtKciwk_si4",
        "title": "10 JavaScript Projects in 10 Hours - Coding Challenge 🔥",
        "publishedAt": "5 years ago",
        "durationSeconds": 33429,
        "views": 2909425,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Daily Coding Challenges: https://iCodeThis.com/?ref=ytb-10h10p\n\nI challenged myself to create 10 Projects in 10 Hours using Vanilla JavaScript, CSS, and HTML. \n\nProjects timeline:\n0:00:00...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XH5OW46yO8I",
        "title": "Create a Modal (Popup) with HTML/CSS and JavaScript",
        "publishedAt": "6 years ago",
        "durationSeconds": 601,
        "views": 155984,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Daily Coding Challenges: https://iCodeThis.com/?ref=ytb-modal\n\nIn this tutorial, we're going to learn how to build a #Modal / #Popup using HTML, CSS, and a little bit of #JavaScript to...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "d3TJbWvfSgw",
        "title": "flat Array Method | JavaScript Tutorial",
        "publishedAt": "6 years ago",
        "durationSeconds": 123,
        "views": 16036,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Daily Coding Challenges: https://iCodeThis.com/?ref=ytb-js-flat\n\nIn this tutorial we're going to learn about the #flat #JavaScript #Array Method and how it can be used to create a new...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IXp06KekEjM",
        "title": "reduce Array Method | JavaScript Tutorial",
        "publishedAt": "6 years ago",
        "durationSeconds": 498,
        "views": 45585,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Daily Coding Challenges: https://iCodeThis.com/?ref=ytb-js-reduce\n\nIn this tutorial we're going to learn about the #reduce #JavaScript #Array Method and how it can be used to execute a...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mJGv12UHqXc",
        "title": "filter Array Method | JavaScript Tutorial",
        "publishedAt": "6 years ago",
        "durationSeconds": 297,
        "views": 69199,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Daily Coding Challenges: https://iCodeThis.com/?ref=ytb-js-filter\n\nIn this tutorial we're going to learn about the #filter #JavaScript #Array Method and how it can be used to create a...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eQKo-_ftNbE",
        "title": "isArray Array Method | JavaScript Tutorial",
        "publishedAt": "6 years ago",
        "durationSeconds": 76,
        "views": 11900,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Daily Coding Challenges: https://iCodeThis.com/?ref=ytb-js-isArr\n\nIn this tutorial we're going to learn about the #isArray #JavaScript #Array Method and how it can be used to check if...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qS79OIceQ7k",
        "title": "from Array Method | JavaScript Tutorial",
        "publishedAt": "6 years ago",
        "durationSeconds": 245,
        "views": 21944,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Daily Coding Challenges: https://iCodeThis.com/?ref=ytb-js-arrFrom\n\nIn this tutorial we're going to learn about the #from #JavaScript #Array Method and how it can be used to convert a...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fwpSme-VPp0",
        "title": "findIndex Array Method | JavaScript Tutorial",
        "publishedAt": "6 years ago",
        "durationSeconds": 114,
        "views": 22824,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Daily Coding Challenges: https://iCodeThis.com/?ref=ytb-js-findIndex\n\nIn this tutorial we're going to learn about the #findIndex #JavaScript #Array Method and how it can be used to find...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8SkHWeDoTf0",
        "title": "find Array Method | JavaScript Tutorial",
        "publishedAt": "6 years ago",
        "durationSeconds": 204,
        "views": 59099,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Daily Coding Challenges: https://iCodeThis.com?ref=ytb-js-find\n\nIn this tutorial we're going to learn about the #find #JavaScript #Array Method and how it can be used to find and return...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [
        "Checkout for extra discount"
      ],
      "affiliateLinkHosts": [
        "icodethis.com"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": "2024-05-14",
      "detectionDetail": [
        {
          "brand": "Checkout for extra discount",
          "videoId": "aX4001ajnTo",
          "confidence": 0.7,
          "evidence": "description: use code FLORINPOP at checkout for extra discount",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:02.406Z"
        }
      ]
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 1,
        "firstSponsoredVideoDate": "2026-05-14"
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "florin-pop.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.93,
        "evidenceVideoIds": [
          "1p9Ni-5xKK4",
          "FzZhaziNfnU",
          "BczCppr8b7E",
          "vcT9kMp7xJA",
          "68wLlP1Z_eo"
        ]
      },
      {
        "label": "com",
        "share": 0.93,
        "evidenceVideoIds": [
          "1p9Ni-5xKK4",
          "FzZhaziNfnU",
          "BczCppr8b7E",
          "vcT9kMp7xJA",
          "68wLlP1Z_eo"
        ]
      },
      {
        "label": "icodethis",
        "share": 0.73,
        "evidenceVideoIds": [
          "BczCppr8b7E",
          "vcT9kMp7xJA",
          "icE-23PGgu8",
          "aaMfTpow_X0",
          "rd6sMmf0fcA"
        ]
      },
      {
        "label": "coding",
        "share": 0.7,
        "evidenceVideoIds": [
          "1p9Ni-5xKK4",
          "FzZhaziNfnU",
          "vcT9kMp7xJA",
          "aaMfTpow_X0",
          "rd6sMmf0fcA"
        ]
      },
      {
        "label": "ref",
        "share": 0.6,
        "evidenceVideoIds": [
          "icE-23PGgu8",
          "aaMfTpow_X0",
          "rd6sMmf0fcA",
          "7MjF70xUcXs",
          "qiUMlrSkXyw"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "D",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 32,
      "reason": "tier D composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.6,
      "level": "medium",
      "coldStart": false
    },
    "whyThisMatters": "Tier D — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "Last sponsored video 730 days ago — within typical sponsorship-decision lookback for similar creators.",
    "respondWithinDays": 30,
    "failureType": null,
    "summary": "Florin Pop — 0.2M subs, D-tier sponsorship readiness, low contactability, respond within 30 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 32,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.78,
      "urgency": 0,
      "noiseRisk": 0.4
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mid-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mid"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mid-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "none"
    },
    "benchmarkRange": {
      "creatorTier": "mid",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "5-12%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mid-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "ignore",
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "late",
      "reason": "Last sponsored video 730 days ago; past typical 14-30d decision-cycle for similar creators.",
      "decayRisk": 0.9
    },
    "relativePosition": null,
    "disqualificationAnalysis": {
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "gaps": [
        "tier:D",
        "contactability:low"
      ]
    },
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "57c364eb3b73ac88be9d299fe08b375aedd2798356b35ae7f835b36571ad8a84",
      "inputsHash": "492331e0b36abfe69e5a9caaf4d6ca2f7d30491c6e2c361ffe8ada4bd8c8c417",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:01.567Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "a6edc50d4972707d10b11202f078724fc6ccb8b40643c4cd944e55af2d3c5913",
    "channelId": "UC-T8W79DN6PBnzomelvqJYw",
    "channelHandle": "@JamesQQuick",
    "channelName": "James Q Quick",
    "channelUrl": "https://www.youtube.com/@JamesQQuick",
    "description": "I publish weekly videos about Web Development!  I am constantly learning the latest and greatest in Web Development and am excited to help you do the same.",
    "joinDate": null,
    "location": null,
    "subscribers": 207000,
    "totalVideos": 762,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/GJHAeZ84wUut2sYiR7KdGOS_P8erXg_EeSsXV0QYyhjMtBIy-4doMzTG07qRiEBrgoJsiNv3Jg=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "jamesqquick.com",
        "url": "https://www.jamesqquick.com/"
      },
      {
        "platform": "twitter",
        "url": "https://www.twitter.com/jamesqquick"
      },
      {
        "platform": "compressed.fm",
        "url": "https://compressed.fm/"
      },
      {
        "platform": "tiktok",
        "url": "https://www.tiktok.com/@jamesqquick"
      },
      {
        "platform": "learnbuildteach.com",
        "url": "https://learnbuildteach.com/"
      }
    ],
    "recentVideos": [
      {
        "videoId": "hgOJH9bp75k",
        "title": "What Everyone Missed About Emdash, Cloudflare's Wordpress Alternative",
        "publishedAt": "1 month ago",
        "durationSeconds": 633,
        "views": 5600,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Cloudflare just dropped EmDash, their AI-native, open-source WordPress alternative, and you might have missed the most important part.\n\nIt's not the Astro-powered theming. It's not the AI-native CMS features. It's Dynamic Workers, the isolated runtime that completely rethinks how plugins work. Instead of giving plugins access to your entire site (database, theme, media), EmDash runs each plugin in a sandboxed V8 isolate with only the permissions you explicitly grant. And the implications for AI-generated code are massive.\n\nLinks & Resources\nEmDash Blog Post - https://blog.cloudflare.com/emdash-wo...\nDynamic Workers Documentation - https://developers.cloudflare.com/dyn...\nCraig Dennis - Building Secure Apps with Dynamic Workers -    • Build secure apps with Dynamic Workers  \n\n*Newsletter*\nNewsletter 🗞 - https://www.jamesqquick.com/newsletter\nFollow me on Twitter 🐦 -   / jamesqquick  \n\nTimestamps / Chapters\n\n0:00 Intro — The feature everyone overlooked\n0:37 What is M Dash?\n1:38 Powered by Astro\n2:49 AI-native CMS features\n3:56 WordPress plugin security problem\n4:57 How Dynamic Workers fix it\n6:28 V8 isolates & sub-5ms startup\n7:40 AI code mode & vibe coding\n8:52 Craig Dennis's Dynamic Workers demo\n9:57 Final thoughts & what's next",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "G7PWm_I4NPA",
        "title": "I stand by what I said...mostly!",
        "publishedAt": "7 months ago",
        "durationSeconds": 328,
        "views": 1297,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "My response to a response.\n\nResponse tweet with awesome video - https://x.com/bookercodes/status/1970...\n\nMastra AI - https://mastra.ai/\n\n*Newsletter*\nNewsletter 🗞 - https://www.jamesqquick.com/newsletter\n\n*DISCORD*\nJoin the Learn Build Teach Discord Server 💬 -   / discord  \n\nFollow me on Twitter 🐦 -   / jamesqquick  \nCheck out the Podcast - https://compressed.fm/\nCourses - https://jamesqquick.com/courses\n\n*QUESTIONS ABOUT MY SETUP*\nCheck out my Uses page for my VS Code setup, what recording equipment I use, etc.  https://www.jamesqquick.com/uses",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RQrnXE8JyVI",
        "title": "2 Years Later...I'm Shocked!",
        "publishedAt": "10 months ago",
        "durationSeconds": 703,
        "views": 2454,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I tried v0 for the first time in 2 years and I'm blown away!\n\nCheck out v0 - https://v0.dev/\n\n*Newsletter*\nNewsletter 🗞 - https://www.jamesqquick.com/newsletter\n\n*DISCORD*\nJoin the Learn Build Teach Discord Server 💬 -   / discord  \n\nFollow me on Twitter 🐦 -   / jamesqquick  \nCheck out the Podcast - https://compressed.fm/\nCourses - https://jamesqquick.com/courses\n\n*QUESTIONS ABOUT MY SETUP*\nCheck out my Uses page for my VS Code setup, what recording equipment I use, etc.  https://www.jamesqquick.com/uses",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "iJSdCAuXC7s",
        "title": "RenderATL 2025 Recap",
        "publishedAt": "10 months ago",
        "durationSeconds": 378,
        "views": 493,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Had such an amazing time at RenderATL!\n\n*Newsletter*\nNewsletter 🗞 - https://www.jamesqquick.com/newsletter\n\n*DISCORD*\nJoin the Learn Build Teach Discord Server 💬 -   / discord  \n\nFollow me on Twitter 🐦 -   / jamesqquick  \nCheck out the Podcast - https://compressed.fm/\nCourses - https://jamesqquick.com/courses\n\n*QUESTIONS ABOUT MY SETUP*\nCheck out my Uses page for my VS Code setup, what recording equipment I use, etc.  https://www.jamesqquick.com/uses",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vGclr9p1oqg",
        "title": "Here's the Product I've Been Working For",
        "publishedAt": "11 months ago",
        "durationSeconds": 608,
        "views": 1865,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I started working at Makeswift in October. Makeswift is a visual builder that integrates with Next.js. You can do lots of work visually then build custom React components to take it to the next level.\n\nMakeswift and Contentful Workshop - https://github.com/jamesqquick/makesw...\n\nMakeswift - https://www.makeswift.com/\nVIBES - https://vibes.site/\n\n*Newsletter*\nNewsletter 🗞 - https://www.jamesqquick.com/newsletter\n\n*DISCORD*\nJoin the Learn Build Teach Discord Server 💬 -   / discord  \n\nFollow me on Twitter 🐦 -   / jamesqquick  \nCheck out the Podcast - https://compressed.fm/\nCourses - https://jamesqquick.com/courses\n\n*QUESTIONS ABOUT MY SETUP*\nCheck out my Uses page for my VS Code setup, what recording equipment I use, etc.  https://www.jamesqquick.com/uses",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RUvEfDubBa4",
        "title": "The Future of My Channel",
        "publishedAt": "11 months ago",
        "durationSeconds": 540,
        "views": 3435,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I haven't published a video in ~8 months! Let's talk about what's next for the channel!\n\nInterested in a FREE year subscription to Scrimba? Let me know why in the comments!\n\nNew Intro to Astro Course -  https://scrimba.com/intro-to-astro-c0...\n\nMakeswift - https://www.makeswift.com/\nCatalyst - https://www.catalyst.dev/\nVIBES - https://vibes.site/\n\n*Newsletter*\nNewsletter 🗞 - https://www.jamesqquick.com/newsletter\n\n*DISCORD*\nJoin the Learn Build Teach Discord Server 💬 -   / discord  \n\nFollow me on Twitter 🐦 -   / jamesqquick  \nCheck out the Podcast - https://compressed.fm/\nCourses - https://jamesqquick.com/courses\n\n*QUESTIONS ABOUT MY SETUP*\nCheck out my Uses page for my VS Code setup, what recording equipment I use, etc.  https://www.jamesqquick.com/uses",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2zV-BwOqTjg",
        "title": "MUCH BETTER Performance with Astro Server Islands",
        "publishedAt": "1 year ago",
        "durationSeconds": 1188,
        "views": 7112,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "My website is much faster now that I'm using Server Islands. Let's see how!\n\nSource Code - https://github.com/jamesqquick/astroc...\nFull Astro Course - https://astrocourse.dev/\n\nCheck out Xata for a FREE Postgres DB - https://xata.io/\n\n*Newsletter*\nNewsletter 🗞 - https://www.jamesqquick.com/newsletter\n\n*DISCORD*\nJoin the Learn Build Teach Discord Server 💬 -   / discord  \n\nFollow me on Twitter 🐦 -   / jamesqquick  \nCheck out the Podcast - https://compressed.fm/\nCourses - https://jamesqquick.com/courses\n\n*QUESTIONS ABOUT MY SETUP*\nCheck out my Uses page for my VS Code setup, what recording equipment I use, etc.  https://www.jamesqquick.com/uses\n\n*TIMESTAMPS*\n00:00 Introduction\n01:03 Applying Discounts\n02:47 URL Parameters\n05:05 Server Islands\n11:57 Database Integration\n18:35 Conclusion",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "FtbvREA8RD4",
        "title": "Build a Comma Separated Input Component in Next.js",
        "publishedAt": "1 year ago",
        "durationSeconds": 1628,
        "views": 3547,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn to build a comma separated input component in Next.js.\n\nDeals for Devs - https://dealsfordevs.com/\nGithub Repo - https://github.com/Learn-Build-Teach/...\n\n*Newsletter*\nNewsletter 🗞 - https://www.jamesqquick.com/newsletter\n\n*DISCORD*\nJoin the Learn Build Teach Discord Server 💬 -   / discord  \n\nFollow me on Twitter 🐦 -   / jamesqquick  \nCheck out the Podcast - https://compressed.fm/\nCourses - https://jamesqquick.com/courses\n\n*QUESTIONS ABOUT MY SETUP*\nCheck out my Uses page for my VS Code setup, what recording equipment I use, etc.  https://www.jamesqquick.com/uses\n\n*TIMESTAMPS*\n00:00 - Intro\n00:30 - Create a New Next.js Project\n02:00 - Basic Tailwind Styles\n04:45 - Creating the Form\n05:30 - The Comma Separated Input Component\n07:20 - Handling Input Change\n14:15 - Form Submission with Actions\n15:50 - Parsing Tags Input From FormData\n18:10 - Client-side JavaScript on Form Submission\n20:50 - Managing Many to Many Relationship in Prisma\n26:45 - Wrap Up",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TSW0Ybxs_bE",
        "title": "Next js Forms Crash Course (Zod, Actions, useFormState, Progressive Enhancement, and more!",
        "publishedAt": "1 year ago",
        "durationSeconds": 3870,
        "views": 18694,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn multiple ways to handle forms in Next.js including client and server-side validation with zod, using server actions, progressive enhancement, and more!\n\nCheck out Daily.dev - https://daily.dev/\n\nSource Code - https://github.com/jamesqquick/nextjs...\n\n*Newsletter*\nNewsletter 🗞 - https://www.jamesqquick.com/newsletter\n\n*DISCORD*\nJoin the Learn Build Teach Discord Server 💬 -   / discord  \n\nFollow me on Twitter 🐦 -   / jamesqquick  \nCheck out the Podcast - https://compressed.fm/\nCourses - https://jamesqquick.com/courses\n\n*QUESTIONS ABOUT MY SETUP*\nCheck out my Uses page for my VS Code setup, what recording equipment I use, etc.  https://www.jamesqquick.com/uses\n\n*TIMESTAMPS*\n00:00 - Intro\n00:30 - Github Repository Source Code\n01:10 - Create New Next.js Project\n02:30 - Creating the Basic Form\n04:30 - Built-in HTML Validation\n06:30 - Shoutout to Daily.dev\n08:00 - Creating the Form Action\n09:40 - Creating the Zod Schema\n13:35 - Validating Form Data\n15:00 - Defining a Return Type\n17:35 - Formatting Zod Errors\n21:00 - Displaying Results from Server Action\n26:15 - Showing Alerts with React Hot Toast\n29:00 - useFormState Hook\n34:30 - Submit Button with useFormStatus\n37:00 - Progressive Enhancement\n40:00 - Custom Client Side Validation\n52:15 - Combining Server and Client Side Errors\n53:45 - Testing Progressive Enhancement\n56:30 - React Hook Form\n1:03:30 - Wrap Up",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OTgGpovffNY",
        "title": "How to Build an Email Confirmation Workflow with Next.js, Resend, and Prisma",
        "publishedAt": "1 year ago",
        "durationSeconds": 3241,
        "views": 3810,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Let's create an email confirmation workflow using Next.js, Resend, Prisma, and Xata.\n\n** Resources **\nSource Code - https://github.com/jamesqquick/email-...\n\nXata - https://xata.io/\nResend - https://resend.com/\nPrisma - https://www.prisma.io/\n\nDeals for Devs - https://dealsfordevs.com/\n\n*Newsletter*\nNewsletter 🗞 - https://www.jamesqquick.com/newsletter\n\n*DISCORD*\nJoin the Learn Build Teach Discord Server 💬 -   / discord  \n\nFollow me on Twitter 🐦 -   / jamesqquick  \nCheck out the Podcast - https://compressed.fm/\nCourses - https://jamesqquick.com/courses\n\n*QUESTIONS ABOUT MY SETUP*\nCheck out my Uses page for my VS Code setup, what recording equipment I use, etc.  https://www.jamesqquick.com/uses\n\n** Timestamps **\n00:00 - Intro\n00:15 - What We'll Build\n04:45 - Build Email Subscribe Form\n08:15 - Creating the Subscribe Action\n14:00 - Prisma Setup\n15:15 - Database Setup with Xata\n18:15 - Creating the Subscriber in the DB\n25:10 - Adding Uniqueness to Emails\n29:00 - Resend Setup\n30:00 - Setup React Email\n31:00 - Creating the Confirmation Email with React Email Components\n34:20 - Running the React Email Dev Server\n36:40 - Sending the Confimation Email with Resend\n44:00 - Creating the Email Verification Logic\n48:40 - Adding an Error Component\n50:30 - Show Loading State in Form Button\n51:30 - Toast Notifications\n52:45 - Wrap Up",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wY8cRJJU6RQ",
        "title": "How to Build a Multi-Page Form in Next js (Server Actions, Zod, and Local Storage)",
        "publishedAt": "1 year ago",
        "durationSeconds": 4614,
        "views": 24983,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Forms are always harder than you think. Learn how to build a multi-page form in Next.js using Server Actions, Zod for validation, and Local Storage to maintain user state as they fill out a...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3uoQUAiGMlg",
        "title": "Prisma Schema Broke My Next.js Form",
        "publishedAt": "1 year ago",
        "durationSeconds": 441,
        "views": 1512,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I copied and pasted a Prisma schema and it broke my app.\n\nCheck out Deals for Devs - https://dealsfordevs.com/\nBuilt with Xata - https://xata.io/\n\n**Newsletter**\nNewsletter 🗞 - https://www.james...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SBL3dhKs21o",
        "title": "Image Upload Bug with React Dropzone (Simple Fix!)",
        "publishedAt": "1 year ago",
        "durationSeconds": 436,
        "views": 3286,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I launched a product and immediately found this bug in uploading images. Here's how I fixed it!\n\nCheck out Deals for Devs - https://www.dealsfordevs.com/\n\nThanks to Sentry for sponsoring! https://s...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "N2_wi90zib8",
        "title": "I Was Surprised How Next.js Cached My Server Components",
        "publishedAt": "1 year ago",
        "durationSeconds": 904,
        "views": 5536,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "After deploying my recent project, I learned a lot about how Next.js handles caching for server components.\n\nCheck out Daily.dev - https://daily.dev/\n\nThe latest deals for developers - https://deal...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Sfy64_wv7vM",
        "title": "Don't Overthink Authentication! (you might not need it!)",
        "publishedAt": "1 year ago",
        "durationSeconds": 448,
        "views": 3171,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Building secure applications does not always require implementing a traditional auth strategy. Here are 2 alternatives I've used recently.\n\nCheck out the latest deals for developers - https://deals...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "admW1izgnuM",
        "title": "Fix These 5 Things For Better Performance (\"Quick\" Reaction)",
        "publishedAt": "1 year ago",
        "durationSeconds": 726,
        "views": 2118,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Original Article - https://blog.sentry.io/5-easy-tips-to-improve-your-personal-website-performance/\n\nFollow Salma on Twitter - https://x.com/whitep4nth3r\n\n**Newsletter**\nNewsletter 🗞 - https://w...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rYmkOGOAY30",
        "title": "How I Solved Deploying Next.js to Vercel Using Prisma and Xata",
        "publishedAt": "1 year ago",
        "durationSeconds": 475,
        "views": 2577,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Here's how I solved a recent challenge with generated database types on my recent Next.js project using Prisma and Xata (Postgres DB).\n\nCheck out Deals for Devs - https://dealsfordevs.com/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kTceOl4qCm0",
        "title": "Astro Fixed Environment Variables!!",
        "publishedAt": "1 year ago",
        "durationSeconds": 625,
        "views": 3679,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Never struggle with environment variables again!\n\nAstro 4.10 Variables - https://astro.build/blog/astro-4100/#experimental-astroenv\n\n**Newsletter**\nNewsletter 🗞 - https://www.jamesqquick.com/new...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MZ5pgdjjXow",
        "title": "Should You Avoid Netlify, Vercel, and Cloudflare? (Quick Reaction)",
        "publishedAt": "1 year ago",
        "durationSeconds": 411,
        "views": 19162,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Should you be managing your own hosting instead of using hosting providers like Netlify, Vercel, an Cloudflare? I think not but this article suggests you should. \n\nThe Challenge with Netlify,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JxaOW3iDSS4",
        "title": "Deploying Next.js To AWS Just Got MUCH BETTER!",
        "publishedAt": "1 year ago",
        "durationSeconds": 764,
        "views": 22588,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out AWS Amplify - https://docs.amplify.aws/nextjs/start/quickstart/?trk=2adeabb9-e009-42c6-a765-bb106ee4807c&sc_channel=sm\n\nLet's try AWS Amplify Gen 2 by deploying a Next.js app.\n\n**Newslett...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8mIUIhp2YGQ",
        "title": "Astro Launches Actions Similar like Next.js (\"Quick\" Reaction)",
        "publishedAt": "1 year ago",
        "durationSeconds": 841,
        "views": 4744,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Is Astro becoming more of a Next.js competitor? Astro just released actions similar to what Next.js offers. Let's take a quick look.\n\nAstro 4.8 Announcement - https://astro.build/blog/astro-480/#ex...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "t2_XJYWU8Vw",
        "title": "5 Things You DIDN'T KNOW Postman Could Do!",
        "publishedAt": "1 year ago",
        "durationSeconds": 659,
        "views": 3702,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I didn't know about any of these #postman features until recently!\n\nPostman 11 Release Notes - https://www.postman.com/release-notes/postman-app/ \n\n*Thanks to Postman for sponsoring my time!...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "S54O8-Yyv3A",
        "title": "HTMX and Astro Are An Amazing Combo!",
        "publishedAt": "2 years ago",
        "durationSeconds": 1070,
        "views": 16714,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "HTMX and Astro provide a unique way of building applications. By combining HTMX with Astro partials, you can build interactive applications without having to write any frontend JavaScript!...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6YZriXYmGWM",
        "title": "Next.js Protected Routes: Require User Profiles with Kinde (EASY!)",
        "publishedAt": "2 years ago",
        "durationSeconds": 1533,
        "views": 3339,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Simple trick to ensure your users complete their onboarding before moving on in your Next.js application!\n\nTry Kinde for FREE - kinde.com?utm_source=yt&utm_medium=content&utm_campaign=jquick...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "F_AplRX3dJU",
        "title": "DON'T Make This Mistake with Next.js Server Components (BAD performance!)",
        "publishedAt": "2 years ago",
        "durationSeconds": 314,
        "views": 50579,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Server Components can hurt your performance if you don't use them correctly.\n\nNext.js Server Components - https://nextjs.org/docs/app/building-your-application/rendering/server-components\n...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0hHwgVrexnA",
        "title": "Astro DB Setup and Demo (super easy!)",
        "publishedAt": "2 years ago",
        "durationSeconds": 556,
        "views": 5092,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Let's try Astro DB hands-on for the first time!\n\nAstro DB - https://astro.build/db/\n\n**Newsletter**\nNewsletter 🗞 - https://www.jamesqquick.com/newsletter\n\n**DISCORD**\nJoin the Learn Build...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "79i2aXYVTtA",
        "title": "Google's New Core Web Vital (INP) Explained in 5 Minutes",
        "publishedAt": "2 years ago",
        "durationSeconds": 426,
        "views": 6310,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I found the truth behind how INP is calculated. It was very misleading!\n\nInteraction to Next Paint (INP) - https://web.dev/articles/inp\n\nCheck out Sentry - https://sentry.io/\n\n**Newsletter**...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KFRE8ujzwL8",
        "title": "My Favorite Database Just Got A LOT BETTER!",
        "publishedAt": "2 years ago",
        "durationSeconds": 506,
        "views": 4535,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Xata.io Launch Week - https://xata.io/launch-week-unleash-the-elephant\n\n**Newsletter**\nNewsletter 🗞 - https://www.jamesqquick.com/newsletter\n\n**DISCORD**\nJoin the Learn Build Teach Discord...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "l62mMMU4ZqA",
        "title": "JavaScript Error Handling: 5 Things You Aren’t Thinking About!",
        "publishedAt": "2 years ago",
        "durationSeconds": 882,
        "views": 23368,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Handling JavaScript errors doesn't get enough attention. When you start working on bigger and more complex applications, this becomes more and more important!\n\nCheck out Sentry for error tracking...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZZCXnNAOqqU",
        "title": "I Didn't Know Next.js Server Actions Could Do This!",
        "publishedAt": "2 years ago",
        "durationSeconds": 413,
        "views": 5302,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "There's more to Server Actions than I thought. I didn't know you could use a Server Actin outside of a form!\n\n**Newsletter**\nNewsletter 🗞 - https://www.jamesqquick.com/newsletter\n\n**DISCORD**...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 1,
      "uploadsLast90d": 1,
      "uploadCadenceWeekly": 0.08,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 5600,
      "viewsPerVideoP90Last90d": 5600,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 5600,
      "p90Views": 5600,
      "p99Views": 5600,
      "outperformingVideosLast90d": 1
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [
        "Sentry",
        "Postman"
      ],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": "2025-05-14",
      "detectionDetail": [
        {
          "brand": "Sentry",
          "videoId": "SBL3dhKs21o",
          "confidence": 0.7,
          "evidence": "description: Thanks to Sentry for sponsoring",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:04.305Z"
        },
        {
          "brand": "Postman",
          "videoId": "t2_XJYWU8Vw",
          "confidence": 0.7,
          "evidence": "description: Thanks to Postman for sponsoring",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:04.305Z"
        }
      ]
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 2,
        "firstSponsoredVideoDate": "2026-05-14"
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "developer-tools",
          "confidence": 0.25,
          "evidence": [
            "historical-sponsor:Sentry"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "jamesqquick.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.83,
        "evidenceVideoIds": [
          "hgOJH9bp75k",
          "G7PWm_I4NPA",
          "RQrnXE8JyVI",
          "iJSdCAuXC7s",
          "vGclr9p1oqg"
        ]
      },
      {
        "label": "com",
        "share": 0.67,
        "evidenceVideoIds": [
          "hgOJH9bp75k",
          "G7PWm_I4NPA",
          "RQrnXE8JyVI",
          "iJSdCAuXC7s",
          "vGclr9p1oqg"
        ]
      },
      {
        "label": "newsletter",
        "share": 0.57,
        "evidenceVideoIds": [
          "hgOJH9bp75k",
          "G7PWm_I4NPA",
          "RQrnXE8JyVI",
          "iJSdCAuXC7s",
          "vGclr9p1oqg"
        ]
      },
      {
        "label": "www",
        "share": 0.57,
        "evidenceVideoIds": [
          "hgOJH9bp75k",
          "G7PWm_I4NPA",
          "RQrnXE8JyVI",
          "iJSdCAuXC7s",
          "vGclr9p1oqg"
        ]
      },
      {
        "label": "check",
        "share": 0.57,
        "evidenceVideoIds": [
          "G7PWm_I4NPA",
          "RQrnXE8JyVI",
          "iJSdCAuXC7s",
          "vGclr9p1oqg",
          "RUvEfDubBa4"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "D",
      "rationale": "content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 31,
      "reason": "fits developer-tools",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.45
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.6,
      "level": "medium",
      "coldStart": false
    },
    "whyThisMatters": "fits developer-tools. Channel is in the active outreach window.",
    "whyNow": "Last sponsored video 365 days ago — within typical sponsorship-decision lookback for similar creators.",
    "respondWithinDays": 30,
    "failureType": null,
    "summary": "James Q Quick — 0.2M subs, D-tier sponsorship readiness, low contactability, respond within 30 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 31,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.79,
      "urgency": 0,
      "noiseRisk": 0.4
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mid-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mid"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mid-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "none"
    },
    "benchmarkRange": {
      "creatorTier": "mid",
      "sponsorCategory": "developer-tools",
      "historicalTypicalReplyRange": "5-12%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mid-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "ignore",
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "late",
      "reason": "Last sponsored video 365 days ago; past typical 14-30d decision-cycle for similar creators.",
      "decayRisk": 0.9
    },
    "relativePosition": null,
    "disqualificationAnalysis": {
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "gaps": [
        "tier:D",
        "contactability:low"
      ]
    },
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "a6edc50d4972707d10b11202f078724fc6ccb8b40643c4cd944e55af2d3c5913",
      "inputsHash": "b9c6051c14a9d57298b0b9205018ca130b465554723ecdfe45f5cccb441fd379",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:03.499Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "07872f834de9a100d874ffde327b2d040d5283821b0e371aa89780f362140b0f",
    "channelId": "UCVyRiMvfUNMA1UPlDPzG5Ow",
    "channelHandle": "@DesignCourse",
    "channelName": "DesignCourse",
    "channelUrl": "https://www.youtube.com/@DesignCourse",
    "description": "https://designcourse.com 👈 Learn to build & design like a pro with AI.\n\nHi, I'm Gary. I've been at it with this channel since 2010. I've produced hundreds of courses on all things product design (UI/UX, frontend development, branding & AI). Outside of actively maintaining and building designcourse.com, I've worked with Envato Network's TutsPlus.com, DigitalTutors.com, Pluralsight.com, LinkedIn Learning & Lynda.com.\n\nInterested in a sponsorship opportunity or review?  Contact me: contact@designcourse.com",
    "joinDate": null,
    "location": null,
    "subscribers": 1170000,
    "totalVideos": 1400,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ieTt1p2twEf4cz0vhOtB-0UXPN4vk9-8HM8OqxcX8sRU3nm5Di8sohyFOvxR3M-pN_bo4rnL=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "designcourse.com",
        "url": "http://www.designcourse.com"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/designcoursecom"
      },
      {
        "platform": "facebook",
        "url": "https://www.facebook.com/designcoursecom"
      },
      {
        "platform": "linkedin",
        "url": "https://www.linkedin.com/in/dreamache/"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/designcoursecom/"
      },
      {
        "platform": "tiktok",
        "url": "https://www.tiktok.com/@designcoursecom"
      },
      {
        "platform": "designcourse.com",
        "url": "https://designcourse.com"
      }
    ],
    "recentVideos": [
      {
        "videoId": "mmNc_g8246Q",
        "title": "And why I'm 100% cool with it",
        "publishedAt": "1 day ago",
        "durationSeconds": 384,
        "views": 2393,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build a SaaS with Claude: https://designcourse.com/app/course/c... (Take now)\n-- Today, I'm addressing a topic of high contention: why is AI so popular? Is it a fad? Why have hand-coding related tutorials died on youtube? This is a response video to Kyle Cook of Web Dev Simplified's recent video:    • I Wish It Wasn’t True   -- I wanted to offer my own perspective, which comes from a different angle.\n\n#programming #ai \n\n- - - - - - - - - - - - - - - - - - - - -\n\nSubscribe for NEW VIDEOS!\n\nLearn UI/UX:                         https://designcourse.com\nMy personal FB account:   http://fb.com/logodesigner\nCoursetro FB:                       http://fb.com/coursetro\nCoursetro's Twitter:               / designcoursecom  \n\nJoin my Discord!                  / discord  \n^-Chat with me and others\n\n- - - - - - - - - - - - - - - - - - - - -\n\nWho is Gary Simon?  Well, I'm a full stack developer with 2+ decades experience and I teach people how to design and code. I've created around 100+ courses for big brands like LinkedIn, Lynda.com, Pluralsight and Envato Network. \n\nNow, I focus all of my time and energy on this channel and my website Designcourse.com.\n\nCome to my discord server or add me on social media and say Hi!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nl6zw_L1j_U",
        "title": "Copying other website's Design.MD File. Is it stealing?",
        "publishedAt": "2 days ago",
        "durationSeconds": 458,
        "views": 6410,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build a SaaS with Claude: https://designcourse.com/app/course/c... (Take now)\n-- Today, I'm going to discuss & demonstrate a controversial subject right now with the modern incarnation of design templates: design.md design system files with AI. There are several services out there, such as https://getdesign.md that provide 'design.md' files for your agents to integrate designs that are based on the design systems already established by large brands. Is it theft? Is it copying?  Let's dig in!\n\n#claude #ai #uiux\n\n- - - - - - - - - - - - - - - - - - - - -\n\nSubscribe for NEW VIDEOS!\n\nLearn UI/UX:                         https://designcourse.com\nMy personal FB account:   http://fb.com/logodesigner\nCoursetro FB:                       http://fb.com/coursetro\nCoursetro's Twitter:               / designcoursecom  \n\nJoin my Discord!                  / discord  \n^-Chat with me and others\n\n- - - - - - - - - - - - - - - - - - - - -\n\nWho is Gary Simon?  Well, I'm a full stack developer with 2+ decades experience and I teach people how to design and code. I've created around 100+ courses for big brands like LinkedIn, Lynda.com, Pluralsight and Envato Network. \n\nNow, I focus all of my time and energy on this channel and my website Designcourse.com.\n\nCome to my discord server or add me on social media and say Hi!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Z1VBHgTLQVc",
        "title": "HTML in Canvas is Futuristic AF - Tutorial",
        "publishedAt": "8 days ago",
        "durationSeconds": 292,
        "views": 15455,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build a SaaS with Claude: https://designcourse.com/app/course/c... (Take now)\n-- Today, I'm going to cover a future ability in the frontend world where you can place HTML inside of the Canvas. This unlocks massive opportunities for re-imagining UI interactions that utilize 3D & shader effects. It's currently only available if you enable a chrome flag, so it's very much experimental.\n\nHow to enable + gallery:\nhttps://html-in-canvas.dev/\n\nDemos shown:\nhttps://x.com/tkm_hmng8/status/204218...\nhttps://x.com/kaolti/status/205071562...\nhttps://x.com/mattrothenberg/status/2...\nhttps://x.com/gaborpribek/status/2047...\nhttps://x.com/kaolti/status/204783538...\nhttps://x.com/kaolti/status/204487735...\nhttps://x.com/mattrothenberg/status/2...\nhttps://x.com/kaolti/status/204334956...\n\nLet's get it!\n\n#html #canvas #ui\n- - - - - - - - - - - - - - - - - - - - -\n\nSubscribe for NEW VIDEOS!\n\nLearn UI/UX:                         https://designcourse.com\nMy personal FB account:   http://fb.com/logodesigner\nCoursetro FB:                       http://fb.com/coursetro\nCoursetro's Twitter:               / designcoursecom  \n\nJoin my Discord!                  / discord  \n^-Chat with me and others\n\n- - - - - - - - - - - - - - - - - - - - -\n\nWho is Gary Simon?  Well, I'm a full stack developer with 2+ decades experience and I teach people how to design and code. I've created around 100+ courses for big brands like LinkedIn, Lynda.com, Pluralsight and Envato Network. \n\nNow, I focus all of my time and energy on this channel and my website Designcourse.com.\n\nCome to my discord server or add me on social media and say Hi!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uZ8EORBuHUE",
        "title": "Going beyond CRUD with AI - This project has consumed me",
        "publishedAt": "9 days ago",
        "durationSeconds": 642,
        "views": 5116,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build a SaaS with Claude: https://designcourse.com/app/course/c... (Take now)\n-- Today, I'm showing my new software FusionCue, which is nearly finished as an alpha build. It utilizes Rust/Tauri/Python & more to create the world's best and most versatile system for pool & billiards training. There's nothing on the market that comes close. In this video, I'm going to showcase the software, and soon, I will be getting my first couple users. Can it succeed? We'll find out!\n\n#ai #claude \n\n- - - - - - - - - - - - - - - - - - - - -\n\nSubscribe for NEW VIDEOS!\n\nLearn UI/UX:                         https://designcourse.com\nMy personal FB account:   http://fb.com/logodesigner\nCoursetro FB:                       http://fb.com/coursetro\nCoursetro's Twitter:               / designcoursecom  \n\nJoin my Discord!                  / discord  \n^-Chat with me and others\n\n- - - - - - - - - - - - - - - - - - - - -\n\nWho is Gary Simon?  Well, I'm a full stack developer with 2+ decades experience and I teach people how to design and code. I've created around 100+ courses for big brands like LinkedIn, Lynda.com, Pluralsight and Envato Network. \n\nNow, I focus all of my time and energy on this channel and my website Designcourse.com.\n\nCome to my discord server or add me on social media and say Hi!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "P6HoG8qWih4",
        "title": "Framer Shaders are SICK - How I use them",
        "publishedAt": "13 days ago",
        "durationSeconds": 674,
        "views": 2258,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://framer.link/DesignCourse 👈 Get a free month of Framer Pro: 'DESIGNCOURSE1' valid for 3 months!\n-- Today, I'm showing you exactly how I would use the new Shaders feature within the context of my own project. Framer asked me to take a look at how they've integrated shaders in their no-code editor, and I used it to augment a hero section for a real project I'm actively working on. I'm a big fan. Super easy to customize, and plenty of endless combinations and use cases. \n\nLet's get it!\n\n#framer #shaders \n\n- - - - - - - - - - - - - - - - - - - - -\n\nSubscribe for NEW VIDEOS!\n\nLearn UI/UX:                         https://designcourse.com\nMy personal FB account:   http://fb.com/logodesigner\nCoursetro FB:                       http://fb.com/coursetro\nCoursetro's Twitter:               / designcoursecom  \n\nJoin my Discord!                  / discord  \n^-Chat with me and others\n\n- - - - - - - - - - - - - - - - - - - - -\n\nWho is Gary Simon?  Well, I'm a full stack developer with 2+ decades experience and I teach people how to design and code. I've created around 100+ courses for big brands like LinkedIn, Lynda.com, Pluralsight and Envato Network. \n\nNow, I focus all of my time and energy on this channel and my website Designcourse.com.\n\nCome to my discord server or add me on social media and say Hi!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1xzmPhQQjwE",
        "title": "OpenAI Image 2.0 vs Nano Banana Pro - TESTED",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 708,
        "views": 5737,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build a SaaS with Claude: https://designcourse.com/app/course/c... (Take now)\n-- Today, we're taking a look at a real-world comparison, in a soon-to-be-released AI landscaping app, between OpenAI's new Image 2.0 model, Gemini 3.1 Flash, and Gemini Nano Banana 2 Pro. INTERESTING INSIGHTS!\n\nLet's get started!\n\n#openai #gemini #ai\n\n- - - - - - - - - - - - - - - - - - - - -\n\nSubscribe for NEW VIDEOS!\n\nLearn UI/UX:                         https://designcourse.com\nMy personal FB account:   http://fb.com/logodesigner\nCoursetro FB:                       http://fb.com/coursetro\nCoursetro's Twitter:               / designcoursecom  \n\nJoin my Discord!                  / discord  \n^-Chat with me and others\n\n- - - - - - - - - - - - - - - - - - - - -\n\nWho is Gary Simon?  Well, I'm a full stack developer with 2+ decades experience and I teach people how to design and code. I've created around 100+ courses for big brands like LinkedIn, Lynda.com, Pluralsight and Envato Network. \n\nNow, I focus all of my time and energy on this channel and my website Designcourse.com.\n\nCome to my discord server or add me on social media and say Hi!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5gllZ-P1PIE",
        "title": "Claude Design is SICK - Real Landing Page Demo",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 580,
        "views": 10582,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build a SaaS with Claude: https://designcourse.com/app/course/c... (Take now)\n-- Today, I'm showing off a landing page I built with the newly released Claude Design https://claude.ai/design - I'll show the landing page, and then discuss the workflow that I used to achieve it. Let's get it!\n\n#ai #claude #uiux\n\n- - - - - - - - - - - - - - - - - - - - -\n\nSubscribe for NEW VIDEOS!\n\nLearn UI/UX:                         https://designcourse.com\nMy personal FB account:   http://fb.com/logodesigner\nCoursetro FB:                       http://fb.com/coursetro\nCoursetro's Twitter:               / designcoursecom  \n\nJoin my Discord!                  / discord  \n^-Chat with me and others\n\n- - - - - - - - - - - - - - - - - - - - -\n\nWho is Gary Simon?  Well, I'm a full stack developer with 2+ decades experience and I teach people how to design and code. I've created around 100+ courses for big brands like LinkedIn, Lynda.com, Pluralsight and Envato Network. \n\nNow, I focus all of my time and energy on this channel and my website Designcourse.com.\n\nCome to my discord server or add me on social media and say Hi!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "68BnH29qvAA",
        "title": "NEW Claude Feature - Setting up your First Routine",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 318,
        "views": 10779,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build a SaaS with Claude: https://designcourse.com/app/course/c... (Take now)\n-- Today, I'm going to set up my first Claude Routine to show you how it works and if it's something that's worth integrating into your own project. Not everything should be a routine, some tasks are best left for a simple CRON job. Do you need intelligence/decision making?\n\n#claude #ai\n\n- - - - - - - - - - - - - - - - - - - - -\n\nSubscribe for NEW VIDEOS!\n\nLearn UI/UX:                         https://designcourse.com\nMy personal FB account:   http://fb.com/logodesigner\nCoursetro FB:                       http://fb.com/coursetro\nCoursetro's Twitter:               / designcoursecom  \n\nJoin my Discord!                  / discord  \n^-Chat with me and others\n\n- - - - - - - - - - - - - - - - - - - - -\n\nWho is Gary Simon?  Well, I'm a full stack developer with 2+ decades experience and I teach people how to design and code. I've created around 100+ courses for big brands like LinkedIn, Lynda.com, Pluralsight and Envato Network. \n\nNow, I focus all of my time and energy on this channel and my website Designcourse.com.\n\nCome to my discord server or add me on social media and say Hi!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IICzWZjEZtQ",
        "title": "The 2 Biggest Ways my UI/UX Workflow has Changed",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 417,
        "views": 7206,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build a SaaS with Claude: https://designcourse.com/app/course/c... (Take now)\n-- Today, I'm going to show you the 2 biggest ways my UI/UX design process has changed, and they are big deviations from what I've done for literally decades.\n\nTutorial mentioned:\n   • I spend less time in Figma. Here's how  \n\n#uiux #ui #ai\n\n- - - - - - - - - - - - - - - - - - - - -\n\nSubscribe for NEW VIDEOS!\n\nLearn UI/UX:                         https://designcourse.com\nMy personal FB account:   http://fb.com/logodesigner\nCoursetro FB:                       http://fb.com/coursetro\nCoursetro's Twitter:               / designcoursecom  \n\nJoin my Discord!                  / discord  \n^-Chat with me and others\n\n- - - - - - - - - - - - - - - - - - - - -\n\nWho is Gary Simon?  Well, I'm a full stack developer with 2+ decades experience and I teach people how to design and code. I've created around 100+ courses for big brands like LinkedIn, Lynda.com, Pluralsight and Envato Network. \n\nNow, I focus all of my time and energy on this channel and my website Designcourse.com.\n\nCome to my discord server or add me on social media and say Hi!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UBvrPGMtK5g",
        "title": "Remotion - Creating Video through Web Tech (SICK!)",
        "publishedAt": "1 month ago",
        "durationSeconds": 573,
        "views": 12383,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build a SaaS with Claude: https://designcourse.com/app/course/c... (Take now)\n-- Today, I'm showing you a couple use cases for integrating Remotion into your project. If video at all makes sense for what you're doing, take a look at https://remotion.dev (It's free!).  It allows you to generate entirely new videos from scratch, or augment existing video. It works by allowing you to instruct your coding agent to generate graphics using web tech (html/css), which are then integrated into video. It supports animation and a lot of other cool features.\n\n#remotion #ai \n\n- - - - - - - - - - - - - - - - - - - - -\n\nSubscribe for NEW VIDEOS!\n\nLearn UI/UX:                         https://designcourse.com\nMy personal FB account:   http://fb.com/logodesigner\nCoursetro FB:                       http://fb.com/coursetro\nCoursetro's Twitter:               / designcoursecom  \n\nJoin my Discord!                  / discord  \n^-Chat with me and others\n\n- - - - - - - - - - - - - - - - - - - - -\n\nWho is Gary Simon?  Well, I'm a full stack developer with 2+ decades experience and I teach people how to design and code. I've created around 100+ courses for big brands like LinkedIn, Lynda.com, Pluralsight and Envato Network. \n\nNow, I focus all of my time and energy on this channel and my website Designcourse.com.\n\nCome to my discord server or add me on social media and say Hi!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Lcd93W1VkQ4",
        "title": "Claude Mythos vs. OpenAI Spud - AI Psychosis at its Finest",
        "publishedAt": "1 month ago",
        "durationSeconds": 235,
        "views": 5928,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build an AI SaaS with Claude: https://designcourse.com/app/course/c... (Take now)\n-- Just a quick observation about the current AI-Infused Psychosis that the industry is experiencing in relation...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9MlqODKAlK4",
        "title": "Claude Code + Nano Banana 2 is SICK!",
        "publishedAt": "1 month ago",
        "durationSeconds": 378,
        "views": 26763,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build a SaaS with Claude: https://designcourse.com/app/course/claude-code-ai-saas (Take now)\n-- Hey all, I'm providing an update with the on-going course that's available right now via early...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jEQOT11ZoiA",
        "title": "I spend less time in Figma. Here's how",
        "publishedAt": "1 month ago",
        "durationSeconds": 387,
        "views": 8347,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build the project shown in video: https://designcourse.com/app/course/claude-code-ai-saas (Take now)\n-- I used to start a project in Figma, but now I let AI take care of the initial layout,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "S2g2RJ5xWKw",
        "title": "Can you go from Wireframe to Pixel Perfect? UI Challenge",
        "publishedAt": "1 month ago",
        "durationSeconds": 503,
        "views": 2948,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://uxpilot.ai (Code: NOW15 for 200 credits and export to figma!)\nChallenge: https://designcourse.com/app/foundations/2026-uiux\n-- Hey all, today we're doing one of the final challenges...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nEHT-ACu-1w",
        "title": "KaneAI - The Answer to Vibe Coders who Don't Test!",
        "publishedAt": "1 month ago",
        "durationSeconds": 387,
        "views": 2113,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://bit.ly/4tg25ZC - Try KaneAI \n-- Hey all, today I'm going to show you a very crucial test that most vibe coders miss: testing. What happens to your app when you integrate a new feature?...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IFVG6cQtiL4",
        "title": "A New 3D AI Builder vs Just Claude Code?",
        "publishedAt": "1 month ago",
        "durationSeconds": 430,
        "views": 9733,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build with Claude: https://designcourse.com/app/course/c... (Take now)\n-- The team behind the awesome Spline3D just released Omma, and I'm putting it to the test with the same prompt against...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2aI1xCo-KcI",
        "title": "The New Figma Workflow - Code to Design & Vice Versa",
        "publishedAt": "1 month ago",
        "durationSeconds": 416,
        "views": 32068,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build a SaaS with Claude: https://designcourse.com/app/course/claude-code-ai-saas (Take now)\n-- Yesterday, March 24, Figma released a big update that now allows you to go from Code to Design....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5A-lcg3gh6U",
        "title": "How Claude Code Created an AI Coach (Controls My Studio)",
        "publishedAt": "1 month ago",
        "durationSeconds": 255,
        "views": 4147,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build with Claude Code: https://designcourse.com/app/course/claude-code-ai-saas\n-- I finally finished my AI pool coach project to version 1.0, which is currently focused around Pool. I plan...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CcMGUdZqDuM",
        "title": "Build an AI-Powered SaaS with Claude Code - Trailer",
        "publishedAt": "1 month ago",
        "durationSeconds": 120,
        "views": 7722,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Early Access: https://designcourse.com/app/course/claude-code-ai-saas\n-- Hey all! This is my first course in over a year, and I'm super excited to announce the early access period where you...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qwEKpbEjUHY",
        "title": "The New Google Stitch - Are Designers Finished?",
        "publishedAt": "1 month ago",
        "durationSeconds": 619,
        "views": 115815,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "AI Native Design Challenge: https://designcourse.com/app/foundations/2026-uiux/\nLevel up your coding skills: https://scrimba.com?via=designcourse (Get 20% off)\n-- Today, I'm giving Stitch a...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dzvwAnwDUZo",
        "title": "Insane Claude Agent SDK Demo - See it to believe it",
        "publishedAt": "1 month ago",
        "durationSeconds": 360,
        "views": 54044,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://designcourse.com -- Learn AI Design/Dev\n-- This is absolutely sick. I can literally have a voice conversation with an AI system while testing an app, and tell it to fix something with...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RMevVvq5LOo",
        "title": "I used Claude Code to Generate Light Shows in my Studio",
        "publishedAt": "1 month ago",
        "durationSeconds": 239,
        "views": 2912,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://designcourse.com -- Learn AI Design/Dev\n-- What's up everyone, this was a weekend project that I wanted to share. If you know anything about the world of stage lighting, lighting software...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Y8g3YtZckco",
        "title": "Most Designers Can't Light/Dark Mode - Can you?",
        "publishedAt": "2 months ago",
        "durationSeconds": 385,
        "views": 3226,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Take the challenge: https://designcourse.com/app/foundations/2026-uiux/\nLevel up your coding skills: https://scrimba.com?via=designcourse (Get 20% off)\n-- Today, we've got a new challenge from...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ibihCg3T2Qs",
        "title": "AI-Native Web Design Themes with Paper & Claude Code",
        "publishedAt": "2 months ago",
        "durationSeconds": 305,
        "views": 8467,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "All things AI Design/Dev: https://designcourse.com\nLevel up your coding skills: https://scrimba.com?via=designcourse (Get 20% off)\n-- Yesterday, I decided to work on a workflow for what I imagine...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8p08vf5iXkI",
        "title": "The Future of UI/UX Design is Agent Collaboration",
        "publishedAt": "2 months ago",
        "durationSeconds": 332,
        "views": 10630,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "All things AI Design/Dev: https://designcourse.com\nLevel up your coding skills: https://scrimba.com?via=designcourse (Get 20% off)\n-- Today, I'm showing you how I think AI-Native designers...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UWseAJ5Vb58",
        "title": "Generative SVG's with Animation with HeroUI & Gemini",
        "publishedAt": "2 months ago",
        "durationSeconds": 299,
        "views": 33682,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "All things AI Design/Dev: https://designcourse.com\nLevel up your coding skills: https://scrimba.com?via=designcourse (Get 20% off)\n-- Today, I'm going to show you two different methods for...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XKyzFxc67v8",
        "title": "Pencil AI - Solves the 'Vibe Designed' Layouts Problem",
        "publishedAt": "2 months ago",
        "durationSeconds": 589,
        "views": 33739,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Take the Pencil challenge: https://designcourse.com/app/foundations/2026-uiux/\nLevel up your coding skills: https://scrimba.com?via=designcourse (Get 20% off)\n-- Today, we're going to cover...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8T2QJP5u_OY",
        "title": "Figma killed his project, so he cloned Figma in 3 days",
        "publishedAt": "2 months ago",
        "durationSeconds": 378,
        "views": 16144,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://designcourse.com\nLevel up your coding skills: https://scrimba.com?via=designcourse (Get 20% off)\n-- Today, I'm featuring a super cool story I came across a couple days ago on X. A disgruntl...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GAnP8mtbMas",
        "title": "Could Paper be the Figma Killer? AI-Native Design Tool",
        "publishedAt": "2 months ago",
        "durationSeconds": 875,
        "views": 29943,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Take the Paper challenge: https://designcourse.com/app/foundations/2026-uiux/\nLevel up your coding skills: https://scrimba.com?via=designcourse (Get 20% off)\n-- Today, I'm featuring Paper,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "N38wvyexMQg",
        "title": "QuiverAI - Are Illustrators and Brand Designers Cooked? 5 Tests",
        "publishedAt": "2 months ago",
        "durationSeconds": 392,
        "views": 12779,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn AI-Native Design: https://designcourse.com\nLevel up your coding skills: https://scrimba.com?via=designcourse (Get 20% off)\n-- Today, I'm doing a demo of QuiverAI: https://quiver.ai -...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 22,
      "uploadsLast90d": 30,
      "uploadCadenceWeekly": 2.33,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 8467,
      "viewsPerVideoP90Last90d": 33682,
      "viewVelocityTrend": "stable"
    },
    "performanceBaseline": {
      "p50Views": 8467,
      "p90Views": 33682,
      "p99Views": 54044,
      "outperformingVideosLast90d": 4
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "bit.ly"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "ai-saas",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:claude"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": "[REDACTED]",
      "businessEmailSource": "channel-about-section",
      "businessEmailMxValid": true,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "designcourse.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "high",
      "components": {
        "businessEmailPresent": true,
        "businessEmailValid": true,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Will likely respond to sponsorship outreach: business email validated + active sponsor history + external website live."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 1,
        "evidenceVideoIds": [
          "mmNc_g8246Q",
          "nl6zw_L1j_U",
          "Z1VBHgTLQVc",
          "uZ8EORBuHUE",
          "P6HoG8qWih4"
        ]
      },
      {
        "label": "designcourse",
        "share": 0.97,
        "evidenceVideoIds": [
          "mmNc_g8246Q",
          "nl6zw_L1j_U",
          "Z1VBHgTLQVc",
          "uZ8EORBuHUE",
          "P6HoG8qWih4"
        ]
      },
      {
        "label": "com",
        "share": 0.97,
        "evidenceVideoIds": [
          "mmNc_g8246Q",
          "nl6zw_L1j_U",
          "Z1VBHgTLQVc",
          "uZ8EORBuHUE",
          "P6HoG8qWih4"
        ]
      },
      {
        "label": "app",
        "share": 0.77,
        "evidenceVideoIds": [
          "mmNc_g8246Q",
          "nl6zw_L1j_U",
          "Z1VBHgTLQVc",
          "uZ8EORBuHUE",
          "1xzmPhQQjwE"
        ]
      },
      {
        "label": "claude",
        "share": 0.63,
        "evidenceVideoIds": [
          "mmNc_g8246Q",
          "nl6zw_L1j_U",
          "Z1VBHgTLQVc",
          "uZ8EORBuHUE",
          "1xzmPhQQjwE"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Tuesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "B",
      "rationale": "business email validated, content pillars match high-value sponsor categories, consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "strong",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 52,
      "reason": "validated business email x fits ai-saas",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.95
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.55
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.35
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.8,
      "level": "high",
      "coldStart": false
    },
    "whyThisMatters": "validated business email + fits ai-saas. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "DesignCourse — 1.2M subs, B-tier sponsorship readiness, high contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": true,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 52,
      "readyForOutreach": false,
      "blockers": [],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.58,
      "urgency": 0,
      "noiseRisk": 0.2
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": {
      "isValidFormat": true,
      "canonical": "contact@designcourse.com",
      "domain": "designcourse.com",
      "lineType": "role-account",
      "mxValid": true,
      "confidence": 0.75,
      "originalInput": "contact@designcourse.com",
      "email": null
    },
    "allEmailValidations": [
      {
        "isValidFormat": true,
        "canonical": "contact@designcourse.com",
        "domain": "designcourse.com",
        "lineType": "role-account",
        "mxValid": true,
        "confidence": 0.75,
        "originalInput": "contact@designcourse.com",
        "email": null
      }
    ],
    "contactabilityScore": {
      "score": 83,
      "level": "high",
      "components": {
        "presence": 25,
        "sourceQuality": 18,
        "validationQuality": 18,
        "identityStrength": 9,
        "freshness": 8,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "email",
      "secondary": "agency-form",
      "reason": "Validated business email + active sponsor history — email-first maximises response rate."
    },
    "sequenceFit": {
      "directOutreachAllowed": true,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "channel-about",
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.83
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.83,
      "gap": 0.11,
      "howToClose": [
        "Run ryanclinton/person-enrichment-lookup against 'contact@designcourse.com' to identify the inbox owner."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "medium",
      "score": 0.65,
      "factors": [
        "business-email-validated",
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + validated business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:role-account",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [],
      "safeChannels": [
        "email",
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [
      {
        "email": "[REDACTED]",
        "rank": 1,
        "reason": "role-account email",
        "role": "general"
      }
    ],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": true,
      "requiresEnrichment": false,
      "priorityQueue": "medium"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "ai-saas",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "B-tier readiness — nurture or enrich before outreach.",
      "appliedRules": [
        "contactability:high"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 64,
      "reasons": [
        "Validated business email (MX confirmed)",
        "Low confidence-conflict count in scoring trace"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "07872f834de9a100d874ffde327b2d040d5283821b0e371aa89780f362140b0f",
      "inputsHash": "f7bad9d35811361fe55eb065901610b99de0074df95f9ae5b219f8a2484b89c5",
      "rulesApplied": [
        "business-email-validated",
        "sponsorship-history-never",
        "growth-velocity-stable",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:04.296Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "c4760a33e2dc6313c1eb1e73a34e3afb43ea24bdf9c6d51bd4545dc794069777",
    "channelId": "UC46wWUso9H5KPQcoL9iE3Ug",
    "channelHandle": "@CodingPhase",
    "channelName": "CodingPhase",
    "channelUrl": "https://www.youtube.com/@CodingPhase",
    "description": "Welcome to CodingPhase, your one-stop destination for all things coding, development, and tech! If you're passionate about programming or eager to embark on a journey into the exciting world of technology, you've come to the right place.",
    "joinDate": null,
    "location": null,
    "subscribers": 123000,
    "totalVideos": 1400,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/SQQcg9fZbnmXUOPDexCokq2xE7lFFwQBP_cZqxNvuaG6Ed8iCl9mMAI72mW6Bg0pnCOHdYbQFw=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "codingphase.com",
        "url": "http://www.codingphase.com"
      },
      {
        "platform": "patreon.com",
        "url": "https://www.patreon.com/user?u=2517498"
      },
      {
        "platform": "instagram",
        "url": "http://www.instagram.com/codingphase"
      },
      {
        "platform": "twitter",
        "url": "http://www.twitter.com/codingphase"
      },
      {
        "platform": "teespring.com",
        "url": "https://teespring.com/stores/codingphase"
      }
    ],
    "recentVideos": [
      {
        "videoId": "thTgea3qZ4U",
        "title": "Two Huge Opportunities To Make Money Independently",
        "publishedAt": "1 day ago",
        "durationSeconds": 654,
        "views": 710,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Two Huge Opportunities To Make Money Independently",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wzj9bxzEqs0",
        "title": "The AI Stack I Use To Keep My Job",
        "publishedAt": "4 days ago",
        "durationSeconds": 751,
        "views": 832,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, I show you exactly how I use AI in 2026 to research ideas, write content, build applications, create thumbnails, and automate tasks for my business. I break down the tools I use every day, including ChatGPT, Claude, Gemini, Perplexity, Cursor, and Higgsfield, and explain how each one fits into my workflow.\n\nThe key is not learning one AI tool at a time—it’s understanding how to combine them to solve real-world problems and get more done in less time. If you want to build valuable skills in AI, automation, and web development, join us at https://codingphase.com.\n\n💬 Live Q&A — ask your questions in the chat!\n\n\n🎓 Start your developer journey today for just $1 a day\n👉 https://codingphase.com/?discount=1DO...\n\n💰 Want to Freelance, Sell Digital Products, or Build a SaaS?\nTake the Profitable Developer Course and get 25% OFF when using this link:\n👉 https://codingphase.teachable.com/p/p...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nos71P25hpo",
        "title": "Don’t Wait For Last Minute To Have A Backup Plan",
        "publishedAt": "5 days ago",
        "durationSeconds": 1085,
        "views": 691,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Don’t Wait For Last Minute To Have A Backup Plan\n\n🎓 Start your developer journey today for just $1 a day\n👉 https://codingphase.com/?discount=1DO...\n\n💰 Want to Freelance, Sell Digital Products, or Build a SaaS?\nTake the Profitable Developer Course and get 25% OFF when using this link:\n👉 https://codingphase.teachable.com/p/p...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zMMA5YVGsV4",
        "title": "Getting A Masters or PHD In 2026 is  A Mistake",
        "publishedAt": "6 days ago",
        "durationSeconds": 804,
        "views": 630,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Everybody keeps telling you to “go back to school” in 2026…  \nBut here’s the reality:\n\nPeople with bachelor’s degrees STILL can’t find jobs.\n\nSo why are thousands of people taking on more debt for a Master’s or PhD without a real plan?\n\nIn this video, I break down:\nWhy degrees alone are no longer enough\nThe biggest lie colleges keep selling students\nWhat companies ACTUALLY pay for in 2026\nWhy practical skills beat credentials in today’s market\nThe tech roles and online careers that still have opportunity right now\n\nThis isn’t about hating education.  \nIt’s about understanding ROI.\n\nIf you’re going deeper into debt without building real-world skills, a portfolio, experience, or income streams… you’re making a dangerous mistake.\n\nStop chasing titles.  \nStart building value.\n\n👇 Learn practical tech skills that companies actually hire for:\nCodingPhase.com\n\nAt CodingPhase, you can learn:\nWeb Development\nAI Automations\nMartech\nShopify Development\nEmail Development\nWeb Administration\nAnd more…\n\nNo fluff. No endless theory. Just real skills for real jobs.\n\n#CodingPhase #TechCareers #College #PhD #MastersDegree #AIJobs #CareerAdvice #TechJobs #MakeMoneyOnline #WebDevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TxHG-cGHWvg",
        "title": "BIG TECH IS HIRING IN MARTECH",
        "publishedAt": "7 days ago",
        "durationSeconds": 1353,
        "views": 1064,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Everybody keeps talking about AI coding…\n\nBut nobody’s talking about the REAL tech jobs companies like Meta and Adobe are hiring for right now:\n\nMARTECH.\n\nMarketing + Technology.\n\nThis is the world of:\n→ Marketing automation\n→ Email systems\n→ CRM workflows\n→ Analytics\n→ AI automations\n→ Customer journeys\n→ Ad tech\n→ Growth systems\n\nAnd the craziest part?\n\nMost people don’t even know these jobs exist.\nAre you trying to land your first developer job but don’t know where to start?\nIn today’s livestream, we’ll search for real entry-level web developer positions, break down what employers are looking for, and talk about how you can stand out — even if you’re just starting your journey!\n\n💬 Live Q&A — ask your questions in the chat!\n\n\n🎓 Start your developer journey today for just $1 a day\n👉 https://codingphase.com/?discount=1DO...\n\n💰 Want to Freelance, Sell Digital Products, or Build a SaaS?\nTake the Profitable Developer Course and get 25% OFF when using this link:\n👉 https://codingphase.teachable.com/p/p...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DKZck7TJMOo",
        "title": "Web Developer lunch breaks",
        "publishedAt": "9 days ago",
        "durationSeconds": 663,
        "views": 637,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out https://codingphase.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "b93VN_Nmus0",
        "title": "Everyone Is Broke… Here’s 3 Side Hustles Fixing That",
        "publishedAt": "12 days ago",
        "durationSeconds": 1316,
        "views": 972,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Everybody’s feeling it right now… prices up, paychecks the same, and most people are stuck trying to “budget” their way out of a problem that really needs more income.\n\nIn this video, I’m breaking down 3 side hustles that actually work in 2026 — not theory, not TikTok hype, but real ways people are making money right now. These are practical, beginner-friendly, and can be started without quitting your job.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "v7eqjSET93Q",
        "title": "The Tech Career Nobody Talks About (Martech Roadmap 2026)",
        "publishedAt": "13 days ago",
        "durationSeconds": 1725,
        "views": 1032,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Most people trying to break into tech are all chasing the same thing…\nFrontend. Software engineer. Competing with thousands of applicants.\nBut there’s a whole lane most people don’t even know exists — Martech (Marketing Technology).\nThis is where companies actually need people.\nThis is where you combine tech + marketing + automation to help businesses make money.\n\n🎓 Start your developer journey today for just $1 a day\n👉 https://codingphase.com/?discount=1DO...\n\n💰 Want to Freelance, Sell Digital Products, or Build a SaaS?\nTake the Profitable Developer Course and get 25% OFF when using this link:\n👉 https://codingphase.teachable.com/p/p...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2Dxf8AqWhHo",
        "title": "This Hidden Tech Career Is Blowing Up in 2026",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 1122,
        "views": 4276,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This Hidden Tech Career Is Blowing Up in 2026",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "U8eOEQxxgeY",
        "title": "I just want to say…. 🤦‍♂️",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 703,
        "views": 676,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": null,
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YITvmyKX_gk",
        "title": "Why Web Administration Still The Best Entry Level Job",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 671,
        "views": 816,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Most people are stuck learning the same skills… competing with thousands of applicants for the same frontend jobs. In this video, I break down why Web Administration is still one of the smartest,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cCzJFANIB-4",
        "title": "They Don’t Trust Your Skills Anymore…",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 573,
        "views": 651,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If you think having the “right skills” is enough to get hired in 2026… you’re already behind.\n\nCompanies aren’t just looking at what you say you can do anymore—they want proof....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3k7rtaTzChs",
        "title": "Nobody Told You About AEO & GEO (Big Mistake 💰)",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 1252,
        "views": 1061,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Everyone is still chasing traditional SEO, but the real money is shifting to AEO (Answer Engine Optimization) and GEO (Generative Engine Optimization). In this video, I break down how AI search...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "26BNzNd8F9s",
        "title": "Why I Quit Software Engineering and I’m Not Going Back",
        "publishedAt": "1 month ago",
        "durationSeconds": 1304,
        "views": 7125,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Why I Quit Software Engineering and I’m Not Going Back",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EjvwYRD6zoQ",
        "title": "They Are Closing The Tech Industry",
        "publishedAt": "1 month ago",
        "durationSeconds": 1462,
        "views": 5639,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The gate is closing… and most people don’t even see it.\n\nThere was a time when you could learn a little HTML, CSS, maybe some JavaScript… and land a job in tech.\n\nThat time is gone.\n...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "41TNw52Ezuk",
        "title": "I just had a job interview guess what they asked me about",
        "publishedAt": "1 month ago",
        "durationSeconds": 1149,
        "views": 2528,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": null,
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6K85f0XFU04",
        "title": "AI Foundations Course Introduction Video",
        "publishedAt": "1 month ago",
        "durationSeconds": 385,
        "views": 570,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Welcome to the AI Foundations course! This course is designed for anyone looking to understand artificial intelligence and use it effectively, especially if you're an \"ai for beginners\" user....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5EdeNSk5Rqg",
        "title": "Should I Leave My Job For A Big Contract?",
        "publishedAt": "1 month ago",
        "durationSeconds": 1281,
        "views": 495,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Thinking about quitting your job for a big contract? Before you make that move, let’s break down what actually matters.\n\nIn this video, we go beyond the hype and talk about the real risks,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "z0R3y2Oc9-A",
        "title": "Ai Being Required In All New Jobs",
        "publishedAt": "1 month ago",
        "durationSeconds": 902,
        "views": 768,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "More and more job postings are now asking for AI tools experience—and most people are completely ignoring it. In this video, I break down what’s really happening in the job market, why...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "m70DCLhZcNE",
        "title": "Software Engineers Are Losing Their Mind",
        "publishedAt": "1 month ago",
        "durationSeconds": 1639,
        "views": 7359,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "AI isn’t just changing how software is built — it’s completely flipping the game, and a lot of developers are feeling the pressure. In this video, we break down why AI tools are overwhelming...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "yRk_MV7HrXc",
        "title": "Why Indian Americans Dominate Tech (And Earn the Highest Incomes)",
        "publishedAt": "1 month ago",
        "durationSeconds": 454,
        "views": 1183,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Indian Americans have the highest household income in the U.S.—and it’s not by accident. A huge percentage of them are in tech: software engineers, IT professionals, and high-paying STEM...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sD8tgoxE-5I",
        "title": "Huge Unemployment Numbers For New CS MAJORS",
        "publishedAt": "1 month ago",
        "durationSeconds": 857,
        "views": 5443,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "What is happening with new Computer Science Majors that they are not getting hired. Huge Unemployment Numbers For New CS MAJORS\n\nCheck my new channel if you like this type of content we will...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uMswD9jbwwA",
        "title": "They told me I needed to switch up and get into the trades",
        "publishedAt": "2 months ago",
        "durationSeconds": 287,
        "views": 838,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "So I got into the trades\n\n\nDon’t forget go to https://codingphase.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wdJ-9FCpYpQ",
        "title": "The Easiest Job In Tech Industry",
        "publishedAt": "2 months ago",
        "durationSeconds": 352,
        "views": 1053,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The easiest job to learn and get hired in the tech industry.\n\nIf you interested in learning these skills check out \nCodingphase $1 day.\nHttp://codingphase.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1TjpxEskHeI",
        "title": "When Taking Risks With A Family Goes Wrong",
        "publishedAt": "2 months ago",
        "durationSeconds": 931,
        "views": 1823,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Are you trying to land your first developer job but don’t know where to start?\nIn today’s livestream, we’ll search for real entry-level web developer positions, break down what employers...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CvjsEsLli7I",
        "title": "The Reality of Being 40 Years Old With No Career",
        "publishedAt": "2 months ago",
        "durationSeconds": 915,
        "views": 12946,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A 40-year-old man realizes he has no career, no direction, and feels embarrassed about where he ended up in life. Years passed working random jobs while others built real skills and stability....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SxxJibqUpjs",
        "title": "This is a special Weekend don’t forget",
        "publishedAt": "2 months ago",
        "durationSeconds": 304,
        "views": 314,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This video for those of you guys interested in learning a skill to make side income.\n\n\nTrading Fundamentals Pre-Order\nhttps://codingphase.teachable.com/l/pdp/trading-fundamentals?coupon_code=TRADIN...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "n5y478bedhQ",
        "title": "Javascript Still #1 Language To Learn in 2026",
        "publishedAt": "2 months ago",
        "durationSeconds": 1423,
        "views": 1096,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "JavaScript is still the most important skill for developers in 2026 — and in this video I break down exactly why. From building modern web applications and AI-powered tools to creating mobile...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-J7mfvy36bU",
        "title": "The Best Resume Builder For Tech Jobs",
        "publishedAt": "3 months ago",
        "durationSeconds": 1228,
        "views": 676,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Are you trying to land your first developer job but don’t know where to start?\nIn today’s livestream, we’ll search for real entry-level web developer positions, break down what employers...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eCGYah0Sezo",
        "title": "Where Have I Been The Last Few Days…",
        "publishedAt": "3 months ago",
        "durationSeconds": 1121,
        "views": 521,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Just talking about why there’s no new content.\n\nHttps://codingphase.com",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 22,
      "uploadsLast90d": 30,
      "uploadCadenceWeekly": 2.33,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 838,
      "viewsPerVideoP90Last90d": 5639,
      "viewVelocityTrend": "stable"
    },
    "performanceBaseline": {
      "p50Views": 838,
      "p90Views": 5639,
      "p99Views": 7359,
      "outperformingVideosLast90d": 4
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "web-services",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:web development"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "codingphase.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "break",
        "share": 0.4,
        "evidenceVideoIds": [
          "wzj9bxzEqs0",
          "zMMA5YVGsV4",
          "TxHG-cGHWvg",
          "v7eqjSET93Q",
          "YITvmyKX_gk"
        ]
      },
      {
        "label": "job",
        "share": 0.37,
        "evidenceVideoIds": [
          "wzj9bxzEqs0",
          "TxHG-cGHWvg",
          "b93VN_Nmus0",
          "YITvmyKX_gk",
          "EjvwYRD6zoQ"
        ]
      },
      {
        "label": "codingphase",
        "share": 0.33,
        "evidenceVideoIds": [
          "wzj9bxzEqs0",
          "nos71P25hpo",
          "zMMA5YVGsV4",
          "TxHG-cGHWvg",
          "DKZck7TJMOo"
        ]
      },
      {
        "label": "com",
        "share": 0.33,
        "evidenceVideoIds": [
          "wzj9bxzEqs0",
          "nos71P25hpo",
          "zMMA5YVGsV4",
          "TxHG-cGHWvg",
          "DKZck7TJMOo"
        ]
      },
      {
        "label": "real",
        "share": 0.3,
        "evidenceVideoIds": [
          "wzj9bxzEqs0",
          "zMMA5YVGsV4",
          "TxHG-cGHWvg",
          "b93VN_Nmus0",
          "3k7rtaTzChs"
        ]
      },
      {
        "label": "web development",
        "share": 0.07,
        "evidenceVideoIds": [
          "wzj9bxzEqs0",
          "zMMA5YVGsV4"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Tuesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "content pillars match high-value sponsor categories, consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 36,
      "reason": "fits web-services",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.55
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.35
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "fits web-services. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "CodingPhase — 0.1M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 36,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.74,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mid-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mid"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mid-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mid",
      "sponsorCategory": "web-services",
      "historicalTypicalReplyRange": "5-12%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mid-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "c4760a33e2dc6313c1eb1e73a34e3afb43ea24bdf9c6d51bd4545dc794069777",
      "inputsHash": "29f667f358cd1239dd5ab005eb49cbf31ac54b4b1b15378cdee29308640f7175",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-stable",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:04.443Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "a2d91d6d319c8d31d2db8c5b6f9561b9420cdb0f6c03acbac838ad8f3fb7499f",
    "channelId": "UCDCHcqyeQgJ-jVSd6VJkbCw",
    "channelHandle": "@codeSTACKr",
    "channelName": "codeSTACKr",
    "channelUrl": "https://www.youtube.com/@codeSTACKr",
    "description": "I create the best content I possibly can to give away free. My tutorials are generally about web development and include coding languages such as HTML, CSS, Sass, JavaScript, and TypeScript.  Subscribe to my YouTube channel for the latest content.\n\n** Affiliate Disclaimer: Some of the links included in my video descriptions / comments may be affiliate links, which may generate me a sales commission at no additional cost to you.",
    "joinDate": null,
    "location": null,
    "subscribers": 293000,
    "totalVideos": 400,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_l7utHaaPeFFxUaQHIdPvu0tGPoGGz3DdP3OmgYLfsx1Q=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "discord",
        "url": "https://discord.gg/A9CnsVzzkZ"
      },
      {
        "platform": "twitter",
        "url": "http://twitter.com/codeSTACKr"
      },
      {
        "platform": "codestackr.com",
        "url": "http://www.codestackr.com"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/codestackr"
      },
      {
        "platform": "paypal.me",
        "url": "https://paypal.me/codeSTACKr"
      },
      {
        "platform": "facebook",
        "url": "https://www.facebook.com/Codestackr-102596607928049/"
      },
      {
        "platform": "patreon.com",
        "url": "https://www.patreon.com/codestackr"
      }
    ],
    "recentVideos": [
      {
        "videoId": "sZDjE-9esEg",
        "title": "I stopped using terminal tabs.",
        "publishedAt": "9 hours ago",
        "durationSeconds": 393,
        "views": 372,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Voice control for AI coding agents. Built with LiveKit and Solo.\n\nI built a voice bridge that lets me reach my coding agents like Claude Code, Codex, and Gemini from anywhere with cell service. Call a phone number or open a web app, and talk to Claude Code, Codex, and Gemini CLI running on my laptop while they are still working. Status checks, unblocking stuck agents, and answering yes-or-no prompts, all by voice.\n\nIn this video I walk through the architecture I landed on: wrapping Solo's local MCP server with a LiveKit voice agent, narrowing 78 MCP tools down to roughly 10 voice-safe ones, and why this voice interface for the terminal belongs natively inside Solo.\n\nWhat you will learn:\nHow to wrap an MCP server with a voice agent\nThe peer-bus model that makes a voice agent for developer tools possible\nPhone access using LiveKit Phone Numbers and a SIP dispatch rule\nWeb access using a Next.js client and a LiveKit token route\nCurating a large MCP tool surface down to a voice-safe subset\nThe supervisor pattern as the natural next step\nHow LiveKit's free tier covers a single-user setup\n\nTools and references:\nSolo: https://soloterm.com\nLiveKit Agents SDK: https://docs.livekit.io/agents/start/...\n_____________________________________\n\n👀 Watch Next:\nPlaylist: Web Development For Beginners -    • Web Development - Beginners Roadmap (2019)  \n_____________________________________\n\n🌐 Connect With Me:\nWebsite: https://www.codestackr.com\nTwitter:   / codestackr  \nInstagram:   / codestackr  \nFacebook:   / codestackr  \n_____________________________________\n\n** Affiliate Disclaimer: Some of the above links may be affiliate links, which may generate me a sales commission at no additional cost to you.\n\n#claudecode #aiagents #vibecoding",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "goxnUKwwf-I",
        "title": "Generative UI is the future of AI Interactions!!",
        "publishedAt": "8 months ago",
        "durationSeconds": 358,
        "views": 6744,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n🧑🏾‍🤝‍🧑🏽 Join my Discord developer community:   / discord  \n\n🚀 What you'll learn: How Claude generates functional React components (not just text) to create interactive flashcards with state management, event handlers, and educational logic.\n\n⚡ Technical Stack: Vercel AI SDK v5 + Next.js 15 + MongoDB + better-auth + Anthropic API - production-grade patterns for AI-powered applications.\n\n🎯 Key Innovation: Generative UI for education - Claude creates different flashcard types (Q&A, multiple choice) with proper validation, persistence, and session management.\n\n💻 Developer Value: Complete blueprint for integrating Claude's tool orchestration into real applications. Includes authentication, database design, streaming APIs, and component architecture patterns.\n\n🔧 What's Covered:\nTool definition patterns for UI component generation\nChat API architecture with message persistence\nSession management and user authentication\nProduction deployment strategies\nMarket opportunities in education technology\n\n📁 Open Source: https://github.com/codeSTACKr/ai-tutor\nFull repository with setup instructions, documented prompts, and roadmap for advanced features like adaptive difficulty and analytics dashboards.\n\nPerfect for developers who want to build AI applications that generate interactive content, not just chat responses. The patterns shown work for any domain requiring structured, interactive AI-generated experiences.\n_____________________________________\n\n🛠️ Tools I use:\n🟠 codeSTACKr Theme: https://marketplace.visualstudio.com/...\n🟠 STACKr Code Font (Exclusive to my VS Code Course - https://vsCodeHero.com)\n🟠 SuperHero Extension Pack: https://marketplace.visualstudio.com/...\n_____________________________________\n\n💖 Show support!\nPayPal: https://paypal.me/codeSTACKr\n_____________________________________\n\n👀 Watch Next:\nPlaylist: Web Development For Beginners -    • Web Development - Beginners Roadmap (2019)  \n_____________________________________\n\n🌐 Connect With Me:\nWebsite: https://www.codestackr.com\nTwitter:   / codestackr  \nInstagram:   / codestackr  \nFacebook:   / codestackr  \n_____________________________________\n\n** Affiliate Disclaimer: Some of the above links may be affiliate links, which may generate me a sales commission at no additional cost to you.\n\n#anthropic #ai #chatgpt",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7Yo3eO-jitQ",
        "title": "Forget Everything you Thought you Knew about Deno | Deno 2 0 Crash Course",
        "publishedAt": "1 year ago",
        "durationSeconds": 1776,
        "views": 32857,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n\nIn this crash course, we explore why Deno 2.0 (‪@deno_land‬) is a game-changer for JavaScript and TypeScript developers. Whether you're brand new to Deno or a seasoned developer, this course will show you how to take full advantage of the latest features that make Deno a strong alternative to Node.js.\n\n🔑 Key Takeaways:\nnpm compatibility in Deno 2.0\nSeamless Next.js integration\nImproved performance and built-in TypeScript support\nEnhanced security with permissions and built-in tools like a formatter, linter, and test runner\n\nWe'll cover installation, Deno's key features, and hands-on examples like building a simple API, creating a CLI tool, and running Next.js apps with Deno. Plus, learn the differences between Deno and Node.js and how to make the switch.\n\n👨‍💻 Who is this for?\nJavaScript and TypeScript developers looking to explore Deno\nDevelopers curious about moving away from Node.js\nAnyone looking to improve security and modernize their workflow with Deno’s built-in tools\n\n📌 Don't forget to like, subscribe, and hit the 🔔 to stay updated with more tutorials on Deno, JavaScript, Next.js, and beyond!\n_____________________________________\n\n🛠️ Tools I use:\n🟠 codeSTACKr Theme: https://marketplace.visualstudio.com/...\n🟠 STACKr Code Font (Exclusive to my VS Code Course - https://vsCodeHero.com)\n🟠 SuperHero Extension Pack: https://marketplace.visualstudio.com/...\n_____________________________________\n\n⏱️ Timestamps ⏱️\n00:00 - Intro to Deno 2.0\n01:28 - Deno 2.0 Installation\n02:07 - Upgrading Deno\n02:38 - Deno CLI Basics\n03:11 - Deno vs Node.js\n05:01 - Initialize a New Deno Project\n07:46 - Native TypeScript Support\n09:08 - Deno Security Model\n12:01 - Deno Built-in Tooling\n13:44 - Web Standards API\n14:12 - Multiple Ways to Import Packages\n17:53 - Hands-on: Hello World+\n19:02 - Hands-on: Build a Simple API\n22:14 - Hands-on: Create a CLI Tool\n24:57 - Deno with Next.js\n28:33 - Conclusion & Next Steps\n_____________________________________\n\n💖 Show support!\nPayPal: https://paypal.me/codeSTACKr\n_____________________________________\n\n👀 Watch Next:\nPlaylist: Web Development For Beginners -    • Web Development - Beginners Roadmap (2019)  \n_____________________________________\n\n🌐 Connect With Me:\nWebsite: https://www.codestackr.com\nTwitter:   / codestackr  \nInstagram:   / codestackr  \nFacebook:   / codestackr  \n_____________________________________\n\n** Affiliate Disclaimer: Some of the above links may be affiliate links, which may generate me a sales commission at no additional cost to you.\n\n#deno2 #deno #nodejs",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bvCYpVqkn54",
        "title": "Stop Googling | Start Chopping!!",
        "publishedAt": "1 year ago",
        "durationSeconds": 725,
        "views": 3937,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "✅ Give Cody a try today: https://t.co/Vc4cdbdUPr\n\nStop Coding the Hard Way: Embrace CHOP (Chat-Oriented Programming) | AI Coding with Sourcegraph Cody\n\nAre you still coding by hand, troubleshooting with console logs, and searching Google for solutions? It's time to level up your coding game with the latest paradigm—Chat-Oriented Programming (CHOP).\n\nIn this video, I’ll dive deep into why relying on Google search is a thing of the past and how CHOP, powered by AI coding assistants like Sourcegraph Cody, can make you a faster, more efficient developer. Whether you're a Junior or Senior Dev, CHOP can transform your workflow, reduce cognitive load, and help you understand complex codebases with ease.\n\n🔥 What You’ll Learn:\n⊙ The evolution of coding from BOOP (Book-Oriented Programming) to GOOP (Google-Oriented Programming) to CHOP.\n⊙ Why Steve Yegge says, \"Google search reeks of desperation.\"\n⊙ How to master iterative prompt refinement and have meaningful conversations with Large Language Models (LLMs) to get the best coding results.\n⊙ A live demo of CHOP in action, using Sourcegraph Cody to enhance productivity in Next.js with Shadcn/ui.\n⊙ How AI coding assistants can support Junior Developers in understanding foreign codebases and assist Senior Developers in reducing cognitive load for more complex tasks.\n_____________________________________\n\n🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n🧑🏾‍🤝‍🧑🏽 Join my Discord developer community:   / discord  \n\n_____________________________________\n\n🛠️ Tools I use:\n🟠 codeSTACKr Theme: https://marketplace.visualstudio.com/...\n🟠 STACKr Code Font (Exclusive to my VS Code Course - https://vsCodeHero.com)\n🟠 SuperHero Extension Pack: https://marketplace.visualstudio.com/...\n_____________________________________\n\n⏱️ Timestamps ⏱️\n00:00 - Intro\n00:22 - What is CHOP: Chat-Oriented Programming?\n01:33 - Why use CHOP?\n02:36 - Demo: CHOP in action\n07:47 - How AI coding assistants will affect Junior Devs\n10:24 - How AI coding assistants will affect Senior Devs\n_____________________________________\n\n💖 Show support!\nPayPal: https://paypal.me/codeSTACKr\n_____________________________________\n\n👀 Watch Next:\nPlaylist: Web Development For Beginners -    • Web Development - Beginners Roadmap (2019)  \n_____________________________________\n\n🌐 Connect With Me:\nWebsite: https://www.codestackr.com\nTwitter:   / codestackr  \nInstagram:   / codestackr  \nFacebook:   / codestackr  \n_____________________________________\n\n** Affiliate Disclaimer: Some of the above links may be affiliate links, which may generate me a sales commission at no additional cost to you.\n\n#ai #vscode #learntocode",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "NBzhtDJFce8",
        "title": "Top VS Code Updates over the Past Year | Tips & Tricks 2024 (Visual Studio Code)",
        "publishedAt": "1 year ago",
        "durationSeconds": 802,
        "views": 32161,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "FlexiSpot is having an anniversary sale up to 65% off now and a chance to win free orders！Use my exclusive code 'C782150' to purchase the C7 now！For more amazing discounts, just click FlexiSpot!\n\nFlexiSpot Ergonomic C7 Chair:\nUS: https://bit.ly/4cpuHGW\nCA: https://bit.ly/3ypD8EB\n_____________________________________\n\n🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n✅ Get my FREE VS Code Cheat Sheet: https://courses.codestackr.com/vs-cod...\n🧑🏾‍🤝‍🧑🏽 Join my Discord developer community:   / discord  \n\nIn this video, we are going to look at some of the recent updates to VS Code (Visual Studio Code) up to the latest version 1.92. There are several great improvements.\n\nIf you want to learn more about VS Code, check out my VS Code course at https://vsCodeHero.com.\n\n📚 VIDEO LINKS 📚\n▶ VS Code Official Release Notes: https://code.visualstudio.com/updates/\n▶ Support my opensource repos: https://github.com/sponsors/codeSTACKr\n▶ Try my VS Code Theme in the browser: https://vscode.dev/theme/codestackr.c...\n▶ Get my FREE VS Code Cheat Sheet: https://courses.codestackr.com/vs-cod...\n▶ Become A VS Code SuperHero Today: https://vsCodeHero.com\n_____________________________________\n\n🛠️ Tools I use 🛠️\n🟠 codeSTACKr Theme: https://marketplace.visualstudio.com/...\n🟠 STACKr Code Font (Exclusive to my VS Code Course - https://vsCodeHero.com)\n🟠 SuperHero Extension Pack: https://marketplace.visualstudio.com/...\n_____________________________________\n\n⏱️ Timestamps ⏱️\n00:00 - Intro\n00:39 - Sticky Scrolling in tree views\n01:18 - Copy GitHub deep links from editor gutter\n01:51 - Floating editor windows\n02:26 - Sponsor: FlexiSpot\n03:53 - Profiles: Editing & Sharing\n06:45 - New Default Color Themes\n07:19 - Paste As...\n08:30 - Standalone Color Picker\n09:08 - Emmet Support for CSS Modules in JSX/TSX\n10:13 - Sort JSON\n10:30 - Terminal: Sticky Scrolling\n10:58 - VS Code for the Web: `code` Chrome Extension\n11:29 - GitHub Copilot: Slash Commends, Agents & More\n_____________________________________\n\n💖 Show support! 💖\nPayPal: https://paypal.me/codeSTACKr\n_____________________________________\n\n👀 Watch Next 👀\nPlaylist: Web Development For Beginners -    • Web Development - Beginners Roadmap (2019)  \n_____________________________________\n\n🌐 Connect with Me 🌐\nWebsite: https://www.codestackr.com\nTwitter:   / codestackr  \nInstagram:   / codestackr  \nFacebook:   / codestackr  \n_____________________________________\n\n** Affiliate Disclaimer: Some of the above links may be affiliate links, which may generate me a sales commission at no additional cost to you.\n\n#codeSTACKr #vscode #learntocode",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dNskJAl5dBw",
        "title": "This VS Code AI Coding Assistant Is A Game Changer!",
        "publishedAt": "2 years ago",
        "durationSeconds": 867,
        "views": 219538,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "✅ Give Codeium a try today: https://codeium.com/?referrer_id=code...\n\nCodeium is the best free alternative to GitHub Copilot!\nCodeium answers technical questions and writes code directly in your IDE, including VS Code.\n\nIn this video, I'll give Codeium a spin and have it help me build a Next.js React app among other things. Let's see how it does.\n_____________________________________\n\n🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n🧑🏾‍🤝‍🧑🏽 Join my Discord developer community:   / discord  \n\n🛠️ Tools I use:\n🟠 codeSTACKr Theme: https://marketplace.visualstudio.com/...\n🟠 STACKr Code Font (Exclusive to my VS Code Course - https://vsCodeHero.com)\n🟠 SuperHero Extension Pack: https://marketplace.visualstudio.com/...\n_____________________________________\n\n💖 Show support!\nPayPal: https://paypal.me/codeSTACKr\n_____________________________________\n\n👀 Watch Next:\nPlaylist: Web Development For Beginners -    • Web Development - Beginners Roadmap (2019)  \n_____________________________________\n\n🌐 Connect With Me:\nWebsite: https://www.codestackr.com\nTwitter:   / codestackr  \nInstagram:   / codestackr  \nFacebook:   / codestackr  \n_____________________________________\n\n** Affiliate Disclaimer: Some of the above links may be affiliate links, which may generate me a sales commission at no additional cost to you.\n\n#codeSTACKr #vscode #copilot",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "43Eznupydng",
        "title": "I Cannot Believe How Powerful This Headless CMS Is!",
        "publishedAt": "2 years ago",
        "durationSeconds": 495,
        "views": 4119,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚨 Check out Wix Headless today! 👉 https://www.wix.com/developers/headle...\n\nDive into the world of headless CMS with our comprehensive guide on Wix Headless! Discover how you can leverage the powerful combination of Wix Headless and Next.js to elevate your web development projects. This video is your ultimate \"how-to\" guide, equipped with everything you need to start using Wix Headless and its JavaScript SDK.\n\n🔗 Useful Links:\n✅ Wix Headless: https://www.wix.com/developers/headle...\n✅ Wix Headless Templates: https://www.wix.com/developers/headle...\n✅ Next.js demo repo: https://github.com/wix/wix-appointmen...\n\n⚙️ What We Cover:\n1️⃣ Introduction to Wix Headless: Learn about the new era of Wix beyond its website templates and GUI builders. Discover how it's revolutionizing the developer experience.\n2️⃣ Understanding Headless CMS: Get a clear explanation of what a headless CMS is and how it differs from traditional CMSs.\n3️⃣ How Wix Headless Works: An in-depth look at Wix Headless' server-side APIs, JavaScript SDK, REST API, and unique features like Bookings, Events, eCommerce, and Pricing plans APIs.\n4️⃣ Practical Demo: Watch a real-time demonstration as we install and explore a Next.js template from Wix, showcasing the integration and capabilities of Wix Headless.\n\n🚀 Why Wix Headless?\n✨ Flexibility: Use any tech stack, craft unique digital experiences, and deliver content across various platforms.\n✨ Seamless Integration: Perfect harmony with modern frameworks like Next.js.\n✨ Powerful Backend: Robust server-side capabilities for a full-scale development experience.\n\n👉 Whether you're a seasoned developer or just starting, Wix Headless offers an innovative solution to build modern web apps with ease and flexibility.\n\n❤️ Sponsored by Wix: This video is sponsored by Wix, but the insights and opinions are based on my genuine belief in the potential and functionality of Wix Headless.\n_____________________________________\n\n🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n🧑🏾‍🤝‍🧑🏽 Join my Discord developer community:   / discord  \n\n🛠️ Tools I use:\n🟠 codeSTACKr Theme: https://marketplace.visualstudio.com/...\n🟠 STACKr Code Font (Exclusive to my VS Code Course - https://vsCodeHero.com)\n🟠 SuperHero Extension Pack: https://marketplace.visualstudio.com/...\n_____________________________________\n\n💖 Show support!\nPayPal: https://paypal.me/codeSTACKr\n_____________________________________\n\n👀 Watch Next:\nPlaylist: Web Development For Beginners -    • Web Development - Beginners Roadmap (2019)  \n_____________________________________\n\n🌐 Connect With Me:\nWebsite: https://www.codestackr.com\nTwitter:   / codestackr  \nInstagram:   / codestackr  \nFacebook:   / codestackr  \n_____________________________________\n\n** Affiliate Disclaimer: Some of the above links may be affiliate links, which may generate me a sales commission at no additional cost to you.\n\n#cms  #headless #wix",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TALwI3J4asY",
        "title": "I Cannot Believe How Good This VS Code AI Coding Assistant Is!",
        "publishedAt": "2 years ago",
        "durationSeconds": 1204,
        "views": 245000,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "✅ Give Cody a try today: https://sourcegraph.com/cody\n\nCody is the only AI coding assistant that knows your entire codebase.\nCody answers technical questions and writes code directly in your IDE, including VS Code, using your code graph for context and accuracy.\n\nIn this video, I'll give Cody a spin and have it help me build a Next.js React app to gamify keeping track of everyday tasks. Let's see how it does.\n\nSourcegraph Cody is now generally available. Go give it a try today!\n_____________________________________\n\n🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n🧑🏾‍🤝‍🧑🏽 Join my Discord developer community:   / discord  \n\n🛠️ Tools I use:\n🟠 codeSTACKr Theme: https://marketplace.visualstudio.com/...\n🟠 STACKr Code Font (Exclusive to my VS Code Course - https://vsCodeHero.com)\n🟠 SuperHero Extension Pack: https://marketplace.visualstudio.com/...\n_____________________________________\n\n💖 Show support!\nPayPal: https://paypal.me/codeSTACKr\n_____________________________________\n\n👀 Watch Next:\nPlaylist: Web Development For Beginners -    • Web Development - Beginners Roadmap (2019)  \n_____________________________________\n\n🌐 Connect With Me:\nWebsite: https://www.codestackr.com\nTwitter:   / codestackr  \nInstagram:   / codestackr  \nFacebook:   / codestackr  \n_____________________________________\n\n** Affiliate Disclaimer: Some of the above links may be affiliate links, which may generate me a sales commission at no additional cost to you.\n\n#codeSTACKr #vscode #copilot",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZTX9-_MyaIw",
        "title": "Eddie Jaoude Explains & Talks about MDX Documentation",
        "publishedAt": "2 years ago",
        "durationSeconds": 931,
        "views": 837,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Join me in this insightful interview with Eddie Jaoude, a seasoned fullstack and DevRel expert and will be speaking at React Day Berlin on the topic of how MDX is a game changer for your React Project's Documentation. \n\nGet ready to dive into the Reactverse on December 8 & 12, both in Berlin and online. Explore the latest insights on Webpack, Turbopack, React Native, and Typescript from over 50 React professionals. Secure your spot today and enjoy a 10% discount: https://ti.to/gitnation/react-day-ber...\n\nCheck out BioDrop: https://github.com/EddieHubCommunity/...\nSubscribe to ‪@eddiejaoude‬ 's channel\n_____________________________________\n\n🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n🧑🏾‍🤝‍🧑🏽 Join my Discord developer community:   / discord  \n_____________________________________\n\n🛠️ Tools I use:\n🟠 codeSTACKr Theme: https://marketplace.visualstudio.com/...\n🟠 STACKr Code Font (Exclusive to my VS Code Course - https://vsCodeHero.com)\n🟠 SuperHero Extension Pack: https://marketplace.visualstudio.com/...\n_____________________________________\n\n💖 Show support!\nPayPal: https://paypal.me/codeSTACKr\n_____________________________________\n\n👀 Watch Next:\nPlaylist: Web Development For Beginners -    • Web Development - Beginners Roadmap (2019)  \n_____________________________________\n\n🌐 Connect With Me:\nWebsite: https://www.codestackr.com\nTwitter:   / codestackr  \nInstagram:   / codestackr  \nFacebook:   / codestackr  \n_____________________________________\n\n** Affiliate Disclaimer: Some of the above links may be affiliate links, which may generate me a sales commission at no additional cost to you.\n\n#codeSTACKr #vscode #learntocode",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zn-nFWDxyiw",
        "title": "React's Future: Tejas Kumar on Server Components",
        "publishedAt": "2 years ago",
        "durationSeconds": 856,
        "views": 906,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🎟️ Get Your Tickets for React Day Berlin: https://ti.to/gitnation/react-day-ber...\n\nJoin me in this insightful interview with Tejas Kumar, a seasoned engineer with 22 years of experience, and will be speaking at React Day Berlin on the topic of React server components. Discover how these components can revolutionize your React applications and get a sneak peek of what Tejas will be discussing at the upcoming React Day Berlin conference.\n\nGet ready to dive into the Reactverse on December 8 & 12, both in Berlin and online. Explore the latest insights on Webpack, Turbopack, React Native, and Typescript from over 50 React professionals. Secure your spot today and enjoy a 10% discount: https://ti.to/gitnation/react-day-ber...\n\n🔗 RSC from Dan Abramov: https://github.com/reactwg/server-com...\n🎟️ Get Your Tickets for React Day Berlin: https://ti.to/gitnation/react-day-ber...\n\nIn this conversation, Tejas shares his remarkable journey in tech, starting from his early days dealing with illness to becoming an international keynote speaker. We also explore the nuances of server components in React and how they can significantly enhance the performance and functionality of your applications.\n\nDon't miss out on this opportunity to learn from one of the best in the industry. Whether you're a seasoned developer or just starting out, there's something in this talk for everyone.\n\n_____________________________________\n\n🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n🧑🏾‍🤝‍🧑🏽 Join my Discord developer community:   / discord  \n_____________________________________\n\n🛠️ Tools I use:\n🟠 codeSTACKr Theme: https://marketplace.visualstudio.com/...\n🟠 STACKr Code Font (Exclusive to my VS Code Course - https://vsCodeHero.com)\n🟠 SuperHero Extension Pack: https://marketplace.visualstudio.com/...\n_____________________________________\n\n💖 Show support!\nPayPal: https://paypal.me/codeSTACKr\n_____________________________________\n\n👀 Watch Next:\nPlaylist: Web Development For Beginners -    • Web Development - Beginners Roadmap (2019)  \n_____________________________________\n\n🌐 Connect With Me:\nWebsite: https://www.codestackr.com\nTwitter:   / codestackr  \nInstagram:   / codestackr  \nFacebook:   / codestackr  \n_____________________________________\n\n** Affiliate Disclaimer: Some of the above links may be affiliate links, which may generate me a sales commission at no additional cost to you.\n\n#codeSTACKr #React #learntocode",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DZV33RjeXW0",
        "title": "Collaboration is HARD! You Need this Web Development Workflow",
        "publishedAt": "2 years ago",
        "durationSeconds": 226,
        "views": 1549,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Download Codux Free →  https://codux.hopp.to/codeSTACKr\n\n🚀 Dive into a day in the life of a development team and discover how broken the process is and how Codux revolutionizes project...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DTGRIaAJYIo",
        "title": "The Best UI Components that EVERYONE is Using!",
        "publishedAt": "2 years ago",
        "durationSeconds": 3246,
        "views": 149424,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n🧑🏾‍🤝‍🧑🏽 Join my Discord developer community: https://discord.gg/A9CnsVzzkZ\n\nDiscover the power of shadcn/ui,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8hZmvz7GxQ4",
        "title": "The Secret to Understanding AI: It's Easier Than You Think",
        "publishedAt": "2 years ago",
        "durationSeconds": 301,
        "views": 2255,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n🧑🏾‍🤝‍🧑🏽 Join my Discord developer community: https://discord.gg/A9CnsVzzkZ\n\nIn this video, we break down the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "oH_-6TyxVhI",
        "title": "Step-by-Step Guide to JSDoc and TypeScript in Modern JavaScript Projects in 15 Minutes!",
        "publishedAt": "2 years ago",
        "durationSeconds": 880,
        "views": 30299,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n🧑🏾‍🤝‍🧑🏽 Join my Discord developer community: https://discord.gg/A9CnsVzzkZ\n\nIn this comprehensive guide, we...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JTYhDiJiiFI",
        "title": "🤔 Should I use TypeScript, JSDoc, or Both?",
        "publishedAt": "2 years ago",
        "durationSeconds": 273,
        "views": 27422,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n🧑🏾‍🤝‍🧑🏽 Join my Discord developer community: https://discord.gg/A9CnsVzzkZ\n\nIn the realm of web development,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TwjUuivIrPI",
        "title": "The Future of JavaScript & AI in Tech - Evan You at VueJSLive",
        "publishedAt": "3 years ago",
        "durationSeconds": 881,
        "views": 3920,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://vuejslive.com/\nRegister now and get 10% off! https://ti.to/gitnation/vuejs-london-2023/discount/Codestackr10\n\nToday I'll be interviewing Evan You, the creator of Vue.js and Vite. He'll...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cYoY_WbqNSw",
        "title": "Fireship in 100 Seconds",
        "publishedAt": "3 years ago",
        "durationSeconds": 137,
        "views": 160718,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n🧑🏾‍🤝‍🧑🏽 Join my Discord developer community: https://discord.gg/A9CnsVzzkZ\n\nBe sure to subscribe to @Fireship...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LIxBJ_jw9tE",
        "title": "The FASTEST Way to Learn to Code & Become a Successful Web Developer",
        "publishedAt": "3 years ago",
        "durationSeconds": 742,
        "views": 6392,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n🧑🏾‍🤝‍🧑🏽 Join my Discord developer community: https://discord.gg/A9CnsVzzkZ\n\nDo you want to break into the world...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cKfevf-iIHA",
        "title": "The Future of Web Development: Visualizing React",
        "publishedAt": "3 years ago",
        "durationSeconds": 896,
        "views": 151943,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Download Codux Free at  https://codux.hopp.to/codeSTACKr\n\nCodux is a visual IDE, or graphical editor, that allows you to build and edit React components like you’re drawing on a canvas....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8aosxBJQdVc",
        "title": "Learn THESE Technologies to become a Web Developer in 2023!",
        "publishedAt": "3 years ago",
        "durationSeconds": 1425,
        "views": 38481,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "FREE 2023 Web Development Roadmap:\n✔️ https://courses.codestackr.com/66beedd0-5515-45f9-b532-36c8cf51df72/buy\nAll of the resource links from the video are in the roadmap.\n\n🦸 Become A...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bR2tbXuzjcM",
        "title": "Maximize Your Online Presence using this Link-in-Bio Generator that Twitter Cannot Ban",
        "publishedAt": "3 years ago",
        "durationSeconds": 898,
        "views": 2156,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Upvote on Product Hunt: https://www.producthunt.com/posts/gentr-ee\n\n🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n🧑🏾‍🤝‍🧑🏽 Join my Discord developer community:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Gz0qvqBoA4I",
        "title": "Can ChatGPT Replace Developers? We Put the AI Chatbot to the Test",
        "publishedAt": "3 years ago",
        "durationSeconds": 800,
        "views": 2640,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n🧑🏾‍🤝‍🧑🏽 Join my Discord developer community: https://discord.gg/A9CnsVzzkZ\n\nEveryone is talking about ChatGPT,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "STZgSUtu004",
        "title": "Become a VS Code SuperHero Today - Trailer 2.0",
        "publishedAt": "3 years ago",
        "durationSeconds": 71,
        "views": 16540,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n🧑🏾‍🤝‍🧑🏽 Join my Discord developer community: https://discord.gg/A9CnsVzzkZ\n\n_____________________________________...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4d_tbl3KqMM",
        "title": "Go from Visual Studio Code Noob to Pro! Become a VS Code SuperHero Today!",
        "publishedAt": "3 years ago",
        "durationSeconds": 280,
        "views": 4437,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n🧑🏾‍🤝‍🧑🏽 Join my Discord developer community: https://discord.gg/A9CnsVzzkZ\n\nIn this video, I'll go over what's...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1GJkuRa1PjM",
        "title": "Coinbase Hacked! $16,308 Stolen - Don’t let this happen to you!!",
        "publishedAt": "3 years ago",
        "durationSeconds": 321,
        "views": 7089,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n🧑🏾‍🤝‍🧑🏽 Join my Discord developer community: https://discord.gg/A9CnsVzzkZ\n\nJust like that, $16,308 gone! Don’t...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kphds-1V9o8",
        "title": "How to center a div 12 ways!!",
        "publishedAt": "3 years ago",
        "durationSeconds": 156,
        "views": 7912,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n🧑🏾‍🤝‍🧑🏽 Join my Discord developer community: https://discord.gg/A9CnsVzzkZ\n\nWhy is it so hard to center a div...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2ncAmRBCN1w",
        "title": "Top VS Code Updates | v1.69 Released!! | Tips & Tricks 2022 (Visual Studio Code)",
        "publishedAt": "3 years ago",
        "durationSeconds": 395,
        "views": 19320,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n✅ Get my FREE VS Code Cheat Sheet: https://courses.codestackr.com/vs-code-cheat-sheet\n🧑🏾‍🤝‍🧑🏽 Join my Discord...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VGGWcy6__Fg",
        "title": "Learning to code is HARD - Unless you do this!",
        "publishedAt": "3 years ago",
        "durationSeconds": 554,
        "views": 12509,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💰 \"Ten++ Ways to Make Money as a Developer\" eBook: http://bit.ly/MakeMoney-ebook\n🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n🧑🏾‍🤝‍🧑🏽 Join my Discord...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "q0M21Gk1ZnI",
        "title": "Web3 101: What is an ERC1155 Smart Contract?",
        "publishedAt": "3 years ago",
        "durationSeconds": 328,
        "views": 1750,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n🧑🏾‍🤝‍🧑🏽 Join my Discord developer community: https://discord.gg/A9CnsVzzkZ\n\nWhat is a web3 ERC-1155 smart contract?...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_XAxn0glwAI",
        "title": "Web3 101: What is an ERC721/a Smart Contract?",
        "publishedAt": "3 years ago",
        "durationSeconds": 383,
        "views": 2166,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🦸 Become A VS Code SuperHero Today: https://vsCodeHero.com\n🧑🏾‍🤝‍🧑🏽 Join my Discord developer community: https://discord.gg/A9CnsVzzkZ\n\nWhat is a web3 ERC-721 and ERC-721a...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 1,
      "uploadsLast90d": 1,
      "uploadCadenceWeekly": 0.08,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 372,
      "viewsPerVideoP90Last90d": 372,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 372,
      "p90Views": 372,
      "p99Views": 372,
      "outperformingVideosLast90d": 1
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [
        "This video",
        "Wix"
      ],
      "affiliateLinkHosts": [
        "bit.ly"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": "2024-05-14",
      "detectionDetail": [
        {
          "brand": "This video",
          "videoId": "43Eznupydng",
          "confidence": 0.7,
          "evidence": "description: This video is sponsored by Wix",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:05.502Z"
        },
        {
          "brand": "Wix",
          "videoId": "43Eznupydng",
          "confidence": 0.95,
          "evidence": "description: Sponsored by Wix",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:05.502Z"
        }
      ]
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 2,
        "firstSponsoredVideoDate": "2026-05-14"
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "web-services",
          "confidence": 0.4,
          "evidence": [
            "historical-sponsor:Wix",
            "topic-pillar:web development"
          ]
        },
        {
          "category": "developer-tools",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:developer"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "discord.gg",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 1,
        "evidenceVideoIds": [
          "sZDjE-9esEg",
          "goxnUKwwf-I",
          "7Yo3eO-jitQ",
          "bvCYpVqkn54",
          "NBzhtDJFce8"
        ]
      },
      {
        "label": "com",
        "share": 0.93,
        "evidenceVideoIds": [
          "sZDjE-9esEg",
          "goxnUKwwf-I",
          "7Yo3eO-jitQ",
          "bvCYpVqkn54",
          "NBzhtDJFce8"
        ]
      },
      {
        "label": "code",
        "share": 0.87,
        "evidenceVideoIds": [
          "sZDjE-9esEg",
          "goxnUKwwf-I",
          "7Yo3eO-jitQ",
          "bvCYpVqkn54",
          "NBzhtDJFce8"
        ]
      },
      {
        "label": "developer",
        "share": 0.87,
        "evidenceVideoIds": [
          "sZDjE-9esEg",
          "goxnUKwwf-I",
          "7Yo3eO-jitQ",
          "bvCYpVqkn54",
          "NBzhtDJFce8"
        ]
      },
      {
        "label": "become",
        "share": 0.87,
        "evidenceVideoIds": [
          "goxnUKwwf-I",
          "7Yo3eO-jitQ",
          "bvCYpVqkn54",
          "NBzhtDJFce8",
          "dNskJAl5dBw"
        ]
      },
      {
        "label": "web development",
        "share": 0.47,
        "evidenceVideoIds": [
          "sZDjE-9esEg",
          "goxnUKwwf-I",
          "7Yo3eO-jitQ",
          "bvCYpVqkn54",
          "NBzhtDJFce8"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Monday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 33,
      "reason": "fits web-services",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.6
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.6,
      "level": "medium",
      "coldStart": false
    },
    "whyThisMatters": "fits web-services. Channel is in the active outreach window.",
    "whyNow": "Last sponsored video 730 days ago — within typical sponsorship-decision lookback for similar creators.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "codeSTACKr — 0.3M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 33,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.77,
      "urgency": 0,
      "noiseRisk": 0.4
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "web-services",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "late",
      "reason": "Last sponsored video 730 days ago; past typical 14-30d decision-cycle for similar creators.",
      "decayRisk": 0.9
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "a2d91d6d319c8d31d2db8c5b6f9561b9420cdb0f6c03acbac838ad8f3fb7499f",
      "inputsHash": "b46dc9c5ecf9318a6ffbc577a3b11df389b778e5b9baee08c4b5e2db71c6f523",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:04.708Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "e8a207c52e7b27344d200049f7124b8094a32047ad481e721cd5e17a20d88eb8",
    "channelId": "UC5DNytAJ6_FISueUfzZCVsw",
    "channelHandle": "@aniakubow",
    "channelName": "Code with Ania Kubów",
    "channelUrl": "https://www.youtube.com/@aniakubow",
    "description": "Worked with Google, Amazon, Microsoft and many more. \n\nWant to learn how to code from nothing? I will show you how!\n\nMy name is Ania and I am a Software Developer and Course Creator.\n\nI quit working as a Software Developer for Eurostar in 2019 to focus on creating video tutorials on YouTube, as well as create the Codewithania.com Full Stack Developer Course. I am very grateful to now have an incredibly supportive online community on here and on my Discord Channel.\n\nFrom Polish heritage and raised in the UAE, I graduated from Dubai College majoring in Math, Physics and DesignTech before moving to the UK to attend University. Fun fact: I worked as a Financial Derivatives Broker in Singapore and London in a past life.\n\nWhat I teach:\nJavaScript, React, React-Native, Next.js, Node.js, Express, GraphQL, Databases +\n\nPlease Subscribe for upcoming releases, and don’t forget to press the bell icon.\n\nFor contact:\nTwitter: @ania_kubow\nInstagram: @aniakubow\nEmail: team@codewithania.com",
    "joinDate": null,
    "location": null,
    "subscribers": 442000,
    "totalVideos": 473,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/CALIyblKHLncjzU4Fx4WmdC1vDhZTBTBosbYJI5DsWJVHXrtlftBhzn681EmvUjGViePBN-GrsI=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "github",
        "url": "https://github.com/kubowania"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/ania_kubow"
      },
      {
        "platform": "instagram",
        "url": "https://instagram.com/aniakubow"
      },
      {
        "platform": "codewithania.com",
        "url": "https://www.codewithania.com"
      }
    ],
    "recentVideos": [
      {
        "videoId": "MKbdkWfVZ1w",
        "title": "How to Improve Video Streaming in Next.js - Adaptive Bitrate Streaming Tutorial | ImageKit",
        "publishedAt": "10 hours ago",
        "durationSeconds": 2414,
        "views": 854,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to follow along: https://tinyurl.com/3xyj6mf4\n\nThis channel is totally free to watch! I sign up for partner links when I can as a way to keep this channel going. If you like watching, please give me a click :)\n\n00:00 Introduction\n01:02 How to Optimize your Videos\n11:40 What is ABS?\n14:37  How to handle ABS\n17:47 Build an Optimized Video Streaming App\n39:40 Recap\n\nFinal code: (COMING SOON!)\n\n⭐ Learn JavaScript with my Course here: https://www.codewithania.com\n\n⭐ Check out my IDE here: https://jb.gg/GetWebStormForFree\n\n⭐ If you would like to buy me a coffee, well thank you very much that is mega kind! : https://www.buymeacoffee.com/aniakubow",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "d8xd9G4Ow-4",
        "title": "I built Midjourney of the FUTURE with this API! | Node.js Uni-1",
        "publishedAt": "8 days ago",
        "durationSeconds": 1288,
        "views": 23801,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to follow along: https://lumalabs.ai/api #LumaPartner\n\nThis channel is totally free to watch! I sign up for partner links when I can as a way to keep this channel going. If you like watching, please give me a click :)\n\n00:00 Introduction\n01:03 How to use the Uni-1 API\n13:46 How to connect the Uni-1 API to Discord\n13:45 How to Programme Discord Commands\n16:06 Your Final Uni1- Discord Bot Code\n\nFinal code: (COMING SOON!)\n\n⭐ Learn JavaScript with my Course here: https://www.codewithania.com\n\n⭐ Check out my IDE here: https://jb.gg/GetWebStormForFree\n\n⭐ If you would like to buy me a coffee, well thank you very much that is mega kind! : https://www.buymeacoffee.com/aniakubow",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vZFSxcvUnok",
        "title": "I Turned My Website Into a Mobile App in Minutes | Replit Tutorial",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 746,
        "views": 78875,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click to follow along: https://replit.com/refer/ania36 (I'm a Replit partner)\n\nThis channel is totally free to watch! I sign up for partner links when I can as a way to keep this channel going. If you like watching, please give me a click :)\n\n00:00 Introduction\n00:59 What We’re Actually Building \n01:45 The Original Website\n03:02 The Prompt That Builds the App\n07:12 Reviewing the Admin Dashboard\n10:14 Running Multiple Tasks at the Same Time\n12:01 Final Result\n\n⭐ Learn JavaScript with my Course here: https://www.codewithania.com\n\n⭐ Check out my IDE here: https://jb.gg/GetWebStormForFree\n\n⭐ If you would like to buy me a coffee, well thank you very much that is mega kind! : https://www.buymeacoffee.com/aniakubow",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QDFvNAmZPsI",
        "title": "My Ultimate Web Design Client Onboarding Checklist",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 1248,
        "views": 44274,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to start: https://www.wix.com/studio\n\n00:00 Introduction  \n01:12 Set Up Your Agency Profile (Wix Studio)  \n02:29 How to Sell Websites to Small Businesses  \n06:10 Client Onboarding: Collect Info Efficiently  \n12:53 Setting Expectations with Clients  \n17:12 Web Design Workflow: From First Meeting to Handover  \n\n⭐ New to code and none of this is making sense? Watch my '12hr+ YouTube Coding Bootcamp' in which you will learn HTML and CSS Fundamentals completely from scratch. It's on my channel and its 100% free.\n\n⭐ Learn JavaScript with my Course here: https://www.codewithania.com\n\n⭐ Check out my IDE here: https://jb.gg/GetWebStormForFree\n\n⭐ If you would like to buy me a coffee, well thank you very much that is mega kind! : https://www.buymeacoffee.com/aniakubow",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ydLfrp0r0mg",
        "title": "How to Build a Paid Membership Web App (Full Wix Studio Tutorial)",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 2159,
        "views": 49601,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to follow along: https://www.wix.com/studio\n\n⭐ New to code and none of this is making sense? Watch my '12hr+ YouTube Coding Bootcamp' in which you will learn HTML and CSS Fundamentals completely from scratch. It's on my channel and its 100% free.\n\n00:00 Introduction\n01:02 What we will build - A membership app\n05:01 Getting started on Wix Studio\n12:41 how to create articles on Wix Studio\n17:35 How to create a membership app for paid content\n21:32 How to create online courses\n27:12 how to add multiple menus in Wix Studio\n33:15 How to handle the web design handover process for clients\n\n⭐ Learn JavaScript with my Course here: https://www.codewithania.com\n\n⭐ Check out my IDE here: https://jb.gg/GetWebStormForFree\n\n⭐ If you would like to buy me a coffee, well thank you very much that is mega kind! : https://www.buymeacoffee.com/aniakubow",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "buqYGrGxAx8",
        "title": "How to sell Wix Studio Website Templates $$$",
        "publishedAt": "1 month ago",
        "durationSeconds": 978,
        "views": 100834,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to start: https://www.wix.com/studio\n\n00:00 Introduction  \n01:10 How to Design Website Templates That Sell  \n04:14 Selling Website Templates to Small Businesses  \n07:24 Web Design Workflow for Website Templates  \n13:16 Client Website Handover Process (Templates)\n\n⭐ New to code and none of this is making sense? Watch my '12hr+ YouTube Coding Bootcamp' in which you will learn HTML and CSS Fundamentals completely from scratch. It's on my channel and its 100% free.\n\n⭐ Learn JavaScript with my Course here: https://www.codewithania.com\n\n⭐ Check out my IDE here: https://jb.gg/GetWebStormForFree\n\n⭐ If you would like to buy me a coffee, well thank you very much that is mega kind! : https://www.buymeacoffee.com/aniakubow",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1QPqZ-tX2_o",
        "title": "Do Websites Charge You More Based on Where You Live? I Tested 30 Countries With Code",
        "publishedAt": "1 month ago",
        "durationSeconds": 1883,
        "views": 130721,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try DataImpulse here: https://bit.ly/scrape-ania (My click tracking link) \n\n⭐ New to code and none of this is making sense? Watch my '12hr+ YouTube Coding Bootcamp' in which you will learn HTML and CSS Fundamentals completely from scratch. It's on my channel and its 100% free.\n\n00:00 Introduction\n01:09 Getting started with DataImpulse\n02:04 Setting up the code\n04:25 Lets build a web scraper that scrapes Spotify prices globally\n\n⭐ Learn JavaScript with my Course here: https://www.codewithania.com\n\n⭐ Check out my IDE here: https://jb.gg/GetWebStormForFree\n\n⭐ If you would like to buy me a coffee, well thank you very much that is mega kind! : https://www.buymeacoffee.com/aniakubow",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dw8hIzWGV9E",
        "title": "Developers Might Stop Typing After This! (Typeless Full Tutorial)",
        "publishedAt": "1 month ago",
        "durationSeconds": 677,
        "views": 78178,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to start:  https://www.typeless.com/?via=ania (My affiliate link) \n\nThis channel is totally free to watch! I sign up for affiliates links when I can as a way to keep this channel going. If you like watching, please give me a click :)\n\n⭐ New to code and none of this is making sense? Watch my '12hr+ YouTube Coding Bootcamp' in which you will learn HTML and CSS Fundamentals completely from scratch. It's on my channel and its 100% free.\n\n00:00: Introduction\n01:47: Getting started\n02:53: How to dictate with Typeless?\n04:51: How to ask Typeless about what you are reading?\n05:54: How to use Typeless directly with your code editor?\n09:09: How to dictate clean documentation with Typeless?\n10:45 How to translate text with your voice?\n\n\n⭐ Learn JavaScript with my Course here: https://www.codewithania.com\n\n⭐ Check out my IDE here: https://jb.gg/GetWebStormForFree\n\n⭐ If you would like to buy me a coffee, well thank you very much that is mega kind! : https://www.buymeacoffee.com/aniakubow\n\n#typeless #voicekeyboard #dictation #voicetype ‪@typelessdotcom‬",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IQVyTFjXapI",
        "title": "How to Plan, Design and Build an App at the Same Time (Full Agent 4 Replit Tutorial)",
        "publishedAt": "1 month ago",
        "durationSeconds": 639,
        "views": 98340,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click to follow along: https://replit.com/refer/ania36 (I'm a Replit partner)\n\nThis channel is totally free to watch! I sign up for partner links when I can as a way to keep this channel going. If you like watching, please give me a click :)\n\n00:00 Introduction\n01:11 How to use the infinite design canvas to design while the app builds\n04:31 how to create multiple project artifacts like web apps, mobile apps, and slides\n06:52 How to track everything through the task board while agents execute in the background\n08:38 How to run multiple AI agents in parallel to build faster\n\n⭐ Learn JavaScript with my Course here: https://www.codewithania.com\n\n⭐ Check out my IDE here: https://jb.gg/GetWebStormForFree\n\n⭐ If you would like to buy me a coffee, well thank you very much that is mega kind! : https://www.buymeacoffee.com/aniakubow",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ROcChQaPRaI",
        "title": "How to add Auth to any app (Super Simple!)",
        "publishedAt": "2 months ago",
        "durationSeconds": 1163,
        "views": 73803,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to get started: https://descope.plug.dev/k0WOcjU\n\n⭐ New to code and none of this is making sense? Watch my '12hr+ YouTube Coding Bootcamp' in which you will learn HTML and CSS Fundamentals completely from scratch. It's on my channel and its 100% free.\n\n00:00: Introduction\n00:57: Getting started\n03:03: How to implement Auth in a real life project?\n14:30 How to control sign up flow in an app?\n17:59 Instructions on using Descope to feed into your AI\n\n⭐ Learn JavaScript with my Course here: https://www.codewithania.com\n\n⭐ Check out my IDE here: https://jb.gg/GetWebStormForFree\n\n⭐ If you would like to buy me a coffee, well thank you very much that is mega kind! : https://www.buymeacoffee.com/aniakubow",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zQ8mgVm2ezw",
        "title": "Build Customer Demos That Convert!  Magic Patterns Tutorial",
        "publishedAt": "2 months ago",
        "durationSeconds": 846,
        "views": 39597,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to start: https://magic.plug.dev/n6Kx6LV\n\n⭐ New to code and none of this is making sense? Watch my '12hr+ YouTube Coding Bootcamp' in which you will learn HTML and CSS Fundamentals...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GUcWYFIKEyU",
        "title": "The PERFECT Prompt to Build A Mobile App and DEPLOY it!",
        "publishedAt": "3 months ago",
        "durationSeconds": 1213,
        "views": 59906,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to follow along: https://bit.ly/appdeploy\n\n⭐ New to code and none of this is making sense? Watch my '12hr+ YouTube Coding Bootcamp' in which you will learn HTML and CSS Fundamentals...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SuGkwibYYKU",
        "title": "What is the best website design software for professionals?",
        "publishedAt": "3 months ago",
        "durationSeconds": 1628,
        "views": 84048,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This video will tell you what features to look out for when choosing a website design software.\n\n⭐ New to code and none of this is making sense? Watch my '12hr+ YouTube Coding Bootcamp' in...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "BHYG_9HA4fo",
        "title": "Headless CMS Tutorial Explained in 15 Minutes",
        "publishedAt": "4 months ago",
        "durationSeconds": 1572,
        "views": 98265,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to follow: https://www.wix.com/studio\n\n00:00 Introduction\n01:28 Getting Started\n04:32 Headless CMS platforms\n11:54 Website wireframe builder\n20:39 How to build a responsive website...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MtYaqjX0UnA",
        "title": "How To Automate Workflows (Full Tutorial)  | n8n + Hostinger",
        "publishedAt": "5 months ago",
        "durationSeconds": 1300,
        "views": 63905,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to follow along: https://www.hostinger.com/aniakubow (get 10% off using ANIAKUBOW via the link)\n\n00:00 introduction\n01:06 Setting up our KVM\n03:33 Setting up our VPS\n05:04: Setting...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7ZMgy3Vf1ks",
        "title": "How I Design Client Websites Like a Pro (Using THIS Website Mockup Tool!)",
        "publishedAt": "6 months ago",
        "durationSeconds": 1806,
        "views": 118659,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to follow: https://www.wix.com/studio\n\n00:00 Introduction\n01:08 Getting started on Wix\n02:05 How do I design a good website?\n05:32 How do I use a website mockup tool?\n14:10 Where...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VNs96uQoetw",
        "title": "Learn JavaScript by building Mario! (Super simple!)",
        "publishedAt": "6 months ago",
        "durationSeconds": 7925,
        "views": 39475,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to deploy your project for free: https://bit.ly/sevalla-deploy (Plus get $50 free credit)\n\nFinal code is here: COMING SOON!\n\n00:00 Introduction\n02:08 Project set up\n10:00 Let’s...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DKiUmvxPjc4",
        "title": "The IDE is dead. The ADE is in!!! | Warp Code Tutorial",
        "publishedAt": "6 months ago",
        "durationSeconds": 720,
        "views": 74462,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to follow along: https://go.warp.dev/ania\n\n00:00 Introduction\n04:39 How to index your codebase?\n07:30 What is an inbuilt file-tree?\n09:40 How to use a Code Review Panel\n\n⭐ New...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2QLxgShh3dQ",
        "title": "Practise JavaScript by Building Zelda! (Super simple)",
        "publishedAt": "6 months ago",
        "durationSeconds": 6485,
        "views": 83891,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to deploy your project for free: https://bit.ly/sevalla-deploy (Plus get $50 free credit)\n\n00:00 Intro\n02:03 Project set up\n04:34 Adding HTML\n07:00 Styling our Game Grid in CSS\n12:01...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "G0gQSD3plqo",
        "title": "What is \"Vibe for WordPress\"? Full Tutorial | 10Web",
        "publishedAt": "6 months ago",
        "durationSeconds": 1081,
        "views": 29945,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to follow along: https://bit.ly/10web-wordpress\n\n00:00 Introduction\n01:18 What is the current state of Drag-and-Drop Builders?\n01:52 What are Modern Vibe Coding Tools?\n03:33 Lets...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "O-hbl6jYnnI",
        "title": "How to get noticed by Facebook as a Developer (Super simple!) | Warp Code tutorial",
        "publishedAt": "7 months ago",
        "durationSeconds": 1033,
        "views": 58008,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to follow along: https://go.warp.dev/ania . Warp is free to try but for a limited time, my friends at Warp are offering their Warp Pro plan for only $5. Use code NETFLIX to...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UojqCkeRB-o",
        "title": "Google Scraping for Beginners - Oxylabs Web Scraper API",
        "publishedAt": "7 months ago",
        "durationSeconds": 1932,
        "views": 5121,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get a free trial of Web Scraper API from Oxylabs and scrape up to 1,000 Google URLs. No credit card required: https://bit.ly/oxylabsdemo\n\nUse code ANIA to get a 20% discount from Oxylabs on...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QExmoUt_1ZU",
        "title": "Website builder for designers : full walkthrough (2025)",
        "publishedAt": "8 months ago",
        "durationSeconds": 1939,
        "views": 25140,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to follow: https://www.wix.com/studio\n\n00:00 Introduction\n01:23 Set up\n01:42 Headless CMS platforms\n10:25 Drag and drop website builder\n11:48 Revenue tracking and reporting\n16:04...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tjYJyDwIfbw",
        "title": "Stop Making Fake Netflix Clones - Here's How to Build a REAL One (Warp Code + Next.js Tutorial)",
        "publishedAt": "8 months ago",
        "durationSeconds": 2886,
        "views": 73244,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to get started: https://go.warp.dev/ania\n\nWarp is free to try but for a limited, my friends at Warp are offering their Warp Pro plan for only 5USD. Use code NETFLIX to redeem here:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9gMSMW7XYMc",
        "title": "How to Build a Website for Clients",
        "publishedAt": "8 months ago",
        "durationSeconds": 2078,
        "views": 77942,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to follow: https://www.wix.com/studio\n\nIn this video we look at website wireframe builders,  tools for collaborating with web design clients, CMS for client websites 2025, SEO setup...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qgUEa1B1tX0",
        "title": "Website Builder for Agencies – Full Walkthrough for 2025",
        "publishedAt": "9 months ago",
        "durationSeconds": 2083,
        "views": 25304,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to follow: https://www.wix.com/studio\n\nIn this video we look at website wireframe builders,  tools for collaborating with web design clients, CMS for client websites 2025, SEO setup...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AuxhBKLxb88",
        "title": "How to set up Wix MCP Server into Claude (And other AI) - Full Walkthrough",
        "publishedAt": "10 months ago",
        "durationSeconds": 977,
        "views": 27760,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to follow along: https://www.wix.com/studio/developers/mcp-server\n\n00:00 Introduction\n01:13 What is Wix MCP Server\n02:57  Setup and Installation\n07:28 Live demo with basic tasks...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dIwwde-DXg8",
        "title": "🛑 How to build an E-commerce site! | Wix Studio + Stripe + Wix IDE",
        "publishedAt": "11 months ago",
        "durationSeconds": 1727,
        "views": 30171,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to start: https://www.wix.com/studio\n\nLearn how to use website builders for e-commerce.\n\n⭐ New to code and none of this is making sense? Watch my '12hr+ YouTube Coding Bootcamp'...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EANmrO57J8Q",
        "title": "🛑 Let's Build Tetris! - Amazon Q Developer Tutorial",
        "publishedAt": "1 year ago",
        "durationSeconds": 992,
        "views": 34380,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to start: https://fnf.dev/3G2rv9X\n\n⭐ New to code and none of this is making sense? Watch my '12hr+ YouTube Coding Bootcamp' in which you will learn HTML and CSS Fundamentals completely...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QGnU-cQ6OmU",
        "title": "🛑 Build APIs with AI – 10 Minute Course with EchoAPI",
        "publishedAt": "1 year ago",
        "durationSeconds": 779,
        "views": 39737,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click here to follow along: https://www.echoapi.com\n\nWatch this course to learn best practises and more. Here is what we will cover:\n00:00 Intro\n01:42 AI-assisted import parsing\n04:47 AI-standardiz...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 9,
      "uploadsLast90d": 13,
      "uploadCadenceWeekly": 1.01,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 73803,
      "viewsPerVideoP90Last90d": 98340,
      "viewVelocityTrend": "stable"
    },
    "performanceBaseline": {
      "p50Views": 73803,
      "p90Views": 98340,
      "p99Views": 100834,
      "outperformingVideosLast90d": 3
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "bit.ly"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": "[REDACTED]",
      "businessEmailSource": "channel-about-section",
      "businessEmailMxValid": true,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "github.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "high",
      "components": {
        "businessEmailPresent": true,
        "businessEmailValid": true,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Will likely respond to sponsorship outreach: business email validated + active sponsor history + external website live."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.97,
        "evidenceVideoIds": [
          "MKbdkWfVZ1w",
          "d8xd9G4Ow-4",
          "vZFSxcvUnok",
          "QDFvNAmZPsI",
          "ydLfrp0r0mg"
        ]
      },
      {
        "label": "click",
        "share": 0.93,
        "evidenceVideoIds": [
          "MKbdkWfVZ1w",
          "d8xd9G4Ow-4",
          "vZFSxcvUnok",
          "QDFvNAmZPsI",
          "ydLfrp0r0mg"
        ]
      },
      {
        "label": "com",
        "share": 0.63,
        "evidenceVideoIds": [
          "MKbdkWfVZ1w",
          "d8xd9G4Ow-4",
          "vZFSxcvUnok",
          "QDFvNAmZPsI",
          "ydLfrp0r0mg"
        ]
      },
      {
        "label": "www",
        "share": 0.63,
        "evidenceVideoIds": [
          "MKbdkWfVZ1w",
          "d8xd9G4Ow-4",
          "vZFSxcvUnok",
          "QDFvNAmZPsI",
          "ydLfrp0r0mg"
        ]
      },
      {
        "label": "introduction",
        "share": 0.6,
        "evidenceVideoIds": [
          "MKbdkWfVZ1w",
          "d8xd9G4Ow-4",
          "vZFSxcvUnok",
          "QDFvNAmZPsI",
          "ydLfrp0r0mg"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Tuesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "B",
      "rationale": "business email validated, strong views-per-subscriber ratio.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "strong",
        "businessContactSignal": "strong",
        "postingCadenceSignal": "moderate",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 52,
      "reason": "validated business email",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.95
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.55
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.8,
      "level": "high",
      "coldStart": false
    },
    "whyThisMatters": "validated business email. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Code with Ania Kubów — 0.4M subs, B-tier sponsorship readiness, high contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": true,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 52,
      "readyForOutreach": false,
      "blockers": [],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.58,
      "urgency": 0,
      "noiseRisk": 0.2
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": {
      "isValidFormat": true,
      "canonical": "team@codewithania.com",
      "domain": "codewithania.com",
      "lineType": "role-account",
      "mxValid": true,
      "confidence": 0.75,
      "originalInput": "team@codewithania.com",
      "email": null
    },
    "allEmailValidations": [
      {
        "isValidFormat": true,
        "canonical": "team@codewithania.com",
        "domain": "codewithania.com",
        "lineType": "role-account",
        "mxValid": true,
        "confidence": 0.75,
        "originalInput": "team@codewithania.com",
        "email": null
      }
    ],
    "contactabilityScore": {
      "score": 83,
      "level": "high",
      "components": {
        "presence": 25,
        "sourceQuality": 18,
        "validationQuality": 18,
        "identityStrength": 9,
        "freshness": 8,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "email",
      "secondary": "agency-form",
      "reason": "Validated business email + active sponsor history — email-first maximises response rate."
    },
    "sequenceFit": {
      "directOutreachAllowed": true,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "channel-about",
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.83
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.83,
      "gap": 0.11,
      "howToClose": [
        "Run ryanclinton/person-enrichment-lookup against 'team@codewithania.com' to identify the inbox owner."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "medium",
      "score": 0.65,
      "factors": [
        "business-email-validated",
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + validated business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:role-account",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [],
      "safeChannels": [
        "email",
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [
      {
        "email": "[REDACTED]",
        "rank": 1,
        "reason": "role-account email",
        "role": "general"
      }
    ],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": true,
      "requiresEnrichment": false,
      "priorityQueue": "medium"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "B-tier readiness — nurture or enrich before outreach.",
      "appliedRules": [
        "contactability:high"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 64,
      "reasons": [
        "Validated business email (MX confirmed)",
        "Low confidence-conflict count in scoring trace"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "e8a207c52e7b27344d200049f7124b8094a32047ad481e721cd5e17a20d88eb8",
      "inputsHash": "b51cc71ce38eb2f258dcb5daa76d261ef7ae738d4f54d0d75627b67d1827d794",
      "rulesApplied": [
        "business-email-validated",
        "sponsorship-history-never",
        "growth-velocity-stable",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:07.310Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "86c10752de7709f6a41be4be8fe770ae3c13f52a1f11f4bd0904c7263a9fe761",
    "channelId": "UClb90NQQcskPUGDIXsQEz5Q",
    "channelHandle": "@developedbyed",
    "channelName": "developedbyed",
    "channelUrl": "https://www.youtube.com/@developedbyed",
    "description": "Hello my gorgeous friends on the internet, welcome to DevelopedByEd, your go-to channel for learning how to code, design, and become more creative in the tech world!\n\nI’m Ed, a self-taught full stack engineer and designer from Romania, and I've been teaching code since 2018. I make learning fun and simple, covering topics such as web development, web design, UI/UX, game development, tech-related news, 3D modelling, and more!\n\nWhether you're a beginner or an experienced developer, I have coding courses and tutorials suitable for any level. I specialize in front-end, full-stack, and design, and I'm dedicated to sharing my knowledge and expertise with you! \n\nAnd the best part? You can use any of the amazing projects you see in my tutorials or courses in your portfolios!\n\nSo, if you want to kickstart your tech career, head over to https://developedbyed.com and find affordable courses that will take you to the next level! 💻",
    "joinDate": null,
    "location": null,
    "subscribers": 937000,
    "totalVideos": 345,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/fwO10Ay61s_CaO2UweJGalew89tUD3X65vA4Uj2UN9wbgg2MJM5591khoyrUir8FpYrBD0crsw=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "twitter",
        "url": "https://twitter.com/developedbyed/"
      },
      {
        "platform": "github",
        "url": "https://www.github.com/developedbyed/"
      },
      {
        "platform": "developedbyed.com",
        "url": "https://developedbyed.com"
      }
    ],
    "recentVideos": [
      {
        "videoId": "Iv3AIF-71RM",
        "title": "Hermes Agent - The Openclaw Killer?",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 1094,
        "views": 4659,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "1 click deploy hermes agent on Hostinger:\nhttps://hostinger.com/edhermes\n10% coupon code: EDHERMES\n\n\n🛴 Follow me on:\nTwitch:   / developedbyed  \nTwitter:   / developedbyed  \nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eywyu9FrEgI",
        "title": "Comfy UI Crash Course For Beginners",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 1818,
        "views": 4542,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If you're building a SaaS, course platform, or any kind of product, you'll eventually need emails, automation, and user communication.\n\nyou can use Brevo:\nhttps://get.brevo.com/hxkj9l\n\nUse code ED50 for 50% off your first 3 months.\n\n🛴 Follow me on:\nTwitch:   / developedbyed  \nTwitter:   / developedbyed  \nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MJr0wU7wnwk",
        "title": "Ranking the best Image Formats",
        "publishedAt": "1 month ago",
        "durationSeconds": 1129,
        "views": 3578,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 To learn for free on Brilliant for a full 30 days, go to https://brilliant.org/developedbyed, scan the QR code onscreen, or click on the link in the description. Brilliant’s also given our viewers 20% off an annual Premium subscription, which gives you unlimited daily access to everything on Brilliant. \n\n🛴 Follow me on:\nTwitch:   / developedbyed  \nTwitter:   / developedbyed  \nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "V8XK2bzjJEQ",
        "title": "Does GPT 5.4 beat Claude Opus 4.6?",
        "publishedAt": "2 months ago",
        "durationSeconds": 833,
        "views": 17002,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Create awesome ascii animations for your react apps\nhttps://asciigen.art/\n\n🛴 Follow me on:\nTwitch:   / developedbyed  \nTwitter:   / developedbyed  \nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "H1OT55eR10s",
        "title": "I am making a rogue like typing game...",
        "publishedAt": "2 months ago",
        "durationSeconds": 594,
        "views": 3468,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Create awesome ascii animations for your react apps\nhttps://asciigen.art/\n\n🛴 Follow me on:\nTwitch:   / developedbyed  \nTwitter:   / developedbyed  \nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lkHqRgSntbo",
        "title": "OPENCLAW Full Tutorial From Scratch | Set up, Security & Use Cases",
        "publishedAt": "2 months ago",
        "durationSeconds": 2353,
        "views": 8799,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "1 Click deploy  openclaw on hostinger \n10% coupon code: DEVELOPEDBYED\nLink: https://hostinger.com/developedbyed\n\n🛴 Follow me on:\nTwitch:   / developedbyed  \nTwitter:   / developedbyed  \nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RAS8BzNSDOM",
        "title": "Gemini 3.1 PRO - this is sad to see...",
        "publishedAt": "2 months ago",
        "durationSeconds": 1024,
        "views": 7207,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://asciigen.art\nAdd awesome ASCII animations to your react apps.\n\n🛴 Follow me on:\nTwitch:   / developedbyed  \nTwitter:   / developedbyed  \nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9OdaGG1Zf-4",
        "title": "Launch a Real-Time AI Video Generation SaaS in 24 Hours",
        "publishedAt": "2 months ago",
        "durationSeconds": 1341,
        "views": 4593,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If you're building a SaaS, Chargebee helps you handle subscriptions, pricing experiments, and recurring revenue without the headache.\nCheck them out here → https://www.chargebee.com/?utm_source...\n\n\nCode for the realtime-video\nhttps://github.com/developedbyed/real...\n\n🛴 Follow me on:\nTwitch:   / developedbyed  \nTwitter:   / developedbyed  \nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CLiCn-YIZ9M",
        "title": "AI Coding Is here to stay",
        "publishedAt": "2 months ago",
        "durationSeconds": 686,
        "views": 7919,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Introducing https://asciigen.art\n\nDrop-in React component\nCLI tool to convert videos to ASCII\nGrowing animation library\nPrivate Discord for support\n\n🛴 Follow me on:\nTwitch:   / developedbyed  \nTwitter:   / developedbyed  \nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "R9TvhWy4RdM",
        "title": "My favourite animation tool is FINALLY HERE",
        "publishedAt": "3 months ago",
        "durationSeconds": 524,
        "views": 9403,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Introducing https://asciigen.art\n\nAdd mesmerizing ASCII art animations to any website.\n\nDrop-in React component\nCLI tool to convert videos to ASCII\nGrowing animation library\nPrivate Discord for support\n\n🛴 Follow me on:\nTwitch:   / developedbyed  \nTwitter:   / developedbyed  \nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qsQHJxkJtUc",
        "title": "AI is cooking us well done",
        "publishedAt": "3 months ago",
        "durationSeconds": 625,
        "views": 9397,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SRiqPni6tMM",
        "title": "Which LLM is best at Chess?",
        "publishedAt": "3 months ago",
        "durationSeconds": 1101,
        "views": 2850,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 To learn for free on Brilliant for a full 30 days, go to https://brilliant.org/developedbyed, scan the QR code onscreen, or click on the link in the description. Brilliant’s also given...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "V6tEKPDdmn8",
        "title": "AI is destroying the web",
        "publishedAt": "4 months ago",
        "durationSeconds": 481,
        "views": 37499,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Thank you tailwind https://tailwindcss.com/\n\nFollow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbyed/\n...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QxZCjhyq5Ak",
        "title": "Build Your Own UI Library Course | React BaseUI",
        "publishedAt": "4 months ago",
        "durationSeconds": 14487,
        "views": 18264,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "c7LY9Um2el4",
        "title": "The only productivity app I kept...",
        "publishedAt": "4 months ago",
        "durationSeconds": 824,
        "views": 5536,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🧠 Try Notion Agent for free at https://ntn.so/developedbyed\n\n🛴 Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kiMy0zNMS7E",
        "title": "Peak Windows Web Development",
        "publishedAt": "4 months ago",
        "durationSeconds": 736,
        "views": 7733,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🛴 Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KvbH6-kCHCY",
        "title": "5 Typescript tips you NEED to know",
        "publishedAt": "4 months ago",
        "durationSeconds": 1126,
        "views": 10247,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🛴 Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jOMXfiJgAg0",
        "title": "Arch Linux...time to say goodbye?",
        "publishedAt": "4 months ago",
        "durationSeconds": 854,
        "views": 27645,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🛴 Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CuIh9uzNG_8",
        "title": "Nano Banana Pro can do what??",
        "publishedAt": "5 months ago",
        "durationSeconds": 1156,
        "views": 4770,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Join brilliant.org/developedbyed for 20% off the premium annual subscription for unlimited daily access to all the courses.\n\n🛴 Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OCC3UmLDJbw",
        "title": "Avoid these web animations please...",
        "publishedAt": "5 months ago",
        "durationSeconds": 689,
        "views": 9375,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🛴 Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TP2zKmKqe1A",
        "title": "I Tested Gemini 3 Pro (it did really well)",
        "publishedAt": "5 months ago",
        "durationSeconds": 963,
        "views": 19143,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🛴 Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "so9FUv0lA8s",
        "title": "Javascript \"gotchas\" you need to know",
        "publishedAt": "5 months ago",
        "durationSeconds": 1251,
        "views": 4493,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Sign up for Modal - https://modal.plug.dev/R7wSnBs\n\n🛴 Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbye...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2TryYQIuUqI",
        "title": "AI Fatigue is real",
        "publishedAt": "6 months ago",
        "durationSeconds": 772,
        "views": 39126,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🛴 Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4bTTjo5sGvw",
        "title": "My Brain Hurts, thanks Brilliant",
        "publishedAt": "6 months ago",
        "durationSeconds": 1198,
        "views": 3159,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://brilliant.org/Brilliantdevelopedbyed/\nWant to level up your problem-solving and coding intuition?  \nCheck out Brilliant — and get 20% off your annual Premium subscription.\n\n🛴 Follow...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ergGc3pYZHw",
        "title": "How Does Javascript Even Work?",
        "publishedAt": "6 months ago",
        "durationSeconds": 2018,
        "views": 6956,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Lea9frgParA",
        "title": "6 Database Concepts Your Should Know",
        "publishedAt": "7 months ago",
        "durationSeconds": 870,
        "views": 11319,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out Supabase and multigres here: https://supabase.plug.dev/EL90TKU\n\nIn this video, I break down some of the most important database concepts you’ll actually use as a developer, things...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "NPMi-3uf_ig",
        "title": "Is this the end for Adobe?",
        "publishedAt": "7 months ago",
        "durationSeconds": 666,
        "views": 14176,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://brilliant.org/developedbyed/\nWant to level up your problem-solving and coding intuition?  \nCheck out Brilliant — and get 20% off your annual Premium subscription.\n\n🛴 Follow me...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4mgxvcSbwz0",
        "title": "Lazygit in a nutshell",
        "publishedAt": "8 months ago",
        "durationSeconds": 501,
        "views": 10426,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbyed\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "BfihkcMjDGU",
        "title": "Ranking The Most Popular Terminals",
        "publishedAt": "8 months ago",
        "durationSeconds": 640,
        "views": 15730,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "1. Alacritty\nAlacritty is a fast, GPU-accelerated terminal emulator designed for simplicity and performance. It focuses on speed and efficiency, making it ideal for users who prioritize responsiven...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QpMoy5dcvbs",
        "title": "My Top 10 Favourite Arch Linux Apps",
        "publishedAt": "8 months ago",
        "durationSeconds": 680,
        "views": 17496,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Walker – A fast application launcher and command runner for Linux.\nhttps://github.com/abenz1267/walker\n\nbtop – A modern resource monitor with a beautiful terminal UI showing CPU, memory,...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 3,
      "uploadsLast90d": 12,
      "uploadCadenceWeekly": 0.93,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 4659,
      "viewsPerVideoP90Last90d": 9397,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 4659,
      "p90Views": 9397,
      "p99Views": 9403,
      "outperformingVideosLast90d": 3
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "brilliant.org"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "github.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.97,
        "evidenceVideoIds": [
          "Iv3AIF-71RM",
          "eywyu9FrEgI",
          "MJr0wU7wnwk",
          "V8XK2bzjJEQ",
          "H1OT55eR10s"
        ]
      },
      {
        "label": "follow",
        "share": 0.87,
        "evidenceVideoIds": [
          "Iv3AIF-71RM",
          "eywyu9FrEgI",
          "MJr0wU7wnwk",
          "V8XK2bzjJEQ",
          "H1OT55eR10s"
        ]
      },
      {
        "label": "developedbyed",
        "share": 0.87,
        "evidenceVideoIds": [
          "Iv3AIF-71RM",
          "eywyu9FrEgI",
          "MJr0wU7wnwk",
          "V8XK2bzjJEQ",
          "H1OT55eR10s"
        ]
      },
      {
        "label": "com",
        "share": 0.8,
        "evidenceVideoIds": [
          "Iv3AIF-71RM",
          "eywyu9FrEgI",
          "MJr0wU7wnwk",
          "V8XK2bzjJEQ",
          "H1OT55eR10s"
        ]
      },
      {
        "label": "twitch",
        "share": 0.8,
        "evidenceVideoIds": [
          "Iv3AIF-71RM",
          "eywyu9FrEgI",
          "MJr0wU7wnwk",
          "V8XK2bzjJEQ",
          "H1OT55eR10s"
        ]
      },
      {
        "label": "productivity apps",
        "share": 0.03,
        "evidenceVideoIds": [
          "c7LY9Um2el4"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "moderate",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 29,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "developedbyed — 0.9M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 29,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.81,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "86c10752de7709f6a41be4be8fe770ae3c13f52a1f11f4bd0904c7263a9fe761",
      "inputsHash": "70872f4de5b84de5959e0bfc8bc64806333d9db4d98dad457000116222464820",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:07.296Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "24a2e6fc28319235bbe4fb001ca4c006c8d06ee65f55f88898d010dc3c064b2c",
    "channelId": "UC-8QAzbLcRglXeN_MY9blyw",
    "channelHandle": "@bawad",
    "channelName": "Ben Awad",
    "channelUrl": "https://www.youtube.com/@bawad",
    "description": "I'm a software developer who makes videos about React, React Native, GraphQL, Typescript, Node.js, PostgreSQL, Python, and all things coding.",
    "joinDate": null,
    "location": null,
    "subscribers": 492000,
    "totalVideos": 1100,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/YbOlNyngoglZt0G_dreD1sWM6Df5rCGbWjr9wiH_iRyNbXPwDlQoEx7DOtzhbK6I1UOEJ5Q3yA=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "voidpet.com",
        "url": "https://voidpet.com/"
      },
      {
        "platform": "tiktok",
        "url": "https://www.tiktok.com/@benawad"
      },
      {
        "platform": "twitter",
        "url": "http://twitter.com/benawad/"
      },
      {
        "platform": "github",
        "url": "http://github.com/benawad"
      },
      {
        "platform": "instagram",
        "url": "http://instagram.com/benawad97/"
      }
    ],
    "recentVideos": [
      {
        "videoId": "rp15VP8DStE",
        "title": "Software Engineering Expectations for 2026",
        "publishedAt": "4 months ago",
        "durationSeconds": 253,
        "views": 33512,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The majority of your code should be written by AI now\nCursor/Codex/Claude Code/Gemini/etc\nYou should try all the tooling and switch between them, as each one gets an edge over the others depending on the release cycle.\nYou should be using AI to check the code that is written by AI\nHave AI write tests\nHave AI read logs\nHave AI navigate your browser\nI don't do this every time because sometimes it's simple enough to check it myself\nYou should still skim code changes\nThis can be a lighter skim on internal tools and a heavier read through on customer facing code\nUse AI to help you define specs\n\nhttps://benawad.com\n\n#benawad #ai",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ruHZ8X-R1Fg",
        "title": "How I Made a Game in React Native",
        "publishedAt": "1 year ago",
        "durationSeconds": 721,
        "views": 88901,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "try voidpet dungeon:\nios: https://apps.apple.com/us/app/voidpet...\nandroid: https://play.google.com/store/apps/de...\n\nhttps://voidpet.com/\n\nbook: https://handsofgreed.com/\n\n#benawad #voidpet\n\n----\nFollow me online: https://voidpet.com/benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CcrgG5MjGOk",
        "title": "How to Roll Your Own Auth",
        "publishedAt": "1 year ago",
        "durationSeconds": 785,
        "views": 142004,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Checkout https://hostinger.com/benawad and make sure to use code BENAWAD at checkout\n\nGitHub repo: https://github.com/benawad/how-to-rol...\n\n00:00 Intro\n00:27 Sponsor\n01:47 Auth\n\n#benawad \n\n----\nFollow me online: https://voidpet.com/benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-ZvR0R_ECg0",
        "title": "What Programming Font Should You Use?",
        "publishedAt": "1 year ago",
        "durationSeconds": 252,
        "views": 59639,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I like programming.\n\nFonts tried in this video\n1. Menlo\n2. Comic Shanns\n3. Fira Code\n4. JetBrains Mono\n5. MonoLisa\n\n#benawad\n\n----\nFollow me online: https://voidpet.com/benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qGtjwvuK-xs",
        "title": "My App Has Been Nominated For App of the Year",
        "publishedAt": "2 years ago",
        "durationSeconds": 100,
        "views": 81873,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Voting: https://play.google.com/store/apps/uservoting/Apps%20-%20Best%20of%202022%20User%20Voting%20Page%09%09?id=mc_uv23_apps\n\nhttps://voidpet.com/\n\n#benawad #voidpet #VoidLog\n\n----\nFollow...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TY6_s6eGefI",
        "title": "My Startup Got Funding",
        "publishedAt": "2 years ago",
        "durationSeconds": 198,
        "views": 107248,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://voidpet.com/\n\n#benawad #voidpet #VoidLog\n\n----\nFollow me online: https://voidpet.com/benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "z1vPBc2h9pE",
        "title": "My App has More Complicated Animations Than Yours",
        "publishedAt": "3 years ago",
        "durationSeconds": 575,
        "views": 94559,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://voidpet.com/\n\n#benawad #voidpet #VoidLog\n\n----\nFollow me online: https://voidpet.com/benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hfGtyd5nmwQ",
        "title": "Technologies I used to Code My Backendless App",
        "publishedAt": "3 years ago",
        "durationSeconds": 657,
        "views": 151417,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://voidpet.com/\n\nI'm reviving my Discord and will be talking in it: https://discord.gg/benawad\n\n#benawad #voidpet #VoidLog\n\n----\nFollow me online: https://voidpet.com/benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "oPqrLsvjWgo",
        "title": "How I Designed my App that Got 100k Downloads",
        "publishedAt": "3 years ago",
        "durationSeconds": 464,
        "views": 106044,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://voidpet.com/\n\nI'm reviving my Discord and will be talking in it:   / discord  \n\nLinda's TikTok:   / lindashad  \n\n#benawad #voidpet #VoidLog\n\n----\nFollow me online: https://voidpet.com/benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CmVvN6sACPs",
        "title": "Notion AI Scripted This Video",
        "publishedAt": "3 years ago",
        "durationSeconds": 651,
        "views": 30339,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get started with Notion for free, and unlock the power of Notion AI for only $10 a month: https://ntn.so/benawadai\n\n----\nFollow me online: https://voidpet.com/benawad\n\nThis video is sponsored by Notion.\n\n#NotionAI #NotionPartner",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UVGfjcvT_F4",
        "title": "After 13 months of building a Website, I switched to an App",
        "publishedAt": "3 years ago",
        "durationSeconds": 457,
        "views": 164334,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "iOS app: https://apps.apple.com/us/app/voidpet/id1668932264?itsct=apps_box_link&itscg=30200\nAndroid: app: https://play.google.com/store/apps/details?id=com.voidpet&hl=en_US&gl=US\n\nhttps://voidpet.c...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dCCaYEG5KeA",
        "title": "Technologies I'm Learning in 2023",
        "publishedAt": "3 years ago",
        "durationSeconds": 433,
        "views": 194750,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This is what I use terraform for: https://github.com/milliHQ/terraform-aws-next-js\n\n#benawad\n\n----\nFollow me online: https://voidpet.com/benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nC0wvc921NU",
        "title": "Worst Coding Interview of my Life",
        "publishedAt": "3 years ago",
        "durationSeconds": 564,
        "views": 151013,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Interval: https://interval.com/ben\n\nNick White video: https://youtu.be/bQVmhum3uRY\n\nMy current startup: https://voidpet.com/\n\n#benawad #onechipchallenge #coding\n\n----\nFollow me online: https://void...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Va9TpehbGXY",
        "title": "I Pitched on a Creator Shark Tank",
        "publishedAt": "3 years ago",
        "durationSeconds": 282,
        "views": 92809,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Linda's vlog: https://youtu.be/MG2OodOU2EE\n\nhttps://voidpet.com/\nhttps://shop.voidpet.com/\n\n#benawad #voidpet #VoidLog\n\n----\nFollow me online: https://voidpet.com/benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mSSW8Kz1rVs",
        "title": "Coding an Auction House",
        "publishedAt": "3 years ago",
        "durationSeconds": 332,
        "views": 131009,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://voidpet.com/\nhttps://shop.voidpet.com/\n\nLinda's TikTok: https://www.tiktok.com/@lindashad\n\n#benawad #voidpet #VoidLog\n\n----\nFollow me online: https://voidpet.com/benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "H1X-z8Zzxjg",
        "title": "How I went from making coding tutorials to thirst traps",
        "publishedAt": "3 years ago",
        "durationSeconds": 792,
        "views": 234906,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://voidpet.com/\n\n#benawad\n\n----\nFollow me online: https://voidpet.com/benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qB5d4tDSf9Y",
        "title": "What 3 months of nonstop game dev looks like",
        "publishedAt": "4 years ago",
        "durationSeconds": 540,
        "views": 185717,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://voidpet.com/\nhttps://shop.voidpet.com/\n\nLinda's TikTok: https://www.tiktok.com/@lindashad\n\n#benawad #voidpet #VoidLog\n\n----\nFollow me online: https://voidpet.com/benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jIB2moJ5C0Y",
        "title": "Taking a Coding Interview Blindfolded",
        "publishedAt": "4 years ago",
        "durationSeconds": 229,
        "views": 60857,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://voidpet.com/\nhttps://shop.voidpet.com/\n\n#benawad #coding #programming\n\n----\nFollow me online: https://voidpet.com/benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Jylk6ggjtlw",
        "title": "I Coded Cuddling Into My Game",
        "publishedAt": "4 years ago",
        "durationSeconds": 649,
        "views": 111477,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://voidpet.com/\nhttps://shop.voidpet.com/\n\nLinda's TikTok: https://www.tiktok.com/@lindashad\n\n#benawad #voidpet #VoidLog\n\n----\nFollow me online: https://voidpet.com/benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qQzrGffpIGI",
        "title": "Technologies I'm Learning in 2022",
        "publishedAt": "4 years ago",
        "durationSeconds": 404,
        "views": 236507,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://voidpet.com/\nhttps://shop.voidpet.com/\n\n#benawad #voidpet #VoidLog\n\n----\nFollow me online: https://voidpet.com/benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eN4qAKiPheY",
        "title": "Why I'm NOT making an NFT",
        "publishedAt": "4 years ago",
        "durationSeconds": 280,
        "views": 99814,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://voidpet.com/\nhttps://shop.voidpet.com/\n\nLinda's TikTok: https://www.tiktok.com/@lindashad\n\n#benawad #voidpet #VoidLog\n\n----\nFollow me online: https://voidpet.com/benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IVNvTJ2-_Hk",
        "title": "Why I'm Making an Emo Neopets",
        "publishedAt": "4 years ago",
        "durationSeconds": 402,
        "views": 85933,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://voidpet.com/\nhttps://shop.voidpet.com/\n\nLinda's TikTok: https://www.tiktok.com/@lindashad\n\n#benawad #voidpet #VoidLog ​\n​\n----\nFollow me online: https://voidpet.com/benawad\n#benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LY4rxYe-jKI",
        "title": "Coding The Next Pokemon",
        "publishedAt": "4 years ago",
        "durationSeconds": 375,
        "views": 139151,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://voidpet.com\n\nhttps://discord.gg/voidpet\n\nLinda's TikTok: https://www.tiktok.com/@lindashad\n\n#benawad #voidpet #voidlog ​\n​\n----\nFollow me online: https://voidpet.com/benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XEt09iK8IXs",
        "title": "Coding Interview with Dan Abramov",
        "publishedAt": "4 years ago",
        "durationSeconds": 3500,
        "views": 656681,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#benawad #react ​\n​\n----\nFollow me online: https://voidpet.com/benawad\n#benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0Tm1GDeBxus",
        "title": "Why I'm Moving to a Boring City",
        "publishedAt": "4 years ago",
        "durationSeconds": 188,
        "views": 125834,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#benawad ​\n​\n----\nFollow me online: https://voidpet.com/benawad\n#benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "FU7HBr2d9HM",
        "title": "I’m leaving my startup.",
        "publishedAt": "4 years ago",
        "durationSeconds": 179,
        "views": 162154,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Previous HyperLogs: https://astrallog.com/\n\n#benawad #astralfans #hyperlog ​\n​\n----\nFollow me online: https://voidpet.com/benawad\n#benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9XDhuprRPZ8",
        "title": "I Coded My First Invite Only App",
        "publishedAt": "4 years ago",
        "durationSeconds": 405,
        "views": 172218,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://hyperfan.com/\n\nPrevious HyperLogs: https://www.youtube.com/playlist?list=PLN3n1USn4xllWms9a2CSML_pMl6HM8eZF\n\nbusiness inquiries: ben@hyperfan.com\n\n#benawad #hyperfan #hyperlog ​\n​...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ViYUp7jsJNM",
        "title": "Handling The Business Side",
        "publishedAt": "4 years ago",
        "durationSeconds": 384,
        "views": 241662,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Previous AstralLogs: https://astrallog.com/\n\nbusiness inquiries: golf@astralfans.com\n\n#benawad #astralfans #AstralLog ​\n​\n----\nFollow me online: https://voidpet.com/benawad\n#benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6HvcW6eX3HE",
        "title": "Fired My Designer",
        "publishedAt": "4 years ago",
        "durationSeconds": 467,
        "views": 191881,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Previous AstralLogs: https://astrallog.com/\n\nbusiness inquiries: golf@astralfans.com\n\n#benawad #astralfans #AstralLog ​\n​\n----\nFollow me online: https://voidpet.com/benawad\n#benawad",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7FQls0Grqbc",
        "title": "Coding the Next Discord - 32 days in",
        "publishedAt": "4 years ago",
        "durationSeconds": 504,
        "views": 151428,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Astralfans pitch v2\n\nPrevious AstralLogs: https://astrallog.com\n\nbusiness inquiries: golf@astralfans.com\n\n#benawad #astralfans #AstralLogs ​\n​\n----\nFollow me online: https://voidpet.com/benawad...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [
        "Checkout",
        "This video",
        "Notion"
      ],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": "2025-05-14",
      "detectionDetail": [
        {
          "brand": "Checkout",
          "videoId": "CcrgG5MjGOk",
          "confidence": 0.7,
          "evidence": "description: use code BENAWAD at checkout",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:08.639Z"
        },
        {
          "brand": "This video",
          "videoId": "CmVvN6sACPs",
          "confidence": 0.7,
          "evidence": "description: This video is sponsored by Notion.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:08.639Z"
        },
        {
          "brand": "Notion",
          "videoId": "CmVvN6sACPs",
          "confidence": 0.95,
          "evidence": "description: sponsored by Notion.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:08.639Z"
        }
      ]
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 3,
        "firstSponsoredVideoDate": "2026-05-14"
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "ai-saas",
          "confidence": 0.25,
          "evidence": [
            "historical-sponsor:Notion"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "voidpet.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 1,
        "evidenceVideoIds": [
          "rp15VP8DStE",
          "ruHZ8X-R1Fg",
          "CcrgG5MjGOk",
          "-ZvR0R_ECg0",
          "qGtjwvuK-xs"
        ]
      },
      {
        "label": "com",
        "share": 1,
        "evidenceVideoIds": [
          "rp15VP8DStE",
          "ruHZ8X-R1Fg",
          "CcrgG5MjGOk",
          "-ZvR0R_ECg0",
          "qGtjwvuK-xs"
        ]
      },
      {
        "label": "benawad",
        "share": 0.97,
        "evidenceVideoIds": [
          "rp15VP8DStE",
          "ruHZ8X-R1Fg",
          "CcrgG5MjGOk",
          "-ZvR0R_ECg0",
          "qGtjwvuK-xs"
        ]
      },
      {
        "label": "voidpet",
        "share": 0.93,
        "evidenceVideoIds": [
          "ruHZ8X-R1Fg",
          "CcrgG5MjGOk",
          "-ZvR0R_ECg0",
          "qGtjwvuK-xs",
          "TY6_s6eGefI"
        ]
      },
      {
        "label": "follow",
        "share": 0.9,
        "evidenceVideoIds": [
          "ruHZ8X-R1Fg",
          "CcrgG5MjGOk",
          "-ZvR0R_ECg0",
          "qGtjwvuK-xs",
          "TY6_s6eGefI"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Sunday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 35,
      "reason": "fits ai-saas",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.45
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.6,
      "level": "medium",
      "coldStart": false
    },
    "whyThisMatters": "fits ai-saas. Channel is in the active outreach window.",
    "whyNow": "Last sponsored video 365 days ago — within typical sponsorship-decision lookback for similar creators.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Ben Awad — 0.5M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 35,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.75,
      "urgency": 0,
      "noiseRisk": 0.4
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "ai-saas",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "late",
      "reason": "Last sponsored video 365 days ago; past typical 14-30d decision-cycle for similar creators.",
      "decayRisk": 0.9
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "24a2e6fc28319235bbe4fb001ca4c006c8d06ee65f55f88898d010dc3c064b2c",
      "inputsHash": "f3e7dfed272eba32b77775bca70606b06533a8d1a7a46a0c7501a39687594935",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:07.642Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "a5a26ecbebdfdface9ab654ea50e34f0627659c2085569bbd39d0bd5ba2bbd33",
    "channelId": "UCshZ3rdoCLjDYuTR_RBubzw",
    "channelHandle": "@ProgramWithErik",
    "channelName": "Program With Erik",
    "channelUrl": "https://www.youtube.com/@ProgramWithErik",
    "description": "My name is Erik Hanchett and I'm a web and Java developer from Reno, Nevada. Currently I work as developer advocate for AWS.\n\nI've been a programmer for many years now and I've always been wanting to give back to the community. I started this channel, and my website (www.programwitherik.com) as a way to teach people what I know. \n\nI started learning web development seriously in early 2015, before that I strictly programmed in Java.  I worked many nights and weekends getting up to speed and I blogged about my journey. I decided to focus on Ember.js and after about a year I wrote my first book on it! (http://goo.gl/LEIdSc  )!  Now a days I work in Vue.js/React/Node and more!\n\nStick around this channel, I do tutorials, advice and occasionally I vlog! If you got this far please tweet me the words \"I read it\" at x.com/ERIKCH - That would make my day!",
    "joinDate": null,
    "location": null,
    "subscribers": 122000,
    "totalVideos": 728,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_kBqZ86qC0qFm3BSypbhVofMm7f2bubp9HwHm_1hl1kRQ=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "programwitherik.com",
        "url": "http://www.programwitherik.com"
      },
      {
        "platform": "twitter",
        "url": "http://www.twitter.com/ErikCH"
      },
      {
        "platform": "goo.gl",
        "url": "http://goo.gl/LEIdSc"
      }
    ],
    "recentVideos": [
      {
        "videoId": "A4avaampJ3A",
        "title": "5 Things to Do After Installing OpenClaw (Before You Break It)",
        "publishedAt": "2 days ago",
        "durationSeconds": 576,
        "views": 224,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Most people install OpenClaw, get excited, skip the boring setup, and quit before week two. This video covers the 5 things that actually matter in your first week — before you expose your gateway, blow your API budget, or give your agent zero guardrails.\n\nOne person in the community went from $47/week to $6/week with two config changes. Another had 500K+ OpenClaw instances exposed on the public internet. These are fixable problems. They just take 30 minutes.\n\n✅ Lock down your gateway (and verify it actually held)\n✅ Switch to a cheaper model — or use your $20 ChatGPT subscription\n✅ Write a SOUL.md with real boundaries, not just vibes\n✅ Seed MEMORY.md and USER.md before your first real session\n✅ Use /new, understand compaction, and watch your costs daily\n\nFollow me on socials!\nX: https://x.com/ErikCH\nLinkedIn:    / erikhanchett   \nBluesky : https://bsky.app/profile/erikch.bsky....\n\nLinks\n\n🚀 Try Amazon Lightsail (run OpenClaw on a VPS): https://aws.amazon.com/lightsail/?trk...\nOpenClaw docs: https://docs.openclaw.ai/\nOpenClaw security audit docs: https://docs.openclaw.ai/gateway/secu...\nClawHub skills marketplace: https://clawhub.openclaw.ai/\nCheck if your version is stable: https://isitstable.com/openclaw\nTina!    • My FULL OpenClaw Setup (steal my prompts!)  \n\n0:00 Introduction\n0:15 Tip 1 Security\n02:38 Tip 2 Models and Saving Money\n04:30 Tip 3 Soul.md \n06:08 Tip 4 Memory, User\n07:35 Tip 5\n09:22 Conclusion",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SLgIiLqIktk",
        "title": "I Used To Vibe Code All My Vue Apps Until I Found This",
        "publishedAt": "1 month ago",
        "durationSeconds": 261,
        "views": 1077,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Spec-driven development is a structured approach to building features where you go from a rough idea to working code through three iterative documents: Requirements , Design and Tasks. In this video I discuss how to work with Spec-Driven Development\n\nLinks:\nhttps://www.kiro.dev\n\nFollow me on socials!\nX: https://x.com/ErikCH\nLinkedIn:    / erikhanchett   \nBluesky : https://bsky.app/profile/erikch.bsky....\n\n0:00 What is Spec-Driven Development\n0:30 My App info\n0:50 Demo - 3 step process\n01:18 Design \n01:55 Requirements\n02:10 Tasks\n03:05 Completed App\n04:05 Why you should try this",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mYwk2Ul9hcw",
        "title": "Vite's Next.js Killer Just Dropped",
        "publishedAt": "1 month ago",
        "durationSeconds": 472,
        "views": 1358,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Vinext (pronounced \"vee-next\") is a Vite-based reimplementation of the Next.js API surface,  open source from Cloudflare. In this video, I walk through migrating an existing Next.js app to Vinext and explain why this project matters beyond the benchmark numbers.\n\n🔗 Links\nVinext repo: https://github.com/cloudflare/vinext\nCloudflare announcement: https://blog.cloudflare.com/vinext/\nNitro deployment docs: https://v3.nitro.build\nKiro https://kiro.dev\n\nFollow me on socials!\nX: https://x.com/ErikCH\nLinkedIn:    / erikhanchett   \nBluesky : https://bsky.app/profile/erikch.bsky....\n\n0:00 What is vinext\n0:20 My app for testing\n0:51 The story of Vinext with Next.js\n01:30 vpx vinext check\n02:20 vpx vinext init\n03:00 Fixing errors from init\n03:50 Showing the benchmarks\n04:45 Vinext open issue\n07:40 conclusion\n\nBTW: I am a developer advocate for AWS, anything expressed in this video is my opinion and my opinion only.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2C1HkBrz5Wc",
        "title": "The New Vite Is Kind of a Big Deal",
        "publishedAt": "1 month ago",
        "durationSeconds": 589,
        "views": 3427,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The new Vite+ unified tool chain is now out and you have to check it out! It combines your runtime, package manager, and frontend stack into one! In this video I try  out Vite+ give my opinion of it, and I show how you can get started with it!\n\nWant to know how to use AI Coding tools, like Cursor? Check out my last video!\n   • DON'T DO THIS WITH YOUR CODING AI TOOLS!  \n\nLinks:\nhttps://viteplus.dev/\nhttps://vite.dev/blog/announcing-vite8\nhttps://kiro.dev\n\nFollow me on socials!\nX: https://x.com/ErikCH\nLinkedIn:   / erikhanchett  \nBluesky:https://blueskydirectory.com/profiles...\n\n0:00 Unified tool, what is it?\n0:20 What is vite+ and vite 8\n01:13 Installing vite+\n01:55 Using vp to install vue\n03:45 New vite.config.ts explained\n04:42 Adding oxc fmt config\n06:35 Trying out sorting imports\n07:25 Quick overview of CI/CD with vite and testing\n08:13 Nuxt update with vite+\n09:20 Vite migrations to vite+\n09:30 The future...\n\nBTW: I am a developer advocate for AWS, anything expressed in this video is my opinion and my opinion only.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LHWt5ybRFk0",
        "title": "DON'T DO THIS WITH YOUR CODING AI TOOLS!",
        "publishedAt": "2 months ago",
        "durationSeconds": 490,
        "views": 571,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Last year two studies came out that seemed to completely contradict each other. One said AI made developers way faster. The other said experienced developers actually got slower when they used AI tools in real codebases. So what's going on?\n\nI think both studies are right. And the gap between them explains why so many frontend projects that start with AI end up taking longer than if you'd just written the code yourself. It's not that AI is bad at generating code. It's that most workflows around AI are backwards.\n\nIn this video I walk through five specific ways this goes wrong, especially on the frontend where problems show up fast. I'm talking about the stuff that looks fine in the editor but breaks when real users hit it. The kind of code that passes your linter but creates a maintenance nightmare six months later.\n\nIf you've ever generated a component that looked great until you actually tried to use it, or spent more time fixing AI output than it would've taken to write it yourself, this one's for you.\n\nCheck out my last video: \n   • The Hosting No One Talks About (EC2 Crash ...  \n\nLinks:\nhttps://metr.org/blog/2025-07-10-earl...\nhttps://github.blog/news-insights/res...\nhttps://kiro.dev\n\nFollow me on socials!\nX: https://x.com/ErikCH\nLinkedIn:   / erikhanchett  \nBluesky:https://blueskydirectory.com/profiles...\n\nBTW: I am a developer advocate for AWS, anything expressed in this video is my opinion and my opinion only.\n\n0:00 Introduction\n01:14 Tip 1\n02:20 Tip 2\n03:51 Tip 3\n05:01 Tip 4\n06:15 Tip 5\n07:04 Modern tooling\n07:25 Conclusion",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VKk-l97CNU8",
        "title": "The Hosting No One Talks About (EC2 Crash Course)",
        "publishedAt": "2 months ago",
        "durationSeconds": 1540,
        "views": 899,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video I show how to host your website on a VPS! I walk you through step-by-step on how to get up and running with a VPC using Amazon EC2 instance. We use Cloudfront, EC2, Nginx, Certbot, Ubuntu, SSL and more!\n\nCheck out this blog post for more information!\n\nhttps://dev.to/aws/the-hosting-setup-...\n\nFree Tier https://aws.amazon.com/free/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CXCLhA836yo",
        "title": "Vibe Coding is it worth it? With Nuxt and Tailwind CSS!",
        "publishedAt": "1 year ago",
        "durationSeconds": 733,
        "views": 2598,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today I try out vibe coding, what is it? Well in this video I explain what vibe coding is, how to use it in your next app with Tailwind CSS 4 and Nuxt 3! I'll go into the different prompts I use, how to troubleshoot Tailwind CSS errors and how It worked with Nuxt!\n\nInstall instructions  https://docs.aws.amazon.com/amazonq/l...\n\nCreating Build ID - https://docs.aws.amazon.com/signin/la...\n \nFull disclosure I am a senior developer advocate for AWS\n\n0:00 what is vibe coding?\n0:47 I start vibing\n02:47 Approving changes and fixing profile errors\n04:09 Website created!\n04:44 Adding blog pages\n05:20 Blog walk through\n05:51 Turning on /acceptall and new branch\n06:39 Update images to unsplash\n07:53 Create basic tests using vitest and test utils\n09:49 What I like and don't like\n10:17 Code review\n11:56 Trying out a new feature, I didn't know about!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lC6e-VXJcE4",
        "title": "Is this Vue's Static Site Project Dead?",
        "publishedAt": "2 years ago",
        "durationSeconds": 451,
        "views": 3589,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Vue.js 2 Gridsome project was supposed to be Vue's answer to Gatsby. It had static site generation with GraphQL. In this video I look at this project, where it is now, and what to use for alternatives.\n\n👉  Check out my last video on Hosting Made Easy With AWS Amplify Gen 2\n           • New! Hosting Made Easy With AWS Amplify Gen 2  \n\n👉Sign up for my mailing list and get neat stuff!\nhttps://bit.ly/3Umk7sW\n\n👉 Need some help with a project,  level up your skills, React, Next, Vue, or Nuxt? Check out my 1-on-1 mentoring!\nhttps://mentors.to/erik\n\n\nLinks:\nhttps://gridsome.org/\nhttps://nuxt.com/docs/guide/concepts/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1D1Y3h98SAM",
        "title": "New! Hosting Made Easy With AWS Amplify Gen 2",
        "publishedAt": "2 years ago",
        "durationSeconds": 795,
        "views": 11034,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "AWS Amplify Gen 2 is about to be released in full general availability and this tutorial discuses how to get started using the starter template and have it hosted on Amplify Hosting. In this tutorial we look at creating a todo app, and using it to display and add todos.\n\n👉  Check out my last video on Vitepress\n         • Vue Just Announced Vitepress 1.0! The Best...  \n\n\n\nLinks:\nhttps://github.com/ErikCH/amplify-nex...\nhttps://aws.amazon.com/free",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "NjaJfQN_zZo",
        "title": "Vue Just Announced Vitepress 1.0! The Best Static Site Generator Ever?",
        "publishedAt": "2 years ago",
        "durationSeconds": 876,
        "views": 16442,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Vitepress is a new Vue.js static site generator that just hit 1.0. In this video we discuss what Vitepress is, how you can use it, and my opinions on it. This tutorial will show you how to create an app, update the markdown, and use ith as a CMS!\n\n👉  Check out my last video on Vitetest\n         • Let's add Vitest To This Vue App? Vue Vite...  \n\n👉Sign up for my mailing list and get neat stuff!\nhttps://bit.ly/3Umk7sW\n\n👉 Need some help with a project,  level up your skills, React, Next, Vue, or Nuxt? Check out my 1-on-1 mentoring!\nhttps://mentors.to/erik\n\n\nLinks:\nhttps://vitepress.dev/\n\n0:00 What is Vitepress\n01:55 Getting started with Vitepress\n04:11 File based routing and front matter\n05:26 Adding links, emojis, syntax highlight in markdown\n07:11 Adding Vue into your markdown directly\n12:56 A few things I don't love about this",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-4OWElQ-8TQ",
        "title": "Let's add Vitest To This Vue App? Vue Vitest Tutorial!",
        "publishedAt": "2 years ago",
        "durationSeconds": 988,
        "views": 4630,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉👉👉 Get 3 BONUS CREDITS from Cloudinary sign up here - https://cld.media/programwitherik\nIn this tutorial video I look at Vitest and add it to the a Vue Nuxt app. I look at what it...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PwwYqEy9A3M",
        "title": "What Is Vue 3 Vapor Mode?!",
        "publishedAt": "2 years ago",
        "durationSeconds": 398,
        "views": 13618,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Vue 3 vapor mode looks and sounds amazing, but should you use it? Can you use it now? In this tutorial I explain what vue 3 vapor mode is, and how you can test it out right now!\n\n👉  Check...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IxnyEHKxJ8A",
        "title": "This is Why Your YouTube Channel Isn't Growing...  🤯🤯🤯",
        "publishedAt": "2 years ago",
        "durationSeconds": 837,
        "views": 1276,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Creating a Vue.js YouTube channel in 2024 isn't easy! In this video I talk about why you should create a YouTube channel in 2024, tips and tricks, and how to do it!\n\n👉  Check out my last...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "aeFVVBjymNc",
        "title": "This Vue AI App with Claude 3 Blew Me Away",
        "publishedAt": "2 years ago",
        "durationSeconds": 1002,
        "views": 5865,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "AI with Vue is possible! In this video tutorial I walk through how this new Claude 3 Vision API works and I show how I set it up using Amazon Bedrock and AWS Amplify Gen 2 with Nuxt!\n\nWan to...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "o79p7hitiZE",
        "title": "Is Your Vue VSCode Extension Broken?",
        "publishedAt": "2 years ago",
        "durationSeconds": 151,
        "views": 6426,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If your Vue language services extension is broken, or any other VSCode extension is broken check out this quick tutorial on how to fix it.\n\n👉  Check out this code On Nuxt + Vue + Image uploading...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Ql8SBCF8OQg",
        "title": "Build A Full Stack Vue Photo Album With Image Editing (Nuxt.js, Cloudinary, API Routes)",
        "publishedAt": "2 years ago",
        "durationSeconds": 3394,
        "views": 2538,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉👉👉 Get 3 BONUS CREDITS from Cloudinary here - https://cld.media/programwitherik\nIn this tutorial video I show you step-by-step on how to create a Photo Album and add image editing...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "u-N0xIApC9I",
        "title": "Panda CSS - Should It Replace Tailwind With Vue?",
        "publishedAt": "2 years ago",
        "durationSeconds": 718,
        "views": 5412,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "CSS/ Vue / Career Mentoring 👉  https://mentors.to/erik\n\nPanda CSS is a hot new CSS library that uses CSS in JS. But should you use it with Vue.js? Is it a Tailwind replacement? Let's take...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AovK5jedMHg",
        "title": "A Better Way To Create Vue Components With Props Using TypeScript",
        "publishedAt": "2 years ago",
        "durationSeconds": 760,
        "views": 12993,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The defineProps in Vue can be used in a few ways using TypeScript. In this video I discuss 2 different ways of using props and what I think is best using Zod.\n\n👉  Check out my last video...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rs6Vmkz93EQ",
        "title": "Style Your App With Tailwind CSS In 10 Minutes (Full Stack)",
        "publishedAt": "2 years ago",
        "durationSeconds": 728,
        "views": 2274,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video I explore how I create full stack application using Tailwind and AWS Amplify Gen 2 to get up and running fast. We'll be looking at Next.js server components, using the AWS Amplify...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "M-oYhJlILbY",
        "title": "You're Using Tailwind CSS The Wrong Way! A look at reuse.",
        "publishedAt": "2 years ago",
        "durationSeconds": 481,
        "views": 7068,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Working with Tailwind CSS Utility Classes can be tricky. In this video I discuss a refactor I did, that wasn't right, and what I should have done better.\n\n👉 Check out my last video on this...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "v6n-Q0CNq0Q",
        "title": "This Vue Mistake Was A Real Problem",
        "publishedAt": "2 years ago",
        "durationSeconds": 482,
        "views": 4198,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This Vue.js issue with Nuxt and environmental variables with runTime config really tripped me up. In this video I look at a few ways to fix this and not get a hydration mismatch. \n\n👉 Check...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SiOBwa2qNEw",
        "title": "TypeScript From End-To-End Changes Everything!",
        "publishedAt": "2 years ago",
        "durationSeconds": 1174,
        "views": 3212,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "TypeScript is a superset of JavaScript. In this video I discuss some tools you can use to create end-to-end type safety using TypeScript, with tools like tRPC, Nuxt and AWS Amplify Gen 2.\n...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tIjhucyax_0",
        "title": "Can I Combine Two Vue Apps Into One Repo And Host Them?",
        "publishedAt": "2 years ago",
        "durationSeconds": 599,
        "views": 3190,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "React, Vue and Angular can use monorepos to easily share multiple apps in one repistory. You can also use AWS Amplify Hosting to host that app. In this video I exploe how to get started with...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zBhAtGt8FDk",
        "title": "This Vue 3 Component Pattern is Fire 🔥🔥🔥 (and you should use it!)",
        "publishedAt": "2 years ago",
        "durationSeconds": 590,
        "views": 17504,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Vue has some really neat component patterns. Let's take a look at a common one how it deals with state. In this tutorial we'll look at the controlled props pattern. This pattern uses props...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kStOVAy02zk",
        "title": "These Vite Mistakes With TypeScript Are Bad (React, Vue, Astro)",
        "publishedAt": "2 years ago",
        "durationSeconds": 543,
        "views": 3253,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Vite is an amazing fast builder tool for your React, Vue, and Astro. But I see these common mistakes all the time! how do you do Aliases, what about Lazy loaded imports. Let's see!\n\n👉 Check...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Gzste7H0_bk",
        "title": "3 Must Know Tips For Nuxt.js Developers",
        "publishedAt": "2 years ago",
        "durationSeconds": 563,
        "views": 12381,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Nuxt is an amazing full stack meta framework for Vue developers. In this video I discuss three tips you should know when using Nuxt. We'll look at auto imports, useFetch and one other thing,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hz3V6VyJxKE",
        "title": "The Future Of Tailwind UI Component Frameworks? A look at shadcn/ui.",
        "publishedAt": "2 years ago",
        "durationSeconds": 1494,
        "views": 6195,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The shadcn/ui library is taking the frontend world by storm. Is it the future of UI component frameworks? Will everything be downloaded into our app? In this video I look at the shadcn/ui vue...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Z9Qi0SSO86s",
        "title": "A Better Way To Organize Components In Vue",
        "publishedAt": "2 years ago",
        "durationSeconds": 610,
        "views": 38448,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The base component pattern is an amazing way to organizer your components in your app. In this video I'll explore how this component pattern works, and what to look out for! We'll look at refactori...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CIGBujoNMS0",
        "title": "This Tailwind UI Component Library Really Surprised Me!",
        "publishedAt": "2 years ago",
        "durationSeconds": 1582,
        "views": 13091,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Nuxt has a really awesome UI library callled Nuxt UI! In this video I look over the features and create a full stack app with is, backed by AWS Amplify libraries with Gen2!\n\n👉 Check out...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fmQ6hUvTcRE",
        "title": "This Vue Tailwind Component Library Might Be The Best I've Seen...",
        "publishedAt": "2 years ago",
        "durationSeconds": 487,
        "views": 32335,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The Vue.js ecosystem moves quickly. In this video I look at two new frameworks, and some utilities that make things easier. Including PrimeVue Tailwind and vueUse. In this tutorial we'll deep...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 4,
      "uploadsLast90d": 6,
      "uploadCadenceWeekly": 0.47,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 899,
      "viewsPerVideoP90Last90d": 1358,
      "viewVelocityTrend": "rising"
    },
    "performanceBaseline": {
      "p50Views": 899,
      "p90Views": 1358,
      "p99Views": 1358,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "bit.ly"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "programwitherik.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "vue",
        "share": 0.7,
        "evidenceVideoIds": [
          "SLgIiLqIktk",
          "2C1HkBrz5Wc",
          "lC6e-VXJcE4",
          "1D1Y3h98SAM",
          "NjaJfQN_zZo"
        ]
      },
      {
        "label": "check",
        "share": 0.53,
        "evidenceVideoIds": [
          "A4avaampJ3A",
          "mYwk2Ul9hcw",
          "2C1HkBrz5Wc",
          "LHWt5ybRFk0",
          "VKk-l97CNU8"
        ]
      },
      {
        "label": "https",
        "share": 0.43,
        "evidenceVideoIds": [
          "A4avaampJ3A",
          "SLgIiLqIktk",
          "mYwk2Ul9hcw",
          "2C1HkBrz5Wc",
          "LHWt5ybRFk0"
        ]
      },
      {
        "label": "app",
        "share": 0.43,
        "evidenceVideoIds": [
          "A4avaampJ3A",
          "SLgIiLqIktk",
          "mYwk2Ul9hcw",
          "CXCLhA836yo",
          "1D1Y3h98SAM"
        ]
      },
      {
        "label": "aws",
        "share": 0.43,
        "evidenceVideoIds": [
          "A4avaampJ3A",
          "mYwk2Ul9hcw",
          "2C1HkBrz5Wc",
          "LHWt5ybRFk0",
          "VKk-l97CNU8"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Tuesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "D",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 42,
      "reason": "growth rising last 90d",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.85
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "rising 90d view velocity. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 30,
    "failureType": null,
    "summary": "Program With Erik — 0.1M subs, D-tier sponsorship readiness, low contactability, respond within 30 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 42,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.68,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mid-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mid"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mid-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "none"
    },
    "benchmarkRange": {
      "creatorTier": "mid",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "5-12%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mid-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "ignore",
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": {
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "gaps": [
        "tier:D",
        "contactability:low"
      ]
    },
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "a5a26ecbebdfdface9ab654ea50e34f0627659c2085569bbd39d0bd5ba2bbd33",
      "inputsHash": "2b906629a49ec5a97744d0583606d9b7a8073b3384cad8f203aed39fe527b9f9",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-rising",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:07.712Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "skipped",
    "eventId": "100fcccbf4829d4a03e1ecc7ed473e8bb77d1231a0e70b3d7be04de581faa4c1",
    "channelHandle": "@amarsoni7921",
    "channelId": "UC4O-bV3YJNSdrbdxRJYVymg",
    "subscribers": null,
    "skipReason": {
      "source": "data-unavailable",
      "rules": [
        "subscribers-unavailable"
      ],
      "message": "Channel skipped: subscriber count could not be extracted from YouTube (likely page-header shape change or transient block). Other gate rules: none. No PPE event charged."
    },
    "summary": "Skipped @amarsoni7921 — subscribers unavailable from YouTube.",
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:10.157Z"
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "7e176efccdd0aeb2f1c7bd5166f47d9539619fce2180c304bab34ee1ce0954af",
    "channelId": "UCswG6FSbgZjbWtdf_hMLaow",
    "channelHandle": "@mattpocockuk",
    "channelName": "Matt Pocock",
    "channelUrl": "https://www.youtube.com/@mattpocockuk",
    "description": "Become an AI Hero with tips, tricks and tutorials. We don't do vibe coding - this is a channel for real engineers solving real problems.",
    "joinDate": null,
    "location": null,
    "subscribers": 215000,
    "totalVideos": 269,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/pSHatpqJ1olaZiyikhjdx3nbSJNdo71kzFYyyBpNhFAeK6v-zmfJPIp7HMtkWQ4bt0DRkU8X_-8=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "aihero.dev",
        "url": "https://aihero.dev"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/mattpocockuk"
      }
    ],
    "recentVideos": [
      {
        "videoId": "lNOQaakmyDU",
        "title": "Anthropic's \"dedicated monthly credit\" is actually a huge cut",
        "publishedAt": "4 hours ago",
        "durationSeconds": 633,
        "views": 9972,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "On June 15th, Claude Pro/Max subscriptions get dedicated monthly credits for AFK workflows (Claude Agent SDK, Claude -p, GitHub Actions). But this is effectively a 5-20X cut to the amount of AFK Claude you can use.\n\n0:00 What Happened?\n0:49 What Is Programmatic Usage?\n2:57 HITL vs AFK\n4:40 The Math\n5:18 The Details\n7:19 Hello, Codex\n8:10 Am I Happy?\n\nThe Post:\n\nhttps://x.com/ClaudeDevs/status/20546...\n\nLearn more about my skills:\n\nhttps://aihero.dev/s/dv3Dbl\n\nFollow Matt on Twitter\n\n  / mattpocockuk  \n\nJoin the Discord:\n\nhttps://aihero.dev/s/Vh9zE9",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DNqsMXH6Eog",
        "title": "New Skills! /handoff, /prototype, /review and /writing-* | Skills Changelog",
        "publishedAt": "1 day ago",
        "durationSeconds": 766,
        "views": 38966,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I've added two brand new skills to my arsenal: /handoff and /prototype. Both are awesome for working with AI agents during planning and prototyping phases.\n\n0:00 Intro\n0:12 /handoff\n3:49 /prototype\n6:39 Bug fixes and prompt improvements\n9:04 Writing skills in progress\n11:03 /review\n\nKeep up to date with my skills:\n\nhttps://aihero.dev/s/iDTI1S\n\nLearn more about the skills:\n\nhttps://aihero.dev/s/DVMypo\n\nFollow Matt on Twitter\n\n  / mattpocockuk  \n\nJoin the Discord:\n\nhttps://aihero.dev/s/FUCbUs",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MzWIIlx0Gpc",
        "title": "Burn through the backlog from hell with /triage",
        "publishedAt": "6 days ago",
        "durationSeconds": 617,
        "views": 24700,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to use the Triage skill to manage GitHub issues and backlogs at scale. Discover how to turn messy human ideas into actionable tasks for AI agents using state machines and labels.\n\nLearn more about the skills:\n\nhttps://aihero.dev/s/HXYfHS\n\nFollow Matt on Twitter\n\n  / mattpocockuk  \n\nJoin the Discord:\n\nhttps://aihero.dev/s/gJlyzT",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "E5-QK3CDVQM",
        "title": "I Open-Sourced My Own AFK Software Factory",
        "publishedAt": "13 days ago",
        "durationSeconds": 685,
        "views": 99897,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to build AI coding agents that run completely AFK in isolated sandboxes. In this video, I introduce Sandcastle, a TypeScript library that lets you orchestrate Claude Code and other agents to automatically pick up tasks, implement features, review code, and merge it back to main—all without constant permission requests. Discover how to set up agents to run in parallel with proper sandboxing, handle complex workflows, and scale your development velocity.\n\nThe repo:\n\nhttps://github.com/mattpocock/sandcastle\n\nLearn more about my agent skills:\n\nhttps://www.aihero.dev/s/wuvIE1\n\nFollow Matt on Twitter\n\n  / mattpocockuk  \n\nJoin the Discord:\n\nhttps://aihero.dev/discord",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3MP8D-mdheA",
        "title": "How To De-Slop A Codebase Ruined By AI (with one skill)",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 679,
        "views": 107282,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "AI has accelerated software entropy, making codebases fall apart faster than ever. Learn how to rescue a messy codebase using deep modules, good architecture, and AI-assisted refactoring fundamentals.\n\nLearn more about my skills:\n\nhttps://www.aihero.dev/s/CI1MjO\n\nFollow Matt on Twitter\n\n  / mattpocockuk  \n\nJoin the Discord:\n\nhttps://aihero.dev/discord",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9VNG0h4pLh0",
        "title": "Never Trust An LLM",
        "publishedAt": "1 month ago",
        "durationSeconds": 841,
        "views": 41441,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "LLMs hallucinate constantly - they lie about facts, invent entities, and ignore context. Learn why this happens, how it works, and how to protect yourself from AI misinformation.\n\n0:00 LLM's Are Liars\n1:33 Factual Errors\n3:22 Fabricated Entities\n4:04 Contextual Inconsistency\n5:24 LLM's Are Compressors\n7:08 Why Do They Guess?\n10:01 How To Fix It\n\nLLM Taxonomy:\nhttps://arxiv.org/abs/2508.01781\n\nWhy Language Models Hallucinate:\nhttps://arxiv.org/abs/2509.04664\n\nJoin the Claude Code for Real Engineers course:\nhttps://www.aihero.dev/cohorts/claude...\n\nSign up for the AI Hero newsletter:\nhttps://aihero.dev/newsletter\n\nFollow Matt on Twitter\n\n  / mattpocockuk  \n\nJoin the Discord:\n\nhttps://aihero.dev/discord",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "llwTBpPqo9A",
        "title": "Claude Code tried to improve /init... Is it any better?",
        "publishedAt": "1 month ago",
        "durationSeconds": 678,
        "views": 29829,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Claude Code's new Init script has been completely redesigned based on community feedback. In this video, I test drive the new version and give honest feedback to the Claude Code team on whether it's actually useful.\n\nClaude Code for Real Engineers:\nhttps://aihero.dev/s/GpmCBo\n\nSign up for the AI Hero newsletter:\nhttps://aihero.dev/s/ojLDp9\n\nFollow Matt on Twitter\n  / mattpocockuk  \n\nJoin the Discord:\nhttps://aihero.dev/s/3yJQyS",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hX7yG1KVYhI",
        "title": "Building a REAL feature with Claude Code: every step explained",
        "publishedAt": "1 month ago",
        "durationSeconds": 2656,
        "views": 121748,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, I walk through a real-world example of using Claude Code with my course video manager. I'll show you my entire workflow: from initial feature brainstorming through to autonomous implementation and QA testing.\n\nClaude Code for Real Engineers Cohort - 40% off this week:\nhttps://aihero.dev/s/BQGSo5\n\nMy Skills:\nhttps://aihero.dev/s/FpvIa6\n\nThe course-video-manager repo:\nhttps://github.com/mattpocock/course-...\n\nSign up for the AI Hero newsletter:\n\nhttps://aihero.dev/s/xP6m6E\n\nFollow Matt on Twitter\n\n  / mattpocockuk  \n\nJoin the Discord:\n\nhttps://aihero.dev/s/gmJkUT",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EJyuu6zlQCg",
        "title": "5 Claude Code skills I use every single day",
        "publishedAt": "1 month ago",
        "durationSeconds": 1002,
        "views": 335108,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn the 5 AI agent skills I use every day to steer Claude Code and dramatically improve code quality. Master process-driven development with LLMs through practical examples and real workflows.\n\n0:00 Intro\n1:18 /grill-me\n3:55 /write-a-prd\n6:00 /prd-to-issues\n8:29 /tdd\n12:04 /improve-codebase-architecture\n\nClaude Code for Real Engineers course (40% off for 7 days, starts March 30th):\nhttps://aihero.dev/s/ooKL2Q\n\nMy Skills:\nhttps://aihero.dev/s/tbyzF8\n\nFollow Matt on Twitter\n\n  / mattpocockuk  \n\nJoin the Discord:\n\nhttps://aihero.dev/s/egrQdu",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Ah9p7v7nJWg",
        "title": "The 7 phases of AI-driven development",
        "publishedAt": "2 months ago",
        "durationSeconds": 507,
        "views": 44822,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The 7 phases of AI-driven development: idea, research, prototype, PRD, implementation planning, execution, and QA. Learn how to ship great work with AI coding assistants like Claude Code.\n\nGetting started with Ralph:\nhttps://aihero.dev/getting-started-wi...\n\nHow To Make Codebases AI Agents Love:\nhttps://aihero.dev/s/QmBEIh\n\nSign up for the AI Hero newsletter:\n\nhttps://aihero.dev/s/RQqb0X\n\nFollow Matt on Twitter\n\n  / mattpocockuk  \n\nJoin the Discord:\n\nhttps://aihero.dev/s/N9eseO",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uC44zFz7JSM",
        "title": "Your codebase is NOT ready for AI (here's how to fix it)",
        "publishedAt": "2 months ago",
        "durationSeconds": 530,
        "views": 79943,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Most codebases aren't designed for AI. Learn why software architecture matters more than ever and how deep modules create the structure AI needs to work effectively.\n\nSign up for the AI Hero...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3CSi8QAoN-s",
        "title": "How to actually force Claude Code to use the right CLI (don't use CLAUDE.md)",
        "publishedAt": "2 months ago",
        "durationSeconds": 411,
        "views": 36886,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to force Claude Code to use the right CLI commands and adopt your workflow using deterministic hooks instead of bloated instructions that waste context.\n\n0:00 Intro\n0:35 The Problem...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9tmsq-Gvx6g",
        "title": "Never Run claude /init",
        "publishedAt": "2 months ago",
        "durationSeconds": 637,
        "views": 66396,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn why auto-generated Claude.md and agents.md files hurt your coding agent's performance. Discover what actually belongs in repository context files, how to structure your codebase for optimal...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hYZdIwFIy-c",
        "title": "Red Green Refactor is OP With Claude Code",
        "publishedAt": "2 months ago",
        "durationSeconds": 320,
        "views": 43223,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to get better results from coding agents using Test Driven Development and the red-green refactor cycle. Discover why this 30-year-old software practice is perfect for AI-powered...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "yv8VZpov8bk",
        "title": "I'm using claude --worktree for everything now",
        "publishedAt": "2 months ago",
        "durationSeconds": 477,
        "views": 80095,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "My newsletter (sign up for Claude Code Course details):\n\nhttps://www.aihero.dev/s/047Ery\n\nFollow Matt on Twitter\n\nhttps://twitter.com/mattpocockuk\n\nJoin the Discord:\n\nhttps://aihero.dev/discord",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WNx-s-RxVxk",
        "title": "I was an AI skeptic. Then I tried plan mode",
        "publishedAt": "3 months ago",
        "durationSeconds": 741,
        "views": 59128,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Plan Mode is the most important feature for AI coding. Learn why I use it for every single code change, how it works, and the specific rules I use to make plans actually readable.\n\n0:00 Intro...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pSritFeoYFo",
        "title": "Frontend is HARDER for AI than backend (here's how to fix it)",
        "publishedAt": "4 months ago",
        "durationSeconds": 329,
        "views": 36055,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Playwriter:\n\nhttps://github.com/remorses/playwriter\n\ndev-browser:\n\nhttps://github.com/SawyerHood/dev-browser\n\nchrome-devtools MCP:\n\nhttps://github.com/ChromeDevTools/chrome-devtools-mcp\n\nJoin...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_IK18goX4X8",
        "title": "Ship working code while you sleep with the Ralph Wiggum technique",
        "publishedAt": "4 months ago",
        "durationSeconds": 984,
        "views": 139861,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Apologies for the audio quality in the one - I tweaked some OBS settings I should not have tweaked, and it sounds a lot more blasted than usual. Keeping this here until I find time to re-record....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kZ-zzHVUrO4",
        "title": "How I use Claude Code for real engineering",
        "publishedAt": "6 months ago",
        "durationSeconds": 612,
        "views": 262361,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, I walk through my complete workflow for tackling large coding projects using Claude Code's plan mode. I demonstrate how to start with a rough dictated prompt, use plan mode to...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YCrj0E_P6ls",
        "title": "AI SDK 6 is SWEET",
        "publishedAt": "6 months ago",
        "durationSeconds": 548,
        "views": 25338,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The Vercel team just announced AI SDK version 6 beta, featuring tool execution approval and a new agent abstraction. Tool execution approval implements the \"human in the loop\" pattern, letting...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-uW5-TaVXu4",
        "title": "Most devs don’t understand how context windows work",
        "publishedAt": "6 months ago",
        "durationSeconds": 573,
        "views": 224438,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A deep dive into the context window - the most important constraint when using AI coding agents. Learn what makes up a context window (input and output tokens), why models have limits, and...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AtYtuVTZCQU",
        "title": "Most devs don't understand what agents are",
        "publishedAt": "7 months ago",
        "durationSeconds": 456,
        "views": 28830,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "When OpenAI announced AgentKit, they called it a tool for building agents. But looking at their examples, what they're showing are deterministic workflows with predetermined steps—not true...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nKSk_TiR8YA",
        "title": "Most devs don't understand how LLM tokens work",
        "publishedAt": "7 months ago",
        "durationSeconds": 658,
        "views": 241799,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Most devs are using LLMs daily but don't have a clue about some of the fundamentals. Understanding tokens is crucial because you need to know how you're being billed, and why billing is different...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "S2GChOwivwQ",
        "title": "Effect: the unreadable library that captured my heart",
        "publishedAt": "10 months ago",
        "durationSeconds": 783,
        "views": 74794,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "00:00 Intro\n00:35 What Is Effect?\n01:04 The Syntax\n02:26 Error Handling\n05:46 Dependency Injection\n09:08 EVERYTHING ELSE\n10:28 Q&A\n\nEffect: effect.website\n\nBecome a TypeScript Wizard with my...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lraHlXpuhKs",
        "title": "6 TypeScript tips to turn you into a WIZARD",
        "publishedAt": "11 months ago",
        "durationSeconds": 956,
        "views": 160556,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "00:00 Intro\n00:29 Key vs Value Optional\n03:13 Pick/Omit vs Extract/Exclude\n07:00 Prettify\n08:01 Loose Autocomplete\n09:49 Mapped Types\n12:03 The IIMT\n\nMy course is 30% off right now!\n\nhttps://www.to...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hFenspfGLTk",
        "title": "Arrays, objects... now ‘composites’?",
        "publishedAt": "1 year ago",
        "durationSeconds": 562,
        "views": 60623,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "00:00 Intro\n00:37 The Problem\n02:28 The Hacky Solution\n03:30 Records & Tuples\n06:13 Composites\n\nMy TypeScript course is 30% off right now: https://www.totaltypescript.com\n\nThe Composites Proposal:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "e0AIkYrXAYE",
        "title": "Types vs Interfaces: What I Got Wrong In 2022",
        "publishedAt": "1 year ago",
        "durationSeconds": 597,
        "views": 93667,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "AI Hero: https://www.aihero.dev/\nTotal TypeScript: https://www.totaltypescript.com/\nTypes Vs Interfaces: https://www.totaltypescript.com/type-vs-interface-which-should-you-use\n\nBecome a TypeScript...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xcm53k0ePmY",
        "title": "Zod 4 is out, and it is CRAZY",
        "publishedAt": "1 year ago",
        "durationSeconds": 673,
        "views": 143479,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Zod Tutorial: https://www.totaltypescript.com/tutorials/zod\nMy Current Project, AI Hero: https://www.aihero.dev/\nAnnouncement Post: https://v4.zod.dev/v4\n\n00:00 Intro\n00:34 Performance\n00:48...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "FRogt98OF80",
        "title": "Build An MCP Server In 5 Prompts // Vibe Coding That Doesn't Suck",
        "publishedAt": "1 year ago",
        "durationSeconds": 762,
        "views": 36961,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The Prompts: https://gist.github.com/mattpocock/0aae0ed9b604750f07dee0ea75d8b03d\n\nFollow Matt on Twitter\n\nhttps://twitter.com/mattpocockuk\n\nJoin the Discord:\n\nhttps://mattpocock.com/discord",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MC2BwMGFRx4",
        "title": "Get Started With The Model Context Protocol // 2-Minute Tutorial",
        "publishedAt": "1 year ago",
        "durationSeconds": 144,
        "views": 71983,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get The Code: https://www.aihero.dev/mcp-server-from-a-single-typescript-file\n\nA few months after release, Model Context Protocol is starting to gain traction. It's a really simple way to give...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 9,
      "uploadsLast90d": 16,
      "uploadCadenceWeekly": 1.24,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 44822,
      "viewsPerVideoP90Last90d": 107282,
      "viewVelocityTrend": "rising"
    },
    "performanceBaseline": {
      "p50Views": 44822,
      "p90Views": 107282,
      "p99Views": 121748,
      "outperformingVideosLast90d": 3
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "ai-saas",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:aihero"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "aihero.dev",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.6,
        "evidenceVideoIds": [
          "lNOQaakmyDU",
          "DNqsMXH6Eog",
          "MzWIIlx0Gpc",
          "E5-QK3CDVQM",
          "3MP8D-mdheA"
        ]
      },
      {
        "label": "dev",
        "share": 0.5,
        "evidenceVideoIds": [
          "lNOQaakmyDU",
          "DNqsMXH6Eog",
          "MzWIIlx0Gpc",
          "E5-QK3CDVQM",
          "3MP8D-mdheA"
        ]
      },
      {
        "label": "learn",
        "share": 0.47,
        "evidenceVideoIds": [
          "lNOQaakmyDU",
          "DNqsMXH6Eog",
          "MzWIIlx0Gpc",
          "E5-QK3CDVQM",
          "3MP8D-mdheA"
        ]
      },
      {
        "label": "aihero",
        "share": 0.47,
        "evidenceVideoIds": [
          "lNOQaakmyDU",
          "DNqsMXH6Eog",
          "MzWIIlx0Gpc",
          "E5-QK3CDVQM",
          "3MP8D-mdheA"
        ]
      },
      {
        "label": "join",
        "share": 0.43,
        "evidenceVideoIds": [
          "lNOQaakmyDU",
          "DNqsMXH6Eog",
          "MzWIIlx0Gpc",
          "E5-QK3CDVQM",
          "3MP8D-mdheA"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "content pillars match high-value sponsor categories, strong views-per-subscriber ratio.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "strong",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "moderate",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 42,
      "reason": "growth rising last 90d x fits ai-saas",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.85
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.35
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "rising 90d view velocity + fits ai-saas. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Matt Pocock — 0.2M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 42,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.68,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mid-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mid"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mid-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mid",
      "sponsorCategory": "ai-saas",
      "historicalTypicalReplyRange": "5-12%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mid-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "7e176efccdd0aeb2f1c7bd5166f47d9539619fce2180c304bab34ee1ce0954af",
      "inputsHash": "42e305d74bd9fbd2a5faf8fd458059b7357ea689e2ec95ccec3cf2fb1560f77d",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-rising",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:10.002Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "c9d41fee33f469c92eb20766b0cc1fefbe5e3a431c3191af408a755fbdff1f51",
    "channelId": "UCJUmE61LxhbhudzUugHL2wQ",
    "channelHandle": "@mehulmpt",
    "channelName": "Mehul Mohan",
    "channelUrl": "https://www.youtube.com/@mehulmpt",
    "description": "I create videos about software, security, web development, AI and system design. I've been writing code since 7th grade.\n\nI'm Mehul, a software engineer, founder, and a builder. I graduated with a Computer Science degree and have been building things on the internet, actually much before that.\n\nI've founded two tech companies: Codedamn, an interactive coding platform that served 1M+ learners, and Fermion, an AI-ready cloud platform for technical education used by over 5M+ end users and 100+ businesses.\n\nThis channel is all about:\n\n- Deep dives into AI, LLMs, and emerging tech\n- Web security vulnerabilities and ethical hacking\n- System design breakdowns\n- Programming tutorials and career advice\n- Honest takes on the tech industry\n\nI break down complex topics into practical, no-fluff content, the kind I wish existed when I was learning.",
    "joinDate": null,
    "location": null,
    "subscribers": 468000,
    "totalVideos": 563,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/kM45xSv2BUisPP85YfYfnjJzIZ8UiGsVCuFZ_pkPB-H1NLsT-LUsjvv-tDj87oqHuacmLPw-Efg=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "instagram",
        "url": "https://instagram.com/mehulmpt"
      },
      {
        "platform": "twitter",
        "url": "http://x.com/mehulmpt"
      }
    ],
    "recentVideos": [
      {
        "videoId": "S25aWsrZ47A",
        "title": "Bun Is Rewriting Its Code (It's bad)",
        "publishedAt": "7 hours ago",
        "durationSeconds": 959,
        "views": 2461,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel!\n\nFollow me on:\nX https://x.com/mehulmpt\nInstagram https://instagram.com/mehulmpt\nLinkedIn https://www.linkedin.com/in/mehulmpt",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "NvhSQkb0pTA",
        "title": "NEW npm Hack (Again)",
        "publishedAt": "1 day ago",
        "durationSeconds": 971,
        "views": 7715,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel!\n\nFollow me on:\nX https://x.com/mehulmpt\nInstagram https://instagram.com/mehulmpt\nLinkedIn https://www.linkedin.com/in/mehulmpt",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Xi-16kvbmqc",
        "title": "Just connect AI to AWS bro",
        "publishedAt": "3 days ago",
        "durationSeconds": 602,
        "views": 3814,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel!\n\nFollow me on:\nX https://x.com/mehulmpt\nInstagram https://instagram.com/mehulmpt\nLinkedIn https://www.linkedin.com/in/mehulmpt",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "v72RZV0CLy4",
        "title": "Somebody Hacked Grok AI With Dots and Dashes",
        "publishedAt": "6 days ago",
        "durationSeconds": 302,
        "views": 8880,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel!\n\nFollow me on:\nX https://x.com/mehulmpt\nInstagram https://instagram.com/mehulmpt\nLinkedIn https://www.linkedin.com/in/mehulmpt",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xSkAzr7VyTI",
        "title": "Building Another YouTube Is Impossible",
        "publishedAt": "7 days ago",
        "durationSeconds": 821,
        "views": 5622,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel! Check out Vdocipher for secure video hosting and DRM: https://mehulmohan.com/recommends/vdo...\n\nFollow me on:\nX https://x.com/mehulmpt\nInstagram   / mehulmpt  \nLinkedIn   / mehulmpt",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "R2-0EAGlsxY",
        "title": "My AI agent team that works 24x7 on Linear, GitHub and Slack",
        "publishedAt": "8 days ago",
        "durationSeconds": 1026,
        "views": 2405,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try out Pazi AI today, deploy your tech team directly from the templates on our website: https://mehulmohan.com/recommends/paziai\n\nMake sure you leave a like and subscribe to the channel!\n\nFollow me on:\nX https://x.com/mehulmpt\nInstagram   / mehulmpt  \nLinkedIn   / mehulmpt",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hnfzT6d7mbo",
        "title": "Building Auth Systems Like Senior Developer",
        "publishedAt": "9 days ago",
        "durationSeconds": 1159,
        "views": 12578,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel! Sign up on TestSprite for free using this link: https://mehulmohan.com/recommends/tes... and start testing your apps with MCP and natural language.\n\nFollow me on:\nX https://x.com/mehulmpt\nInstagram   / mehulmpt  \nLinkedIn   / mehulmpt",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "P5dKdZwkC44",
        "title": "AI subscriptions might be dead soon",
        "publishedAt": "10 days ago",
        "durationSeconds": 713,
        "views": 86618,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel!\n\nFollow me on:\nX https://x.com/mehulmpt\nInstagram https://instagram.com/mehulmpt\nLinkedIn https://www.linkedin.com/in/mehulmpt",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "oc-89c7GF6U",
        "title": "How Does Emergency Alert Systems Work? (AMBER Alert)",
        "publishedAt": "11 days ago",
        "durationSeconds": 822,
        "views": 7832,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel!\n\nFollow me on:\nX https://x.com/mehulmpt\nInstagram https://instagram.com/mehulmpt\nLinkedIn https://www.linkedin.com/in/mehulmpt",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OmWjC_M44Ss",
        "title": "Building MCP Server From Scratch (Complete Tutorial)",
        "publishedAt": "12 days ago",
        "durationSeconds": 1167,
        "views": 6042,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel! Check out Willow Voice (FREE) - the best way to do Speech to Text on any app on your system : https://mehulmohan.com/recommends/wil...\n20% OFF for 12 months, use the code: MEHULMOHAN20\n\nFollow me on:\nX https://x.com/mehulmpt\nInstagram   / mehulmpt  \nLinkedIn   / mehulmpt",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "v6J2A0MV4t8",
        "title": "Hackers Hate This Chrome Update",
        "publishedAt": "13 days ago",
        "durationSeconds": 942,
        "views": 9505,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel! Also checkout SurfSense which is a free, open-source NotebookLM alternative that connects to Slack, Notion, GitHub, Gmail and more,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "aUUSnfH1mws",
        "title": "Stripe Just Became Your Entire Backend",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 1249,
        "views": 8546,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel!\nStripe projects: https://projects.dev/\n\nFollow me on:\nX https://x.com/mehulmpt\nInstagram https://instagram.com/mehulmpt\nLinkedIn https://www...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "y73qW8TcMVU",
        "title": "AI Is Killing GitHub",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 920,
        "views": 14827,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel!\n\nOriginal blog: https://github.blog/news-insights/company-news/an-update-on-github-availability\n\nFollow me on:\nX https://x.com/mehulmpt...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "96h94HUmYmg",
        "title": "Stop Using AI For These Things",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 1154,
        "views": 5721,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel! Sign up on TestSprite for free using this link: https://mehulmohan.com/recommends/testsprite and start testing your apps with MCP and...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "U7pxZJWVykU",
        "title": "SpaceX Buys Cursor, DeepSeek v4, and other AI Updates",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 906,
        "views": 5761,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try New Kilo AI (for free): http://mehulmohan.com/recommends/kilo.ai\nThanks to Kilo AI for sponsoring the video, and giving VS Code superpowers.\n\nMake sure you leave a like and subscribe to...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vT-7NW5LN1Y",
        "title": "You are NOT a Developer Anymore",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 713,
        "views": 11017,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel! Sign up on TestSprite for free using this link: https://mehulmohan.com/recommends/testsprite and start testing your apps with MCP and...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "D6OqATU39Ys",
        "title": "EVERY Best AI Model Competition (Guess The Winner)",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 2509,
        "views": 7159,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel! Also checkout SurfSense which is a free, open-source NotebookLM alternative that connects to Slack, Notion, GitHub, Gmail and more,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1SfeSiGnAto",
        "title": "GitHub Lost Your Data! (WTF)",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 729,
        "views": 8749,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel!\n\nFollow me on:\nX https://x.com/mehulmpt\nInstagram https://instagram.com/mehulmpt\nLinkedIn https://www.linkedin.com/in/mehulmpt",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5Vt4YLmvgNk",
        "title": "Your Password Manager Got Hacked",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 721,
        "views": 7092,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel!\n\nFollow me on:\nX https://x.com/mehulmpt\nInstagram https://instagram.com/mehulmpt\nLinkedIn https://www.linkedin.com/in/mehulmpt",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pIa9pt0-C9U",
        "title": "Cloudflare AI Complete Tutorial (Every AI Service)",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 1000,
        "views": 9882,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Thanks to Cloudflare for sponsoring this video! Check out Cloudflare AI here: https://mehulmohan.com/recommends/cloudflare\n\nMake sure you leave a like and subscribe to the channel!\n\nFollow...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "FoTMJeizVoI",
        "title": "Your API Keys Got Leaked?!",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 794,
        "views": 3684,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel!\nCheckout TestSprite AI agent here: https://mehulmohan.com/recommends/testsprite\n\nFollow me on:\nX https://x.com/mehulmpt\nInstagram https://in...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GC6eBNbKrGE",
        "title": "NEW GitHub For AI?",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 645,
        "views": 7242,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel!\nCheckout TestSprite hackathon season 2: http://mehulmohan.com/recommends/testsprite-hackathon2\nTestSprite homepage: https://mehulmohan.com/r...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EOhhp9PPZUU",
        "title": "Claude Design Complete Review",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 1092,
        "views": 9446,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out Klaus AI for a better OpenClaw hosting: https://mehulmohan.com/recommends/klausai\n\nMake sure you leave a like and subscribe to the channel!\n\nFollow me on:\nX https://x.com/mehulmpt...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "iwWd-XqHbqg",
        "title": "NEW Opus 4.7 Is Here (Better Than Every Model?)",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 773,
        "views": 11368,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel!\n\nFollow me on:\nX https://x.com/mehulmpt\nInstagram https://instagram.com/mehulmpt\nLinkedIn https://www.linkedin.com/in/mehulmpt",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "T55yvRoSSVE",
        "title": "Open Source Is Dead!?",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 714,
        "views": 5676,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel!\nCheckout TestSprite hackathon season 2: http://mehulmohan.com/recommends/testsprite-hackathon2\nTestSprite homepage: https://mehulmohan.com/r...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "a5PjdufFJiU",
        "title": "Codex Killer Is Here (Claude Code Update)",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 721,
        "views": 7816,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel!\nCheck out Greptile - the best and most powerful way to code review your PRs: https://mehulmohan.com/recommends/greptile\n\nOriginal blog:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6Ye0IKU_Xdo",
        "title": "How AI Video Models Work Internally?",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 1536,
        "views": 3580,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Seedance 2.0 on OpenArt: https://mehulmohan.com/recommends/openart\n\nMake sure you leave a like and subscribe to the channel!\n\nFollow me on:\nX https://x.com/mehulmpt\nInstagram https://instagram....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QlNHgTanKBA",
        "title": "Claude Code Has Gotten Worse",
        "publishedAt": "1 month ago",
        "durationSeconds": 792,
        "views": 9957,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel!\n\nFollow me on:\nX https://x.com/mehulmpt\nInstagram https://instagram.com/mehulmpt\nLinkedIn https://www.linkedin.com/in/mehulmpt",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-2U56XrULEs",
        "title": "Claude Mythos - END of Software Engineering?",
        "publishedAt": "1 month ago",
        "durationSeconds": 830,
        "views": 12435,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Make sure you leave a like and subscribe to the channel! \nCheck out WayinVideo APIs:\nhttps://mehulmohan.com/recommends/wayinvideo\nTry WayinVideo Video Clipping Skill:\nhttps://clawhub.ai/wayinvideo/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DwOHbL8ZuTw",
        "title": "99% of AI Startups Will Die (Here's Why)",
        "publishedAt": "1 month ago",
        "durationSeconds": 1072,
        "views": 6288,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try out Oxylabs for using a data scraping solution that is not blocked by firewalls. Get free tier access here: https://oxylabs.io/MEHUL. Up to 2,000 web scraping results for free. No credit...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 30,
      "uploadsLast90d": 30,
      "uploadCadenceWeekly": 2.33,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 7715,
      "viewsPerVideoP90Last90d": 12435,
      "viewVelocityTrend": "rising"
    },
    "performanceBaseline": {
      "p50Views": 7715,
      "p90Views": 12435,
      "p99Views": 14827,
      "outperformingVideosLast90d": 4
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 2,
      "sponsorBrandsDetected": [
        "Kilo AI",
        "Cloudflare"
      ],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 7,
      "lastSponsoredVideoDate": "2026-04-30",
      "detectionDetail": [
        {
          "brand": "Kilo AI",
          "videoId": "U7pxZJWVykU",
          "confidence": 0.7,
          "evidence": "description: Thanks to Kilo AI for sponsoring",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:10.985Z"
        },
        {
          "brand": "Cloudflare",
          "videoId": "pIa9pt0-C9U",
          "confidence": 0.7,
          "evidence": "description: Thanks to Cloudflare for sponsoring",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:10.985Z"
        }
      ]
    },
    "sponsorshipMaturity": {
      "tier": "occasional",
      "evidence": {
        "sponsoredVideoCountLast90d": 2,
        "uniqueSponsorBrandsLast90d": 2,
        "firstSponsoredVideoDate": "2026-05-14"
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": null,
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": false,
        "sponsorshipHistoryPresent": true,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "make",
        "share": 0.97,
        "evidenceVideoIds": [
          "S25aWsrZ47A",
          "NvhSQkb0pTA",
          "Xi-16kvbmqc",
          "v72RZV0CLy4",
          "xSkAzr7VyTI"
        ]
      },
      {
        "label": "sure",
        "share": 0.97,
        "evidenceVideoIds": [
          "S25aWsrZ47A",
          "NvhSQkb0pTA",
          "Xi-16kvbmqc",
          "v72RZV0CLy4",
          "xSkAzr7VyTI"
        ]
      },
      {
        "label": "leave",
        "share": 0.97,
        "evidenceVideoIds": [
          "S25aWsrZ47A",
          "NvhSQkb0pTA",
          "Xi-16kvbmqc",
          "v72RZV0CLy4",
          "xSkAzr7VyTI"
        ]
      },
      {
        "label": "https",
        "share": 0.9,
        "evidenceVideoIds": [
          "S25aWsrZ47A",
          "NvhSQkb0pTA",
          "Xi-16kvbmqc",
          "v72RZV0CLy4",
          "xSkAzr7VyTI"
        ]
      },
      {
        "label": "com",
        "share": 0.9,
        "evidenceVideoIds": [
          "S25aWsrZ47A",
          "NvhSQkb0pTA",
          "Xi-16kvbmqc",
          "v72RZV0CLy4",
          "xSkAzr7VyTI"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Thursday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "B",
      "rationale": "consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "occasional"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 54,
      "reason": "growth rising last 90d",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.5
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.85
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.6,
      "level": "medium",
      "coldStart": false
    },
    "whyThisMatters": "rising 90d view velocity. Channel is in the active outreach window.",
    "whyNow": "Last sponsored video 14 days ago — within typical sponsorship-decision lookback for similar creators.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Mehul Mohan — 0.5M subs, B-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 54,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.56,
      "urgency": 0,
      "noiseRisk": 0.4
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "enrichment",
      "secondary": "linkedin",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [],
      "missedOpportunities": [
        "no-external-website-detected",
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "unknown",
      "score": 0,
      "factors": [],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "occasional sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:occasional",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": true,
      "requiresEnrichment": true,
      "priorityQueue": "medium"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "B-tier readiness — nurture or enrich before outreach.",
      "appliedRules": [
        "lastSponsored<90d"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "optimal",
      "reason": "Last sponsored video 14 days ago; within typical 14-30d decision-cycle for similar creators.",
      "decayRisk": 0.35
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 52,
      "reasons": [
        "Active sponsor history within last 90d (2 videos)"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "c9d41fee33f469c92eb20766b0cc1fefbe5e3a431c3191af408a755fbdff1f51",
      "inputsHash": "322d6d765b192789e9f8fe73e1baf196e58287aceec9d75b6964b979135f8995",
      "rulesApplied": [
        "sponsorship-history-occasional",
        "growth-velocity-rising",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:10.022Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "9466bc1e9a9b6e93231b8ae79bde01b524923d0275701ae7f16ce3e03019225f",
    "channelId": "UCRLEADhMcb8WUdnQ5_Alk7g",
    "channelHandle": "@AaronJack",
    "channelName": "Aaron Jack",
    "channelUrl": "https://www.youtube.com/@AaronJack",
    "description": "From Broke English Teacher to Uber Software Engineer to Remote Solo Software Developer.\nJoin the Freelance Code Bootcamp: https://freemote.com",
    "joinDate": null,
    "location": null,
    "subscribers": 428000,
    "totalVideos": 122,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/40SE9hF9oDMoGjoKDdQEG8e6HJML5c_fVP40Vfm2hMrfkvqqMYrVCyPoGXlMFFNE89rN10EQJQ=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "freemote.com",
        "url": "https://freemote.com"
      },
      {
        "platform": "instagram",
        "url": "https://instagram.com/aaronjack"
      },
      {
        "platform": "github",
        "url": "https://github.com/aj-4"
      }
    ],
    "recentVideos": [
      {
        "videoId": "Wgo_NVYSsJc",
        "title": "Learn AI Agents - How they Work & Build Your Own",
        "publishedAt": "1 year ago",
        "durationSeconds": 670,
        "views": 11670,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get a Simplilearn AI / ML Training & Certification here:\nhttps://bit.ly/Aaron-AIML",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5qxMeu3m-EQ",
        "title": "Why You Need an AI Laptop (as a developer)",
        "publishedAt": "1 year ago",
        "durationSeconds": 458,
        "views": 9194,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Find out more about NVIDIA RTX AI PCs here: https://nvda.ws/40BhEyz\n\nWhat do you think of AI Laptops? I've started running DeepSeek R1 and it's been crazy so far.\n\n#nvidia #rtx #ai",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JHIbucOTLEY",
        "title": "How to Build Powerful Web Scrapers with AI - 3 Steps",
        "publishedAt": "1 year ago",
        "durationSeconds": 792,
        "views": 11945,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get your Web scraping proxies! https://dataimpulse.com/?utm_source=Youtube&utm_medium=Video&utm_campaign=AaronJack \n\n#webscraping #javascript #ai",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2Y3kEPMDmog",
        "title": "How I Write SEO posts in 2 Mins With Notion AI + API",
        "publishedAt": "1 year ago",
        "durationSeconds": 681,
        "views": 3875,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🎉 Unlock AI for $10 per month → https://ntn.so/AaronJack\n\n📌 Get my template → https://ntn.so/aiblogbuildertemplate\n\n(includes github repo link)\n\n\n\n#notion  #ai  #seo ❗Free Programming Cheat Sheets (JavaScript, Python, React, CSS)\nhttps://freemote.com/programming-chea...\n\n❗Learn How to Earn a Side Income with Freelance Coding\nhttps://freemote.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8b6JaB1LcRU",
        "title": "I Coded A REAL App with AI in 60 minutes! (Cursor, Claude AI)",
        "publishedAt": "1 year ago",
        "durationSeconds": 2576,
        "views": 8874,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want to Build Apps With AI? Check out AI Business Builders Guide, it's free: https://clickhubspot.com/7n51\nHubspot put it together to help you improve your skills.\n\nKicking myself for not going faster but wanted to upload the reality. What do you think of this app?\n\n#ai  #app  #cursor ❗Free Programming Cheat Sheets (JavaScript, Python, React, CSS)\nhttps://freemote.com/programming-chea...\n\n❗Learn How to Earn a Side Income with Freelance Coding\nhttps://freemote.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gDzND0M6SGE",
        "title": "Cursor.AI Basics in 10 Mins (Is it Worth Using?)",
        "publishedAt": "1 year ago",
        "durationSeconds": 669,
        "views": 25312,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get up to date on AI, with the AI For Business Builders Guide: https://clickhubspot.com/lo19\nUseful tips for anyone building with AI prompts, agents, LLMs and more (Created by Hubspot)\n\nHow are you using Cursor? What tips would you add to this video?\n\n#ai  #cursor  #coding ❗Free Programming Cheat Sheets (JavaScript, Python, React, CSS)\nhttps://freemote.com/programming-chea...\n\n❗Learn How to Earn a Side Income with Freelance Coding\nhttps://freemote.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "yKacmTmm79s",
        "title": "Use AI to Build a Developer Portfolio in Minutes",
        "publishedAt": "1 year ago",
        "durationSeconds": 1036,
        "views": 7562,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Master the Wordpress x AI stack with Hostinger - Get 10% off with code AARONJACK.\nLink here for easy access: https://hostinger.com/aaronjack\n\nHey guys, hope you've been enjoying these recent site builds - I think so many cool tools are coming out right now it's worth sharing.\n\nWill have some updates on startup progress soon!\n\nBig thanks to Hostinger for sponsoring this video.\n\n#coding  #wordpress  #hostinger ❗Free Programming Cheat Sheets (JavaScript, Python, React, CSS)\nhttps://freemote.com/programming-chea...\n\n❗Learn How to Earn a Side Income with Freelance Coding\nhttps://freemote.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ip_vgX0Ed9k",
        "title": "I built an AI personal trainer",
        "publishedAt": "1 year ago",
        "durationSeconds": 1829,
        "views": 5383,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Create your own Coze AI bot without code, or check out mine here: \nhttps://bit.ly/3WKivLi\n\n#ai  #nocode ❗Free Programming Cheat Sheets (JavaScript, Python, React, CSS)\nhttps://freemote.com/programming-chea...\n\n❗Learn How to Earn a Side Income with Freelance Coding\nhttps://freemote.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "iaPEgOnRe0E",
        "title": "The REAL Reason Tech Hiring Has Slowed Down (Surprising)",
        "publishedAt": "2 years ago",
        "durationSeconds": 700,
        "views": 194507,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Use this link to check out interview kickstart, and not waste your shot on interviews\nhttps://www.interviewkickstart.com/su...\n\n  / aaronjack  \n\n#coding #hiring #programming ❗Free Programming Cheat Sheets (JavaScript, Python, React, CSS)\nhttps://freemote.com/programming-chea...\n\n❗Learn How to Earn a Side Income with Freelance Coding\nhttps://freemote.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "y05A9ZcokO0",
        "title": "The Sad Truth About Working at Google in 2023",
        "publishedAt": "2 years ago",
        "durationSeconds": 482,
        "views": 47713,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try out Visme for awesome no-code landing pages here:\nhttps://www.visme.co/form-builder/?re...\n\nIs Google really losing its edge? According to one employee it's over. Let's talk about it.\n\nMy social media\n  / aaronjack  \n  / aaronjacked  \n\n#google #coding #programming ❗Free Programming Cheat Sheets (JavaScript, Python, React, CSS)\nhttps://freemote.com/programming-chea...\n\n❗Learn How to Earn a Side Income with Freelance Coding\nhttps://freemote.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "C5gPterGnu8",
        "title": "You MUST Know This When Choosing a Code Editor",
        "publishedAt": "2 years ago",
        "durationSeconds": 901,
        "views": 7388,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "VS Code?\nVIM?\nHow to Choose a Code Editor ft. Chris Coyier of codepen.io\n\n00:00 - Intro\n04:25 - Chris Coyier introduces CodePen\n07:04 - CodePen uses\n08:40 - Scaling the business\n10:00 - Goals...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QmG2uHAYn7U",
        "title": "How to Open Source Like the Pros (featuring 3 Top Maintainers!)",
        "publishedAt": "2 years ago",
        "durationSeconds": 1975,
        "views": 5565,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I interviewed 3 successful open source founders, here's what they said...\n\n1. Caleb Porzio (Alpine JS, Laravel Livewire) https://twitter.com/calebporzio\n2. Nicholas Zakas (ESLint) https://twitter.c...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qyoJlciyh4M",
        "title": "5 Coding Side Hustles for 2024",
        "publishedAt": "2 years ago",
        "durationSeconds": 480,
        "views": 50043,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Freelance Coding is the way in 2024! Learn How: https://www.freemote.com/strategy\n\nhttps://instagram.com/aaronjack\n\n#coding #programming #javascript ❗Free Programming Cheat Sheets (JavaScript,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2SSycLfrKnI",
        "title": "Your Will NEVER Get a Tech Job With Your Resume",
        "publishedAt": "2 years ago",
        "durationSeconds": 383,
        "views": 71258,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Freelance Coding is the way in 2024! Learn How: https://www.freemote.com/strategy\n\nhttps://instagram.com/aaronjack\n\n#coding #programming #javascript ❗Free Programming Cheat Sheets (JavaScript,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Y73XfDM-sWA",
        "title": "Why Teenagers Should Learn to Code",
        "publishedAt": "2 years ago",
        "durationSeconds": 529,
        "views": 15732,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Freelance Coding is the way in 2024! Learn How: https://www.freemote.com/strategy\n\nhttps://instagram.com/aaronjack\n\n#coding #programming #javascript ❗Free Programming Cheat Sheets (JavaScript,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "D4KNt3uyuoc",
        "title": "Why I Can't Move Back to America",
        "publishedAt": "2 years ago",
        "durationSeconds": 470,
        "views": 29901,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Freelance Coding is the way in 2024! Learn How: https://www.freemote.com/strategy\n\nhttps://instagram.com/aaronjack\n\n#coding #programming #javascript ❗Free Programming Cheat Sheets (JavaScript,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1jrTW93F7Mg",
        "title": "Coding is Not Enough Anymore",
        "publishedAt": "2 years ago",
        "durationSeconds": 586,
        "views": 376186,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Freelance Coding is the way in 2024! Learn How: https://www.freemote.com/strategy\n\nhttps://instagram.com/aaronjack\n\n#coding #programming #javascript ❗Free Programming Cheat Sheets (JavaScript,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jVJJMIzMvP8",
        "title": "Please Just Shut Up About Tech Stacks",
        "publishedAt": "2 years ago",
        "durationSeconds": 331,
        "views": 7998,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Freelance Coding is the way in 2024! Learn How: https://www.freemote.com/strategy\n\nhttps://instagram.com/aaronjack\n\n#coding #programming #javascript ❗Free Programming Cheat Sheets (JavaScript,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_SnxuVkFB9I",
        "title": "200k Layoffs, AI Revolution, Is It Over For Programmers?",
        "publishedAt": "3 years ago",
        "durationSeconds": 429,
        "views": 138353,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Freelance Coding is the way in 2024! Learn How: https://www.freemote.com/strategy\n\nhttps://instagram.com/aaronjack\n\n#coding #programming #javascript ❗Free Programming Cheat Sheets (JavaScript,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PLF3_pMDmc8",
        "title": "5 Creative Ways To Get a Coding Job",
        "publishedAt": "3 years ago",
        "durationSeconds": 518,
        "views": 43102,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Freelance Coding is the way in 2024! Learn How: https://www.freemote.com/strategy\n\nhttps://instagram.com/aaronjack\n\n#coding #programming #javascript ❗Free Programming Cheat Sheets (JavaScript,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "G8ZRM0oo3OM",
        "title": "7 UNIQUE PURCHASES To Make as a Programmer",
        "publishedAt": "3 years ago",
        "durationSeconds": 400,
        "views": 84008,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Freelance Coding is the way in 2024! Learn How: https://www.freemote.com/strategy\n\nhttps://instagram.com/aaronjack\n\n#coding #programming #javascript ❗Free Programming Cheat Sheets (JavaScript,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uca3Ggg_2lg",
        "title": "The Linux Political Spectrum",
        "publishedAt": "3 years ago",
        "durationSeconds": 702,
        "views": 79604,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Freelance Coding is the way in 2024! Learn How: https://www.freemote.com/strategy\n\nhttps://instagram.com/aaronjack\n\n#coding #programming #javascript ❗Free Programming Cheat Sheets (JavaScript,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "y1S_pifxVwk",
        "title": "Smart Drugs - How Some Programmers Are Trying to Hack Their Brain",
        "publishedAt": "3 years ago",
        "durationSeconds": 781,
        "views": 310646,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Freelance Coding is the way in 2024! Learn How: https://www.freemote.com/strategy\n\nhttps://instagram.com/aaronjack\n\n#coding #programming #javascript ❗Free Programming Cheat Sheets (JavaScript,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "oR-mzzIsHVE",
        "title": "How “Overemployed” Programmers Are Earning Multiple FULL TIME Salaries",
        "publishedAt": "3 years ago",
        "durationSeconds": 576,
        "views": 1334954,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Freelance Coding is the way in 2024! Learn How: https://www.freemote.com/strategy\n\nhttps://instagram.com/aaronjack\n\n#coding #programming #javascript ❗Free Programming Cheat Sheets (JavaScript,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IZCfP13twxk",
        "title": "Why Most Google Employees Quit After 1.1 Years (On Average)",
        "publishedAt": "3 years ago",
        "durationSeconds": 600,
        "views": 1840031,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Freelance Coding is the way in 2024! Learn How: https://www.freemote.com/strategy\n\nhttps://instagram.com/aaronjack\n\n#coding #programming #javascript ❗Free Programming Cheat Sheets (JavaScript,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9U684GbFST4",
        "title": "Top 5 Programming Languages in 2022 to Get a Job",
        "publishedAt": "3 years ago",
        "durationSeconds": 521,
        "views": 751152,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Freelance Coding is the way in 2024! Learn How: https://www.freemote.com/strategy\n\nhttps://instagram.com/aaronjack\n\n#coding #programming #javascript ❗Free Programming Cheat Sheets (JavaScript,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IjE17hlRKlQ",
        "title": "The 4 Steps to get a $100k Programming Job",
        "publishedAt": "3 years ago",
        "durationSeconds": 561,
        "views": 43506,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Freelance Coding is the way in 2024! Learn How: https://www.freemote.com/strategy\n\nhttps://instagram.com/aaronjack\n\n#coding #programming #javascript ❗Free Programming Cheat Sheets (JavaScript,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bWq2O5RaOJ4",
        "title": "How I Would Learn To Code (If I Could Start Over)",
        "publishedAt": "3 years ago",
        "durationSeconds": 371,
        "views": 79588,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Freelance Coding is the way in 2024! Learn How: https://www.freemote.com/strategy\n\nhttps://instagram.com/aaronjack\n\n#coding #programming #javascript ❗Free Programming Cheat Sheets (JavaScript,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fG9zCuZEB8I",
        "title": "Why NOT to Learn Python in 2022",
        "publishedAt": "3 years ago",
        "durationSeconds": 302,
        "views": 71201,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Freelance Coding is the way in 2024! Learn How: https://www.freemote.com/strategy\n\nhttps://instagram.com/aaronjack\n\n#coding #programming #javascript ❗Free Programming Cheat Sheets (JavaScript,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wFoaGjbgXRc",
        "title": "Q&A With the #1 EARNING Freelancer on UpWork!",
        "publishedAt": "3 years ago",
        "durationSeconds": 1245,
        "views": 27616,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Freelance Coding is the way in 2024! Learn How: https://www.freemote.com/strategy\n\nhttps://instagram.com/aaronjack\n\n#coding #programming #javascript ❗Free Programming Cheat Sheets (JavaScript,...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [
        "Hostinger"
      ],
      "affiliateLinkHosts": [
        "bit.ly"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": "2025-05-14",
      "detectionDetail": [
        {
          "brand": "Hostinger",
          "videoId": "yKacmTmm79s",
          "confidence": 0.95,
          "evidence": "description: thanks to Hostinger for sponsoring",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:11.034Z"
        }
      ]
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 1,
        "firstSponsoredVideoDate": "2026-05-14"
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "web-services",
          "confidence": 0.25,
          "evidence": [
            "historical-sponsor:Hostinger"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "freemote.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.97,
        "evidenceVideoIds": [
          "Wgo_NVYSsJc",
          "5qxMeu3m-EQ",
          "JHIbucOTLEY",
          "2Y3kEPMDmog",
          "8b6JaB1LcRU"
        ]
      },
      {
        "label": "com",
        "share": 0.9,
        "evidenceVideoIds": [
          "JHIbucOTLEY",
          "2Y3kEPMDmog",
          "8b6JaB1LcRU",
          "gDzND0M6SGE",
          "yKacmTmm79s"
        ]
      },
      {
        "label": "learn",
        "share": 0.87,
        "evidenceVideoIds": [
          "Wgo_NVYSsJc",
          "2Y3kEPMDmog",
          "8b6JaB1LcRU",
          "gDzND0M6SGE",
          "yKacmTmm79s"
        ]
      },
      {
        "label": "javascript",
        "share": 0.87,
        "evidenceVideoIds": [
          "JHIbucOTLEY",
          "2Y3kEPMDmog",
          "8b6JaB1LcRU",
          "gDzND0M6SGE",
          "yKacmTmm79s"
        ]
      },
      {
        "label": "programming",
        "share": 0.83,
        "evidenceVideoIds": [
          "2Y3kEPMDmog",
          "8b6JaB1LcRU",
          "gDzND0M6SGE",
          "yKacmTmm79s",
          "ip_vgX0Ed9k"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Monday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 35,
      "reason": "fits web-services",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.45
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.6,
      "level": "medium",
      "coldStart": false
    },
    "whyThisMatters": "fits web-services. Channel is in the active outreach window.",
    "whyNow": "Last sponsored video 365 days ago — within typical sponsorship-decision lookback for similar creators.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Aaron Jack — 0.4M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 35,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.75,
      "urgency": 0,
      "noiseRisk": 0.4
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "web-services",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "late",
      "reason": "Last sponsored video 365 days ago; past typical 14-30d decision-cycle for similar creators.",
      "decayRisk": 0.9
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "9466bc1e9a9b6e93231b8ae79bde01b524923d0275701ae7f16ce3e03019225f",
      "inputsHash": "eca1e39d945dc81b0de6403d2a24d42c2d2368350162335fe0504cad036b73d8",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:10.294Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "32b181eae5c2a13cd930f7a8c2d7164c90fc9d944bd359355f71d7687a08d1f7",
    "channelId": "UC6biysICWOJ-C3P4Tyeggzg",
    "channelHandle": "@LowLevelTV",
    "channelName": "Low Level",
    "channelUrl": "https://www.youtube.com/@LowLevelTV",
    "description": "Vuln Researcher w/ 10+ Years in Cybersecurity",
    "joinDate": null,
    "location": null,
    "subscribers": 1110000,
    "totalVideos": 312,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/npUuy7Y37eUqanNoISokGb5a5rk1wotnx0Yzs1kfdOzYgnlwYnV82izSKmaoYpObYewKOAacs8o=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "lowlevel.tv",
        "url": "https://lowlevel.tv"
      },
      {
        "platform": "lowlevel.academy",
        "url": "https://lowlevel.academy"
      },
      {
        "platform": "twitch",
        "url": "https://www.twitch.tv/LowLevelTV"
      },
      {
        "platform": "twitter",
        "url": "https://x.com/LowLevelTweets"
      }
    ],
    "recentVideos": [
      {
        "videoId": "umyoCyZCkyg",
        "title": "This affects so many companies..",
        "publishedAt": "11 hours ago",
        "durationSeconds": 596,
        "views": 74019,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Reduce your response time to credential compromise with Flare @  https://go.lowlevel.tv/flare2026\n\nhttps://unit42.paloaltonetworks.com/c...\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n⌨️ KEYBOARD\nLike what you hear? Grab a Q5 at https://go.lowlevel.tv/keyboard\n\n🔥COME HANG OUT   \nCheck out my other stuff: https://lowlevel.tv",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CjC_9gkqLOo",
        "title": "how is this still possible in 2026?",
        "publishedAt": "2 days ago",
        "durationSeconds": 648,
        "views": 163257,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Secure your organizations infrastructure using Zero Trust Network Architecture with Threatlocker at https://go.lowlevel.tv/threatlocker2026\n\nhttps://labs.watchtowr.com/the-intern...\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n⌨️ KEYBOARD\nLike what you hear? Grab a Q5 at https://go.lowlevel.tv/keyboard\n\n🔥COME HANG OUT   \nCheck out my other stuff: https://lowlevel.tv",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8s9jaIPR7PU",
        "title": "SERIOUSLY? AGAIN?",
        "publishedAt": "5 days ago",
        "durationSeconds": 778,
        "views": 220453,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n⌨️ KEYBOARD\nLike what you hear? Grab a Q5 at https://go.lowlevel.tv/keyboard\n\n🔥COME HANG OUT   \nCheck out my other stuff: https://lowlevel.tv",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "m5t08CREHcE",
        "title": "The GitHub situation just got worse...",
        "publishedAt": "7 days ago",
        "durationSeconds": 560,
        "views": 338087,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Catch bugs in your code BEFORE it gets shipped with CodeRabbit @ https://go.lowlevel.tv/coderabbit\n\nEDIT: I just realized after watching this video back that I'm a dumba** and HTTP headers are not delimited by a semicolon. They're delimited by \\r\\n. A thousand apologies to the RFC enjoyers.\n\nhttps://www.wiz.io/blog/github-rce-vu...\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n⌨️ KEYBOARD\nLike what you hear? Grab a Q5 at https://go.lowlevel.tv/keyboard\n\n🔥COME HANG OUT   \nCheck out my other stuff: https://lowlevel.tv",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MaFK5AXpXXw",
        "title": "This Exploits LITERALLY Every Linux Distro",
        "publishedAt": "12 days ago",
        "durationSeconds": 866,
        "views": 329441,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://copy.fail\n\nReduce your response time to credential compromise with Flare @ https://go.lowlevel.tv/flare2026\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n⌨️ KEYBOARD\nLike what you hear? Grab a Q5 at https://go.lowlevel.tv/keyboard\n\n🔥COME HANG OUT   \nCheck out my other stuff: https://lowlevel.tv",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-_TWFbw8XjU",
        "title": "HUGE password manager got compromised",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 546,
        "views": 268418,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "bitwarden more like bithurdin haha sorry.\n\nSources:\nhttps://www.endorlabs.com/learn/shai-...\nhttps://thehackernews.com/2026/04/mal...\nhttps://research.jfrog.com/post/bitwa...\nhttps://thehackernews.com/2026/04/bit...\nedits:   / joshi.toshi  \n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n⌨️ KEYBOARD\nLike what you hear? Grab a Q5 at https://go.lowlevel.tv/keyboard\n\n🔥COME HANG OUT   \nCheck out my other stuff: https://lowlevel.tv",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WMZRHpq-0lk",
        "title": "They're hacking PDFs now",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 604,
        "views": 330621,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Secure the way your organization handles data with AI today @ https://go.lowlevel.tv/island\n\nhttps://justhaifei1.blogspot.com/2026...\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n⌨️ KEYBOARD\nLike what you hear? Grab a Q5 at https://go.lowlevel.tv/keyboard\n\n🔥COME HANG OUT   \nCheck out my other stuff: https://lowlevel.tv",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Q0pKjLMOvFE",
        "title": "He Leaked Windows Exploits For Revenge",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 677,
        "views": 252192,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Secure your organizations infrastructure using Zero Trust Network Architecture with Threatlocker at https://go.lowlevel.tv/threatlocker2026\n\nhttps://github.com/Nightmare-Eclipse/...\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n⌨️ KEYBOARD\nLike what you hear? Grab a Q5 at https://go.lowlevel.tv/keyboard\n\n🔥COME HANG OUT   \nCheck out my other stuff: https://lowlevel.tv",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WBgdAkol0VQ",
        "title": "Stop Updating Your Software (No, Seriously)",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 617,
        "views": 181388,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Stay ahead of hackers by seeing into the infostealer economy at https://go.lowlevel.tv/flare2026\n\nhttps://intel.breakglass.tech/post/cp...\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n⌨️ KEYBOARD\nLike what you hear? Grab a Q5 at https://go.lowlevel.tv/keyboard\n\n🔥COME HANG OUT   \nCheck out my other stuff: https://lowlevel.tv",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LZAZvm34rYs",
        "title": "Claude Mythos is Actually Scary",
        "publishedAt": "1 month ago",
        "durationSeconds": 810,
        "views": 303599,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Live on Twitch:   / lowleveltv  \n\nhttps://red.anthropic.com/2026/mythos...\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n⌨️ KEYBOARD\nLike what you hear? Grab a Q5 at https://go.lowlevel.tv/keyboard\n\n🔥COME HANG OUT   \nCheck out my other stuff: https://lowlevel.tv",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Nl27jPrXOrE",
        "title": "No, Seriously. AI is REALLY Good at Hacking Now",
        "publishedAt": "1 month ago",
        "durationSeconds": 584,
        "views": 169252,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go see if your company's creds have been compromised @ https://go.lowlevel.tv/flare2026\n\nhttps://github.com/califio/publications/blob/main/MADBugs/CVE-2026-4747/claude-prompts.txt\n\n🏫 MY...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "yiLIZLPNEm8",
        "title": "this is the biggest hack of 2026",
        "publishedAt": "1 month ago",
        "durationSeconds": 597,
        "views": 287877,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://www.huntress.com/blog/supply-chain-compromise-axios-npm-package\nhttps://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan\nhttps://www.ox.securit...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TRPUpErYeco",
        "title": "can't believe this happened",
        "publishedAt": "1 month ago",
        "durationSeconds": 734,
        "views": 215478,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://blog.qualys.com/vulnerabilities-threat-research/2026/03/12/crackarmor-critical-apparmor-flaws-enable-local-privilege-escalation-to-root\n\n🏫 LEARN HOW COMPUTERS WORK\nSign-up for my...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uwSjgv4otAk",
        "title": "this is crazy.",
        "publishedAt": "1 month ago",
        "durationSeconds": 671,
        "views": 257843,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Secure your company's AI posture with Varonis Atlas today! Get a free demo at https://go.lowlevel.tv/varonis\n\nDISCLAIMER: I HAVE NO EVIDENCE THAT GOOGLE OR NETFLIX WERE ACTUALLY AFFECTED BY...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZrD9MC_BXGk",
        "title": "malware is getting way too advanced",
        "publishedAt": "1 month ago",
        "durationSeconds": 480,
        "views": 267186,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n⌨️ KEYBOARD...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-ndTTdOW_i4",
        "title": "cybersecurity is about to get weird",
        "publishedAt": "2 months ago",
        "durationSeconds": 805,
        "views": 663353,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://www.anthropic.com/news/mozilla-firefox-security\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "q2WCggEGzFA",
        "title": "dude wtf",
        "publishedAt": "2 months ago",
        "durationSeconds": 568,
        "views": 168361,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Maximize the velocity of your software security lifecycle with Endor at https://go.lowlevel.tv/endor\n\nhttps://cloud.google.com/blog/topics/threat-intelligence/unc6201-exploiting-dell-recoverpoint-z...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "k1NUNnqoGZg",
        "title": "the most advanced hack i've ever seen",
        "publishedAt": "2 months ago",
        "durationSeconds": 652,
        "views": 270657,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go try Flare for FREE at https://go.lowlevel.tv/flare2026 and see if your company's data is out there.\n\nhttps://blog.talosintelligence.com/uat-8616-sd-wan/\nhttps://sec.cloudapps.cisco.com/security/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KsiuA5gOl1o",
        "title": "I Hacked This Temu Router. What I Found Should Be Illegal.",
        "publishedAt": "2 months ago",
        "durationSeconds": 945,
        "views": 3405717,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to hack and reverse engineer like this: https://go.lowlevel.tv/StackSmash-RE\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n⌨️ KEYBOARD\nLike what...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "I4brAvpjbrg",
        "title": "phone hacking situation is crazy",
        "publishedAt": "2 months ago",
        "durationSeconds": 680,
        "views": 179857,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go try Intruder today for 14 days, free at https://go.lowlevel.tv/intruder\n\nhttps://www.rapid7.com/blog/post/ve-phone-listening-cold-war-vulnerability-modern-voip/\nhttps://www.rapid7.com/blog/post/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AZUp5nY7BWU",
        "title": "they hacked CSS",
        "publishedAt": "2 months ago",
        "durationSeconds": 549,
        "views": 182276,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get a 14-day FREE trail of flare at https://go.lowlevel.tv/flare2026 . See if you or your company's data is floating around the dark web.\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sZ8aAkeZ6dw",
        "title": "no f***ing way",
        "publishedAt": "3 months ago",
        "durationSeconds": 497,
        "views": 265533,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go secure your notepad.exe with Threatlocker! https://go.lowlevel.tv/threatlocker2026 Next time you hear zero trust, give threatlocker a shot.\n\nPoC: https://github.com/BTtea/CVE-2026-20841-PoC...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PG5sv20Jiic",
        "title": "AI ruined bug bounties",
        "publishedAt": "3 months ago",
        "durationSeconds": 649,
        "views": 285260,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n🔥COME HANG...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "C8wKomo4Wds",
        "title": "notepad++ situation is crazy",
        "publishedAt": "3 months ago",
        "durationSeconds": 637,
        "views": 555848,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n🔥COME HANG...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mdYDG34YP4w",
        "title": "omg please stop using telnet",
        "publishedAt": "3 months ago",
        "durationSeconds": 621,
        "views": 175263,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Protect yourself with canaries for FREE at https://go.lowlevel.tv/tracebit\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kSno1-xOjwI",
        "title": "openclaw security situation is insane",
        "publishedAt": "3 months ago",
        "durationSeconds": 685,
        "views": 403618,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go try Flare for FREE @ https://go.lowlevel.tv/flare2026\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "e7xREocmA3g",
        "title": "how is this even possible?",
        "publishedAt": "3 months ago",
        "durationSeconds": 600,
        "views": 108154,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go learn how Zero Trust can help make you more secure @ https://go.lowlevel.tv/threatlocker2026 . Thanks again for sponsoring this video!\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "y2ujgpIZ5O8",
        "title": "javascript can't stop winning",
        "publishedAt": "3 months ago",
        "durationSeconds": 516,
        "views": 156762,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n🔥COME HANG...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UlZjPsTWg-U",
        "title": "WTF dude..",
        "publishedAt": "3 months ago",
        "durationSeconds": 766,
        "views": 300144,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚨 Go try a demo of Material Security @ https://go.lowlevel.tv/material and learn how you can scale up your cloud workspace's security posture !\n\nhttps://www.bleepingcomputer.com/news/security/ma...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "037Pw8btDiM",
        "title": "How Hackers Crack Any Software With Reverse Engineering",
        "publishedAt": "4 months ago",
        "durationSeconds": 497,
        "views": 490914,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Wanna learn to hack? Join: https://go.lowlevel.tv/037Pw8btDiM\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n⌨️ KEYBOARD\nLike what you hear? Grab a Q5 at...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 15,
      "uploadsLast90d": 29,
      "uploadCadenceWeekly": 2.26,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 265533,
      "viewsPerVideoP90Last90d": 403618,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 265533,
      "p90Views": 403618,
      "p99Views": 663353,
      "outperformingVideosLast90d": 4
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "lowlevel.tv",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 1,
        "evidenceVideoIds": [
          "umyoCyZCkyg",
          "CjC_9gkqLOo",
          "8s9jaIPR7PU",
          "m5t08CREHcE",
          "MaFK5AXpXXw"
        ]
      },
      {
        "label": "lowlevel",
        "share": 0.93,
        "evidenceVideoIds": [
          "umyoCyZCkyg",
          "CjC_9gkqLOo",
          "8s9jaIPR7PU",
          "m5t08CREHcE",
          "MaFK5AXpXXw"
        ]
      },
      {
        "label": "sign",
        "share": 0.73,
        "evidenceVideoIds": [
          "umyoCyZCkyg",
          "CjC_9gkqLOo",
          "8s9jaIPR7PU",
          "m5t08CREHcE",
          "MaFK5AXpXXw"
        ]
      },
      {
        "label": "courses",
        "share": 0.7,
        "evidenceVideoIds": [
          "umyoCyZCkyg",
          "CjC_9gkqLOo",
          "8s9jaIPR7PU",
          "m5t08CREHcE",
          "MaFK5AXpXXw"
        ]
      },
      {
        "label": "day",
        "share": 0.7,
        "evidenceVideoIds": [
          "umyoCyZCkyg",
          "CjC_9gkqLOo",
          "8s9jaIPR7PU",
          "m5t08CREHcE",
          "MaFK5AXpXXw"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Friday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "B",
      "rationale": "strong views-per-subscriber ratio, consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "strong",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 29,
      "reason": "tier B composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier B — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Low Level — 1.1M subs, B-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 29,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.81,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": true,
      "requiresEnrichment": true,
      "priorityQueue": "medium"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "B-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "32b181eae5c2a13cd930f7a8c2d7164c90fc9d944bd359355f71d7687a08d1f7",
      "inputsHash": "ab66f597f2497a18f88a18ff5bdaf49218c3cd2065a88b309917249e1cedc534",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:12.922Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "c9f59e1e9e9fe263e6b81f30644e039e84d9d69741c6065812b7750d83b1574d",
    "channelId": "UC_mYaQAE6-71rjSN6CeCA-g",
    "channelHandle": "@NeetCode",
    "channelName": "NeetCode",
    "channelUrl": "https://www.youtube.com/@NeetCode",
    "description": "Preparing for technical interviews? Checkout neetcode.io",
    "joinDate": null,
    "location": null,
    "subscribers": 1080000,
    "totalVideos": 423,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/25g11wkEmSb_ZTC6M5-uMklwAHmFa9rfZN7TzS9WLsfPgXFHoLaegwKwBqqah7pPhQhSafMx=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "neetcode.io",
        "url": "https://neetcode.io/"
      },
      {
        "platform": "discord",
        "url": "https://discord.gg/ddjKRXPqtk"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/neetcode1"
      },
      {
        "platform": "linkedin",
        "url": "https://www.linkedin.com/in/navdeep-singh-3aaa14161/"
      }
    ],
    "recentVideos": [
      {
        "videoId": "Te9HXTQUo18",
        "title": "Why you should learn CS in 2026",
        "publishedAt": "2 days ago",
        "durationSeconds": 1176,
        "views": 39062,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Watch the full video from Ryan Peterman:    • Harvard Professor: CS50, What Matters More...  \n\nThank you Greptile for sponsoring. Try them out for free here https://www.greptile.com/go/neetcode\n\n\n\n🚀 https://neetcode.io/ - A better way to prepare for technical interviews\n\nSecond Channel:     / @neetcodeio  \n🧑‍💼 LinkedIn:   / navdeep-singh-3aaa14161  \n🐦 Twitter:   / neetcode1  \n\nFor sponsorship & business inquiries mail@neetcode.io\n\n#coding #leetcode #python",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jdJ5jg0XSmU",
        "title": "I don't like Programming",
        "publishedAt": "2 days ago",
        "durationSeconds": 1109,
        "views": 97667,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learning is completely useless now that we have AI right? Or maybe not\n\n\n🚀 https://neetcode.io/ - A better way to prepare for technical interviews\n\n\nSecond Channel:     / @neetcodeio  \n🧑‍💼 LinkedIn:   / navdeep-singh-3aaa14161  \n🐦 Twitter:   / neetcode1  \n\nFor sponsorship & business inquiries mail@neetcode.io\n\n\n\n\n#coding #leetcode #python",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5PnP1gWGw20",
        "title": "Anthropic thinks you're an idiot",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 869,
        "views": 74675,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Anthropic is being less and less transparent, and this new \"adaptive thinking\" mode makes me nervous\n\n\nhttps://www.anthropic.com/news/claude...\nhttps://platform.claude.com/docs/en/b...\n\n\n🚀 https://neetcode.io/ - A better way to prepare for technical interviews\n\nSecond Channel:     / @neetcodeio  \n🧑‍💼 LinkedIn:   / navdeep-singh-3aaa14161  \n🐦 Twitter:   / neetcode1  \n\nFor sponsorship & business inquiries mail@neetcode.io\n\n#coding #leetcode #python",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LCjkmbHOtys",
        "title": "Claude Code's entire source code was leaked",
        "publishedAt": "1 month ago",
        "durationSeconds": 1239,
        "views": 170152,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Claude Code's entire source code was leaked and ported to Python to get around copyright laws. This has major implications for all programmers.\n\nThank you Greptile for sponsoring. Try them out for free here https://www.greptile.com/go/neetcode\n\nSources:\nhttps://www.cnbc.com/2026/03/31/anthr....\n\nhttps://github.com/instructkr/claw-code\n\nhttps://x.com/Fried_rice/status/20388...\nhttps://x.com/wesbos/status/203895975...\nhttps://x.com/cmuratori/status/203904...\nhttps://x.com/Butanium_/status/203907...\nhttps://x.com/mal_shaik/status/203891...\n\n\n🚀 https://neetcode.io/ - A better way to prepare for technical interviews\n\nSecond Channel:     / @neetcodeio  \n🧑‍💼 LinkedIn:   / navdeep-singh-3aaa14161  \n🐦 Twitter:   / neetcode1  \n\n#coding #leetcode #python",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IGsbARhERqc",
        "title": "Building the Future of coding, OpenCode with Dax Raad",
        "publishedAt": "2 months ago",
        "durationSeconds": 4372,
        "views": 96069,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Thank you Posthog for sponsoring. Try them out for free here  https://go.posthog.com/navi\n\nThank you Greptile for sponsoring. Try them out for free here https://www.greptile.com/go/neetcode\n\n\nCheck out OpenCode: https://opencode.ai/ \nYou can find Dax here: https://x.com/thdxr\n\nThe Full Episode:\n\nSpotify - https://open.spotify.com/episode/4pqI...\nApple - https://podcasts.apple.com/us/podcast...\n\n0:00 - Intro \n1:02 - The Origin of OpenCode\n3:56 - Dax's developer workflow\n6:54 - Is code no longer written by humans?\n11:32 - Competition, Claude Code\n19:04 - Positioning vs Product\n23:49 - Will OpenAI acquire OpenCode?\n28:02 - The Future of Coding, effort vs impact\n37:16 - Code Quality\n42:23 - Did AI take the fun out of programming?\n45:56 - Will programming skills decay \nlong term?\n51:56 - Technical skills alone are useless\n58:56 - Becoming an Elite Developer\n1:04:03 - Hiring shortcuts, do credentials matter\n\n\n\nFor sponsorship & business inquiries mail@neetcode.io\n\n\n🚀 https://neetcode.io/ - A better way to prepare for technical interviews\n\nSecond Channel:     / @neetcodeio  \n🧑‍💼 LinkedIn:   / navdeep-singh-3aaa14161  \n🐦 Twitter:   / neetcode1  \n\n#coding #leetcode #python",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7z4Nl1WjE9I",
        "title": "The End of Programming as we Know It",
        "publishedAt": "2 months ago",
        "durationSeconds": 1097,
        "views": 235566,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 https://neetcode.io/ - A Better way to prepare for technical interviews\n\nThe End of programming as we know it by Tim O'Reilly: https://www.oreilly.com/radar/the-end...\n\n\nCheckout my second Channel:     / @neetcodeio  \n\n🧑‍💼 LinkedIn:   / navdeep-singh-3aaa14161  \n🐦 Twitter:   / neetcode1  \n\n\n\n#coding #leetcode #python",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eTY2Lwnd2fI",
        "title": "Coding Interviews in 2026",
        "publishedAt": "3 months ago",
        "durationSeconds": 1339,
        "views": 253877,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 https://neetcode.io/ - A Better way to Prepare for Coding Interviews\n\n\nCheckout my second Channel:     / @neetcodeio  \n\n🥷 Discord:   / discord  \n🧑‍💼 LinkedIn:   / navdeep-singh-3aaa14161  \n🐦 Twitter:   / neetcode1  \n📷 Instagram:   / neetcodeio  \n🎵 TikTok:   / neetcode.io  \n\n\n\n#coding #leetcode #python",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rv_ZacJYRFA",
        "title": "Big-O Notation - Everything you Need for Coding Interviews",
        "publishedAt": "9 months ago",
        "durationSeconds": 880,
        "views": 60342,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "My friends at Warp are offering a discount on their premium Pro plan for only $1/month your first month - https://go.warp.dev/neetcode\n\n\n🚀 https://neetcode.io/ - Get lifetime access to every course I ever create!\n\nCheckout my second Channel:     / @neetcodeio  \n\n🥷 Discord:   / discord  \n🧑‍💼 LinkedIn:   / navdeep-singh-3aaa14161  \n🐦 Twitter:   / neetcode1  \n📷 Instagram:   / neetcodeio  \n🎵 TikTok:   / neetcode.io  \n\n\n\n#coding #leetcode #python",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uB9yZenVLzg",
        "title": "This video will change your mind about the AI hype",
        "publishedAt": "1 year ago",
        "durationSeconds": 1027,
        "views": 1416537,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 https://neetcode.io\n\n\nCheckout my second Channel:  ‪@NeetCodeIO‬ \n\n🥷 Discord:   / discord  \n🧑‍💼 LinkedIn:   / navdeep-singh-3aaa14161  \n🐦 Twitter:   / neetcode1  \n📷 Instagram:   / neetcodeio  \n🎵 TikTok:   / neetcode.io  \n\n\n\n0:00 - The Mind Virus\n1:52 - OpenAI\n3:27 - Why are companies investing in AI?\n5:29 - AI is not profitable (yet)\n6:31 - Hype is a Marketing Tool\n10:21 - How fast will AI improve?\n14:12 - How to make life decisions?\n\n\nFor sponsorship inquiries please reach out to mail@neetcode.io\n\n#coding #leetcode #python",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "s3KhqPjBPaQ",
        "title": "Python for Beginners - Full Course",
        "publishedAt": "1 year ago",
        "durationSeconds": 14327,
        "views": 192147,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 https://neetcode.io/ - Learn Python interactively\n\n\n\nCheckout my second Channel:     / @neetcodeio  \n\n🥷 Discord:   / discord  \n🧑‍💼 LinkedIn:   / navdeep-singh-3aaa14161  \n🐦 Twitter:   / neetcode1  \n📷 Instagram:   / neetcodeio  \n🎵 TikTok:   / neetcode.io  \n\n\n0:00:00 - Intro\n0:01:32 - Hello World\n0:03:40 - What is Python?\n0:06:15 - Execution Order\n0:07:29 - Printing Text\n0:12:07 - Code Errors\n0:13:49 - Comments\n0:16:20 - Variable Declaration\n0:18:40 - Variable Naming\n0:21:20 - Naming Conventions\n0:23:00 - Reassigning Variables\n0:25:00 - Multiple Assignments\n0:28:56 - Variable Types\n0:32:51 - Dynamic Typing\n0:35:31 - Type Casting\n0:37:08 - Type Errors\n0:39:21 - Empty Variable\n0:40:51 - Arithmetic Operators\n0:46:42 - More Operators\n0:50:32 - Shorthand Operators\n0:53:32 - Boolean OR\n0:57:51 - Boolean AND\n0:59:57 - Boolean Negation\n1:02:19 - Introduction to Functions\n1:05:42 - Function Declaration\n1:07:10 - Parameters\n1:10:18 - Multiple Parameters\n1:12:59 - Return Statement\n1:14:33 - Type Hints\n1:17:44 - Scope\n1:22:28 - Global vs Local Scope\n1:27:13 - Default Arguments\n1:30:10 - Comparison Operators\n1:33:58 - If Statements\n1:36:57 - If Statement Scope\n1:41:09 - If-Else Statements\n1:45:04 - Else-If Statements\n1:49:40 - Logic Condition\n1:51:15 - Truthy and Falsy\n1:55:40 - While Loops\n1:58:46 - While Loops Counting\n2:00:00 - While Loops Multiples\n2:01:15 - For Loops\n2:03:43 - For Loops Start\n2:05:21 - For Loops Step\n2:07:38 - For Loops Reverse\n2:10:50 - Nested Loops\n2:14:15 - Control Flow\n2:17:42 - Length Function\n2:19:33 - String Indexing\n2:22:53 - String Looping\n2:24:44 - String Looping Shorthand\n2:26:52 - String Concatenation\n2:28:52 - String Slicing Part 1\n2:34:10 - String Slicing Part 2\n2:38:17 - Reversing a String\n2:40:03 - Strings are Immutable\n2:43:17 - String Formatting\n2:46:43 - Intro to Lists\n2:49:22 - List Operations\n2:52:57 - List Looping\n2:55:26 - List Functions\n2:59:43 - List Append\n3:02:03 - List Pop\n3:04:34 - List Find\n3:07:28 - List Slicing\n3:10:34 - Tuples\n3:12:54 - Intro to Sets\n3:15:17 - Set Operations\n3:18:28 - Set Practice\n3:20:26 - Intro to Dictionaries\n3:24:56 - Dict Operations\n3:27:44 - Dict Looping\n3:30:47 - Dict Practice\n3:33:53 - Dict Remove\n3:36:32 - Dict Values\n3:37:52 - Reading Input\n3:41:43 - Type Conversion with Input\n3:44:26 - Parse Input\n3:47:32 - Reading Input Practice\n3:49:10 - Try Except\n3:52:11 - Error Catching\n3:55:14 - Multiple Except Blocks\n\n\n#coding #neetcode #python",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2V7yPrxJ8Ck",
        "title": "The LeetCode Fallacy",
        "publishedAt": "2 years ago",
        "durationSeconds": 368,
        "views": 669449,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 https://neetcode.io/ - A better way to prepare for coding interviews\n\n\nCheckout my second Channel:  https://www.youtube.com/@NeetCodeIO\n\n🧑‍💼 LinkedIn: https://www.linkedin.com/in/navde...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UrcwDOEBzZE",
        "title": "Most Common Concepts for Coding Interviews",
        "publishedAt": "2 years ago",
        "durationSeconds": 368,
        "views": 444525,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The fastest way to prepare for coding interviews: prioritize the most common data structures and algorithms.\n\n🚀 https://neetcode.io/ - Get lifetime access to every course I ever create!...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "a3Aep-SygUA",
        "title": "Leetcode 24 Hour Challenge (while learning Golang)",
        "publishedAt": "2 years ago",
        "durationSeconds": 87436,
        "views": 243522,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Coding leetcode problems for 24 hours straight because I enjoy the pain. And I get to learn about Golang, which is such a great language for leetcoding.\n\n🚀 https://neetcode.io/ - A better...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QHXET1G9Y5U",
        "title": "I quit Amazon after two months",
        "publishedAt": "2 years ago",
        "durationSeconds": 609,
        "views": 820712,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Sharing my story of working at Amazon and being unemployed for over a year.\n\n🚀 https://neetcode.io/ - A better way to prepare for coding interviews.\n\nCheckout my second Channel for daily...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "l8dpetPPkFQ",
        "title": "Google's Tech Stack (6 internal tools revealed)",
        "publishedAt": "2 years ago",
        "durationSeconds": 547,
        "views": 317271,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Google's internal tech stack is mostly public and we talk about 6 of the most influential infrastructure tools used at google, either currently or in the past.\n\n🚀 https://neetcode.io/ -...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6pzoo2HXJT8",
        "title": "My Last Day at Google",
        "publishedAt": "2 years ago",
        "durationSeconds": 299,
        "views": 597652,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I left Google earlier this year, after working there for about 1.5 years as a software engineer.\n\n🚀 https://neetcode.io/ - A better way to prepare for coding interviews!\n\nCheckout my second...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8wysIxzqgPI",
        "title": "My Brain after 569 Leetcode Problems",
        "publishedAt": "3 years ago",
        "durationSeconds": 470,
        "views": 3268842,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🗺️ Roadmap: https://neetcode.io\n\nIn this video I wanted to share every single thing I learned from solving and explaining hundreds of leetcode problems.\n\nQuiz Feature: https://neetcode.io/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "i53Gi_K3o7I",
        "title": "20 System Design Concepts Explained in 10 Minutes",
        "publishedAt": "3 years ago",
        "durationSeconds": 701,
        "views": 1572389,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 https://neetcode.io/ - A better way to prepare for coding interviews!\n\nA brief overview of 20 system design concepts for system design interviews. \n\nCheckout my second Channel:  @NeetCodeIO...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tAuRQs_d9F8",
        "title": "8 Design Patterns EVERY Developer Should Know",
        "publishedAt": "3 years ago",
        "durationSeconds": 587,
        "views": 1301356,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 https://neetcode.io/ - A better way to prepare for coding interviews!\n\nCheckout my second Channel: @NeetCodeIO \n\nWhile some object oriented design patterns are a bit outdated, it's important...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SpOCDsxouJ4",
        "title": "Technologies I'm Learning in 2023",
        "publishedAt": "3 years ago",
        "durationSeconds": 577,
        "views": 167806,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 https://neetcode.io/ - Get lifetime access to every course I ever create!\n\nThe technologies I'm planning on learning next year. I feel like some parts of this came off a bit rushed / confusing...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jgQjes7MgTM",
        "title": "The BEST Coding Interview Roadmap in 2023 (free)",
        "publishedAt": "3 years ago",
        "durationSeconds": 501,
        "views": 467867,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 https://neetcode.io/ - Checkout the FREE roadmap! \n\nCheckout my second Channel:  @NeetCodeIO  \n\n🧑‍💼 LinkedIn: https://www.linkedin.com/in/navdeep-singh-3aaa14161/\n🥷 Discord:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "D9IFZnIhoe4",
        "title": "Will AI replace programmers?",
        "publishedAt": "3 years ago",
        "durationSeconds": 248,
        "views": 179479,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Is ChatGPT taking over and will AI replace all programmers? Well first let's see if it can pass a coding interview.\n\n🚀 https://neetcode.io/ - Get lifetime access to every course I ever create!...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jPKTo1iGQiE",
        "title": "Design Youtube - System Design Interview",
        "publishedAt": "3 years ago",
        "durationSeconds": 1564,
        "views": 527562,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 https://neetcode.io/ - Get lifetime access to every course I ever create!\n\nLets design the high-level architecture of youtube - similar to how we'd tackle this in a system design interview....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dncBmGtYJ9g",
        "title": "Is FAANG dead?",
        "publishedAt": "3 years ago",
        "durationSeconds": 388,
        "views": 117799,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 https://neetcode.io/ - Get lifetime access to every course I ever create!\n\nUnfortunately, tech layoffs have gotten a lot worse since the last video I made addressing the recession topic....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "o5n85GRKuzk",
        "title": "Design Twitter - System Design Interview",
        "publishedAt": "3 years ago",
        "durationSeconds": 1576,
        "views": 652471,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 https://neetcode.io/ - Get lifetime access to every course I ever create!\n\n🥷 Discord: https://discord.gg/ddjKRXPqtk\n🐦 Twitter: https://twitter.com/neetcode1\n📷 Instagram: https://www.i...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "46dZH7LDbf8",
        "title": "Mock Google Coding Interview with a Meta Intern",
        "publishedAt": "3 years ago",
        "durationSeconds": 2824,
        "views": 1583828,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 https://neetcode.io/ - Get lifetime access to all current & future courses I create!\n\nCheckout my second Channel:  @NeetCodeIO  \n\nToday I gave a mock google coding interview to FryingPan...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Hmf7a5u8nCk",
        "title": "Tech Layoffs & Hiring Freezes",
        "publishedAt": "3 years ago",
        "durationSeconds": 357,
        "views": 338160,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 https://neetcode.io/ - A better way to prepare for Coding Interviews\n\nSharing my advice for dealing with tech layoffs and hiring freezes, and EXACTLY what you should be focusing on. Also...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "akXP6pC0piE",
        "title": "Anatomy of a Production App - System Design",
        "publishedAt": "3 years ago",
        "durationSeconds": 665,
        "views": 125054,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 https://neetcode.io/ - Get lifetime access to all current & future courses I create!\n\nDiscussing the basic high-level architecture that most production applications follow. This is a free...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "BgLTDT03QtU",
        "title": "Big-O Notation - For Coding Interviews",
        "publishedAt": "3 years ago",
        "durationSeconds": 1238,
        "views": 764134,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 https://neetcode.io/ - Get lifetime access to all current & future courses I create!\n\nGoing over all of the common big O time and space complexities, with a focus on coding interviews....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0K_eZGS5NsU",
        "title": "Python for Coding Interviews - Everything you need to Know",
        "publishedAt": "3 years ago",
        "durationSeconds": 1578,
        "views": 864622,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 https://neetcode.io/ - A better way to prepare for Coding Interviews\n\nCheckout my second Channel:  @NeetCodeIO  \n\n🥷 Discord: https://discord.gg/ddjKRXPqtk\n🐦 Twitter: https://twitter.com/...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 4,
      "uploadsLast90d": 7,
      "uploadCadenceWeekly": 0.54,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 97667,
      "viewsPerVideoP90Last90d": 235566,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 97667,
      "p90Views": 235566,
      "p99Views": 235566,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "neetcode.io",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 1,
        "evidenceVideoIds": [
          "Te9HXTQUo18",
          "jdJ5jg0XSmU",
          "5PnP1gWGw20",
          "LCjkmbHOtys",
          "IGsbARhERqc"
        ]
      },
      {
        "label": "neetcode",
        "share": 1,
        "evidenceVideoIds": [
          "Te9HXTQUo18",
          "jdJ5jg0XSmU",
          "5PnP1gWGw20",
          "LCjkmbHOtys",
          "IGsbARhERqc"
        ]
      },
      {
        "label": "coding",
        "share": 0.77,
        "evidenceVideoIds": [
          "Te9HXTQUo18",
          "jdJ5jg0XSmU",
          "5PnP1gWGw20",
          "LCjkmbHOtys",
          "IGsbARhERqc"
        ]
      },
      {
        "label": "second",
        "share": 0.6,
        "evidenceVideoIds": [
          "Te9HXTQUo18",
          "jdJ5jg0XSmU",
          "5PnP1gWGw20",
          "LCjkmbHOtys",
          "IGsbARhERqc"
        ]
      },
      {
        "label": "interviews",
        "share": 0.57,
        "evidenceVideoIds": [
          "Te9HXTQUo18",
          "jdJ5jg0XSmU",
          "5PnP1gWGw20",
          "LCjkmbHOtys",
          "IGsbARhERqc"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Monday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "moderate",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 29,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "NeetCode — 1.1M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 29,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.81,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "c9f59e1e9e9fe263e6b81f30644e039e84d9d69741c6065812b7750d83b1574d",
      "inputsHash": "d803ca5ef2325c5029fe960c87ab4c03c15b26adfdd2c278654c9a49864957e5",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:12.908Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "1281d9396d23644f1f0251e9cac0d44c8964ea8a2d95a93ac606b4a7b6d51702",
    "channelId": "UCQ-W1KE9EYfdxhL6S4twUNw",
    "channelHandle": "@TheCherno",
    "channelName": "The Cherno",
    "channelUrl": "https://www.youtube.com/@TheCherno",
    "description": "Yan Chernikov - I'm making a game engine called Hazel! Here you'll find videos about that and C++/programming.\n\nFor professional inquiries, please send an email to business@thecherno.com",
    "joinDate": null,
    "location": null,
    "subscribers": 748000,
    "totalVideos": 919,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/EmbIHnpmF1J0LgyUbCMK7QmfDZZm7u_GQd5eVx4XG06wIvgbagCY6WYpf2fvSdPoL1LMLkw8Iw=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "patreon.com",
        "url": "https://patreon.com/thecherno"
      },
      {
        "platform": "chernothreads.com",
        "url": "https://chernothreads.com"
      },
      {
        "platform": "instagram",
        "url": "https://instagram.com/thecherno"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/thecherno"
      },
      {
        "platform": "twitch",
        "url": "https://twitch.tv/thecherno"
      }
    ],
    "recentVideos": [
      {
        "videoId": "aWGVjFTbXc8",
        "title": "Code Reviewing My Own Game Engine Series (Hazel 2D)",
        "publishedAt": "1 month ago",
        "durationSeconds": 2587,
        "views": 21163,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Get Rust training from Let’s Get Rusty: https://letsgetrusty.com/start-with-c...\n\nPatreon ►   / thecherno  \nInstagram ►   / thecherno  \nTwitter ►   / thecherno  \nDiscord ►   / discord  \n\nCode ► https://github.com/TheCherno/Hazel\n\nHazel ► https://hazelengine.com\n🕹️ Play our latest game FREE (made in Hazel!) ► https://studiocherno.itch.io/dichotomy\n\n🌏 Need web hosting? ► https://hostinger.com/cherno\n\n💰 Links to stuff I use:\n⌨ Keyboard ► https://geni.us/T2J7\n🐭 Mouse ► https://geni.us/BuY7\n💻 Monitors ► https://geni.us/wZFSwSK\n\nThis video is sponsored by Let's Get Rusty.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "q3197IjHQ0I",
        "title": "Hazel's New Renderer IS DONE!",
        "publishedAt": "1 month ago",
        "durationSeconds": 1178,
        "views": 33289,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Understand Git visually with GitKraken - get 50% off with my link! ► https://gitkraken.cello.so/cUkKT5JksWD\n\nPatreon ►   / thecherno  \nInstagram ►   / thecherno  \nTwitter ►   / thecherno  \nDiscord ►   / discord  \n\nHazel ► https://hazelengine.com\n🕹️ Play our latest game FREE (made in Hazel!) ► https://studiocherno.itch.io/dichotomy\n\n🌏 Need web hosting? ► https://hostinger.com/cherno\n\n💰 Links to stuff I use:\n⌨ Keyboard ► https://geni.us/T2J7\n🐭 Mouse ► https://geni.us/BuY7\n💻 Monitors ► https://geni.us/wZFSwSK\n\nThis video is sponsored by GitKraken.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cO42oAeC4jk",
        "title": "How to become a Software Engineer in 2026",
        "publishedAt": "2 months ago",
        "durationSeconds": 961,
        "views": 46190,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Sign up for a FREE TripleTen career consultation with my link: https://get.tripleten.com/lSPQ Improve your career using my code “THECHERNO” for 30% off on all their programs to save up to $3400 on your education! \n\nPatreon ►   / thecherno  \nInstagram ►   / thecherno  \nTwitter ►   / thecherno  \nDiscord ►   / discord  \n\nHazel ► https://hazelengine.com\n🕹️ Play our latest game FREE (made in Hazel!) ► https://studiocherno.itch.io/dichotomy\n\n🌏 Need web hosting? ► https://hostinger.com/cherno\n\n💰 Links to stuff I use:\n⌨ Keyboard ► https://geni.us/T2J7\n🐭 Mouse ► https://geni.us/BuY7\n💻 Monitors ► https://geni.us/wZFSwSK\n\n#career #softwareengineering #tech #TripleTen #bootcamp #TripleTenbootcamp",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vtGjBFBrYEw",
        "title": "Is This C++ Code Actually Safe?",
        "publishedAt": "2 months ago",
        "durationSeconds": 777,
        "views": 21147,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try CodeRabbit today and cut code review time & bugs in half instantly ► https://coderabbit.link/cherno\n\nPatreon ►   / thecherno  \nInstagram ►   / thecherno  \nTwitter ►   / thecherno  \nDiscord ►   / discord  \n\nHazel ► https://hazelengine.com\n🕹️ Play our latest game FREE (made in Hazel!) ► https://studiocherno.itch.io/dichotomy\n\n🌏 Need web hosting? ► https://hostinger.com/cherno\n\n💰 Links to stuff I use:\n⌨ Keyboard ► https://geni.us/T2J7\n🐭 Mouse ► https://geni.us/BuY7\n💻 Monitors ► https://geni.us/wZFSwSK\n\nThis video is sponsored by CodeRabbit.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "FP27I7v0BeM",
        "title": "Reference Counting in C++",
        "publishedAt": "2 months ago",
        "durationSeconds": 843,
        "views": 22790,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Get Rust training from Let’s Get Rusty: https://letsgetrusty.com/start-with-c...\n\nPatreon ►   / thecherno  \nInstagram ►   / thecherno  \nTwitter ►   / thecherno  \nDiscord ►   / discord  \n\nHazel ► https://hazelengine.com\n🕹️ Play our latest game FREE (made in Hazel!) ► https://studiocherno.itch.io/dichotomy\n\n🌏 Need web hosting? ► https://hostinger.com/cherno\n\n💰 Links to stuff I use:\n⌨ Keyboard ► https://geni.us/T2J7\n🐭 Mouse ► https://geni.us/BuY7\n💻 Monitors ► https://geni.us/wZFSwSK\n\nThis video is sponsored by Let's Get Rusty.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "iRQfwiBIgRY",
        "title": "C++ CHESS ENGINE using Walnut! // Code Review",
        "publishedAt": "3 months ago",
        "durationSeconds": 1538,
        "views": 20923,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Get Rust training from Let’s Get Rusty: https://letsgetrusty.com/start-with-c...\n\nPatreon ►   / thecherno  \nInstagram ►   / thecherno  \nTwitter ►   / thecherno  \nDiscord ►   / discord  \n\nCode ► https://github.com/commandmaster/Gamb...\n\nSend an email to chernoreview@gmail.com with your source code, a brief explanation, and what you need help with/want me to review and you could be in the next episode of my Code Review series! Also let me know if you would like to remain anonymous.\n\nHazel ► https://hazelengine.com\n🕹️ Play our latest game FREE (made in Hazel!) ► https://studiocherno.itch.io/dichotomy\n\n🌏 Need web hosting? ► https://hostinger.com/cherno\n\n💰 Links to stuff I use:\n⌨ Keyboard ► https://geni.us/T2J7\n🐭 Mouse ► https://geni.us/BuY7\n💻 Monitors ► https://geni.us/wZFSwSK\n\nThis video is sponsored by Let's Get Rusty.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KgBNqjhY230",
        "title": "Goodbye (kind of)",
        "publishedAt": "3 months ago",
        "durationSeconds": 215,
        "views": 118320,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Work with me on a game engine for AI robots ► https://luckyrobots.com/jobs\n\nPatreon ►   / thecherno  \nInstagram ►   / thecherno  \nTwitter ►   / thecherno  \nDiscord ►   / discord  \n\nHazel ► https://hazelengine.com\n🕹️ Play our latest game FREE (made in Hazel!) ► https://studiocherno.itch.io/dichotomy\n\n🌏 Need web hosting? ► https://hostinger.com/cherno\n\n💰 Links to stuff I use:\n⌨ Keyboard ► https://geni.us/T2J7\n🐭 Mouse ► https://geni.us/BuY7\n💻 Monitors ► https://geni.us/wZFSwSK",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gJMF924lrzc",
        "title": "High-Performance GPU Compute C++ Minecraft Clone! // Code Review",
        "publishedAt": "4 months ago",
        "durationSeconds": 1715,
        "views": 49897,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ditch the VPN and get started with Twingate for free → https://www.twingate.com?utm_source=y...\n\nPatreon ►   / thecherno  \nInstagram ►   / thecherno  \nTwitter ►   / thecherno  \nDiscord ►   / discord  \n\nCode ► https://github.com/helpfulprojects/Vo...\nPecaCS ► ‪@PecaCS‬ \n\nSend an email to chernoreview@gmail.com with your source code, a brief explanation, and what you need help with/want me to review and you could be in the next episode of my Code Review series! Also let me know if you would like to remain anonymous.\n\nHazel ► https://hazelengine.com\n🕹️ Play our latest game FREE (made in Hazel!) ► https://studiocherno.itch.io/dichotomy\n\n🌏 Need web hosting? ► https://hostinger.com/cherno\n\n💰 Links to stuff I use:\n⌨ Keyboard ► https://geni.us/T2J7\n🐭 Mouse ► https://geni.us/BuY7\n💻 Monitors ► https://geni.us/wZFSwSK\n\nThis video is sponsored by Twingate.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KhftHT09F5g",
        "title": "DON'T DELETE THIS! // Bugs of C++",
        "publishedAt": "5 months ago",
        "durationSeconds": 1023,
        "views": 34036,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Miro for FREE today to make diagrams faster and effectively communicate complex ideas: http://miro.pxf.io/6yadMQ\n\nPatreon ►   / thecherno  \nInstagram ►   / thecherno  \nTwitter ►   / thecherno  \nDiscord ►   / discord  \n\nHazel ► https://hazelengine.com\n🕹️ Play our latest game FREE (made in Hazel!) ► https://studiocherno.itch.io/dichotomy\n\n🌏 Need web hosting? ► https://hostinger.com/cherno\n\n💰 Links to stuff I use:\n⌨ Keyboard ► https://geni.us/T2J7\n🐭 Mouse ► https://geni.us/BuY7\n💻 Monitors ► https://geni.us/wZFSwSK\n\nThis video is sponsored by Miro. ‪@MiroHQ‬\n#MiroPartner #Miro",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CKgNHc9YNe0",
        "title": "HTTP SERVER in C++",
        "publishedAt": "5 months ago",
        "durationSeconds": 934,
        "views": 31226,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out Hostinger's BLACK FRIDAY SALE ON NOW for all your web hosting and server needs! Use coupon code CHERNO to get an additional 10% discount ► https://hostinger.com/cherno\n\nPatreon ►   / thecherno  \nInstagram ►   / thecherno  \nTwitter ►   / thecherno  \nDiscord ►   / discord  \n\n🔗 LINKS\nhttp-lib ► https://github.com/yhirose/cpp-httplib\nRemoteSSH ► https://marketplace.visualstudio.com/...\n\nHazel ► https://hazelengine.com\n🕹️ Play our latest game FREE (made in Hazel!) ► https://studiocherno.itch.io/dichotomy\n\n🌏 Need web hosting? ► https://hostinger.com/cherno\n\n💰 Links to stuff I use:\n⌨ Keyboard ► https://geni.us/T2J7\n🐭 Mouse ► https://geni.us/BuY7\n💻 Monitors ► https://geni.us/wZFSwSK\n\nThis video is sponsored by Hostinger.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MX2PNIzxXMc",
        "title": "Events - C++ Application Architecture",
        "publishedAt": "5 months ago",
        "durationSeconds": 915,
        "views": 29600,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn for FREE on Brilliant and get a 20% discount on an annual premium subscription! ► https://brilliant.org/thecherno\n\nPatreon ► https://patreon.com/thecherno\nInstagram ► https://instagram....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sSKAMOYPSho",
        "title": "Am I Just Reviewing AI Code? // Code Review",
        "publishedAt": "5 months ago",
        "durationSeconds": 1421,
        "views": 33281,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Warp for FREE! Use my link ► https://go.warp.dev/chernoytagents\n\nPatreon ► https://patreon.com/thecherno\nInstagram ► https://instagram.com/thecherno\nTwitter ► https://twitter.com/theche...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Glq1oDBy1cQ",
        "title": "SOMEONE Code Reviewed Hazel, My Game Engine",
        "publishedAt": "6 months ago",
        "durationSeconds": 4347,
        "views": 89991,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out the NEW CodeRabbit CLI for FREE! ► https://coderabbit.link/cherno-cli\n\nPatreon ► https://patreon.com/thecherno\nInstagram ► https://instagram.com/thecherno\nTwitter ► https://twitte...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RzdM54i7buY",
        "title": "HTTP in C++",
        "publishedAt": "6 months ago",
        "durationSeconds": 784,
        "views": 51016,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out Hostinger's BLACK FRIDAY SALE NOW ON for all your web hosting and server needs! Use coupon code CHERNO to get an additional 10% discount ► https://hostinger.com/cherno\n\nPatreon...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-XT9R2P3I7M",
        "title": "Where Hazel is at and what we've been up to // October 2025 Hazel Dev Log",
        "publishedAt": "6 months ago",
        "durationSeconds": 582,
        "views": 27373,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 Try the #1 AI powered personal productivity time-blocking tool, Akiflow, today: https://akiflow.pro/Cherno-Oct\n\nGet and Support Hazel ► https://patreon.com/thecherno\nHazel Volunteer...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8YBxh3s5Xe8",
        "title": "5 Easy Ways to Improve This C++ Code",
        "publishedAt": "6 months ago",
        "durationSeconds": 848,
        "views": 24844,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🧠 Let Notion Agent do your work for you at https://ntn.so/thechernoagent\n\nPatreon ► https://patreon.com/thecherno\nInstagram ► https://instagram.com/thecherno\nTwitter ► https://twitter.com/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "y5MQPlIASHg",
        "title": "Be Careful with References! // Bugs of C++",
        "publishedAt": "6 months ago",
        "durationSeconds": 710,
        "views": 37224,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out TRMNL, your e-ink companion and get $10 off! ► https://usetrmnl.com/go/thecherno10\n\nPatreon ► https://patreon.com/thecherno\nInstagram ► https://instagram.com/thecherno\nTwitter...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cc7DSpNjB4E",
        "title": "We're on Linux Today! Clients, Servers, and Multi-Threading // Code Review",
        "publishedAt": "7 months ago",
        "durationSeconds": 1777,
        "views": 23667,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out Hostinger for all your web hosting and server needs! Use coupon code CHERNO to get an additional 10% discount ► https://hostinger.com/cherno\n\nPatreon ► https://patreon.com/thecherno...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "FXpPVfribx4",
        "title": "Layers - C++ Application Architecture Mini-Series",
        "publishedAt": "7 months ago",
        "durationSeconds": 1204,
        "views": 32267,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 Try the #1 AI powered personal productivity time-blocking tool, Akiflow, today: https://akiflow.pro/TheChernoSep\n\nPatreon ► https://patreon.com/thecherno\nInstagram ► https://instagram.com/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eopps3YF6aE",
        "title": "My Favourite C++ Project I've EVER REVIEWED? // Code Review",
        "publishedAt": "7 months ago",
        "durationSeconds": 1682,
        "views": 50287,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out the NEW CodeRabbit CLI for FREE! ► https://coderabbit.link/cherno-cli\n\nPatreon ► https://patreon.com/thecherno\nInstagram ► https://instagram.com/thecherno\nTwitter ► https://twitte...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rUxZ5N77M5E",
        "title": "C++ Application Architecture - A Mini-Series",
        "publishedAt": "7 months ago",
        "durationSeconds": 992,
        "views": 79218,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go to https://surfshark.com/thecherno or use code THECHERNO at checkout to get 4 extra months of Surfshark VPN!\n\nPatreon ► https://patreon.com/thecherno\nInstagram ► https://instagram.com/theche...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "t1B1MyTH9Gk",
        "title": "Can I Make PAINT in TWO HOURS in C++?",
        "publishedAt": "8 months ago",
        "durationSeconds": 1918,
        "views": 111649,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 Try the #1 AI powered personal productivity time-blocking tool, Akiflow, today: https://akiflow.pro/thecherno\n\nPatreon ► https://patreon.com/thecherno\nInstagram ► https://instagram.com/the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nmzhdLq_px4",
        "title": "HE IMPROVED THE CODE! Most Professional C++ Project Revisited // Code Review",
        "publishedAt": "8 months ago",
        "durationSeconds": 1495,
        "views": 24101,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Launch the idea you’ve been sitting on TODAY with Hostinger Horizons — use my code CHERNO10 to get 10% off! ► https://hostinger.com/cherno10\n\nPatreon ► https://patreon.com/thecherno...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lAXOmE481j4",
        "title": "Someone sent me a Multiplayer Game Engine - but does it work? // Code Review",
        "publishedAt": "9 months ago",
        "durationSeconds": 1978,
        "views": 59678,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out Hostinger for all your web hosting and server needs! Use coupon code CHERNO to get an additional 10% discount ► https://hostinger.com/cherno\n\nPatreon ► https://patreon.com/thecherno...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8bNsCBkX_bA",
        "title": "The Most Professional C++ Project I've Ever Reviewed // Code Review",
        "publishedAt": "9 months ago",
        "durationSeconds": 1416,
        "views": 377511,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get an exclusive 15% discount on Saily data plans! Use code THECHERNO at checkout. Download Saily app or go to https://saily.com/thecherno\n\nDiscord Code Review channel ► https://discord.gg/569DpZ...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Vz40rDiWnN8",
        "title": "C++ FINALLY Improved Error Handling with std::expected!",
        "publishedAt": "9 months ago",
        "durationSeconds": 1351,
        "views": 74894,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click this link *https://boot.dev/?promo=CHERNO* and use my code  CHERNO  to get 25% off your first payment for boot.dev.\n\nPatreon ► https://patreon.com/thecherno\nInstagram ► https://instagram....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Mv_UWf0eE9s",
        "title": "FIRST GAME in C++! Did He Do a Good Job? // Code Review (C++/SDL2)",
        "publishedAt": "9 months ago",
        "durationSeconds": 1844,
        "views": 50919,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Code Rabbit for FREE now! ► https://coderabbit.ai\n\nPatreon ► https://patreon.com/thecherno\nInstagram ► https://instagram.com/thecherno\nTwitter ► https://twitter.com/thecherno\nDiscord...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xqK8oQ2kdj0",
        "title": "How Did I Rewrite the RENDERER? // Hazel Engine Dev Log",
        "publishedAt": "10 months ago",
        "durationSeconds": 1591,
        "views": 53597,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Support and Get Hazel ► https://patreon.com/thecherno\nLivestream ► https://twitch.tv/thecherno\nDiscord ► https://discord.gg/thecherno\nInstagram ► https://instagram.com/thecherno\nTwitter...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "teOe2IKGlC0",
        "title": "C++ FINALLY Made Logging GOOD!",
        "publishedAt": "10 months ago",
        "durationSeconds": 837,
        "views": 158914,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out Codecks and start making better games in a better way! Get 30% off for the first 6 months using my link ► https://codecks.io/thecherno\n\nPatreon ► https://patreon.com/thecherno...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fQHiYRpFSIY",
        "title": "Multiplayer is DONE in Hazel! Here’s how it works",
        "publishedAt": "10 months ago",
        "durationSeconds": 1907,
        "views": 31155,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out Hostinger for all your web hosting and server needs! Use coupon code CHERNO to get an additional 10% discount ► https://hostinger.com/cherno\n\nPatreon ► https://patreon.com/thecherno...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 2,
      "uploadsLast90d": 7,
      "uploadCadenceWeekly": 0.54,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 22790,
      "viewsPerVideoP90Last90d": 46190,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 22790,
      "p90Views": 46190,
      "p99Views": 46190,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 5,
      "sponsorBrandsDetected": [
        "This video",
        "Let's Get Rusty",
        "GitKraken",
        "CodeRabbit",
        "Twingate",
        "Miro",
        "Hostinger",
        "Checkout to get 4 extra months of Surfsh",
        "Checkout"
      ],
      "affiliateLinkHosts": [
        "geni.us",
        "brilliant.org"
      ],
      "sponsorshipFrequencyPercent": 71,
      "lastSponsoredVideoDate": "2026-04-14",
      "detectionDetail": [
        {
          "brand": "This video",
          "videoId": "aWGVjFTbXc8",
          "confidence": 0.7,
          "evidence": "description: This video is sponsored by Let's Get Rusty.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:14.733Z"
        },
        {
          "brand": "Let's Get Rusty",
          "videoId": "aWGVjFTbXc8",
          "confidence": 0.7,
          "evidence": "description: sponsored by Let's Get Rusty.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:14.733Z"
        },
        {
          "brand": "This video",
          "videoId": "q3197IjHQ0I",
          "confidence": 0.7,
          "evidence": "description: This video is sponsored by GitKraken.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:14.733Z"
        },
        {
          "brand": "GitKraken",
          "videoId": "q3197IjHQ0I",
          "confidence": 0.7,
          "evidence": "description: sponsored by GitKraken.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:14.733Z"
        },
        {
          "brand": "This video",
          "videoId": "vtGjBFBrYEw",
          "confidence": 0.7,
          "evidence": "description: This video is sponsored by CodeRabbit.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:14.733Z"
        },
        {
          "brand": "CodeRabbit",
          "videoId": "vtGjBFBrYEw",
          "confidence": 0.7,
          "evidence": "description: sponsored by CodeRabbit.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:14.733Z"
        },
        {
          "brand": "This video",
          "videoId": "FP27I7v0BeM",
          "confidence": 0.7,
          "evidence": "description: This video is sponsored by Let's Get Rusty.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:14.733Z"
        },
        {
          "brand": "Let's Get Rusty",
          "videoId": "FP27I7v0BeM",
          "confidence": 0.7,
          "evidence": "description: sponsored by Let's Get Rusty.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:14.733Z"
        },
        {
          "brand": "This video",
          "videoId": "iRQfwiBIgRY",
          "confidence": 0.7,
          "evidence": "description: This video is sponsored by Let's Get Rusty.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:14.733Z"
        },
        {
          "brand": "Let's Get Rusty",
          "videoId": "iRQfwiBIgRY",
          "confidence": 0.7,
          "evidence": "description: sponsored by Let's Get Rusty.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:14.733Z"
        },
        {
          "brand": "This video",
          "videoId": "gJMF924lrzc",
          "confidence": 0.7,
          "evidence": "description: This video is sponsored by Twingate.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:14.733Z"
        },
        {
          "brand": "Twingate",
          "videoId": "gJMF924lrzc",
          "confidence": 0.7,
          "evidence": "description: sponsored by Twingate.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:14.733Z"
        },
        {
          "brand": "This video",
          "videoId": "KhftHT09F5g",
          "confidence": 0.7,
          "evidence": "description: This video is sponsored by Miro. ",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:14.733Z"
        },
        {
          "brand": "Miro",
          "videoId": "KhftHT09F5g",
          "confidence": 0.7,
          "evidence": "description: sponsored by Miro. ",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:14.733Z"
        },
        {
          "brand": "This video",
          "videoId": "CKgNHc9YNe0",
          "confidence": 0.7,
          "evidence": "description: This video is sponsored by Hostinger.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:14.733Z"
        },
        {
          "brand": "Hostinger",
          "videoId": "CKgNHc9YNe0",
          "confidence": 0.95,
          "evidence": "description: sponsored by Hostinger.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:14.733Z"
        },
        {
          "brand": "Checkout to get 4 extra months of Surfsh",
          "videoId": "rUxZ5N77M5E",
          "confidence": 0.7,
          "evidence": "description: use code THECHERNO at checkout to get 4 extra months of Surfsh",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:14.734Z"
        },
        {
          "brand": "Checkout",
          "videoId": "8bNsCBkX_bA",
          "confidence": 0.7,
          "evidence": "description: Use code THECHERNO at checkout. Download Saily app or go to ht",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:14.734Z"
        }
      ]
    },
    "sponsorshipMaturity": {
      "tier": "regular",
      "evidence": {
        "sponsoredVideoCountLast90d": 5,
        "uniqueSponsorBrandsLast90d": 9,
        "firstSponsoredVideoDate": "2026-05-14"
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "web-services",
          "confidence": 0.25,
          "evidence": [
            "historical-sponsor:Hostinger"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": "[REDACTED]",
      "businessEmailSource": "channel-about-section",
      "businessEmailMxValid": true,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "patreon.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "high",
      "components": {
        "businessEmailPresent": true,
        "businessEmailValid": true,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": true,
        "affiliateLinksPresent": true
      },
      "interpretation": "Will likely respond to sponsorship outreach: business email validated + active sponsor history + external website live."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 1,
        "evidenceVideoIds": [
          "aWGVjFTbXc8",
          "q3197IjHQ0I",
          "cO42oAeC4jk",
          "vtGjBFBrYEw",
          "FP27I7v0BeM"
        ]
      },
      {
        "label": "com",
        "share": 1,
        "evidenceVideoIds": [
          "aWGVjFTbXc8",
          "q3197IjHQ0I",
          "cO42oAeC4jk",
          "vtGjBFBrYEw",
          "FP27I7v0BeM"
        ]
      },
      {
        "label": "patreon",
        "share": 0.97,
        "evidenceVideoIds": [
          "aWGVjFTbXc8",
          "q3197IjHQ0I",
          "cO42oAeC4jk",
          "vtGjBFBrYEw",
          "FP27I7v0BeM"
        ]
      },
      {
        "label": "thecherno",
        "share": 0.97,
        "evidenceVideoIds": [
          "aWGVjFTbXc8",
          "q3197IjHQ0I",
          "cO42oAeC4jk",
          "vtGjBFBrYEw",
          "FP27I7v0BeM"
        ]
      },
      {
        "label": "instagram",
        "share": 0.73,
        "evidenceVideoIds": [
          "aWGVjFTbXc8",
          "q3197IjHQ0I",
          "cO42oAeC4jk",
          "vtGjBFBrYEw",
          "FP27I7v0BeM"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Sunday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "A",
      "rationale": "active sponsor history, business email validated, content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "strong",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "regular"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 70,
      "reason": "regular sponsor history x validated business email x fits web-services",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.85
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.95
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.45
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 1,
      "level": "high",
      "coldStart": false
    },
    "whyThisMatters": "regular sponsor history + validated business email + fits web-services. Channel is in the active outreach window.",
    "whyNow": "Last sponsored video 30 days ago — within typical sponsorship-decision lookback for similar creators.",
    "respondWithinDays": 3,
    "failureType": null,
    "summary": "The Cherno — 0.7M subs, A-tier sponsorship readiness, high contactability, respond within 3 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": true,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 70,
      "readyForOutreach": true,
      "blockers": [],
      "stepsToReady": []
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.4,
      "urgency": 0,
      "noiseRisk": 0
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": {
      "isValidFormat": true,
      "canonical": "business@thecherno.com",
      "domain": "thecherno.com",
      "lineType": "role-account",
      "mxValid": true,
      "confidence": 0.75,
      "originalInput": "business@thecherno.com",
      "email": null
    },
    "allEmailValidations": [
      {
        "isValidFormat": true,
        "canonical": "business@thecherno.com",
        "domain": "thecherno.com",
        "lineType": "role-account",
        "mxValid": true,
        "confidence": 0.75,
        "originalInput": "business@thecherno.com",
        "email": null
      }
    ],
    "contactabilityScore": {
      "score": 83,
      "level": "high",
      "components": {
        "presence": 25,
        "sourceQuality": 18,
        "validationQuality": 18,
        "identityStrength": 9,
        "freshness": 8,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "email",
      "secondary": "agency-form",
      "reason": "Validated business email + active sponsor history — email-first maximises response rate."
    },
    "sequenceFit": {
      "directOutreachAllowed": true,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "channel-about",
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.83
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.83,
      "gap": 0.11,
      "howToClose": [
        "Run ryanclinton/person-enrichment-lookup against 'business@thecherno.com' to identify the inbox owner."
      ]
    },
    "recoveryPlan": null,
    "reachability": {
      "status": "medium",
      "score": 0.65,
      "factors": [
        "business-email-validated",
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "active sponsor history + validated business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:regular",
        "email-line-type:role-account",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [],
      "safeChannels": [
        "email",
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [
      {
        "email": "[REDACTED]",
        "rank": 1,
        "reason": "role-account email",
        "role": "general"
      }
    ],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": true,
      "sendToAgencyRouter": false,
      "sendToCrm": true,
      "requiresEnrichment": false,
      "priorityQueue": "high"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "web-services",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "act",
      "reason": "A-tier readiness with validated contact and active sponsor history.",
      "appliedRules": [
        "tier:A",
        "contactability:high",
        "lastSponsored<90d"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [
      {
        "trigger": "regular-sponsor + high-contactability + tier-A",
        "play": "Draft personalised partnership pitch referencing recent sponsor categories",
        "owner": "sponsorship-team",
        "urgency": "high"
      }
    ],
    "timingWindow": {
      "status": "optimal",
      "reason": "Last sponsored video 30 days ago; within typical 14-30d decision-cycle for similar creators.",
      "decayRisk": 0.5
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 88,
      "reasons": [
        "A-tier sponsorship readiness — composite signal exceeds high-band threshold",
        "Validated business email (MX confirmed)",
        "Active sponsor history within last 90d (5 videos)",
        "Low confidence-conflict count in scoring trace"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "1281d9396d23644f1f0251e9cac0d44c8964ea8a2d95a93ac606b4a7b6d51702",
      "inputsHash": "0e1cf6108cfeac01cb4a503baeaa31a809c55fcc0675a49fdeebc2f918affbb7",
      "rulesApplied": [
        "business-email-validated",
        "sponsorship-history-regular",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:13.295Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "df00e98f3eb5454d5808676109b31987acb670d0c4f9b72dd0e19c8a11480b41",
    "channelId": "UC6biysICWOJ-C3P4Tyeggzg",
    "channelHandle": "@LowLevelTV",
    "channelName": "Low Level",
    "channelUrl": "https://www.youtube.com/@LowLevelTV",
    "description": "Vuln Researcher w/ 10+ Years in Cybersecurity",
    "joinDate": null,
    "location": null,
    "subscribers": 1110000,
    "totalVideos": 312,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/npUuy7Y37eUqanNoISokGb5a5rk1wotnx0Yzs1kfdOzYgnlwYnV82izSKmaoYpObYewKOAacs8o=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "lowlevel.tv",
        "url": "https://lowlevel.tv"
      },
      {
        "platform": "lowlevel.academy",
        "url": "https://lowlevel.academy"
      },
      {
        "platform": "twitch",
        "url": "https://www.twitch.tv/LowLevelTV"
      },
      {
        "platform": "twitter",
        "url": "https://x.com/LowLevelTweets"
      }
    ],
    "recentVideos": [
      {
        "videoId": "umyoCyZCkyg",
        "title": "This affects so many companies..",
        "publishedAt": "11 hours ago",
        "durationSeconds": 596,
        "views": 74019,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Reduce your response time to credential compromise with Flare @  https://go.lowlevel.tv/flare2026\n\nhttps://unit42.paloaltonetworks.com/c...\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n⌨️ KEYBOARD\nLike what you hear? Grab a Q5 at https://go.lowlevel.tv/keyboard\n\n🔥COME HANG OUT   \nCheck out my other stuff: https://lowlevel.tv",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CjC_9gkqLOo",
        "title": "how is this still possible in 2026?",
        "publishedAt": "2 days ago",
        "durationSeconds": 648,
        "views": 163257,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Secure your organizations infrastructure using Zero Trust Network Architecture with Threatlocker at https://go.lowlevel.tv/threatlocker2026\n\nhttps://labs.watchtowr.com/the-intern...\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n⌨️ KEYBOARD\nLike what you hear? Grab a Q5 at https://go.lowlevel.tv/keyboard\n\n🔥COME HANG OUT   \nCheck out my other stuff: https://lowlevel.tv",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8s9jaIPR7PU",
        "title": "SERIOUSLY? AGAIN?",
        "publishedAt": "5 days ago",
        "durationSeconds": 778,
        "views": 220453,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n⌨️ KEYBOARD\nLike what you hear? Grab a Q5 at https://go.lowlevel.tv/keyboard\n\n🔥COME HANG OUT   \nCheck out my other stuff: https://lowlevel.tv",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "m5t08CREHcE",
        "title": "The GitHub situation just got worse...",
        "publishedAt": "7 days ago",
        "durationSeconds": 560,
        "views": 338087,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Catch bugs in your code BEFORE it gets shipped with CodeRabbit @ https://go.lowlevel.tv/coderabbit\n\nEDIT: I just realized after watching this video back that I'm a dumba** and HTTP headers are not delimited by a semicolon. They're delimited by \\r\\n. A thousand apologies to the RFC enjoyers.\n\nhttps://www.wiz.io/blog/github-rce-vu...\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n⌨️ KEYBOARD\nLike what you hear? Grab a Q5 at https://go.lowlevel.tv/keyboard\n\n🔥COME HANG OUT   \nCheck out my other stuff: https://lowlevel.tv",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MaFK5AXpXXw",
        "title": "This Exploits LITERALLY Every Linux Distro",
        "publishedAt": "12 days ago",
        "durationSeconds": 866,
        "views": 329441,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://copy.fail\n\nReduce your response time to credential compromise with Flare @ https://go.lowlevel.tv/flare2026\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n⌨️ KEYBOARD\nLike what you hear? Grab a Q5 at https://go.lowlevel.tv/keyboard\n\n🔥COME HANG OUT   \nCheck out my other stuff: https://lowlevel.tv",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-_TWFbw8XjU",
        "title": "HUGE password manager got compromised",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 546,
        "views": 268418,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "bitwarden more like bithurdin haha sorry.\n\nSources:\nhttps://www.endorlabs.com/learn/shai-...\nhttps://thehackernews.com/2026/04/mal...\nhttps://research.jfrog.com/post/bitwa...\nhttps://thehackernews.com/2026/04/bit...\nedits:   / joshi.toshi  \n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n⌨️ KEYBOARD\nLike what you hear? Grab a Q5 at https://go.lowlevel.tv/keyboard\n\n🔥COME HANG OUT   \nCheck out my other stuff: https://lowlevel.tv",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WMZRHpq-0lk",
        "title": "They're hacking PDFs now",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 604,
        "views": 330621,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Secure the way your organization handles data with AI today @ https://go.lowlevel.tv/island\n\nhttps://justhaifei1.blogspot.com/2026...\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n⌨️ KEYBOARD\nLike what you hear? Grab a Q5 at https://go.lowlevel.tv/keyboard\n\n🔥COME HANG OUT   \nCheck out my other stuff: https://lowlevel.tv",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Q0pKjLMOvFE",
        "title": "He Leaked Windows Exploits For Revenge",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 677,
        "views": 252192,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Secure your organizations infrastructure using Zero Trust Network Architecture with Threatlocker at https://go.lowlevel.tv/threatlocker2026\n\nhttps://github.com/Nightmare-Eclipse/...\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n⌨️ KEYBOARD\nLike what you hear? Grab a Q5 at https://go.lowlevel.tv/keyboard\n\n🔥COME HANG OUT   \nCheck out my other stuff: https://lowlevel.tv",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WBgdAkol0VQ",
        "title": "Stop Updating Your Software (No, Seriously)",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 617,
        "views": 181388,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Stay ahead of hackers by seeing into the infostealer economy at https://go.lowlevel.tv/flare2026\n\nhttps://intel.breakglass.tech/post/cp...\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n⌨️ KEYBOARD\nLike what you hear? Grab a Q5 at https://go.lowlevel.tv/keyboard\n\n🔥COME HANG OUT   \nCheck out my other stuff: https://lowlevel.tv",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LZAZvm34rYs",
        "title": "Claude Mythos is Actually Scary",
        "publishedAt": "1 month ago",
        "durationSeconds": 810,
        "views": 303599,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Live on Twitch:   / lowleveltv  \n\nhttps://red.anthropic.com/2026/mythos...\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n⌨️ KEYBOARD\nLike what you hear? Grab a Q5 at https://go.lowlevel.tv/keyboard\n\n🔥COME HANG OUT   \nCheck out my other stuff: https://lowlevel.tv",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Nl27jPrXOrE",
        "title": "No, Seriously. AI is REALLY Good at Hacking Now",
        "publishedAt": "1 month ago",
        "durationSeconds": 584,
        "views": 169252,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go see if your company's creds have been compromised @ https://go.lowlevel.tv/flare2026\n\nhttps://github.com/califio/publications/blob/main/MADBugs/CVE-2026-4747/claude-prompts.txt\n\n🏫 MY...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "yiLIZLPNEm8",
        "title": "this is the biggest hack of 2026",
        "publishedAt": "1 month ago",
        "durationSeconds": 597,
        "views": 287877,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://www.huntress.com/blog/supply-chain-compromise-axios-npm-package\nhttps://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan\nhttps://www.ox.securit...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TRPUpErYeco",
        "title": "can't believe this happened",
        "publishedAt": "1 month ago",
        "durationSeconds": 734,
        "views": 215478,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://blog.qualys.com/vulnerabilities-threat-research/2026/03/12/crackarmor-critical-apparmor-flaws-enable-local-privilege-escalation-to-root\n\n🏫 LEARN HOW COMPUTERS WORK\nSign-up for my...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uwSjgv4otAk",
        "title": "this is crazy.",
        "publishedAt": "1 month ago",
        "durationSeconds": 671,
        "views": 257843,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Secure your company's AI posture with Varonis Atlas today! Get a free demo at https://go.lowlevel.tv/varonis\n\nDISCLAIMER: I HAVE NO EVIDENCE THAT GOOGLE OR NETFLIX WERE ACTUALLY AFFECTED BY...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZrD9MC_BXGk",
        "title": "malware is getting way too advanced",
        "publishedAt": "1 month ago",
        "durationSeconds": 480,
        "views": 267186,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n⌨️ KEYBOARD...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-ndTTdOW_i4",
        "title": "cybersecurity is about to get weird",
        "publishedAt": "2 months ago",
        "durationSeconds": 805,
        "views": 663353,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://www.anthropic.com/news/mozilla-firefox-security\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "q2WCggEGzFA",
        "title": "dude wtf",
        "publishedAt": "2 months ago",
        "durationSeconds": 568,
        "views": 168361,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Maximize the velocity of your software security lifecycle with Endor at https://go.lowlevel.tv/endor\n\nhttps://cloud.google.com/blog/topics/threat-intelligence/unc6201-exploiting-dell-recoverpoint-z...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "k1NUNnqoGZg",
        "title": "the most advanced hack i've ever seen",
        "publishedAt": "2 months ago",
        "durationSeconds": 652,
        "views": 270657,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go try Flare for FREE at https://go.lowlevel.tv/flare2026 and see if your company's data is out there.\n\nhttps://blog.talosintelligence.com/uat-8616-sd-wan/\nhttps://sec.cloudapps.cisco.com/security/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KsiuA5gOl1o",
        "title": "I Hacked This Temu Router. What I Found Should Be Illegal.",
        "publishedAt": "2 months ago",
        "durationSeconds": 945,
        "views": 3405717,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to hack and reverse engineer like this: https://go.lowlevel.tv/StackSmash-RE\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n⌨️ KEYBOARD\nLike what...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "I4brAvpjbrg",
        "title": "phone hacking situation is crazy",
        "publishedAt": "2 months ago",
        "durationSeconds": 680,
        "views": 179857,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go try Intruder today for 14 days, free at https://go.lowlevel.tv/intruder\n\nhttps://www.rapid7.com/blog/post/ve-phone-listening-cold-war-vulnerability-modern-voip/\nhttps://www.rapid7.com/blog/post/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AZUp5nY7BWU",
        "title": "they hacked CSS",
        "publishedAt": "2 months ago",
        "durationSeconds": 549,
        "views": 182276,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get a 14-day FREE trail of flare at https://go.lowlevel.tv/flare2026 . See if you or your company's data is floating around the dark web.\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sZ8aAkeZ6dw",
        "title": "no f***ing way",
        "publishedAt": "3 months ago",
        "durationSeconds": 497,
        "views": 265533,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go secure your notepad.exe with Threatlocker! https://go.lowlevel.tv/threatlocker2026 Next time you hear zero trust, give threatlocker a shot.\n\nPoC: https://github.com/BTtea/CVE-2026-20841-PoC...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PG5sv20Jiic",
        "title": "AI ruined bug bounties",
        "publishedAt": "3 months ago",
        "durationSeconds": 649,
        "views": 285260,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n🔥COME HANG...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "C8wKomo4Wds",
        "title": "notepad++ situation is crazy",
        "publishedAt": "3 months ago",
        "durationSeconds": 637,
        "views": 555848,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n🔥COME HANG...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mdYDG34YP4w",
        "title": "omg please stop using telnet",
        "publishedAt": "3 months ago",
        "durationSeconds": 621,
        "views": 175263,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Protect yourself with canaries for FREE at https://go.lowlevel.tv/tracebit\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kSno1-xOjwI",
        "title": "openclaw security situation is insane",
        "publishedAt": "3 months ago",
        "durationSeconds": 685,
        "views": 403618,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go try Flare for FREE @ https://go.lowlevel.tv/flare2026\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "e7xREocmA3g",
        "title": "how is this even possible?",
        "publishedAt": "3 months ago",
        "durationSeconds": 600,
        "views": 108154,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go learn how Zero Trust can help make you more secure @ https://go.lowlevel.tv/threatlocker2026 . Thanks again for sponsoring this video!\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "y2ujgpIZ5O8",
        "title": "javascript can't stop winning",
        "publishedAt": "3 months ago",
        "durationSeconds": 516,
        "views": 156762,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n🧙‍♂️ HACK YOUR CAREER\nWanna learn to hack? Join my new CTF platform: https://stacksmash.io\n\n🔥COME HANG...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UlZjPsTWg-U",
        "title": "WTF dude..",
        "publishedAt": "3 months ago",
        "durationSeconds": 766,
        "views": 300144,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚨 Go try a demo of Material Security @ https://go.lowlevel.tv/material and learn how you can scale up your cloud workspace's security posture !\n\nhttps://www.bleepingcomputer.com/news/security/ma...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "037Pw8btDiM",
        "title": "How Hackers Crack Any Software With Reverse Engineering",
        "publishedAt": "4 months ago",
        "durationSeconds": 497,
        "views": 490914,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Wanna learn to hack? Join: https://go.lowlevel.tv/037Pw8btDiM\n\n🏫 MY COURSES\nSign-up for my FREE 3-Day C Course: https://lowlevel.academy\n\n⌨️ KEYBOARD\nLike what you hear? Grab a Q5 at...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 15,
      "uploadsLast90d": 29,
      "uploadCadenceWeekly": 2.26,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 265533,
      "viewsPerVideoP90Last90d": 403618,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 265533,
      "p90Views": 403618,
      "p99Views": 663353,
      "outperformingVideosLast90d": 4
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "lowlevel.tv",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 1,
        "evidenceVideoIds": [
          "umyoCyZCkyg",
          "CjC_9gkqLOo",
          "8s9jaIPR7PU",
          "m5t08CREHcE",
          "MaFK5AXpXXw"
        ]
      },
      {
        "label": "lowlevel",
        "share": 0.93,
        "evidenceVideoIds": [
          "umyoCyZCkyg",
          "CjC_9gkqLOo",
          "8s9jaIPR7PU",
          "m5t08CREHcE",
          "MaFK5AXpXXw"
        ]
      },
      {
        "label": "sign",
        "share": 0.73,
        "evidenceVideoIds": [
          "umyoCyZCkyg",
          "CjC_9gkqLOo",
          "8s9jaIPR7PU",
          "m5t08CREHcE",
          "MaFK5AXpXXw"
        ]
      },
      {
        "label": "courses",
        "share": 0.7,
        "evidenceVideoIds": [
          "umyoCyZCkyg",
          "CjC_9gkqLOo",
          "8s9jaIPR7PU",
          "m5t08CREHcE",
          "MaFK5AXpXXw"
        ]
      },
      {
        "label": "day",
        "share": 0.7,
        "evidenceVideoIds": [
          "umyoCyZCkyg",
          "CjC_9gkqLOo",
          "8s9jaIPR7PU",
          "m5t08CREHcE",
          "MaFK5AXpXXw"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Friday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "B",
      "rationale": "strong views-per-subscriber ratio, consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "strong",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 29,
      "reason": "tier B composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier B — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Low Level — 1.1M subs, B-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 29,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.81,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": true,
      "requiresEnrichment": true,
      "priorityQueue": "medium"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "B-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "df00e98f3eb5454d5808676109b31987acb670d0c4f9b72dd0e19c8a11480b41",
      "inputsHash": "ab66f597f2497a18f88a18ff5bdaf49218c3cd2065a88b309917249e1cedc534",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:14.088Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "f499c3c5d2e3670a111e10e4168a167fc05707926ece9dac9f8618094cc4f3a4",
    "channelId": "UC46xhU1EH7aywEgvA9syS3w",
    "channelHandle": "@anthonywritescode",
    "channelName": "anthonywritescode",
    "channelUrl": "https://www.youtube.com/@anthonywritescode",
    "description": "Various videos about programming and related topics.  Most videos will feature open source software and programming best practices.  For now, most videos will deal with python.\n\nAll slides and associated code are on github: https://github.com/anthonywritescode",
    "joinDate": null,
    "location": null,
    "subscribers": 50000,
    "totalVideos": 1100,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_m3KuTkZL7uslK8yjytx_ZmOKvMlUhzHokqzdwPDdE_Tg=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "github",
        "url": "https://github.com/anthonywritescode"
      }
    ],
    "recentVideos": [
      {
        "videoId": "DxBVyuG24ug",
        "title": "every markdown list item should be `1.` !",
        "publishedAt": "9 hours ago",
        "durationSeconds": 346,
        "views": 2749,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "today I talk about a little trick in markdown that I use and why I use it!\n\nplaylist:    • anthony explains  \n\n==========\n\ntwitch:   / anthonywritescode  \ndicsord:   / discord  \ntwitter:   / codewithanthony  \ngithub: https://github.com/asottile\nstream github: https://github.com/anthonywritescode\n\nI won't ask for subscriptions / likes / comments in videos but it really helps the channel.  If you have any suggestions or things you'd like to see please comment below!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tQ3hnQiJ0YM",
        "title": "python 3.14 garbage collector *REVERTED*",
        "publishedAt": "7 days ago",
        "durationSeconds": 767,
        "views": 11550,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "today we talk about the special python 3.14.5 release and how we're going back to the old garbage collector.  what is the old garbage collector? new garbage collector?\n\nplaylist:    • anthony explains  \n\n==========\n\ntwitch:   / anthonywritescode  \ndicsord:   / discord  \ntwitter:   / codewithanthony  \ngithub: https://github.com/asottile\nstream github: https://github.com/anthonywritescode\n\nI won't ask for subscriptions / likes / comments in videos but it really helps the channel.  If you have any suggestions or things you'd like to see please comment below!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "znuNevbWENE",
        "title": "why aren't git hooks automatic on clone?",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 651,
        "views": 2578,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "today I show why git hooks should be opt-in -- and then give you two ways to make them automatic (even though it's probably a bad idea!)\n\nplaylist:    • anthony explains  \n\n==========\n\ntwitch:   / anthonywritescode  \ndicsord:   / discord  \ntwitter:   / codewithanthony  \ngithub: https://github.com/asottile\nstream github: https://github.com/anthonywritescode\n\nI won't ask for subscriptions / likes / comments in videos but it really helps the channel.  If you have any suggestions or things you'd like to see please comment below!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8Jwg_mM9WYc",
        "title": "does git 2.54 make pre-commit obsolete?",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 849,
        "views": 13733,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "today we take a look at the new \"config based\" hooks in git 2.54 and how they relate to git hook frameworks such as pre-commit!\n\nplaylist:    • anthony explains  \n\n==========\n\ntwitch:   / anthonywritescode  \ndicsord:   / discord  \ntwitter:   / codewithanthony  \ngithub: https://github.com/asottile\nstream github: https://github.com/anthonywritescode\n\nI won't ask for subscriptions / likes / comments in videos but it really helps the channel.  If you have any suggestions or things you'd like to see please comment below!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2Uo3iD8lJh4",
        "title": "typing *args and **kwargs",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 975,
        "views": 4443,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "yes I've made this video before but this has the improved syntax that wasn't there last time!\n\nplaylist:    • anthony explains  \n\n==========\n\ntwitch:   / anthonywritescode  \ndicsord:   / discord  \ntwitter:   / codewithanthony  \ngithub: https://github.com/asottile\nstream github: https://github.com/anthonywritescode\n\nI won't ask for subscriptions / likes / comments in videos but it really helps the channel.  If you have any suggestions or things you'd like to see please comment below!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GhWbJHdCkOA",
        "title": "annotated tags",
        "publishedAt": "1 month ago",
        "durationSeconds": 774,
        "views": 2887,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "idk why everyone has been talking about them recently but here's annotated tags and how they work and how I think about them!\n\nplaylist:    • anthony explains  \n\n==========\n\ntwitch:   / anthonywritescode  \ndicsord:   / discord  \ntwitter:   / codewithanthony  \ngithub: https://github.com/asottile\nstream github: https://github.com/anthonywritescode\n\nI won't ask for subscriptions / likes / comments in videos but it really helps the channel.  If you have any suggestions or things you'd like to see please comment below!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "X9IYhsNUIe8",
        "title": "why do .pth files run twice? (and fixing it!)",
        "publishedAt": "1 month ago",
        "durationSeconds": 822,
        "views": 4074,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "today we look at the quirk in .pth files from a week ago and four years ago and then fix it!\n\nplaylist:    • anthony explains  \n\n==========\n\ntwitch:   / anthonywritescode  \ndicsord:   / discord  \ntwitter:   / codewithanthony  \ngithub: https://github.com/asottile\nstream github: https://github.com/anthonywritescode\n\nI won't ask for subscriptions / likes / comments in videos but it really helps the channel.  If you have any suggestions or things you'd like to see please comment below!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AHuWbu7bhu4",
        "title": "the litellm hack",
        "publishedAt": "1 month ago",
        "durationSeconds": 797,
        "views": 6171,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "today I talk about how litellm was compromised, how the attack worked, and some small tips to help you harden against these types of attacks\n\n==========\n\ntwitch:   / anthonywritescode  \ndicsord:   / discord  \ntwitter:   / codewithanthony  \ngithub: https://github.com/asottile\nstream github: https://github.com/anthonywritescode\n\nI won't ask for subscriptions / likes / comments in videos but it really helps the channel.  If you have any suggestions or things you'd like to see please comment below!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rB72Cjmjucs",
        "title": "another bad sign for open source (jazzband)",
        "publishedAt": "1 month ago",
        "durationSeconds": 536,
        "views": 4491,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "today we talk about jazzband and their sunsetting :(\n\nplaylist:    • anthony explains  \n\n==========\n\ntwitch:   / anthonywritescode  \ndicsord:   / discord  \ntwitter:   / codewithanthony  \ngithub: https://github.com/asottile\nstream github: https://github.com/anthonywritescode\n\nI won't ask for subscriptions / likes / comments in videos but it really helps the channel.  If you have any suggestions or things you'd like to see please comment below!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Ikke2Sg-nW4",
        "title": "why is there this weird semicolon ???",
        "publishedAt": "2 months ago",
        "durationSeconds": 281,
        "views": 3143,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "today we talk about the weird world of javascript -- and by extension typescript\n\nplaylist:    • anthony explains  \n\n==========\n\ntwitch:   / anthonywritescode  \ndicsord:   / discord  \ntwitter:   / codewithanthony  \ngithub: https://github.com/asottile\nstream github: https://github.com/anthonywritescode\n\nI won't ask for subscriptions / likes / comments in videos but it really helps the channel.  If you have any suggestions or things you'd like to see please comment below!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_YZAYcXoQB8",
        "title": "recovering the DELETED AI extortion piece",
        "publishedAt": "2 months ago",
        "durationSeconds": 300,
        "views": 3525,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "matplotlib's policy rejected an AI-submitted PR -- the AI responded with a maintainer-smearing blogpost.  later it was deleted -- but I show how to recover it\n\n==========\n\ntwitch: https://twitch.tv...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "accN9AFqqXM",
        "title": "jsonnet visibility ???",
        "publishedAt": "2 months ago",
        "durationSeconds": 357,
        "views": 2452,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "today I show a language decision of jsonnet that seriously surprised me!\n\n==========\n\ntwitch: https://twitch.tv/anthonywritescode\ndicsord: https://discord.gg/xDKGPaW\ntwitter: https://twitter.com/co...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Xfprlz6HBno",
        "title": "well that's not how you use xargs! (all code sucks) #16",
        "publishedAt": "2 months ago",
        "durationSeconds": 1020,
        "views": 3515,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "today we're looking at two different same-mistake production uses of xargs!\n\nplaylist: https://www.youtube.com/playlist?list=PLWBKAf81pmOZPmmuiN109u1wzMmzXIZ11\n\n==========\n\ntwitch: https://twitch.t...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6FrxKPj_kLc",
        "title": "wtf bazel ?",
        "publishedAt": "3 months ago",
        "durationSeconds": 380,
        "views": 2751,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "how is it 2026 and I can't debug a test\n\n==========\n\ntwitch: https://twitch.tv/anthonywritescode\ndicsord: https://discord.gg/xDKGPaW\ntwitter: https://twitter.com/codewithanthony\ngithub: https://git...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5OjeeNHiKw4",
        "title": "bazel py_test is a landmine (all code sucks) #15",
        "publishedAt": "3 months ago",
        "durationSeconds": 812,
        "views": 3986,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "ahah you thought this series was dead? all code is broken and especially bazel\n\nplaylist: https://www.youtube.com/playlist?list=PLWBKAf81pmOZPmmuiN109u1wzMmzXIZ11\n\n==========\n\ntwitch: https://twitc...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KyIUJFYmN-8",
        "title": "a cpython release went backwards?",
        "publishedAt": "3 months ago",
        "durationSeconds": 527,
        "views": 3973,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "today I talk about the 3.15 alpha 4 oopsie and how I caught it and how python releasing will now be better forever!\n\nplaylist: https://www.youtube.com/playlist?list=PLWBKAf81pmOaP9naRiNAqug6EBnkPak...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "10dQiNkCZGE",
        "title": "\"new\" git commands for \"old\" people",
        "publishedAt": "3 months ago",
        "durationSeconds": 1332,
        "views": 5836,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "today I show the equivalent `checkout` / `reset` commands with `switch` / `restore`!\n\nplaylist: https://www.youtube.com/playlist?list=PLWBKAf81pmOaP9naRiNAqug6EBnkPakvY\n\n==========\n\ntwitch:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "y6meVhckYmQ",
        "title": "you only need 15ish git commands",
        "publishedAt": "3 months ago",
        "durationSeconds": 2826,
        "views": 6986,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "today I show a whirlwind tour of the most common git commands I use\n\nplaylist: https://www.youtube.com/playlist?list=PLWBKAf81pmOaP9naRiNAqug6EBnkPakvY\n\n==========\n\ntwitch: https://twitch.tv/anthon...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Ia6S3cbCrNs",
        "title": "the worst git repo (and how I fixed it)",
        "publishedAt": "3 months ago",
        "durationSeconds": 2854,
        "views": 4382,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "today I show off how I used `git-filter-repo` and other techniques to fix the history of a really large repository\n\nplaylist: https://www.youtube.com/playlist?list=PLWBKAf81pmOaP9naRiNAqug6EBnkPakv...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UhRzwSCiZm4",
        "title": "making the \"slurp\" video",
        "publishedAt": "4 months ago",
        "durationSeconds": 639,
        "views": 2547,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "today I walk through how I made this: https://www.youtube.com/watch?v=4tsmLkPX1hU\n\nplaylist: https://www.youtube.com/playlist?list=PLWBKAf81pmOaP9naRiNAqug6EBnkPakvY\n\n==========\n\ntwitch: https://tw...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PGuruDhK-YA",
        "title": "I solved all of advent of code 2025 in sqlite",
        "publishedAt": "4 months ago",
        "durationSeconds": 13406,
        "views": 7060,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "solutions for 2025 advent of code -- also in sqlite :)\n\nchapters:\n- 0:00 intro\n- 3:24 the rules\n- 6:15 advanced techniques we'll use\n- 28:42 day 1\n- 38:10 day 2\n- 46:36 day 3\n- 1:00:55 day...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kBMTLIWkYVQ",
        "title": "splitting a monorepo with git filter-branch / filter-repo",
        "publishedAt": "4 months ago",
        "durationSeconds": 998,
        "views": 3931,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "today we show how I split out a subsection of a monorepo to a separate repo while preserving history!\n\nplaylist: https://www.youtube.com/playlist?list=PLWBKAf81pmOaP9naRiNAqug6EBnkPakvY\n\n==========...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Drz8PgWSR4Y",
        "title": "linus messed up the linux git history (so now there's a new git option)",
        "publishedAt": "4 months ago",
        "durationSeconds": 775,
        "views": 69919,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "today we talk about unrelated git histories and how one accidentally crept into the linux kernel!\n\nplaylist: https://www.youtube.com/playlist?list=PLWBKAf81pmOaP9naRiNAqug6EBnkPakvY\n\n==========...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VSiPVZcTQTo",
        "title": "sqlite: STRING is actually an integer type???",
        "publishedAt": "5 months ago",
        "durationSeconds": 239,
        "views": 3191,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "today I show a quirk with sqlite's type compatibility and a useful fix!\n\nplaylist: https://www.youtube.com/playlist?list=PLWBKAf81pmOaP9naRiNAqug6EBnkPakvY\n\n==========\n\ntwitch: https://twitch.tv/an...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "G2yPbg2fgQY",
        "title": "explaining weird stuff via python's compilation pipeline - university of michigan guest lecture",
        "publishedAt": "5 months ago",
        "durationSeconds": 4509,
        "views": 5560,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "apologies on some of the video quality -- I'll do a local recording next time :)  I gave a guest lecture for EECS 483 at the university of michigan about python's compilation pipeline and how...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5_8FTivl8Vs",
        "title": "squash merge: I hate it but it's really the only way",
        "publishedAt": "5 months ago",
        "durationSeconds": 1140,
        "views": 7386,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "today we talk about merge strategies (again!) while specifically focusing on squash merge.  I show off a clever history rewriting technique to convert all merges into squashes!\n\nplaylist: https://w...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LI6Zzl787KU",
        "title": "git is not a series of patches!",
        "publishedAt": "5 months ago",
        "durationSeconds": 899,
        "views": 5082,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "today I talk about an intuition I had wrong about git!\n\nplaylist: https://www.youtube.com/playlist?list=PLWBKAf81pmOaP9naRiNAqug6EBnkPakvY\n\n==========\n\ntwitch: https://twitch.tv/anthonywritescode...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "krjqA-oBgxI",
        "title": "\"git is forever\"",
        "publishedAt": "5 months ago",
        "durationSeconds": 508,
        "views": 6630,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "so stop doing these two things!\n\nplaylist: https://www.youtube.com/playlist?list=PLWBKAf81pmOaP9naRiNAqug6EBnkPakvY\n\n==========\n\ntwitch: https://twitch.tv/anthonywritescode\ndicsord: https://discord...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pF70DVY4zKQ",
        "title": "sudo --validate",
        "publishedAt": "6 months ago",
        "durationSeconds": 211,
        "views": 6303,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "today is a quick video on `sudo --validate` (and its counterpart) and why I use it :)\n\nplaylist: https://www.youtube.com/playlist?list=PLWBKAf81pmOaP9naRiNAqug6EBnkPakvY\n\n==========\n\ntwitch:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZwGDqjx-W2k",
        "title": "my (bad) distributed system for sentry mypy stats (and cool graphs from viewers!)",
        "publishedAt": "6 months ago",
        "durationSeconds": 2203,
        "views": 3283,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "today I show off the design of the scripts I used to collect data for mypy error reduction in sentry over time!  I also show off some cool graphs made by viewers :)\n\nplaylist: https://www.youtube.c...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 9,
      "uploadsLast90d": 19,
      "uploadCadenceWeekly": 1.48,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 3986,
      "viewsPerVideoP90Last90d": 6986,
      "viewVelocityTrend": "rising"
    },
    "performanceBaseline": {
      "p50Views": 3986,
      "p90Views": 6986,
      "p99Views": 11550,
      "outperformingVideosLast90d": 3
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "github.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "none",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Not reachable through public business channels. No published business email and no external website detected."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.93,
        "evidenceVideoIds": [
          "DxBVyuG24ug",
          "tQ3hnQiJ0YM",
          "znuNevbWENE",
          "8Jwg_mM9WYc",
          "2Uo3iD8lJh4"
        ]
      },
      {
        "label": "com",
        "share": 0.83,
        "evidenceVideoIds": [
          "DxBVyuG24ug",
          "tQ3hnQiJ0YM",
          "znuNevbWENE",
          "8Jwg_mM9WYc",
          "2Uo3iD8lJh4"
        ]
      },
      {
        "label": "playlist",
        "share": 0.8,
        "evidenceVideoIds": [
          "DxBVyuG24ug",
          "tQ3hnQiJ0YM",
          "znuNevbWENE",
          "8Jwg_mM9WYc",
          "2Uo3iD8lJh4"
        ]
      },
      {
        "label": "twitch",
        "share": 0.73,
        "evidenceVideoIds": [
          "DxBVyuG24ug",
          "tQ3hnQiJ0YM",
          "znuNevbWENE",
          "8Jwg_mM9WYc",
          "2Uo3iD8lJh4"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Friday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 35,
      "reason": "growth rising last 90d",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.05
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.85
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "rising 90d view velocity. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "anthonywritescode — 0.1M subs, C-tier sponsorship readiness, none contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 35,
      "readyForOutreach": false,
      "blockers": [
        "contactability:none — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.75,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 2,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 2
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.02
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.02,
      "gap": 0.92,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mid-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mid"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mid-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mid",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "5-12%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mid-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "f499c3c5d2e3670a111e10e4168a167fc05707926ece9dac9f8618094cc4f3a4",
      "inputsHash": "5321fb373a4b038f73fe5654656bb593bf5f890cfbd8367b973872459a1472ab",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-rising",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:16.094Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "4340cfac591598946ea7f980f0f09a5daa5631384820116576ccfcb515cd109d",
    "channelId": "UC59K-uG2A5ogwIrHw4bmlEg",
    "channelHandle": "@Telusko",
    "channelName": "Telusko",
    "channelUrl": "https://www.youtube.com/@Telusko",
    "description": "Hey Aliens \n\nWelcome to Telusko! We create technical tutorials that take you from beginner to advanced level.\n\nYou’ll find content on:\nCore Programming: Java (Beginner to Advanced), Python,  JavaScript\nFrameworks & Tools: Spring Framework, Hibernate, Blockchain, Spring AI, AI Engineering\nComputer Science Essentials: Data Structures, Networking, System Design, and more\nTrending Tech: Cloud, Microservices, and beyond\n\nAlongside technical tutorials, we also share motivational videos and host sessions with leading industry experts.\n\nWe don’t just stop at free tutorials—we also provide paid courses (live and recorded) and corporate training to help professionals and organizations upskill.\n\nSo, whether you’re just starting out or sharpening your professional skills, there’s always something here for you.\n\n📩 Business Inquiries: connect@telusko.com\n🎓 Explore Live & Recorded Courses: https://telusko.com/",
    "joinDate": null,
    "location": null,
    "subscribers": 2780000,
    "totalVideos": 2100,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/0nsZM3NF0C9bFr2IFXicMJ1w82ldRaZvGKFnezBe2lpW7F9gI92FaLubcTghnNNt4Ld8DfRvEMo=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "telusko.com",
        "url": "https://telusko.com/"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/navinreddyofficial"
      },
      {
        "platform": "linkedin",
        "url": "https://www.linkedin.com/in/navinreddy20/"
      }
    ],
    "recentVideos": [
      {
        "videoId": "b8u2vYilRtk",
        "title": "Master Agentic AI with Java Live Course Promo",
        "publishedAt": "10 hours ago",
        "durationSeconds": 65,
        "views": 11950,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Become an Agentic AI Expert.\nSpring AI, Langchain4J, Google ADK, MCP and many more..\n\nThis course is built for Java developers who want to go beyond basic LLM integration and actually build intelligent, autonomous AI systems. You will learn how to design and ship agentic applications using Spring AI, LangChain4j, Model Context Protocol, and Google's Agent Development Kit, the same tools being adopted across the industry right now.\n\nThe focus here is not theory for its own sake. Every concept is tied directly to working Java code you can deploy in real projects. From understanding how LLMs think to building multi-agent systems that act, reason, and remember, this course takes you through the full journey.\n\nCheck out the course:\n\nMastering Agentic AI with Java : https://go.telusko.com/agentic-ai\nCoupon: TELUSKO10   (10% Discount)\n\nFor More Queries WhatsApp or Call on  :  +919008963671\n\nwebsite : https://telusko.com/\n\nInstagram :   / navinreddyofficial  \nLinkedin :   / navinreddy20  \nWhatsApp : https://go.telusko.com/whatsapp\nTELUSKO Android App : https://go.telusko.com/TELUSKOAPP\nTELUSKO IOS App : https://apple.co/3SsgmU2\nDiscord :   / discord",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9hUw2j9Y2y0",
        "title": "Master Agentic AI with Java Live Course",
        "publishedAt": "18 hours ago",
        "durationSeconds": 704,
        "views": 19335,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Become an Agentic AI Expert.\nSpring AI, Langchain4J, Google ADK, MCP and many more..\n\nThis course is built for Java developers who want to go beyond basic LLM integration and actually build intelligent, autonomous AI systems. You will learn how to design and ship agentic applications using Spring AI, LangChain4j, Model Context Protocol, and Google's Agent Development Kit, the same tools being adopted across the industry right now.\n\nThe focus here is not theory for its own sake. Every concept is tied directly to working Java code you can deploy in real projects. From understanding how LLMs think to building multi-agent systems that act, reason, and remember, this course takes you through the full journey.\n\nCheck out the course:\n\nMastering Agentic AI with Java : https://go.telusko.com/agentic-ai\nCoupon: TELUSKO10   (10% Discount)\n\nFor More Queries WhatsApp or Call on  :  +919008963671\n\nwebsite : https://telusko.com/\n\nInstagram :   / navinreddyofficial  \nLinkedin :   / navinreddy20  \nWhatsApp : https://go.telusko.com/whatsapp\nTELUSKO Android App : https://go.telusko.com/TELUSKOAPP\nTELUSKO IOS App : https://apple.co/3SsgmU2\nDiscord :   / discord",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_br7HigaLH0",
        "title": "REST API Response Explained | Status Codes & Response Body | System Design | 8",
        "publishedAt": "7 days ago",
        "durationSeconds": 600,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, we will understand REST API Response Handling in a simple and practical way.\nIf you are building APIs or working on system design, knowing how to structure and handle API responses is extremely important.\n\nWe will cover:\n\nWhat is an API Response?\nStructure of a REST API Response\nHTTP Status Codes explained\nSuccess vs Error responses\nBest practices for clean and scalable API design\n\nBy the end of this video, you’ll clearly understand how to design and handle API responses like a professional developer.\n\nThis video is part of our System Design Series, where we break down complex concepts into simple explanations.\n\nCheck out our courses:\n\nMastering Agentic AI with Java: Spring AI, LangChain4j, MCP & ADK: https://go.telusko.com/agentic-ai\nCoupon: TELUSKO10   (10% Discount)\n\nDevOps Bootcamp: https://go.telusko.com/complete-devops\nCoupon: TELUSKO10   (10% Discount)\n\nMaster Java Spring Development : https://go.telusko.com/learn-master\nCoupon: TELUSKO10   (10% Discount)\n\nFor More Queries WhatsApp or Call on  :  +919008963671\n\nwebsite : https://telusko.com/\n\nInstagram : https://www.instagram.com/navinreddyofficial/\nLinkedin : https://in.linkedin.com/in/navinreddy20\nWhatsApp : https://go.telusko.com/whatsapp\nTELUSKO Android App : https://go.telusko.com/TELUSKOAPP\nTELUSKO IOS App : https://apple.co/3SsgmU2\nDiscord : https://discord.gg/D8hWe9BqfF",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gLv5czPnc18",
        "title": "REST API Requests Explained Clearly | System Design | 7",
        "publishedAt": "9 days ago",
        "durationSeconds": 993,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, we break down how a REST API Request works in real-world applications using JSON. This is a must-know concept for anyone preparing for System Design interviews, backend development, or building scalable applications.\n\nYou’ll learn how different parts of an API request come together to enable communication between client and server.\n\nTopics Covered:\n\n* HTTP Methods (GET, POST, PUT, DELETE)\n* REST Request Structure\n* Nested URLs (Resource Hierarchy)\n* Query Parameters (Filtering & Pagination)\n* Request Body in JSON (Sending Data)\n\nUnderstanding API design is a key step in mastering System Design, as every scalable system relies heavily on efficient API communication.\n\nThis video is part of our System Design Series, where we simplify complex concepts into easy-to-understand lessons.\n\nIf you're preparing for:\n\n* System Design Interviews\n* Backend Development Roles\n* Full Stack Development\n\nThis series is for you.\n\nNext Videos:\n\n* API Response Structure\n* Status Codes & Error Handling\n* Authentication & Authorization\n\nDon’t forget to Like, Share, and Subscribe for more System Design content.\n\nCheck out our courses:\n\nMastering Agentic AI with Java: Spring AI, LangChain4j, MCP & ADK: https://go.telusko.com/agentic-ai\nCoupon: TELUSKO10   (10% Discount)\n\nDevOps Bootcamp: https://go.telusko.com/complete-devops\nCoupon: TELUSKO10   (10% Discount)\n\nMaster Java Spring Development : https://go.telusko.com/learn-master\nCoupon: TELUSKO10   (10% Discount)\n\nFor More Queries WhatsApp or Call on  :  +919008963671\n\nwebsite : https://telusko.com/\n\nInstagram : https://www.instagram.com/navinreddyofficial/\nLinkedin : https://in.linkedin.com/in/navinreddy20\nWhatsApp : https://go.telusko.com/whatsapp\nTELUSKO Android App : https://go.telusko.com/TELUSKOAPP\nTELUSKO IOS App : https://apple.co/3SsgmU2\nDiscord : https://discord.gg/D8hWe9BqfF",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TKal4pZHr0U",
        "title": "End of Vibe Coding? Github Copilot Changes",
        "publishedAt": "13 days ago",
        "durationSeconds": 645,
        "views": 112125,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Is the golden era of \"vibe coding\" over? With GitHub Copilot moving to a usage-based billing model, building applications without knowing how to code is about to get a lot more expensive.\n\nLet's break down the recent changes to GitHub Copilot's pricing structure and what it means for everyday builders. We explore how the shift from bundled premium requests to a credit-based token system will impact how much you pay. We also discuss the removal of free fallback experiences, meaning once you exhaust your monthly credits, you will no longer have the option to rely on smaller, free models.\n\nMost importantly, we talk about how to survive and adapt to this shifting landscape:\n\nGo Back to Basics: Learning actual programming languages, frameworks, and system design is now crucial for writing efficient, cost-effective AI prompts.\n\nRun Local Models: You can use extensions like Roo Code to run smaller AI models locally on your own machine to save on subscription costs.\n\nAI is an incredible tool, but it is meant to be a helper, not a replacement for fundamental knowledge.\n\nI would love to hear your thoughts! How are you planning to adapt to these changes, and how do you plan to survive the end of cheap vibe coding?  Let me know in the comments below!\n\n#githubcopilot   #vibecoding  #softwareengineering  #ai  #programming \n\nCheck out our courses:\n\nMastering Agentic AI with Java: Spring AI, LangChain4j, MCP & ADK: https://go.telusko.com/agentic-ai\nCoupon: TELUSKO10   (10% Discount)\n\nDevOps Bootcamp: https://go.telusko.com/complete-devops\nCoupon: TELUSKO10   (10% Discount)\n\nMaster Java Spring Development : https://go.telusko.com/learn-master\nCoupon: TELUSKO10   (10% Discount)\n\nFor More Queries WhatsApp or Call on  :  +919008963671\n\nwebsite : https://telusko.com/\n\nInstagram :   / navinreddyofficial  \nLinkedin :   / navinreddy20  \nWhatsApp : https://go.telusko.com/whatsapp\nTELUSKO Android App : https://go.telusko.com/TELUSKOAPP\nTELUSKO IOS App : https://apple.co/3SsgmU2\nDiscord :   / discord",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ydL5NSrWfAk",
        "title": "AWS Cloud Deployment: Deploy Spring Boot via ECS, ECR & Elastic Beanstalk",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 5416,
        "views": 4131,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If you've ever built a Spring Boot app and wondered \"how do I actually get this thing live on AWS?\" this is the video you've been waiting for.\n\nNo fluff. No skipped steps. Just one complete, hands-on journey from your local machine to a production-ready cloud deployment.\n\nWe cover three of the most widely used AWS deployment strategies in the industry—so by the end, you won't just have a deployed app, you'll understand why each approach exists and when to use it.\n\nHere's what we'll build together:\nAWS Fundamentals — Understand the global infrastructure before diving into services. Concepts first, clicks second.\n\nElastic Beanstalk — The quickest way to deploy your Spring Boot app with AWS managing most of the infrastructure.\n\nDockerizing Spring Boot — Learn how to containerize your application for portability and consistency.\n\nAmazon ECR — Securely store, version, and manage your Docker images using AWS’s private container registry.\n\nAmazon ECS — Scale beyond a single container and understand AWS container orchestration in real-world deployments.\n\nWhether you're a developer stepping into DevOps or someone finally ready to seriously learn AWS deployment, this complete tutorial is designed for you.\n\nDrop a comment if you get stuck—I read every single one.\n\nCheck out our courses:\n\nMastering Agentic AI with Java: Spring AI, LangChain4j, MCP & ADK: https://go.telusko.com/agentic-ai\nCoupon: TELUSKO10   (10% Discount)\n\nDevOps Bootcamp: https://go.telusko.com/complete-devops\nCoupon: TELUSKO10   (10% Discount)\n\nMaster Java Spring Development : https://go.telusko.com/learn-master\nCoupon: TELUSKO10   (10% Discount)\n\nFor More Queries WhatsApp or Call on  :  +919008963671\n\nwebsite : https://telusko.com/\n\nInstagram :   / navinreddyofficial  \nLinkedin :   / navinreddy20  \nWhatsApp : https://go.telusko.com/whatsapp\nTELUSKO Android App : https://go.telusko.com/TELUSKOAPP\nTELUSKO IOS App : https://apple.co/3SsgmU2\nDiscord :   / discord  \n\n00:00:00 - Why Cloud and What is Cloud Computing\n00:11:35 - AWS Free tier Account creation\n00:16:10 - AWS Console and IAM Account\n00:23:28 - Simple WebApp Project\n00:32:33 - Deploying on Elastic Beanstalk\n00:40:43 - SpringBoot Project with DB\n00:46:32 - Creating Database in AWS RDS\n00:55:07 - Deploying app on AWS Beanstalk\n01:00:41 - Introduction to ECR\n01:06:16 - Configuring AWS CLI\n01:10:11 - Creating cluster, task and running task for MySQL\n01:20:39 - Pushing The Docker image of app\n01:24:40 - Running Java App Tasks",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UmYVFGCwg2w",
        "title": "What is an API? Types of APIs Explained | System Design | 6",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 772,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "APIs are the backbone of modern applications, but what exactly are they, and why do we need them?\n\nIn this video, we break down APIs from a System Design perspective — starting from the understanding APIs, to understanding its types.\n\nYou’ll learn:\n• Why APIs are needed in modern development\n• How frontend, backend, and different services communicate\n\nWe also cover different types of APIs:\n• REST (JSON-based, most commonly used)\n• SOAP (XML-based, legacy but still used in enterprises)\n• GraphQL (flexible data fetching)\n• gRPC (high-performance communication)\n• WebSockets (real-time communication)\n\nWhether you're preparing for interviews or trying to understand real-world systems, this video will give you a solid foundation.\n\nCheck out our courses:\n\nMastering Agentic AI with Java: Spring AI, LangChain4j, MCP & ADK: https://go.telusko.com/agentic-ai\nCoupon: TELUSKO10   (10% Discount)\n\nDevOps Bootcamp: https://go.telusko.com/complete-devops\nCoupon: TELUSKO10   (10% Discount)\n\nMaster Java Spring Development : https://go.telusko.com/learn-master\nCoupon: TELUSKO10   (10% Discount)\n\nFor More Queries WhatsApp or Call on  :  +919008963671\n\nwebsite : https://telusko.com/\n\nInstagram : https://www.instagram.com/navinreddyofficial/\nLinkedin : https://in.linkedin.com/in/navinreddy20\nWhatsApp : https://go.telusko.com/whatsapp\nTELUSKO Android App : https://go.telusko.com/TELUSKOAPP\nTELUSKO IOS App : https://apple.co/3SsgmU2\nDiscord : https://discord.gg/D8hWe9BqfF",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CyiqH3SoqBM",
        "title": "Gemma 4 makes a surprisingly good local Copilot",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 1341,
        "views": 46632,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If you are tired of paying for AI tools every month, this video will show you a practical alternative. \nWe explore how to use Gemma 4 locally and connect it with tools like LM Studio to build a powerful AI \nworkflow on your own machine.\n\nThe purpose of this video is not just to show another setup, but to help you understand how local AI \ncan reduce recurring API or subscription costs for many day-to-day tasks. We also look at what Gemma \n4 offers, how the local workflow works, and what kind of system and setup is needed to make it run \nproperly.\n\nBy the end of the video, you will have a clear idea of how to run Gemma 4 locally, where it fits well, \nand what to realistically expect from this approach. The explanation is kept practical, so you can \nunderstand both the benefits and the setup effort involved.\n\nThis video is useful for developers, students, and anyone who wants to explore open models in a more \nprivate and cost-effective way.\n\nCode Demo Generated in the Video: https://github.com/teluskoOrg/gemma-4...\n\nIf you enjoy practical AI and development content, subscribe to the channel and keep learning.\n\nCheck out our courses:\n\nMastering Agentic AI with Java: Spring AI, LangChain4j, MCP & ADK: https://go.telusko.com/agentic-ai\nCoupon: TELUSKO10   (10% Discount)\n\nDevOps Bootcamp: https://go.telusko.com/complete-devops\nCoupon: TELUSKO10   (10% Discount)\n\nMaster Java Spring Development : https://go.telusko.com/learn-master\nCoupon: TELUSKO10   (10% Discount)\n\nFor More Queries WhatsApp or Call on  :  +919008963671\n\nwebsite : https://telusko.com/\n\nInstagram :   / navinreddyofficial  \nLinkedin :   / navinreddy20  \nWhatsApp : https://go.telusko.com/whatsapp\nTELUSKO Android App : https://go.telusko.com/TELUSKOAPP\nTELUSKO IOS App : https://apple.co/3SsgmU2\nDiscord :   / discord",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "InMdwHLfopA",
        "title": "Vectors Embeddings | Spring AI",
        "publishedAt": "1 month ago",
        "durationSeconds": 1337,
        "views": 5119,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build a strong foundation in AI Engineering by understanding one of the most important concepts behind\nmodern intelligent systems: embeddings.\n\nIn this video, we explain how text is transformed into numerical representations that help AI systems\nidentify meaning, similarity, and relationships between words and sentences. Along with the core theory,\nwe also walk through the practical implementation using Spring AI and Mistral AI.\n\nWhat You’ll Learn:\n▶️Understanding the Core Idea\nWhy meaning matters more than exact word matching in AI applications\nHow text is converted into vectors in multi-dimensional space\nHow similarity between vectors is measured using cosine similarity\nWhy embeddings are essential for semantic search, recommendation systems, and RAG-based applications\n\n▶️Practical Implementation\nLive walkthrough of generating embeddings using the Mistral AI API\nTesting embedding APIs using Insomnia\nIntegrating embeddings into a Java Spring Boot project with Spring AI\nAdding and configuring Mistral and Anthropic dependencies\nHandling real-world issues such as bean conflicts and multi-model configuration\n\nResources:\n\nSpring AI Source Code:  https://github.com/teluskoOrg/SpringA...\n\nCheck out our courses:\n\nMastering Agentic AI with Java: Spring AI, LangChain4j, MCP & ADK: https://go.telusko.com/agentic-ai\nCoupon: TELUSKO10   (10% Discount)\n\nDevOps Bootcamp: https://go.telusko.com/complete-devops\nCoupon: TELUSKO10   (10% Discount)\n\nMaster Java Spring Development : https://go.telusko.com/learn-master\nCoupon: TELUSKO10   (10% Discount)\n\nFor More Queries WhatsApp or Call on  :  +919008963671\n\nwebsite : https://telusko.com/\n\nInstagram :   / navinreddyofficial  \nLinkedin :   / navinreddy20  \nWhatsApp : https://go.telusko.com/whatsapp\nTELUSKO Android App : https://go.telusko.com/TELUSKOAPP\nTELUSKO IOS App : https://apple.co/3SsgmU2\nDiscord :   / discord",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "q9G3D2h0htA",
        "title": "Prompt Template | Spring AI",
        "publishedAt": "1 month ago",
        "durationSeconds": 979,
        "views": 10759,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "PromptTemplate is one of the most powerful features in Spring AI for building dynamic and structured prompts that lead to better, more relevant AI responses. This session focuses on how to effectively use PromptTemplate to control and customize interactions with AI models without diving into full-scale prompt engineering.\n\nYou’ll learn how prompt quality directly impacts AI output, and how to improve responses by structuring inputs properly. The video demonstrates a practical implementation using a movie recommendation use case, where inputs like year, language, and genre are passed dynamically into the prompt to generate personalized results.\n\nA clear distinction between system prompts and user prompts is also covered, along with how to define and pass each of them when generating responses. By the end, you’ll have a solid understanding of how to use PromptTemplate in real-world Spring AI applications to build more flexible and intelligent systems.\n\nThis is a hands-on, practical walkthrough designed for developers who want to move beyond static prompts and start building smarter AI-powered features using Spring AI.\n\nResources:\n\nSpring AI Source Code:  https://github.com/teluskoOrg/SpringA...\n\nCheck out our courses:\n\nMastering Agentic AI with Java: Spring AI, LangChain4j, MCP & ADK: https://go.telusko.com/agentic-ai\nCoupon: TELUSKO10   (10% Discount)\n\nDevOps Bootcamp: https://go.telusko.com/complete-devops\nCoupon: TELUSKO10   (10% Discount)\n\nMaster Java Spring Development : https://go.telusko.com/learn-master\nCoupon: TELUSKO10   (10% Discount)\n\nFor More Queries WhatsApp or Call on  :  +919008963671\n\nwebsite : https://telusko.com/\n\nInstagram :   / navinreddyofficial  \nLinkedin :   / navinreddy20  \nWhatsApp : https://go.telusko.com/whatsapp\nTELUSKO Android App : https://go.telusko.com/TELUSKOAPP\nTELUSKO IOS App : https://apple.co/3SsgmU2\nDiscord :   / discord",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "q6z_UCBM5Ek",
        "title": "Complete Java Development: Spring Boot, Microservices, Spring AI",
        "publishedAt": "1 month ago",
        "durationSeconds": 226508,
        "views": 594469,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This is not just another Java video. This is a complete 63 hour roadmap designed to take you through the full journey of becoming a modern Java developer.\n\nIn this comprehensive masterclass,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xRB0-cyZGic",
        "title": "Java 26 is here : Finally final is final",
        "publishedAt": "1 month ago",
        "durationSeconds": 436,
        "views": 34885,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, we take a professional and practical look at JDK 26 and understand its final released features in a clear and simple way. Rather than focusing on preview and incubator features,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bHF2F8XcmSs",
        "title": "Building a Clone of ChatGPT | Spring AI",
        "publishedAt": "1 month ago",
        "durationSeconds": 1658,
        "views": 11013,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this comprehensive guide, we are building a functional AI Chatbot from scratch using *Spring AI* . If you’ve ever wanted to create your own ChatGPT-like application using the Java ecosystem,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pfd68UI5KzU",
        "title": "What is DNS? | System Design | 5",
        "publishedAt": "2 months ago",
        "durationSeconds": 739,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The internet works on IP addresses, but humans prefer easy-to-remember names like telusko.com.\nSo how does the internet translate domain names into IP addresses?\n\nIn this video, we explore...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XgN6o_rNXZk",
        "title": "Gen AI with Spring AI",
        "publishedAt": "2 months ago",
        "durationSeconds": 1223,
        "views": 40992,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Welcome back, everyone! In this video, *Navin Reddy* introduces *Spring AI* and explains how developers can integrate *generative AI capabilities into Java applications* using the Spring ecosystem....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DpWnqo12tzE",
        "title": "Industry-Ready Spring Boot, React & Gen AI -Live Course",
        "publishedAt": "2 months ago",
        "durationSeconds": 405,
        "views": 7104,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Industry-Ready Spring Boot, React & Gen AI -Live Course : https://go.telusko.com/industry-ready-springboot\nCoupon: TELUSKO10   (10% Discount)\n\nFor More Queries WhatsApp or Call on  :  +919008963671...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MG69I2dPTVo",
        "title": "Functional and Non-Functional Requirements | System Design | 4",
        "publishedAt": "2 months ago",
        "durationSeconds": 497,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Understanding requirements is the first step in designing any system. Before deciding on architecture or technology, it is important to clearly define what the system should do and how it should...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "j_JuhAWlEaI",
        "title": "Python Tutorial for Beginners 2026",
        "publishedAt": "2 months ago",
        "durationSeconds": 30929,
        "views": 126531,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "*Master Python in One Video: From Beginner to Advanced*\n\nReady to master Python from scratch? Whether you're a complete beginner or looking to solidify your advanced programming skills, this...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PXetOQFUU6w",
        "title": "Industry-Ready Spring Boot, React & Gen AI -Live Course | TELUSKO",
        "publishedAt": "2 months ago",
        "durationSeconds": 155,
        "views": 3194127,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Industry-Ready Spring Boot, React & Gen AI -Live Course : https://go.telusko.com/industry-ready-springboot\nCoupon: TELUSKO10   (10% Discount)\n\nFor More Queries WhatsApp or Call on  :  +919008963671...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LxQBJdyOvfc",
        "title": "Multithreading in Python",
        "publishedAt": "2 months ago",
        "durationSeconds": 1961,
        "views": 12840,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, we’ll dive deep into the concept of Multithreading — from theory to practical implementation.\n\nHere’s what we’ll cover 👇\n\n▶️ What are Threads?\n  We’ll understand...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "T2iHwUT4hec",
        "title": "Data-Intensive & Compute-Intensive Applications | System Design | 3",
        "publishedAt": "2 months ago",
        "durationSeconds": 796,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video from Telusko, we’re breaking down a very important — and often misunderstood — \nSystem Design concept:\n\nData-Intensive vs Compute-Intensive Applications.\n\nNot every system...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AOzbyMdcK3U",
        "title": "System Design Components | 2",
        "publishedAt": "3 months ago",
        "durationSeconds": 972,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, we break down the core components of System Design that every software engineer must understand before diving into real-world architecture.\n\nWe discuss the most important system...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "d83w7E2sBrk",
        "title": "What is System Design? | Telusko | 1",
        "publishedAt": "3 months ago",
        "durationSeconds": 982,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "What is system design, and why does it matter for software developers?\n\nMost developers focus on writing clean and efficient code. But as applications scale, code-level optimization alone is...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eJXTXCqlVss",
        "title": "Moltbot : AI Personal Assistant OpenClaw",
        "publishedAt": "3 months ago",
        "durationSeconds": 959,
        "views": 47941,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Discover OpenClaw (formerly Moltbot and ClawdBot), a powerful AI personal assistant that helps automate tasks directly on your local machine.\n\nIn this video, I demonstrate how to integrate...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gpx7smdUkgU",
        "title": "Spring Boot + Kafka Course | Learn Apache Kafka in One Shot!",
        "publishedAt": "3 months ago",
        "durationSeconds": 4758,
        "views": 65933,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "00:00 – Why Kafka & What is Kafka\n11:48 – Kafka Core Concepts (Topic, Partition, Broker, Leader, Replication)\n37:56 – ZooKeeper & Kafka Installation\n50:02 – Kafka Topic Creation\n52:41...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-9OzMmA2MXg",
        "title": "AI-Powered DevOps with AWS Live Course V3 | Telusko",
        "publishedAt": "3 months ago",
        "durationSeconds": 491,
        "views": 3842,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out our courses:\n\nAI-Powered DevOps with AWS- Live V3: https://go.telusko.com/ai-powered-devops-with-AWS-v3\nCoupon: TELUSKO10   (10% Discount)\n\nFor More Queries WhatsApp or Call on  :...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KNQICMxxopM",
        "title": "AI-Powered DevOps with AWS-Live Course V3 | Telusko",
        "publishedAt": "3 months ago",
        "durationSeconds": 91,
        "views": 3444102,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out our courses:\n\nAI-Powered DevOps with AWS- Live V3: https://go.telusko.com/ai-powered-devops-with-AWS-v3\nCoupon: TELUSKO10   (10% Discount)\n\nFor More Queries WhatsApp or Call on  :...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "K1n0YQlcPT0",
        "title": "Exception Handling in Python | 53",
        "publishedAt": "3 months ago",
        "durationSeconds": 1408,
        "views": 9794,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, we’ll understand Exception Handling in Python in detail — starting from basic concepts and moving all the way to practical implementation.\n\nHere’s what we’ll cover 👇...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tS_zLaH-tew",
        "title": "Linux Essentials for DevOps and Cloud | One-Shot Linux Tutorial",
        "publishedAt": "4 months ago",
        "durationSeconds": 5758,
        "views": 29145,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn Linux from scratch to advanced commands in this complete one-shot tutorial. This 1 hour 40-minute video covers everything a beginner needs to know before diving into advanced topics....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TUpwQ6zT1cI",
        "title": "Abstract Class and Abstract Method in Python | 52",
        "publishedAt": "4 months ago",
        "durationSeconds": 915,
        "views": 7603,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, we’ll explore the concept of Abstraction in detail — using real-world examples and practical implementation in Python.\n\nHere’s what we’ll cover 👇\n\n▶️ What is Abstracti...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 13,
      "uploadsLast90d": 28,
      "uploadCadenceWeekly": 2.18,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 19335,
      "viewsPerVideoP90Last90d": 594469,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 19335,
      "p90Views": 594469,
      "p99Views": 3194127,
      "outperformingVideosLast90d": 3
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": "[REDACTED]",
      "businessEmailSource": "channel-about-section",
      "businessEmailMxValid": true,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "telusko.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "high",
      "components": {
        "businessEmailPresent": true,
        "businessEmailValid": true,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Will likely respond to sponsorship outreach: business email validated + active sponsor history + external website live."
    },
    "topicPillars": [
      {
        "label": "telusko",
        "share": 0.57,
        "evidenceVideoIds": [
          "b8u2vYilRtk",
          "9hUw2j9Y2y0",
          "_br7HigaLH0",
          "gLv5czPnc18",
          "TKal4pZHr0U"
        ]
      },
      {
        "label": "spring",
        "share": 0.53,
        "evidenceVideoIds": [
          "b8u2vYilRtk",
          "9hUw2j9Y2y0",
          "_br7HigaLH0",
          "gLv5czPnc18",
          "TKal4pZHr0U"
        ]
      },
      {
        "label": "com",
        "share": 0.5,
        "evidenceVideoIds": [
          "b8u2vYilRtk",
          "9hUw2j9Y2y0",
          "_br7HigaLH0",
          "gLv5czPnc18",
          "TKal4pZHr0U"
        ]
      },
      {
        "label": "java",
        "share": 0.47,
        "evidenceVideoIds": [
          "b8u2vYilRtk",
          "9hUw2j9Y2y0",
          "_br7HigaLH0",
          "gLv5czPnc18",
          "TKal4pZHr0U"
        ]
      },
      {
        "label": "https",
        "share": 0.47,
        "evidenceVideoIds": [
          "b8u2vYilRtk",
          "9hUw2j9Y2y0",
          "_br7HigaLH0",
          "gLv5czPnc18",
          "TKal4pZHr0U"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Friday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "B",
      "rationale": "business email validated, consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "strong",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 45,
      "reason": "validated business email",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.95
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.8,
      "level": "high",
      "coldStart": false
    },
    "whyThisMatters": "validated business email. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Telusko — 2.8M subs, B-tier sponsorship readiness, high contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": true,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 45,
      "readyForOutreach": false,
      "blockers": [],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.65,
      "urgency": 0,
      "noiseRisk": 0.2
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": {
      "isValidFormat": true,
      "canonical": "connect@telusko.com",
      "domain": "telusko.com",
      "lineType": "corporate",
      "mxValid": true,
      "confidence": 0.9,
      "originalInput": "connect@telusko.com",
      "email": null
    },
    "allEmailValidations": [
      {
        "isValidFormat": true,
        "canonical": "connect@telusko.com",
        "domain": "telusko.com",
        "lineType": "corporate",
        "mxValid": true,
        "confidence": 0.9,
        "originalInput": "connect@telusko.com",
        "email": null
      }
    ],
    "contactabilityScore": {
      "score": 88,
      "level": "high",
      "components": {
        "presence": 25,
        "sourceQuality": 18,
        "validationQuality": 18,
        "identityStrength": 14,
        "freshness": 8,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "email",
      "secondary": "agency-form",
      "reason": "Validated business email + active sponsor history — email-first maximises response rate."
    },
    "sequenceFit": {
      "directOutreachAllowed": true,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "channel-about",
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.88
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.88,
      "gap": 0.06,
      "howToClose": [
        "Run ryanclinton/person-enrichment-lookup against 'connect@telusko.com' to identify the inbox owner."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "high",
      "score": 0.85,
      "factors": [
        "business-email-validated",
        "external-website-active",
        "corporate-email-domain"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + validated corporate business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:corporate",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [],
      "safeChannels": [
        "email",
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [
      {
        "email": "[REDACTED]",
        "rank": 1,
        "reason": "corporate-domain email",
        "role": "business"
      }
    ],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": true,
      "requiresEnrichment": false,
      "priorityQueue": "medium"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "B-tier readiness — nurture or enrich before outreach.",
      "appliedRules": [
        "contactability:high"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 64,
      "reasons": [
        "Validated business email (MX confirmed)",
        "Low confidence-conflict count in scoring trace"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "4340cfac591598946ea7f980f0f09a5daa5631384820116576ccfcb515cd109d",
      "inputsHash": "be17119932d4cc8680766c2ca6e8ad96e8dbaa9b2fdf1fd91bd7aa3f57d3ca34",
      "rulesApplied": [
        "business-email-validated",
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:16.818Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "d0558c98d25aa0ab6c91ca004f9317ced2246b48d3837433a821fcc1d2a3cd28",
    "channelId": "UCrqM0Ym_NbK1fqeQG2VIohg",
    "channelHandle": "@TsodingDaily",
    "channelName": "Tsoding Daily",
    "channelUrl": "https://www.youtube.com/@TsodingDaily",
    "description": "\"Daily\" Development Log of Tsoding.\n\nIf you want to repost a clip from this channel, feel free to do so, but please credit the channel and provide the link to the original video. Thank you!",
    "joinDate": null,
    "location": null,
    "subscribers": 206000,
    "totalVideos": 672,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/sVrBLZ9iy76XIN5eSdlLqLVQsy60VaQ_YD_Vvu1tTyRIw5Yk9OZK2ZoKhiZh4svRMzm6OZ_M=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "kick.com",
        "url": "https://kick.com/tsoding"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/tsoding"
      },
      {
        "platform": "discord",
        "url": "https://discord.gg/KehewYS"
      },
      {
        "platform": "twitch",
        "url": "https://twitch.tv/tsoding"
      }
    ],
    "recentVideos": [
      {
        "videoId": "aMPu_Fy756M",
        "title": "Entity System in C",
        "publishedAt": "4 days ago",
        "durationSeconds": 11341,
        "views": 29352,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch:   / tsoding  \nEnable Subtitles for Twitch Chat\n\nPlaylist:    • 3D Software Rendered Game  \n\nReferences:\nPenger Model: https://github.com/Max-Kawula/penger-obj\n   • RustConf 2018 - Closing Keynote - Using Ru...  \n   • Rant: Entity systems and the Rust borrow c...  \n\nChapters:\n00:00:00 - Teaser\n00:00:50 - Intro\n00:12:55 - Sketching out Entity System\n00:30:06 - Integrating Entity System into the Game\n02:24:29 - Integration Completed\n02:26:48 - Item Collection\n02:35:23 - Generational Indices\n03:04:24 - Outro\n\nTopic: Implementing Entity System with Generational Indices for my Software Rendered Game.\n\nTwitch Chat in Subtitles generated by: https://github.com/kam1k4dze/subchat\n\nSupport:\nhttps://github.com/tsoding/donate#sup...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DWM59pDlUUs",
        "title": "Beatboxing for 10 hours",
        "publishedAt": "8 days ago",
        "durationSeconds": 36032,
        "views": 31626,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Taken from this session: https://www.youtube.com/watch?v=0ebreGjhEvo",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0ebreGjhEvo",
        "title": "Functional Programming of Balls",
        "publishedAt": "8 days ago",
        "durationSeconds": 8556,
        "views": 39543,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch:   / tsoding  \nEnable Subtitles for Twitch Chat\n\nPlaylist:    • Standard ML  \n\nReferences:\nhttps://github.com/tsoding/raylib-sml\n\nChapters:\n00:00:00 - Intro\n00:06:17 - Calling compiler with Process.system\n00:16:25 - Problem with Process.system\n00:21:19 - Unix.execute\n00:25:14 - Echo command\n01:00:27 - Porting the build system to SML\n01:12:51 - Random color\n01:35:27 - Multiple balls\n02:02:33 - Gravity\n02:04:07 - Mouse click\n02:11:37 - Restitution\n02:13:37 - Outro\n\nTopic: Continue working on Raylib SML Bindings\n\nTwitch Chat in Subtitles generated by: https://github.com/kam1k4dze/subchat\n\nSupport:\nhttps://github.com/tsoding/donate#sup...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Selwqz5xI0M",
        "title": "Data is Stored in Tarballs",
        "publishedAt": "12 days ago",
        "durationSeconds": 7968,
        "views": 34704,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch:   / tsoding  \nEnable Subtitles for Twitch Chat\n\nReferences:\nWikipedia: https://en.wikipedia.org/wiki/Tar_(co...)\nNotes: https://github.com/tsoding/tarballs\n\nChapters:\n00:00:00 - intro\n00:03:56 - preparing test data\n00:07:44 - first look at a .tar file\n00:10:50 - reading tar file from C\n00:16:02 - reading wikipedia article\n00:18:10 - 512-bytes records\n00:26:22 - long paths\n00:31:44 - header\n00:52:13 - unpacking .tar file\n01:18:17 - generating .tar file\n02:06:22 - mounting .tar files\n02:11:47 - outro\n\nTopic: Exploring tar format\n\nTwitch Chat in Subtitles generated by: https://github.com/kam1k4dze/subchat\n\nSupport:\nhttps://github.com/tsoding/donate#sup...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1wkUyzUPo6Q",
        "title": "Bindings Generator",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 9879,
        "views": 31913,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch:   / tsoding  \nEnable Subtitles for Twitch Chat\n\nPlaylist:    • Standard ML  \n\nReferences:\nhttps://github.com/tsoding/raylib-sml\n\nChapters:\n00:00:00 - Intro\n00:03:28 - Locating Raylib Parser\n00:09:12 - Hacking Raylib Parser\n00:13:44 - SML Target\n00:21:05 - SML Functions Signatures\n00:33:15 - Type Maping\n00:46:18 - Skipping Functions\n01:00:05 - C Function Signatures\n01:09:15 - C Function Implementations\n01:24:18 - Compiling C code into DLL\n01:38:11 - C to Value conversion\n01:42:55 - Val_string\n01:51:01 - Rest of the Value conversions\n01:54:31 - Generation statistics\n01:55:59 - Generating ML Code\n02:08:15 - Color Type support\n02:13:19 - Real Type support\n02:21:34 - What's the use case for Bonsai?\n02:23:50 - Compile Example with New Bindings\n02:38:42 - Bajoding Achieved Internally\n02:40:43 - Loading Raylib Dynamically\n02:43:08 - Outro\n\nTopic: Implement Raylib Bindings Generator for SML\n\nTwitch Chat in Subtitles generated by: https://github.com/kam1k4dze/subchat\n\nSupport:\nhttps://github.com/tsoding/donate#sup...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rLM-9jrA70o",
        "title": "This is Better Than OCaml",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 11284,
        "views": 42744,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch:   / tsoding  \nEnable Subtitles for Twitch Chat\n\nPlaylist:    • Standard ML  \n\nReferences:\nhttps://en.wikipedia.org/wiki/Standar...\nhttps://smlfamily.github.io/\nhttps://www.smlnj.org/\nhttps://mosml.org/\nhttps://github.com/emacsmirror/sml-mode\nhttps://github.com/ggml-org/llama.cpp\nhttps://huggingface.co/prism-ml/Bonsa...\nhttps://github.com/tsoding/raylib-sml\n\nChapters:\n00:00:00 - Intro\n00:02:59 - Standard ML of New Jersey\n00:12:18 - Moscow ML\n00:19:08 - Broken Architecture Check\n00:31:07 - First Look at Moscow ML\n00:43:29 - Emacs mode\n01:01:19 - Programming in SML\n01:05:55 - Fibonacci Numbers\n01:14:16 - Tea Break\n01:19:57 - Playing with Bonsai\n01:26:37 - Back to Fibonacci Numbers\n01:44:43 - Raylib speedrun\n02:04:47 - Raylib Window Achieved\n02:05:22 - Passing Arguments to C\n02:10:27 - More Raylib Bindings\n02:28:32 - The DVD Logo Test\n03:04:39 - Outro\n\nTopic: Checking out Standard ML\n\nTwitch Chat in Subtitles generated by: https://github.com/kam1k4dze/subchat\n\nSupport:\nhttps://github.com/tsoding/donate#sup...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "iotrPxUnTdQ",
        "title": "Reference Counting in C",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 8234,
        "views": 41109,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch:   / tsoding  \nEnable Subtitles for Twitch Chat\n\nReferences:\nhttps://en.wikipedia.org/wiki/Referen...\nhttps://github.com/tsoding/rc.h\n\nChapters:\n00:00:00 - Intro\n00:09:36 - Expr Tree\n00:29:45 - Dumping Exprs\n00:37:15 - Constructing Lists\n00:45:37 - Integers\n00:48:01 - Eval\n00:56:30 - Reference Counting\n00:59:45 - First API approach\n01:21:58 - Destructors\n01:27:53 - Shadow Data\n01:38:07 - rc.h\n01:39:54 - Release/Acquire strategy\n02:15:47 - Outro\n\nTopic: Exploring the concept of Reference Counting\n\nTwitch Chat in Subtitles generated by: https://github.com/kam1k4dze/subchat\n\nSupport:\nhttps://github.com/tsoding/donate#sup...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tbPOFYwL7Ss",
        "title": "Very Big Integers",
        "publishedAt": "1 month ago",
        "durationSeconds": 6107,
        "views": 73511,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch:   / tsoding  \nEnable Subtitles for Twitch Chat\n\nReferences:\nhttps://gmplib.org/\nhttps://github.com/tsoding/bignum-notes\n\nChapters:\n00:00:00 - Intro\n00:01:08 - Fibonacci numbers in C\n00:03:47 - Fibonacci numbers in Python\n00:05:57 - BigInt in C\n00:44:54 - GMP\n01:16:43 - Comparing performance\n01:39:22 - Outro\n\nTopic: Exploring the concept of Big Integers and looking into libgmp library.\n\nTwitch Chat in Subtitles generated by: https://github.com/kam1k4dze/subchat\n\nSupport:\nhttps://github.com/tsoding/donate#sup...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "HNX5AJGoOrU",
        "title": "Collision Detection in C",
        "publishedAt": "1 month ago",
        "durationSeconds": 12460,
        "views": 31888,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch:   / tsoding  \nEnable Subtitles for Twitch Chat\n\nPlaylist:    • 3D Software Rendered Game  \n\nChapters:\n00:00:00 - Day 1\n01:51:18 - Day 2\n\nTopic: Continue working on my software rendered game. Today I'm trying to implement some sort of barrier system so we could have walls in the game\n\nTwitch Chat in Subtitles generated by: https://github.com/kam1k4dze/subchat\n\nSupport:\nhttps://github.com/tsoding/donate#sup...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RtXQ5kHOpMo",
        "title": "Raylib from Jai",
        "publishedAt": "1 month ago",
        "durationSeconds": 8822,
        "views": 36503,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch:   / tsoding  \nEnable Subtitles for Twitch Chat\n\nReferences:\nhttps://www.raylib.com/\n\nChapters:\n00:00:00 - Main Session\n02:05:43 - Footnote\n\nTopic: Just doing some graphics programming in Jai + Raylib\n\nTwitch Chat in Subtitles generated by: https://github.com/kam1k4dze/subchat\n\nSupport:\nhttps://github.com/tsoding/donate#sup...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_dVchhnO_KI",
        "title": "A small C compiler",
        "publishedAt": "1 month ago",
        "durationSeconds": 9981,
        "views": 69302,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch: https://twitch.tv/tsoding\nEnable Subtitles for Twitch Chat\n\nReferences:\n- https://github.com/rui314/chibicc\n- tinycc autoderef extention: https://www.youtube.com/watch?v=yK...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8NdRGmp70Go",
        "title": "Compiler for a Query Language",
        "publishedAt": "2 months ago",
        "durationSeconds": 7825,
        "views": 33102,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch: https://twitch.tv/tsoding\nEnable Subtitles for Twitch Chat\n\nReferences:\n- https://github.com/bext-lang/b\n- https://github.com/tsoding/flag.h\n\nChapters:\n- 00:00:00 -...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Ed3GLO90FVU",
        "title": "Triangular Color Wheel in C",
        "publishedAt": "2 months ago",
        "durationSeconds": 12107,
        "views": 33252,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch: https://twitch.tv/tsoding\nEnable Subtitles for Twitch Chat\n\nPlaylist: https://www.youtube.com/playlist?list=PLpM-Dvs8t0VaOBDp6cVRLBScgSJ2L8blq\n\nReferences:\n- https://www.ra...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LW0VdufnCBQ",
        "title": "Calculator GUI App in GTK",
        "publishedAt": "2 months ago",
        "durationSeconds": 10256,
        "views": 53255,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch: https://twitch.tv/tsoding\nEnable Subtitles for Twitch Chat\n\nReferences:\n- Previous Stream: https://www.youtube.com/watch?v=t4any72mFR0\n- Vala: https://vala.dev/\n- GTK:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "t4any72mFR0",
        "title": "Library so BAD they Created a Language to fix it",
        "publishedAt": "2 months ago",
        "durationSeconds": 7350,
        "views": 47619,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch: https://twitch.tv/tsoding\nEnable Subtitles for Twitch Chat\n\nReferences:\n- gobject: https://docs.gtk.org/gobject/\n- Vala: https://vala.dev/\n\nChapters:\n- 00:00:00 - Intro...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3nedY-aq-wE",
        "title": "GameDev in C - Figuring out UX for the Level Editor",
        "publishedAt": "2 months ago",
        "durationSeconds": 8137,
        "views": 25542,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch: https://twitch.tv/tsoding\nEnable Subtitles for Twitch Chat\n\nPlaylist: https://www.youtube.com/playlist?list=PLpM-Dvs8t0VaOBDp6cVRLBScgSJ2L8blq\n\nChapters:\n- 00:00:00...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zwaT9myowuU",
        "title": "Optimizing Engagement with Go",
        "publishedAt": "2 months ago",
        "durationSeconds": 11349,
        "views": 31079,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch: https://twitch.tv/tsoding\nEnable Subtitles for Twitch Chat\n\nPlaylist: https://www.youtube.com/playlist?list=PLpM-Dvs8t0VYZnxJb0_AOGNLbFOTiUoe4\n\nChapters:\n- 00:00:00...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JsfOXk7qmSM",
        "title": "Email Spam Filter in Go",
        "publishedAt": "2 months ago",
        "durationSeconds": 8183,
        "views": 40657,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch: https://twitch.tv/tsoding\nEnable Subtitles for Twitch Chat\n\nPlaylist: https://www.youtube.com/playlist?list=PLpM-Dvs8t0VYZnxJb0_AOGNLbFOTiUoe4\n\nChapters:\n- 00:00:00...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZLaVglK9IKs",
        "title": "GameDev in C - Quake-Style Console",
        "publishedAt": "3 months ago",
        "durationSeconds": 7761,
        "views": 36787,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch: https://twitch.tv/tsoding\nEnable Subtitles for Twitch Chat\n\nPlaylist: https://www.youtube.com/playlist?list=PLpM-Dvs8t0VaOBDp6cVRLBScgSJ2L8blq\n\nChapters:\n- 00:00:00...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "l9hUGoN6BLM",
        "title": "I tried Lean and instantly got PhD in Math",
        "publishedAt": "3 months ago",
        "durationSeconds": 11710,
        "views": 108818,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch: https://twitch.tv/tsoding\nEnable Subtitles for Twitch Chat\n\nChapters:\n- 00:00:00 - Intro\n- 00:01:37 - Installing Lean\n- 00:39:48 - Editor support\n- 00:45:54 - Hello...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9qNIsuYjOe0",
        "title": "Autodoc Tool in C",
        "publishedAt": "3 months ago",
        "durationSeconds": 8888,
        "views": 34701,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch: https://twitch.tv/tsoding\nEnable Subtitles for Twitch Chat\n\nChapters:\n- 00:00:00 - Intro\n- 00:02:51 - Adding doc program\n- 00:09:03 - Reading file\n- 00:11:50 - Analysing...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VMatzTGT8NI",
        "title": "Clustering in C (DBSCAN)",
        "publishedAt": "3 months ago",
        "durationSeconds": 14724,
        "views": 39012,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch: https://twitch.tv/tsoding\nEnable Subtitles for Twitch Chat\n\nChapters:\n- 00:00:00 - Day 01 - Learning DBSCAN\n- 02:02:40 - Day 02 - Segmenting Images\n\nReferences:\n- https://e...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Mxai0P3rUDk",
        "title": "Type Reflections in Jai",
        "publishedAt": "3 months ago",
        "durationSeconds": 5502,
        "views": 40425,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Offline\n\nChapters:\n- 00:00:00 - TBD\n\nReferences:\n- https://github.com/rluba/jaison\n- https://www.frankerfacez.com/\n\nTopic: Extending jaison to support Hash Tables of Pointers\n\nSupport:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wZQvuILq0xw",
        "title": "This is Better Than Protobuf",
        "publishedAt": "3 months ago",
        "durationSeconds": 6214,
        "views": 45188,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch: https://twitch.tv/tsoding\n\nChapters:\n- 00:00:00 - Intro\n- 00:01:45 - libtasn1\n- 00:05:41 - Building libtasn1\n- 00:11:59 - Fighting with asn1 files\n- 00:32:51 - Using...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Gu_L8MPvGJM",
        "title": "Deciphering Academic Slop",
        "publishedAt": "4 months ago",
        "durationSeconds": 7593,
        "views": 116927,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch: https://twitch.tv/tsoding\n\nChapters:\n- 00:00:00 - Teaser\n- 00:00:37 - Intro\n- 00:06:01 - Venation\n- 00:09:18 - Historical and and Mathematical Background\n- 00:19:16...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kYXUka-TKiM",
        "title": "Trying to do a Good Job in a Slop Economy",
        "publishedAt": "4 months ago",
        "durationSeconds": 10761,
        "views": 40744,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch: https://twitch.tv/tsoding\n\nChapters:\n- 00:00:00 - Pre-stream\n- 00:06:43 - Intro\n- 00:09:52 - Default Image\n- 00:22:51 - Baking default image\n- 00:42:39 - Default Model...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pK3xz5kWGHQ",
        "title": "Recursive Directory Walker in C",
        "publishedAt": "4 months ago",
        "durationSeconds": 11946,
        "views": 40123,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch: https://twitch.tv/tsoding\n\nChapters:\n- 00:00:00 - TBD\n\nReferences:\n- https://github.com/tsoding/nob.h\n- https://semver.org/\n- https://github.com/tsoding/minirent\n\nTopic:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "G4Ugv18tJ5E",
        "title": "Classy Little Scripting Language",
        "publishedAt": "4 months ago",
        "durationSeconds": 12908,
        "views": 47638,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch: https://twitch.tv/tsoding\n\nChapters:\n- 00:00:00 - Intro\n- 00:08:45 - Building Wren\n- 00:12:50 - Wren CLI\n- 00:16:40 - Embedding\n- 00:24:12 - Version\n- 00:26:13 - Configurin...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "K7-p3rQd6zk",
        "title": "GameDev in C - Logging System",
        "publishedAt": "4 months ago",
        "durationSeconds": 8203,
        "views": 39835,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch: https://twitch.tv/tsoding\n\nMore episodes: https://www.youtube.com/playlist?list=PLpM-Dvs8t0VaOBDp6cVRLBScgSJ2L8blq\n\nChapters:\n- 00:00:00 - Pre-Intro\n- 00:01:49 - Intro...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "iVKhLBrQOQE",
        "title": "Objective-C on Linux",
        "publishedAt": "4 months ago",
        "durationSeconds": 9322,
        "views": 48362,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Streamed Live on Twitch: https://twitch.tv/tsoding\n\nChapters:\n- 00:00:00 - Pre-intro\n- 00:00:57 - Intro\n- 00:02:56 - Hello World in C\n- 00:06:12 - First Class\n- 00:15:36 - Instantiating Object...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 11,
      "uploadsLast90d": 24,
      "uploadCadenceWeekly": 1.87,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 36787,
      "viewsPerVideoP90Last90d": 53255,
      "viewVelocityTrend": "stable"
    },
    "performanceBaseline": {
      "p50Views": 36787,
      "p90Views": 53255,
      "p99Views": 73511,
      "outperformingVideosLast90d": 4
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "kick.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 1,
        "evidenceVideoIds": [
          "aMPu_Fy756M",
          "DWM59pDlUUs",
          "0ebreGjhEvo",
          "Selwqz5xI0M",
          "1wkUyzUPo6Q"
        ]
      },
      {
        "label": "streamed",
        "share": 0.97,
        "evidenceVideoIds": [
          "aMPu_Fy756M",
          "0ebreGjhEvo",
          "Selwqz5xI0M",
          "1wkUyzUPo6Q",
          "rLM-9jrA70o"
        ]
      },
      {
        "label": "live",
        "share": 0.93,
        "evidenceVideoIds": [
          "aMPu_Fy756M",
          "0ebreGjhEvo",
          "Selwqz5xI0M",
          "1wkUyzUPo6Q",
          "rLM-9jrA70o"
        ]
      },
      {
        "label": "twitch",
        "share": 0.93,
        "evidenceVideoIds": [
          "aMPu_Fy756M",
          "0ebreGjhEvo",
          "Selwqz5xI0M",
          "1wkUyzUPo6Q",
          "rLM-9jrA70o"
        ]
      },
      {
        "label": "tsoding",
        "share": 0.93,
        "evidenceVideoIds": [
          "aMPu_Fy756M",
          "0ebreGjhEvo",
          "Selwqz5xI0M",
          "1wkUyzUPo6Q",
          "rLM-9jrA70o"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "strong views-per-subscriber ratio, consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "strong",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 36,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.55
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Tsoding Daily — 0.2M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 36,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.74,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mid-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mid"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mid-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mid",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "5-12%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mid-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "d0558c98d25aa0ab6c91ca004f9317ced2246b48d3837433a821fcc1d2a3cd28",
      "inputsHash": "e58016d2fa69471423cf3dbc2e78eb3e4036b7fb304e0b6fe4ff819553f162fc",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-stable",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:16.970Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "b6c572ca3649e40dc70daacaedb48abf209c3cd3bf0e005677f36c0926b1bbb9",
    "channelId": "UC2KfmYEM4KCuA1ZurravgYw",
    "channelHandle": "@amigoscode",
    "channelName": "Amigoscode",
    "channelUrl": "https://www.youtube.com/@amigoscode",
    "description": "Helping developers land jobs, get promoted, and become world-class engineers.\n\nI'm Nelson (Amigoscode) — I teach Java, Spring Boot, microservices, databases, cloud, and AI-powered development through free tutorials, deep-dive courses, and real production-grade projects.\n\nWhether you're just starting out or leveling up to senior, this channel will help you:\n  ✅ Master Java & Spring Boot from the ground up\n  ✅ Build real-world projects (Kafka, microservices, PostgreSQL, Docker, Kubernetes)\n  ✅ Learn modern AI tools reshaping how we code (Claude Code, agents, MCP)\n  ✅ Prepare for interviews, promotions, and senior roles\n  ✅ Ship production systems, not toy apps\n\n🔥 Join the Amigoscode Academy → https://skool.com/amigoscode-academy\n📚 Free courses → https://amigoscode.com/courses\n\nNew videos every week. Subscribe and let's build together.\n\n  📩 Business inquiries: hello@amigoscode.com",
    "joinDate": null,
    "location": null,
    "subscribers": 1090000,
    "totalVideos": 486,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/j7KM4l3IN-FxZb881xAD3QhQIosMM1978leBKGfLmCnQxbazoep9BqDnolH-gievUTGGzEwqQA=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "amigoscode.com",
        "url": "https://www.amigoscode.com/courses"
      },
      {
        "platform": "skool.com",
        "url": "https://skool.com/amigoscode-academy"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/amigoscode"
      },
      {
        "platform": "amigoscode.com",
        "url": "https://amigoscode.com/p/join-community"
      },
      {
        "platform": "amigoscode.com",
        "url": "https://amigoscode.com/courses"
      }
    ],
    "recentVideos": [
      {
        "videoId": "TB-nS4TGfns",
        "title": "Claude Code Just Killed the Terminal Tab",
        "publishedAt": "10 hours ago",
        "durationSeconds": 707,
        "views": 1961,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Land the job. Get the promotion. Become a better dev. https://skool.com/amigoscode-academy\n👉 Join my free community: https://skool.com/amigoscode/about\n\nClaude Code just shipped a brand new feature called Agent View — and it completely changes how you manage multiple AI coding sessions. No more juggling 10 terminal tabs trying to find which Claude session is doing what.\n\nIn this video I show you exactly how to use it: pin sessions, rename them, run agents in the background with /bg, and even spin up 10 agents at once from a single screen. \n\nTIMESTAMPS\n00:00 New Claude Code Agent View\n00:50 How to launch /claude agents\n01:30 Running multiple sessions at once\n03:30 Navigating between agents (arrow keys + Alt+number)\n04:40 Rename sessions (Ctrl+R)\n05:25 Pinning sessions (Ctrl+T)\n06:30 Sending a session to the background with /bg\n08:20 Running 10 parallel agents from one prompt\n09:30 Each session has its own context window\n10:20 Keyboard shortcuts cheat sheet\n\n👉 Land the job. Get the promotion. Become a better dev. https://skool.com/amigoscode-academy\n👉 Join my free community: https://skool.com/amigoscode/about\n\nConnect with me\n• LinkedIn:   / nelsonamigoscode  \n• Instagram:   / amigoscode  \n• Twitter/X: https://x.com/amigoscode\n• GitHub: https://github.com/amigoscode\n\n#claudecode #anthropic #ai",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zYop3D8EXYU",
        "title": "Finally. A Real Spring Security Course",
        "publishedAt": "8 days ago",
        "durationSeconds": 329,
        "views": 3647,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Land the job. Get the promotion. Become a better dev. https://skool.com/amigoscode-academy\n👉 Join the waitlist: https://skool.com/amigoscode-academy\n\nSpring Security 7 is finally here  and we've rebuilt the course from the ground up.\n\nAfter years of breaking changes and outdated tutorials, this is the Spring Security course I've been wanting to make: a clean, modern, end-to-end roadmap that actually sticks. We're releasing it as a 3-part series:\n\n🔐 Part 1 — Spring Security Foundations\n🔑 Part 2 — JWT + Refresh Tokens\n🚀 Part 3 — Advanced (coming soon)\n\nParts 1 & 2 drop next week. Join the waitlist below to be the first in.\n\nWhat you will learn:\n\n✅ Authentication vs Authorization (explained the way it should be)\n✅ The Security Filter Chain — broken down piece by piece\n✅ AuthenticationProvider, AuthenticationManager & SecurityContextHolder\n✅ UserDetailsService & custom DAO authentication\n✅ Form login, Basic Auth & sessions\n✅ BCrypt, salting, hashing & why rainbow tables matter\n✅ Roles vs Authorities (and why ROLE_ exists)\n✅ Storing users, roles & permissions in a database\n✅ JWT + Refresh Tokens from scratch\n✅ Security Events with event listeners\n✅ Common attacks & how Spring Security defends against them\n\n👉 Land the job. Get the promotion. Become a better dev. https://skool.com/amigoscode-academy\n\nJoin my free community: https://skool.com/amigoscode\n\nConnect with me\n• LinkedIn:   / nelsonamigoscode  \n• Instagram:   / amigoscode  \n• Twitter/X: https://x.com/amigoscode\n• GitHub: https://github.com/amigoscode\n\n#java #springsecurity #jwt #springboot",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "na3gWTOBJEE",
        "title": "The Java Developer Roadmap You Need in the AI Era",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 1297,
        "views": 34196,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 Land the job. Get the promotion. Become a better dev. https://skool.com/amigoscode-academy\n\nThe complete Java Developer Roadmap for 2026 — everything you need to learn to stay relevant, land jobs, and build real production systems in the AI era.\n\nIn this video I walk you through the full roadmap: from the must-have fundamentals (Linux, Git, terminal) all the way to AI agents, MCP, agentic coding, and deploying Java apps to the cloud.\n\n🔥 Join my free community (roadmap diagram inside): skool.com/amigoscode\n\nTimestamps\n00:00 Intro — Why 2026 is different\n00:20 The Must-Haves: Linux, Git, Terminal, GitHub\n02:22 Java Language Core: OOP, Functional, Modern Features\n03:50 Platform & Tooling: JVM, Build Tools, IDEs\n05:34 Testing: JUnit, Mockito, Testcontainers\n05:58 Frameworks: Spring Boot & Friends\n06:22 Databases: PostgreSQL, Redis, MongoDB\n06:53 Messaging: Kafka, RabbitMQ, SQS\n07:20 Architecture: Layered, DDD, Hexagonal\n08:52 Microservices: Resilience, Service Discovery, API Gateway\n10:03 Cloud Native: Docker, Kubernetes, Serverless\n12:08 AI Foundations: LLMs, Context, Prompting\n13:27 AI Agents, MCP & RAG\n15:26 Agentic Coding: Claude Code, Codex, OpenCode\n16:33 Cloud, CI/CD & Infrastructure as Code\n17:27 DSA, System Design & AI Coding Interviews\n18:47 Build Real Projects & Deploy to Production\n19:22 LinkedIn, Networking & Standing Out\n21:10 Wrap-Up\n\nWhat you'll learn\n• The exact tech stack Java devs need in 2026\n• How AI (Claude Code, agents, MCP) is reshaping the workflow\n• Which frameworks, databases, and cloud tools actually matter\n• How to prep for modern Java interviews (LeetCode + AI coding rounds)\n• How to stand out in a tough job market\n\nLet me know in the comments — what's the number 1 area you're focusing on in 2026?\n\n👉 Land the job. Get the promotion. Become a better dev. https://skool.com/amigoscode-academy\n\nJoin my free community: https://skool.com/amigoscode\n\nConnect with me\n• LinkedIn:   / nelsonamigoscode  \n• Instagram:   / amigoscode  \n• Twitter/X: https://x.com/amigoscode\n• GitHub: https://github.com/amigoscode\n\n#java #javadeveloper #springboot  #claudecode  #ai  #softwareengineering  #backenddevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jnf8vpgoOSg",
        "title": "Why AI Can't Save You If You Write Code Like This | Code Review",
        "publishedAt": "2 months ago",
        "durationSeconds": 2271,
        "views": 8841,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Join waiting list https://academy.amigoscode.com\n\nAI can write code — but can it review bad code? In this video, I do a real code review with one of my Amigoscode Academy students, breaking down a Java booking system built without Spring Boot.\n\nWe cover:\n✅ Naming conventions & variable clarity\n✅ Where to generate IDs and timestamps (hint: not in the constructor)\n✅ DAO vs Service layer — what belongs where\n✅ Encapsulation & access modifiers\n✅ Array expansion logic & null handling\n✅ Why your service layer should own all business logic\n\nThis is the kind of review that separates engineers who just write code from engineers companies actually want to hire.\n\n🎓 Want mentorship like this? Join the Amigoscode Academy — we help you break into tech, land a new role, or level up your skills.\n👉 https://academy.amigoscode.com\n\n📌 This is part of a series on building applications without Spring Boot — so you understand what's happening under the hood.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "a_yuTuSPjjo",
        "title": "I Built a Full SaaS With Claude Code Max in 11 Minutes (Tutorial)",
        "publishedAt": "2 months ago",
        "durationSeconds": 670,
        "views": 44699,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Claude Code here: http://clau.de/amigoscode \n\nIn this Claude Code tutorial, I build a complete SaaS application from scratch using Claude Code Opus 4.6 Max.\n\nTech stack used:\n→ Next.js\n→ Supabase (local with Docker)\n→ Stripe\n→ Shadcn + Tailwind CSS\n\n‪@claude‬ \n\n#claude #claudecode #ClaudePartner",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gYuM0oe05Cw",
        "title": "The Harsh Truth About Being a Junior Developer in 2026",
        "publishedAt": "4 months ago",
        "durationSeconds": 573,
        "views": 11717,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Apply here [ https://bit.ly/49xAYBg ] to Join Amigoscode & Become Job-Ready in Full-Stack + AI\n\nAI, hiring freezes, and insane competition are making 2026 one of the hardest years ever for junior developers.\n\nIn this video, I break down why junior roles are vanishing, how AI is changing the industry, and what you must do to stand out if you still want a software job — from mastering fundamentals to building real projects and learning AI-powered development.\n\n👉 If you want a clear roadmap to become job-ready as a Full-Stack + AI developer, apply using the link below.\n\nhttps://bit.ly/49xAYBg\n\nDon't Forget to\n===========================================\n💯  Subscribe to Amigoscode YT -  http://bit.ly/2HpF5V8\n💯  Courses Available for free here - https://amigoscode.com/courses\n💯  Join Our Community here - https://bit.ly/3VFWcGw\n\n⭐  Table Of Contents ⭐\n===========================================\n00:00 Entry-level jobs are disappearing\n00:21 Why new graduates are struggling more than ever\n00:51 How AI is replacing junior developer tasks\n01:26 AI agents vs hiring junior developers\n02:03 Fewer junior roles + too many applicants\n02:38 Why “knowing one language” is no longer enough\n03:17 The impact of remote work on junior developers\n03:48 Junior roles now require years of experience\n04:22 Why fundamentals matter more than ever\n04:59 Programming is about problem solving, not syntax\n05:21 Build projects that make you stand out\n05:43 Tailoring projects to the company you apply for\n06:16 Beating automated CV screening systems\n06:46 Real student success story\n07:05 Why HTML & CSS alone won’t get you hired\n07:33 Learning AI, automation, and agents\n07:55 What’s coming next at Amigoscode\n08:18 High-demand niches to consider\n08:48 Growth mindset and long-term success\n09:10 Final thoughts and what to do next\n\n\n🙊  Here are the goods for all my videos video 🙊 \n\n► Recommended Books\n===========================================\nClean Code - https://amzn.to/2UGDPlX\nHTTP: The Definitive Guide  - https://amzn.to/2JDVi8s\nClean Architecture - https://amzn.to/2xOBNXW\n\n► Computer and Monitor\n===========================================\nNew Apple MacBook Pro - https://amzn.to/3464Mmn\nDell 27 INCH Ultrasharp U2719D Monitor - https://amzn.to/2xM3nW1\nDouble Arm Stand Desk Mount - https://amzn.to/3aYKKfs\nUSB C Hub Multiport Adapter - https://amzn.to/2Jz7NlL\n\n► IDE & Tools I use for coding 💻   🎒\n===========================================\nCursor\nVSCode\nGoLand\nIntelliJ\n\nP.S\n ===========================================\n💯   Don't forget to subscribe | http://bit.ly/2HpF5V8\n💯  Join Private Facebook Group and Discord - https://amigoscode.com/p/join-community\n💯  Follow me on Instagram | http://bit.ly/2TSkA9w\n\n❤️  Thanks for watching\n\n#java #springboot #programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "59twysAveKI",
        "title": "Spring Boot 4 Tutorial - Learn Spring Boot in 30 Minutes",
        "publishedAt": "5 months ago",
        "durationSeconds": 1691,
        "views": 34351,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn Spring Boot 4 in just 30 minutes with this fast, practical crash course. In this tutorial, you’ll explore the newest features in Spring Boot 4, build a real REST API, learn API versioning, register beans using the new API, call external APIs with @HttpExchange, and use built-in resilience features all from scratch.\n\n🖥️ Buy the RD320UA monitor for programmers here - https://bit.ly/3JDyHLF \n\nSpring Boot 4 brings major improvements like:\n\nJava 25 support + Java 17 compatibility\nModularized codebase with smaller, focused JARs\nJSpecify null-safety across the portfolio\nFirst-class API versioning\nNew HTTP Service Clients (@HttpExchange, @GetExchange)\nModern bean registration API\nVirtual thread support\nBuilt-in resilience and retry mechanisms\n\n⭐  Table Of Contents ⭐\n===========================================\n00:00 Introduction & What's New in Spring Boot 4\n01:35 BenQ Monitor for Developers\n03:21 Spring Initializr Overview\n04:36 Creating a Spring Boot 4 Project in IntelliJ\n07:20 Building a Student REST API\n09:32 Testing Endpoints with IntelliJ HTTP Client\n09:59 Adding Versioned Routes (/api/v1)\n10:33 Spring Boot 4 API Versioning Explained\n14:17 New Bean Registration API\n17:08 Dynamic Bean Selection with Environment\n19:23 Importing Bean Registrar\n19:42 Calling External APIs with @HttpExchange\n22:29 Using @GetExchange for HTTP Methods\n23:53 Creating PostController\n24:57 Testing External API Calls\n25:27 Using Resilience & Retry Methods\n28:06 Final Thoughts & Outro\n\nP.S\n ===========================================\n💯   Don't forget to subscribe | http://bit.ly/2HpF5V8\n💯  Join Private Facebook Group and Discord - https://amigoscode.com/p/join-community\n💯  Follow me on Instagram | http://bit.ly/2TSkA9w\n\nAffiliates\n🔌 TP-Link PoE Switch  - https://amzn.to/4jrLpe0\n💧 HIGH5 Electrolyte Tablets (keeps us hydrated) - https://amzn.to/49shjT4\n🖨️ Canon PIXMA G650 Printer - https://amzn.to/4jv8AE9\n💾 Toshiba Canvio Flex 4TB - https://amzn.to/4juZJCF\n\nAs an Amazon Associate, I earn from qualifying purchases.\n\n❤️  Thanks for watching\n\n#java #springboot #programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "l3N_Uf-z8zE",
        "title": "learn java in 10 minutes. NO MORE PSVM",
        "publishedAt": "7 months ago",
        "durationSeconds": 732,
        "views": 29892,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Java tutorial crash course, I’ll teach you the Java programming language from scratch. Whether you’re a beginner or just curious about how Java works, this video covers everything you need to know to get started fast.\n\n→ Join our NEW community here: https://bit.ly/3VFWcGw\n\n✅ What you’ll learn in this video:\n\nWhat is Java and why it’s still one of the most popular programming languages\nHow to install and use IntelliJ IDEA for Java development\nWriting your first Java program (System.out.println)\nWorking with variables (strings, numbers, booleans)\nCreating and using methods\nWriting if statements and basic logic\nUnderstanding objects, classes, and records\nUsing lists and looping through data\n\nEnjoy\n\n🎓 Want to go beyond the basics?\n\nCheck out my full Java course with step-by-step lessons and a certificate → https://amigoscode.com/courses/java/j...\n\nAffiliates\n🔌 TP-Link PoE Switch  - https://amzn.to/4jrLpe0\n💧 HIGH5 Electrolyte Tablets (keeps us hydrated) - https://amzn.to/49shjT4\n🖨️ Canon PIXMA G650 Printer - https://amzn.to/4jv8AE9\n💾 Toshiba Canvio Flex 4TB - https://amzn.to/4juZJCF\n\nAs an Amazon Associate, I earn from qualifying purchases.\n\n#java #javatutorial #programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3m8wTcqG63M",
        "title": "why 90% of new programmers WASTE TIME",
        "publishedAt": "9 months ago",
        "durationSeconds": 153,
        "views": 14555,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Are you stuck watching coding tutorials for months… but still can’t build your own projects? \n\nYou’ll learn the 3 biggest mistakes beginner programmers make and how to avoid them:\n\n1️⃣ Tutorial Hell – Why following along with videos isn’t real learning.\n2️⃣ Shiny Object Syndrome – How switching languages kills your progress.\n3️⃣ Fear of Failure – Why mistakes are the fastest way to grow as a developer.\n\nDon't Forget to subscribe to Amigoscode -  http://bit.ly/2HpF5V8\n\nAffiliates\n🔌 TP-Link PoE Switch  - https://amzn.to/4jrLpe0\n💧 HIGH5 Electrolyte Tablets (keeps us hydrated) - https://amzn.to/49shjT4\n🖨️ Canon PIXMA G650 Printer - https://amzn.to/4jv8AE9\n💾 Toshiba Canvio Flex 4TB - https://amzn.to/4juZJCF\n\nAs an Amazon Associate, I earn from qualifying purchases.\n\n❤️  Thanks for watching\n\n#java #springboot #programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cNzFPWuju8k",
        "title": "Top 10 Spring Boot Interview Questions and Answers [2025]",
        "publishedAt": "9 months ago",
        "durationSeconds": 751,
        "views": 48945,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Top 10 Spring Boot Interview Questions (with Answers & Examples)\n\nMaster Spring Boot with confidence! In this video, we walk through the most commonly asked Spring Boot interview questions along with clear explanations, real-world examples, and live IntelliJ demos to help you ace your next interview.\n\nWhether you're a beginner or brushing up for a job, these questions are essential for any Java developer working with Spring Boot.\n\nWhat you’ll learn:\n0:00 – Introduction\n1:11 – What is Spring Boot and how it differs from Spring Framework\n3:02 – Advantages of Spring Boot\n4:50 – What is Spring Boot Starter?\n5:24 – What is Auto Configuration in Spring Boot?\n7:27 – Purpose of @SpringBootApplication annotation\n8:54 – How to create REST APIs with Spring Boot\n9:30 – What is Spring Boot Actuator?\n10:05 – How to handle exceptions in Spring Boot\n11:22 – What are Spring Profiles?\n11:57 – How does Spring Boot support externalized configuration?\n\n📚 Resources mentioned:\n👉 Spring Boot Roadmap\n👉 Full Courses on Java, Spring, Spring Boot, DevOps, and more\n👉 Production-ready practices with Spring Boot\n\n💡 If you're serious about becoming a backend developer, this is the video for you.\n\n📩 Join our developer community & learn with us: https://amigoscode.com\n\nAffiliates\n🔌 TP-Link PoE Switch  - https://amzn.to/4jrLpe0\n💧 HIGH5 Electrolyte Tablets (keeps us hydrated) - https://amzn.to/49shjT4\n🖨️ Canon PIXMA G650 Printer - https://amzn.to/4jv8AE9\n💾 Toshiba Canvio Flex 4TB - https://amzn.to/4juZJCF\n\nAs an Amazon Associate, I earn from qualifying purchases.\n\n#SpringBoot #Java #SpringBootInterview #JavaDeveloper #Microservices #IntelliJ #Amigoscode #BackendDevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hWpzx_NvpPA",
        "title": "how AI agents are changing programming forever",
        "publishedAt": "9 months ago",
        "durationSeconds": 218,
        "views": 21541,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "AI Agents Are Changing Programming Forever\n\nAI agents are no longer science fiction they’re here, and they’re evolving fast.\n\nIn this video, we break down what AI agents actually are, how...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mDFTTkSN8jM",
        "title": "java is finally dead",
        "publishedAt": "10 months ago",
        "durationSeconds": 486,
        "views": 118940,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Every single year, the same old debate comes up: Java is dead. Yet somehow, Java continues to power massive systems at Google, Netflix, AWS, and countless Fortune 500 companies.\n\nIn this video,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Gs5yi3Hi5qo",
        "title": "HTML Tutorial For Beginners - 2025 [NEW]",
        "publishedAt": "11 months ago",
        "durationSeconds": 6574,
        "views": 19461,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Master HTML from scratch in this full HTML tutorial! Whether you're just starting out or brushing up your skills, this course covers everything you need to build clean, structured, and accessible...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wExWF6VtN2E",
        "title": "Spring AI Tutorial: Integrate ChatGPT with Spring Boot & OpenAI",
        "publishedAt": "11 months ago",
        "durationSeconds": 1222,
        "views": 27294,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this hands-on Spring AI tutorial, you’ll learn how to integrate ChatGPT with Spring Boot and OpenAI's API. I walk you through every step to get started with generative AI in your Spring-based...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EgQJRB9Vs3Y",
        "title": "Top 10 Spring Boot REST API Best Practices You MUST Know",
        "publishedAt": "1 year ago",
        "durationSeconds": 817,
        "views": 38769,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want to build clean, scalable, and secure REST APIs with Spring Boot? In this video, you'll learn the top 10 best practices every Java developer should follow when building RESTful APIs using...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tmL2IniRgCo",
        "title": "The Ultimate Spring Boot Roadmap for Java Developers (2025 Update)",
        "publishedAt": "1 year ago",
        "durationSeconds": 803,
        "views": 88477,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want to master Spring Boot and backend development in 2025? 🚀\n\nIn this video, I break down the entire Spring Boot roadmap from beginner to advanced.\n\nWhether you're a beginner or looking...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Cw0J6jYJtzw",
        "title": "Spring Boot Tutorial for Beginners | Full Course 2025",
        "publishedAt": "1 year ago",
        "durationSeconds": 4280,
        "views": 224621,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to build real-world backend applications with Spring Boot in this hands-on crash course. Whether you're new to Spring Boot or want a solid refresher, this tutorial covers everything...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RpUdtgDsM3c",
        "title": "It’s Finally Here: Amigoscode 2.0 Has Launched!",
        "publishedAt": "1 year ago",
        "durationSeconds": 468,
        "views": 9117,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 Amigoscode 2.0 is officially LIVE!\n\nWe've rebuilt our platform from the ground up to give you the best experience possible. Whether you're learning Java, Spring Boot, DevOps, or System...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uNB2N_w_ypo",
        "title": "Spring Boot and GraphQL Tutorial",
        "publishedAt": "1 year ago",
        "durationSeconds": 3682,
        "views": 58157,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Welcome to Spring Boot GraphQL tutorial! 🚀\n\nIn this Spring Boot GraphQL tutorial, we'll walk you through the step-by-step process of building a GraphQL API using Java and Spring Boot. Whether...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pPDJFBtW4WE",
        "title": "3 SaaS Products I’m About to Release! 👀",
        "publishedAt": "1 year ago",
        "durationSeconds": 705,
        "views": 17006,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get ready for an exciting reveal! After 6 months of hard work and dedication, I'm thrilled to share the details of 3 brand new SaaS products that I'm about to release.\n\nHere are the products:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JRwTCKjc37o",
        "title": "Here's The Secret How To Create These Animated Diagrams",
        "publishedAt": "2 years ago",
        "durationSeconds": 672,
        "views": 642443,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Recently animated diagrams have been popular. They let you explain concepts in a coo visual way. In this video I am going to show you to create them.\n\nJoin our Weekly Newsletter here - https://blog...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fO9HN3nvDLI",
        "title": "Java Roadmap for 2024",
        "publishedAt": "2 years ago",
        "durationSeconds": 688,
        "views": 204056,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Java Roadmap I will discuss your Java learning path to help succeed as a java developer. Java still very popular and it I recommend it as your first programming language.\n\n--\n\n► Linux...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pkZEKIXe3u4",
        "title": "Linux For Beginners - Full Course [NEW]",
        "publishedAt": "2 years ago",
        "durationSeconds": 10100,
        "views": 302551,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this linux tutorial you will learn what is linux, the linux operating system, linux commands and be on your way to master linux.\n\nWhether you're a beginner eager to learn Linux or an enthusiast...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "G_ZNxPGQm60",
        "title": "Linux and Shell Scripting Course OUT NOW - 10 Hours",
        "publishedAt": "2 years ago",
        "durationSeconds": 423,
        "views": 7462,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Unlock the power of Linux and master the art of Shell Scripting in this comprehensive 10-hour course. Whether you're a beginner or an experienced user, our step-by-step lessons will guide you...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Bsw4wITRPzk",
        "title": "it's been difficult but....",
        "publishedAt": "2 years ago",
        "durationSeconds": 470,
        "views": 58083,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I am back after some difficult time and it's good to see you again.\n\n- Checkout our new website - https://amigoscode.com\n- New Linux Course - https://amigoscode.com/courses/linux\n- Join our...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ldw5TwoPlXI",
        "title": "You DON'T Need Lombok",
        "publishedAt": "2 years ago",
        "durationSeconds": 546,
        "views": 72483,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Discover the power of clean code, concise code as we explore the pros and cons of using Project Lombok in your Java projects. \n\nIn this video I dissect the intricacies of Lombok and showcase...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7Qlj62VSeb4",
        "title": "no more Public Static Void Main",
        "publishedAt": "2 years ago",
        "durationSeconds": 477,
        "views": 37743,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Java 21  new features are here. One of them is Unnamed Classes and Instance Main Methods which aims to simplify the main method and public static void main to help beginners learn Java without...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Ow6apHm6A_w",
        "title": "You Worry Too Much About Coding",
        "publishedAt": "2 years ago",
        "durationSeconds": 626,
        "views": 32700,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Dont stress to much about coding. In fact coding is very easy trust me.\nIn this video I will discuss other important things you should focus when building software.\n\n🚨 Join Waiting List...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TEXaoSC_8lQ",
        "title": "Kotlin Tutorial For Beginners",
        "publishedAt": "2 years ago",
        "durationSeconds": 17652,
        "views": 190852,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this 5 hour Kotlin Tutorial you will learn about the Kotlin programming language. Kotlin is modern language and if you are looking to switch from Java to Kotlin then this Kotlin tutorial...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "W_IGkv7mOIQ",
        "title": "You Dont Need Microservices",
        "publishedAt": "2 years ago",
        "durationSeconds": 483,
        "views": 49939,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In recent years, there has been a lot of buzz around microservices as the go-to architecture for developing modern applications. However, in this video, we explore the idea that you don't actually...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 3,
      "uploadsLast90d": 5,
      "uploadCadenceWeekly": 0.39,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 8841,
      "viewsPerVideoP90Last90d": 34196,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 8841,
      "p90Views": 34196,
      "p99Views": 34196,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "bit.ly",
        "amzn.to"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": "[REDACTED]",
      "businessEmailSource": "channel-about-section",
      "businessEmailMxValid": true,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "amigoscode.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "high",
      "components": {
        "businessEmailPresent": true,
        "businessEmailValid": true,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Will likely respond to sponsorship outreach: business email validated + active sponsor history + external website live."
    },
    "topicPillars": [
      {
        "label": "java",
        "share": 0.57,
        "evidenceVideoIds": [
          "zYop3D8EXYU",
          "na3gWTOBJEE",
          "jnf8vpgoOSg",
          "gYuM0oe05Cw",
          "59twysAveKI"
        ]
      },
      {
        "label": "amigoscode",
        "share": 0.4,
        "evidenceVideoIds": [
          "TB-nS4TGfns",
          "zYop3D8EXYU",
          "na3gWTOBJEE",
          "jnf8vpgoOSg",
          "a_yuTuSPjjo"
        ]
      },
      {
        "label": "learn",
        "share": 0.4,
        "evidenceVideoIds": [
          "zYop3D8EXYU",
          "na3gWTOBJEE",
          "59twysAveKI",
          "l3N_Uf-z8zE",
          "3m8wTcqG63M"
        ]
      },
      {
        "label": "https",
        "share": 0.37,
        "evidenceVideoIds": [
          "TB-nS4TGfns",
          "zYop3D8EXYU",
          "na3gWTOBJEE",
          "jnf8vpgoOSg",
          "gYuM0oe05Cw"
        ]
      },
      {
        "label": "join",
        "share": 0.37,
        "evidenceVideoIds": [
          "TB-nS4TGfns",
          "zYop3D8EXYU",
          "na3gWTOBJEE",
          "jnf8vpgoOSg",
          "gYuM0oe05Cw"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "business email validated.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "strong",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 45,
      "reason": "validated business email",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.95
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.8,
      "level": "high",
      "coldStart": false
    },
    "whyThisMatters": "validated business email. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Amigoscode — 1.1M subs, C-tier sponsorship readiness, high contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": true,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 45,
      "readyForOutreach": false,
      "blockers": [],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.65,
      "urgency": 0,
      "noiseRisk": 0.2
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": {
      "isValidFormat": true,
      "canonical": "hello@amigoscode.com",
      "domain": "amigoscode.com",
      "lineType": "role-account",
      "mxValid": true,
      "confidence": 0.75,
      "originalInput": "hello@amigoscode.com",
      "email": null
    },
    "allEmailValidations": [
      {
        "isValidFormat": true,
        "canonical": "hello@amigoscode.com",
        "domain": "amigoscode.com",
        "lineType": "role-account",
        "mxValid": true,
        "confidence": 0.75,
        "originalInput": "hello@amigoscode.com",
        "email": null
      }
    ],
    "contactabilityScore": {
      "score": 83,
      "level": "high",
      "components": {
        "presence": 25,
        "sourceQuality": 18,
        "validationQuality": 18,
        "identityStrength": 9,
        "freshness": 8,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "email",
      "secondary": "agency-form",
      "reason": "Validated business email + active sponsor history — email-first maximises response rate."
    },
    "sequenceFit": {
      "directOutreachAllowed": true,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "channel-about",
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.83
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.83,
      "gap": 0.11,
      "howToClose": [
        "Run ryanclinton/person-enrichment-lookup against 'hello@amigoscode.com' to identify the inbox owner."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "medium",
      "score": 0.65,
      "factors": [
        "business-email-validated",
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + validated business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:role-account",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [],
      "safeChannels": [
        "email",
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [
      {
        "email": "[REDACTED]",
        "rank": 1,
        "reason": "role-account email",
        "role": "general"
      }
    ],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": false,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": [
        "contactability:high"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 64,
      "reasons": [
        "Validated business email (MX confirmed)",
        "Low confidence-conflict count in scoring trace"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "b6c572ca3649e40dc70daacaedb48abf209c3cd3bf0e005677f36c0926b1bbb9",
      "inputsHash": "8a4e5d541e25022cbeaf9de632d48b10af4629ee4534d88479ad5d11c9f394fa",
      "rulesApplied": [
        "business-email-validated",
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:17.805Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "4867f965005807fd0cbdf1c5d6d814e82c2e2bdc9a3635fec2f8fb48532bee18",
    "channelId": "UC4SVo0Ue36XCfOyb5Lh1viQ",
    "channelHandle": "@BroCodez",
    "channelName": "Bro Code",
    "channelUrl": "https://www.youtube.com/@BroCodez",
    "description": "Coding bootcamps HATE HIM! 🗿",
    "joinDate": null,
    "location": null,
    "subscribers": 3230000,
    "totalVideos": 1000,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_mPFVsxROj1dOtTWc9iNBwDYV4z42Q8LPokBSewiW9pCSg=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "tiktok",
        "url": "https://www.tiktok.com/@truebrocode"
      }
    ],
    "recentVideos": [
      {
        "videoId": "fPopFeqw5sk",
        "title": "Learn NumPy data types in 8 minutes! 💱",
        "publishedAt": "5 months ago",
        "durationSeconds": 522,
        "views": 27121,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #numpy \n\ndtype = Keyword argument that tells NumPy what kind of values are stored in an array\nOtherwise NumPy guesses the best data type based on your data\nManually setting dtype improves performance\n& is more memory efficient (especially when working with large data sets)\n\ninteger (int8, int16, int32, int64)\nfloat (float16, float32, float64)\nboolean (bool_)\nstring (str_)\nobject (object_)\n\nint8 = -128 to 127\nint16 = –32,768 to 32,767\nint32 = –2,147,483,648 to 2,147,483,647\nint64 = –9.22e18 to 9.22e18\n\nfloat16 = ~3-4 decimal digit precision\nfloat32 = ~7-8 decimal digit precision\nfloat64 = ~15-17 decimal digit precision",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xf71dRBRP6o",
        "title": "Build a music player with Python! 🎶",
        "publishedAt": "5 months ago",
        "durationSeconds": 1316,
        "views": 52843,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #programming \n\nWe're going to walkthrough how to create an mp3 music player using Python. This video is meant for beginner to intermediate Python programmers to serve as a practice project for the Python playlist.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4paHKF4bJtI",
        "title": "Saving and loading NumPy arrays is easy! 💾",
        "publishedAt": "5 months ago",
        "durationSeconds": 398,
        "views": 9870,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #numpy \n\n00:00:00 save NumPy array\n00:01:53 load NumPy array\n00:02:30 save multiple arrays\n00:04:29 savez_compressed()\n00:05:01 load multiple arrays\n\nimport numpy as np\n\n--------------------------------------------\nSave a NumPy array\n--------------------------------------------\narray = np.array([[1, 2, 3], [4, 5, 6]])\nnp.save(\"data\", array)\nprint(\"File saved!\")\n\n--------------------------------------------\nLoad a single NumPy array\n--------------------------------------------\narray = np.load(\"data.npy\")\nprint(array)\n\n--------------------------------------------\nSave multiple NumPy arrays\n--------------------------------------------\narray1 = np.array([[1, 2, 3], [4, 5, 6]])\narray2 = np.array([2022, 2023, 2024, 2025])\narray3 = np.array([1.1, 2.2, 3.3, 4.4, 5.5])\n\nnp.savez(\"data\", array1, array2, array3)\n\nprint(\"NumPy data was saved!\")\n\n--------------------------------------------\nLoad multiple NumPy arrays\n--------------------------------------------\narrays = np.load(\"data.npz\")\n\nprint(arrays[\"arr_0\"])\nprint(arrays[\"arr_1\"])\nprint(arrays[\"arr_2\"])",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Gsfsq2epdr8",
        "title": "You'll love Python data classes! 📋",
        "publishedAt": "5 months ago",
        "durationSeconds": 449,
        "views": 32270,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #programming \n\nData Class = A special kind of class that's designed mostly for holding data\nwithout writing a lot of the boilerplate code for regular classes.\nThey automatically generate: _init__, __repr__, __eq_\n(Python 3.7+)",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "81i_uSX9Vic",
        "title": "Useful NumPy functions you should know! 🎚️",
        "publishedAt": "6 months ago",
        "durationSeconds": 419,
        "views": 7513,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #programming \n\n00:00:00 zeros()\n00:01:29 ones()\n00:01:52 full()\n00:02:16 eye()\n00:03:09 empty()\n00:03:59 arange()\n00:05:16 linspace()\n\nimport numpy as np\n\nCreates an array with zeros\narray = np.zeros((2, 3, 10))\nprint(array)\n\nCreates an array with ones\narray = np.ones((2, 3, 10))\nprint(array)\n\nCreates an array with a given value\narray = np.full((2, 3), 9)\nprint(array)\n\nCreates an array w/o initializing entries\narray = np.empty((2, 3))\nprint(array)\n\nCreates an identity matrix with 0s and 1s\narray = np.eye(5)\nprint(array)\n\nCreates an array with evenly spaced values up to a given range\narray = np.arange(0, 100, 0.1) # (start, stop, step)\nprint(array)\n\nCreates an array with a set number of values that are evenly spaced\narray = np.linspace(0, 10, 5) # (start, stop, num)\nprint(array)",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pJdTyvufOdg",
        "title": "Create QR codes with Python in 4 minutes! 📱",
        "publishedAt": "6 months ago",
        "durationSeconds": 251,
        "views": 251385,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #programming \n\nIn a terminal: pip install qrcode[pil]\nimport qrcode\n\nurl = input(\"Enter the URL: \").strip()\nfile_path = \"qrcode.png\"\n\nqr = qrcode.QRCode()\nqr.add_data(url)\n\nimg = qr.make_image()\nimg.save(file_path)\n\nprint(\"QR Code was generated!\")",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "k0D3MQwLn7A",
        "title": "Learn Python iterators in 7 minutes! ➡️",
        "publishedAt": "6 months ago",
        "durationSeconds": 432,
        "views": 23688,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #programming \n\nIterator = An object that returns elements one at a time\nfrom a sequence (or data stream)\nand remembers its position between calls.\nA Python object is an iterator if it has:\n__iter__() → Returns the iterator object itself\n__next__() → Returns the next item in the sequence\n(raises StopIteration when there's no more items)",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pgPwaNpC0so",
        "title": "Learn to reshape NumPy arrays in 4 minutes! ↔️",
        "publishedAt": "6 months ago",
        "durationSeconds": 252,
        "views": 11722,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #numpy \n\nreshape() = Changes the shape of an array\nw/o altering its underlying data\narray.reshape(rows, columns)\n\nimport numpy as np\n\narray = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12])\n\narray = array.reshape(2, 6)\narray = array.reshape(3, 4)\narray = array.reshape(4, 4) # Too many elements\narray = array.reshape(2, 4) # Too few elements\narray = array.reshape(4, 3)\narray = array.reshape(2, 2, 3) # 3D\narray = array.reshape(3, 2, 2) # 3D\n\n-1 NumPy will automatically infer the correct size for that dimension\narray = array.reshape(1, -1)\narray = array.reshape(-1, 1)\n\nprint(array)",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZBlxaXMN_hU",
        "title": "Learn Python generator expressions in 9 minutes! ♻️",
        "publishedAt": "6 months ago",
        "durationSeconds": 548,
        "views": 10170,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #programming \n\nGenerator Expression = Similar to a list comprehension but uses () instead of []\nCreates a generator (iterator) that yields values one at a time\nNo need to define a function or use yield\nLess flexible than a gen func and not reusable\ngen object = (expression for value in iterable if condition)",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "G1lJeEIl05o",
        "title": "Learn Python generators in 8 minutes! 🚰",
        "publishedAt": "6 months ago",
        "durationSeconds": 482,
        "views": 36379,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #programming \n\nGenerator = Function that behaves like an iterator (it can be used in a for loop)\nPauses a function, returns a value, then resumes\nUses 'yield' instead or 'return'\nIterate without loading everything into memory (ex. reading large files)\nreturn = Pouring bucket\nyield = Drip faucet",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5WK3j2erJW4",
        "title": "Learn Python zip() in 3 minutes! 🤐",
        "publishedAt": "6 months ago",
        "durationSeconds": 201,
        "views": 27832,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #programming \n\n# zip() = Combines multiple iterables (lists, tuples, sets, dict)\n#             into a single iterator of tuples.\n#             Makes managing multiple indices...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "c9vhHUGdav0",
        "title": "Learn Matplotlib in 1 hour! 📊",
        "publishedAt": "7 months ago",
        "durationSeconds": 3600,
        "views": 130105,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #matplotlib \n\nThis video serves as an introduction to the Matplotlib Python library. We’ll cover the basics of Matplotlib so you can start working with it on your own. After...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JJ0vg1Kbris",
        "title": "Let's create a graph using Pandas and Matplotlib! 🐼📊",
        "publishedAt": "7 months ago",
        "durationSeconds": 351,
        "views": 9390,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #matplotlib \n\nThis video serves as a project where we will create a bar chart based on the primary Type of the original 150 Pokémon. Here is a list you can copy to a CSV file:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KFMs_ZZNgmo",
        "title": "Matplotlib subplots in 6 minutes! 🔲",
        "publishedAt": "7 months ago",
        "durationSeconds": 414,
        "views": 11321,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #matplotlib \n\nIn this video I will show you how to create subplots using Matplotlib.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2E6fDoz7LuU",
        "title": "Matplotlib histograms in 6 minutes! 🔔",
        "publishedAt": "7 months ago",
        "durationSeconds": 373,
        "views": 8783,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #matplotlib \n\nIn this video we will create a basic histogram using Matplotlib.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "HHrG5W530fk",
        "title": "Matplotlib scatter plots in 6 minutes! ✨",
        "publishedAt": "7 months ago",
        "durationSeconds": 404,
        "views": 9522,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #matplotlib \n\nIn this video we will create a basic scatter plot using Matplotlib.\n\nHere is some sample data you can copy and paste for your convenience:\n\nx1 = np.array([0, 1,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "N63ODsRdRVQ",
        "title": "Matplotlib pie charts in 6 minutes! 🥧",
        "publishedAt": "7 months ago",
        "durationSeconds": 362,
        "views": 9323,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #matplotlib \n\nIn this video we will create a basic pie chart using Matplotlib.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "k7UJg2E-TyU",
        "title": "Matplotlib bar charts in 4 minutes! 📶",
        "publishedAt": "7 months ago",
        "durationSeconds": 246,
        "views": 8731,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #matplotlib \n\nIn this video we will create a simple bar chart using matplotlib.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "alVRCZkTBHc",
        "title": "Matplotlib grid lines in 2 minutes! 🌐",
        "publishedAt": "7 months ago",
        "durationSeconds": 162,
        "views": 7731,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #matplotlib \n\nIn this video, I will show you how to create and customize grid lines with Matplotlib.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "t-kHUq8OvQs",
        "title": "Matplotlib labels in 6 minutes! 🏷️",
        "publishedAt": "7 months ago",
        "durationSeconds": 381,
        "views": 9401,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #matplotlib \n\nIn this video I will demonstrate how to create titles and labels in Matplotlib.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hunq_UOdmoo",
        "title": "Matplotlib customization is easy! 🎨",
        "publishedAt": "7 months ago",
        "durationSeconds": 553,
        "views": 11061,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #matplotlib \n\nThis video will give you an introduction to customizing plots with Matplotlib.\nIn the next video, we will cover labels.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2KY5AaFvWtE",
        "title": "Start using Matplotlib in 7 minutes! 📊",
        "publishedAt": "7 months ago",
        "durationSeconds": 422,
        "views": 33858,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #matplotlib \n\nMatplotlib is a Python library used for data visualization. It provides a MATLAB-like interface for quick plotting. After finishing this series, I would recommend...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VXtjG_GzO7Q",
        "title": "Learn Pandas in 1 hour! 🐼",
        "publishedAt": "8 months ago",
        "durationSeconds": 3600,
        "views": 286615,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#coding #python #programming \n\nThis video serves as an introduction to the Pandas Python library. We’ll cover the basics of Pandas so you can start working with it on your own. After finishing...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Ck0QgwiCEIs",
        "title": "Data cleaning in Pandas is easy! 🧹",
        "publishedAt": "8 months ago",
        "durationSeconds": 538,
        "views": 24336,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#coding #python #programming \n\nData cleaning is the process of fixing or removing: incomplete, incorrect, or irrelevant data. ~75% of work done with Pandas is data cleaning.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3SRyslGSMW4",
        "title": "Aggregation in Pandas is easy! ➕",
        "publishedAt": "8 months ago",
        "durationSeconds": 468,
        "views": 9463,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#coding #python #programming \n\nAggregation in pandas is when you take many values and summarize them into a single value",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AdR_gx5Y4wE",
        "title": "Filtering in Pandas is easy! 🔍",
        "publishedAt": "8 months ago",
        "durationSeconds": 390,
        "views": 9552,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#coding #python  #programming \n\nFiltering is when you keep only select rows of a DataFrame that meet a certain condition.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "aoNRYtVEhAM",
        "title": "Selection in Pandas is easy! 🎯",
        "publishedAt": "8 months ago",
        "durationSeconds": 553,
        "views": 11469,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#coding #python #programming \n\nSelection in Pandas means pulling out specific data from a Series or DataFrame.\n\nimport pandas as pd\n\ndf = pd.read_csv(\"data.csv\", index_col=\"Name\")\n\npokemon...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Ssq0MOOVFHY",
        "title": "Import files in Pandas easy! 📥",
        "publishedAt": "8 months ago",
        "durationSeconds": 297,
        "views": 11373,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#coding #python #programming \n\n*You can copy and paste this data to a .csv file for convenience:*\n\nNo,Name,Type1,Type2,Height,Weight,Legendary\n1,Bulbasaur,Grass,Poison,0.7,6.9,0\n2,Ivysaur,Grass,Poi...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OUnnuKHbmbU",
        "title": "DataFrames in Pandas are easy! 🔢",
        "publishedAt": "8 months ago",
        "durationSeconds": 541,
        "views": 19857,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#python #coding #programming \n\nA Pandas DataFrame is a two-dimensional, tabular data structure that works like a spreadsheet with rows and columns.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "W6WFX_H-AA4",
        "title": "Series in Pandas are easy! 1️⃣",
        "publishedAt": "8 months ago",
        "durationSeconds": 648,
        "views": 17822,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#coding #python #programming \n\nA Series is a one-dimensional labeled array that can hold data of any type. Think of it like a single column in a spreadsheet.\nEach value in a Series has an associate...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": null,
      "additionalContacts": []
    },
    "contactability": {
      "tier": "none",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": false,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Not reachable through public business channels. No published business email and no external website detected."
    },
    "topicPillars": [
      {
        "label": "python",
        "share": 1,
        "evidenceVideoIds": [
          "fPopFeqw5sk",
          "xf71dRBRP6o",
          "4paHKF4bJtI",
          "Gsfsq2epdr8",
          "81i_uSX9Vic"
        ]
      },
      {
        "label": "coding",
        "share": 1,
        "evidenceVideoIds": [
          "fPopFeqw5sk",
          "xf71dRBRP6o",
          "4paHKF4bJtI",
          "Gsfsq2epdr8",
          "81i_uSX9Vic"
        ]
      },
      {
        "label": "programming",
        "share": 0.53,
        "evidenceVideoIds": [
          "xf71dRBRP6o",
          "Gsfsq2epdr8",
          "81i_uSX9Vic",
          "pJdTyvufOdg",
          "k0D3MQwLn7A"
        ]
      },
      {
        "label": "minutes",
        "share": 0.5,
        "evidenceVideoIds": [
          "fPopFeqw5sk",
          "pJdTyvufOdg",
          "k0D3MQwLn7A",
          "pgPwaNpC0so",
          "ZBlxaXMN_hU"
        ]
      },
      {
        "label": "data",
        "share": 0.4,
        "evidenceVideoIds": [
          "fPopFeqw5sk",
          "4paHKF4bJtI",
          "Gsfsq2epdr8",
          "k0D3MQwLn7A",
          "pgPwaNpC0so"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Thursday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "D",
      "rationale": "limited sponsorship signals (never maturity, none contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 26,
      "reason": "tier D composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.05
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier D — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 30,
    "failureType": null,
    "summary": "Bro Code — 3.2M subs, D-tier sponsorship readiness, none contactability, respond within 30 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 26,
      "readyForOutreach": false,
      "blockers": [
        "contactability:none — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.84,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 2,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 2
      }
    },
    "channelStrategy": {
      "primary": "enrichment",
      "secondary": "linkedin",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [],
      "missedOpportunities": [
        "no-external-website-detected",
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.02
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.02,
      "gap": 0.92,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "unknown",
      "score": 0,
      "factors": [],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "none"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "ignore",
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": {
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "gaps": [
        "tier:D",
        "contactability:none"
      ]
    },
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "4867f965005807fd0cbdf1c5d6d814e82c2e2bdc9a3635fec2f8fb48532bee18",
      "inputsHash": "0c4ffef91f7fa04b99f551fcfd76a95de9fc5cabe81383f9d4ef25f8318d8415",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:18.495Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "f044660b3cd13a4f2b69f206e34eccb8ea1b035748050e1affa5f5902a5ec788",
    "channelId": "UC4xKdmAXFh4ACyhpiQ_3qBw",
    "channelHandle": "@TechLead",
    "channelName": "TechLead",
    "channelUrl": "https://www.youtube.com/@TechLead",
    "description": null,
    "joinDate": null,
    "location": null,
    "subscribers": 1470000,
    "totalVideos": 9,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/BB2M49atCki1_n2UysXNtL04dmkdIVUMDUtj_MzltJuFbNqWShtpdAS-K-vT-VTo55jC6pKmABw=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "twitter",
        "url": "https://x.com/techleadhd"
      },
      {
        "platform": "instagram",
        "url": "https://instagram.com/techleadhd"
      }
    ],
    "recentVideos": [
      {
        "videoId": "TwWWw6e9ko0",
        "title": "H-1B VISA ABUSE: The Dark Truth of Tech (as an ex-Google software engineer)",
        "publishedAt": "7 months ago",
        "durationSeconds": 750,
        "views": 229320,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ex-Google / ex-Meta TechLead exposes the dark truth of H1B visa abuse. Clip from my new livestream:\nhttps://pump.fun/coin/4xobQBtd2wpYh6d...\nhttps://x.com/techleadhd/\n\nAce your coding interviews with ex-Google/ex-Facebook training. https://techinterviewpro.com/\n💻 Get access to 100+ programming interview problems explained: https://coderpro.com/\n💻 I’ll send you FREE daily coding interview questions to practice your skills: http://dailyinterviewpro.com/\n\n🌕 TechLead Coin ($TL) https://fame.fun/techleadhd\n💵 Merch! The ultra-thin TechLead wallet: https://amzn.to/42UyYOb\n🛒 My computer and camera gear: https://www.amazon.com/shop/techlead/...\n\nFollow me on social media:\nhttps://x.com/techleadhd\n  / techleadhd  \n\nThis description may contain affiliate links.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tvj-Nh5W0lw",
        "title": "Why Programming Will Make You POOR (Coding in 2025)",
        "publishedAt": "8 months ago",
        "durationSeconds": 905,
        "views": 90105,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ex-Google TechLead on coding in the attention economy, status game, and abundance mindset. \nEtherFi 3% Crypto Card: https://www.ether.fi/refer/87b2b9c7\n\nAce your coding interviews with ex-Google/ex-Facebook training. https://techinterviewpro.com/\n💻 Get access to 100+ programming interview problems explained: https://coderpro.com/\n💻 I’ll send you FREE daily coding interview questions to practice your skills: http://dailyinterviewpro.com/\n\n🌕 TechLead Coin ($TL) https://fame.fun/techleadhd\n💵 Merch! The ultra-thin TechLead wallet: https://amzn.to/42UyYOb\n🛒 My computer and camera gear: https://www.amazon.com/shop/techlead/...\n\nFollow me on social media:\nhttps://x.com/techleadhd\n  / techleadhd  \n\nThis description may contain affiliate links.n",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eOU5ALbUFEg",
        "title": "Why WORK won't make you RICH (Bitcoin, Ethereum, Market Update)",
        "publishedAt": "8 months ago",
        "durationSeconds": 1251,
        "views": 169133,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ex-Google TechLead on why working more isn't the answer. Video links:\nEtherFi 3% Crypto Card: https://www.ether.fi/refer/87b2b9c7\nRobinhood crypto, get a free stock: https://join.robinhood.com/patrics3834\n\nAce your coding interviews with ex-Google/ex-Facebook training. https://techinterviewpro.com/\n💻 Get access to 100+ programming interview problems explained: https://coderpro.com/\n💻 I’ll send you FREE daily coding interview questions to practice your skills: http://dailyinterviewpro.com/\n\n🌕 TechLead Coin ($TL) https://fame.fun/techleadhd\n💵 Merch! The ultra-thin TechLead wallet: https://amzn.to/42UyYOb\n🛒 My computer and camera gear: https://www.amazon.com/shop/techlead/...\n\nFollow me on social media:\nhttps://x.com/techleadhd\n  / techleadhd  \n\nThis description may contain affiliate links.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RweoklWbLsw",
        "title": "Get Out of Tech. IT'S OVER.",
        "publishedAt": "10 months ago",
        "durationSeconds": 1227,
        "views": 247364,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ex-Google TechLead gets out of tech. Limited Time: 2% crypto deposit match on Robinhood app. Get a free stock 🎁: https://join.robinhood.com/patrics3834\n\nAce your coding interviews with ex-Google/ex-Facebook training. https://techinterviewpro.com/\n💻 Get access to 100+ programming interview problems explained: https://coderpro.com/\n💻 I’ll send you FREE daily coding interview questions to practice your skills: http://dailyinterviewpro.com/\n\n🌕 TechLead Coin ($TL) https://fame.fun/techleadhd\n💵 Merch! The ultra-thin TechLead wallet: https://amzn.to/42UyYOb\n🛒 My computer and camera gear: https://www.amazon.com/shop/techlead/...\n\nFollow me on social media:\nhttps://x.com/techleadhd\n  / techleadhd  \n\nThis description may contain affiliate links.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QwRidEuefXI",
        "title": "How much Bitcoin should you own? | STATE OF CRYPTO 2025.",
        "publishedAt": "1 year ago",
        "durationSeconds": 831,
        "views": 296592,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "It's not about if you own Bitcoin, it's about how much. Crypto & how to get rich in 2025. Not financial advice.\n\n💵 Merch! The ultra-thin TechLead wallet: https://amzn.to/42UyYOb\nFollow me on social media:\nhttps://x.com/techleadhd\n  / techleadhd",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rJJBnmDkEwI",
        "title": "The Age of Making Money is Over. The middle-class is done.",
        "publishedAt": "2 years ago",
        "durationSeconds": 720,
        "views": 772998,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "It's too late to make money for the middle-class. The \"Age of Making Money\" is over.  The poor now become poorer, the rich richer.\nAce your coding interviews with ex-Google/ex-Facebook training. https://techinterviewpro.com/\nMake passive income with crypto in DeFi Pro. http://defipro.dev/\n💻 Get access to 100+ programming interview problems explained: https://coderpro.com/\n📷 Learn to build a successful business on YouTube from scratch: http://youtubebackstage.com/\n💻 I’ll send you FREE daily coding interview questions to practice your skills: http://dailyinterviewpro.com/\n\n🛒 My computer and camera gear: https://www.amazon.com/shop/techlead/...\n⌨️ My favorite keyboards: http://iqunix.store/techlead\n\nFollow me on social media for more tips & fun:\n  / techleadhd  \n  / techleadhd  \n\nDisclaimer: This description may contain affiliate links. Cryptocurrencies are not investments and are subject to market volatility.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lioFmitR2nE",
        "title": "Using ChatGPT to Trade Crypto and MAKE MONEY.",
        "publishedAt": "3 years ago",
        "durationSeconds": 665,
        "views": 258654,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ex-Google TechLead combines ChatGPT AI with crypto trading bots. \nTry ChatGPT crypto trading: https://www.pionex.com/en/chat/jcupTRk0\n\nMake passive income with crypto in DeFi Pro. http://defipro.dev/\nAce your coding interviews with ex-Google/ex-Facebook training. https://techinterviewpro.com/\n💻 Get access to 100+ programming interview problems explained: https://coderpro.com/\n📷 Learn to build a successful business on YouTube from scratch: http://youtubebackstage.com/\n💻 I’ll send you FREE daily coding interview questions to practice your skills: http://dailyinterviewpro.com/\n\n🛒 My computer and camera gear: https://www.amazon.com/shop/techlead/...\n⌨️ My favorite keyboards: http://iqunix.store/techlead\n\nFollow me on social media for more tips & fun:\n  / techleadhd  \n  / techleadhd  \n\nDisclaimer: This description may contain affiliate links. Cryptocurrencies are not investments and are subject to market volatility.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "BCHr4NDTLO8",
        "title": "The Best Chair for Programmers... (as an ex-Google tech lead) | Aeron vs Embody, Steelcase, Hyken...",
        "publishedAt": "5 years ago",
        "durationSeconds": 949,
        "views": 1861087,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ex-Google TechLead finds the top office chair for software engineers. Join ex-Google/ex-Facebook engineers for my coding interview training: https://techinterviewpro.com/. And as featured in the video, links to all of the chairs (and note you can often find these chairs used for much cheaper prices, if you're not a millionaire):\nHyken by Staples: https://amzn.to/3CcLUSR\nAeron by Herman Miller: https://amzn.to/3nwiWqH\nEmbody by Herman Miller: https://amzn.to/368OA69\nSteelcase Gesture: https://amzn.to/365o7Gf\nErgoChair 2 by Autonomous: https://bit.ly/2WZsvBe\nCostco Chair: https://www.costco.com/bayside-furnis...\nJoin me in DeFi Pro and make passive income with crypto. http://defipro.dev/\nJoin ex-Google/ex-Facebook engineers for my coding interview training: https://techinterviewpro.com/\n💻 100+ Videos of programming interview problems explained: https://coderpro.com/\n📷 Learn how to build a $1,000,000+ business on YouTube: http://youtubebackstage.com/\n💻 Sign up for my FREE daily coding interview practice: http://dailyinterviewpro.com/\n\n🛒 All my computer/camera gear: https://www.amazon.com/shop/techlead/...\n⌨️ My favorite keyboards: http://iqunix.store/techlead\n\n🎉 Party up:\n  / techleadhd  \n  / techleadhd  \n\nDisclosure: Some links are affiliate links to products. I may receive a small commission for purchases made through these links.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5IcvRe8bQhU",
        "title": "How I lost $350K daytrading stocks and what I learned from it.",
        "publishedAt": "7 years ago",
        "durationSeconds": 782,
        "views": 1437856,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ex-Google Tech Lead loses $350,000 in the stock market and lives to tell the tale.  For fun daily problems on science and engineering check out http://brilliant.org/techlead (the first 200 get 20% off premium).  Get 2 Free Stocks on WeBull when you deposit $100 (Valued up to $1000) http://bit.ly/techleadstock\n\nIf you think you're so smart, then go play the stock markets and prove that you really are smarter.  The experience will take you down a notch - keep yourself in check.  Let me know your thoughts in the comments below.\n\nJoin me in DeFi Pro and make passive income with crypto. http://defipro.dev/\nJoin ex-Google/ex-Facebook engineers for my coding interview training: https://techinterviewpro.com/\n💻 100+ Videos of programming interview problems explained: https://coderpro.com/\n📷 Learn how to build a $1,000,000+ business on YouTube: http://youtubebackstage.com/\n💻 Sign up for my FREE daily coding interview practice: http://dailyinterviewpro.com/\n\n🛒 All my computer/camera gear: https://www.amazon.com/shop/techlead/...\n⌨️ My favorite keyboards: http://iqunix.store/techlead\n\n🎉 Party up:\n  / techleadhd  \n  / techleadhd  \n\nDisclosure: Some links are affiliate links to products. I may receive a small commission for purchases made through these links.\n #techlead",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "amzn.to",
        "amazon.com",
        "bit.ly",
        "brilliant.org"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": null,
      "additionalContacts": []
    },
    "contactability": {
      "tier": "none",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": false,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Not reachable through public business channels. No published business email and no external website detected."
    },
    "topicPillars": [
      {
        "label": "techlead",
        "share": 1,
        "evidenceVideoIds": [
          "TwWWw6e9ko0",
          "tvj-Nh5W0lw",
          "eOU5ALbUFEg",
          "RweoklWbLsw",
          "QwRidEuefXI"
        ]
      },
      {
        "label": "https",
        "share": 1,
        "evidenceVideoIds": [
          "TwWWw6e9ko0",
          "tvj-Nh5W0lw",
          "eOU5ALbUFEg",
          "RweoklWbLsw",
          "QwRidEuefXI"
        ]
      },
      {
        "label": "com",
        "share": 1,
        "evidenceVideoIds": [
          "TwWWw6e9ko0",
          "tvj-Nh5W0lw",
          "eOU5ALbUFEg",
          "RweoklWbLsw",
          "QwRidEuefXI"
        ]
      },
      {
        "label": "techleadhd",
        "share": 1,
        "evidenceVideoIds": [
          "TwWWw6e9ko0",
          "tvj-Nh5W0lw",
          "eOU5ALbUFEg",
          "RweoklWbLsw",
          "QwRidEuefXI"
        ]
      },
      {
        "label": "google",
        "share": 0.89,
        "evidenceVideoIds": [
          "TwWWw6e9ko0",
          "tvj-Nh5W0lw",
          "eOU5ALbUFEg",
          "RweoklWbLsw",
          "rJJBnmDkEwI"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Tuesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "D",
      "rationale": "limited sponsorship signals (never maturity, none contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 26,
      "reason": "tier D composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.05
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.38,
      "level": "very-low",
      "coldStart": false
    },
    "whyThisMatters": "Tier D — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 30,
    "failureType": null,
    "summary": "TechLead — 1.5M subs, D-tier sponsorship readiness, none contactability, respond within 30 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 26,
      "readyForOutreach": false,
      "blockers": [
        "contactability:none — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.84,
      "urgency": 0,
      "noiseRisk": 0.62
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "enrichment",
      "secondary": "linkedin",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [],
      "missedOpportunities": [
        "no-external-website-detected",
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "unknown",
      "score": 0,
      "factors": [],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "none"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "ignore",
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": {
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "gaps": [
        "tier:D",
        "contactability:none"
      ]
    },
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "f044660b3cd13a4f2b69f206e34eccb8ea1b035748050e1affa5f5902a5ec788",
      "inputsHash": "082bd384f6244c1e0da2b5f1b65a5a4251a4bdbfad2a9c7ed9d8f86b121ee161",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:19.204Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "f5afb54f025de89c797b37edcf68c6516aace83737c9aba140e72f0fa22d5314",
    "channelId": "UC-ptWR16ITQyYOglXyQmpzw",
    "channelHandle": "@IAmTimCorey",
    "channelName": "IAmTimCorey",
    "channelUrl": "https://www.youtube.com/@IAmTimCorey",
    "description": "My goal is to make your life easier, specifically when it comes to learning software development. I remember what it was like to not know even what questions to ask. In every video I do, I try to answer those questions. You will notice that I don't usually do quick videos. That's because I would rather help you understand rather than just padding my watch percentages. If you want more in-depth training, feel free to head over to my website (https://www.iamtimcorey.com) where I have courses dedicated to C#, SQL, and more.",
    "joinDate": null,
    "location": null,
    "subscribers": 441000,
    "totalVideos": 978,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/MqseoUCOXhyxH5EbnHIb6L0QYTr5CNuDay4HYeU41AqXS7ojiq2jPfkUcUyK3mJmMlYb1Xqn4Wg=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "iamtimcorey.com",
        "url": "https://www.iamtimcorey.com"
      },
      {
        "platform": "twitter",
        "url": "https://www.twitter.com/IAmTimCorey"
      },
      {
        "platform": "facebook",
        "url": "https://www.facebook.com/IAmTimCorey/"
      }
    ],
    "recentVideos": [
      {
        "videoId": "hMhA5sLHUpY",
        "title": "Adding API GET Calls - C# on Linux Episode 16",
        "publishedAt": "12 hours ago",
        "durationSeconds": 947,
        "views": 632,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this episode, we are going to add the other GET command for our API project.\n\nFull Training Courses: https://IAmTimCorey.com\nSource Code: https://www.iamtimcorey.com/downloads/?code=linux-ep-16",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KyrH3D-JZ8Q",
        "title": "Adding Swagger UI to our API - C# on Linux Episode 15",
        "publishedAt": "2 days ago",
        "durationSeconds": 465,
        "views": 1348,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Now that we have our API started, we are going to add Swagger UI to the project so that we can easily try out our API from the web.\n\nFull Training Courses: https://IAmTimCorey.com\nSource Code: https://www.iamtimcorey.com/downloads...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "W2WtR0N4r0I",
        "title": "308. Avoiding Product Drift in a World of AI",
        "publishedAt": "6 days ago",
        "durationSeconds": 1202,
        "views": 1937,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Do you know what the purpose of your app is? Why does it feel like good products aren't as good anymore? How do you know when to quit adding features? These are the questions we will answer in today's episode of DevQuestions.\n\nFull Training Courses: https://IAmTimCorey.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "W_6qvnkNV7o",
        "title": "Wiring Up SQL to Our API - C# on Linux Episode 14",
        "publishedAt": "9 days ago",
        "durationSeconds": 2457,
        "views": 2303,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We now have a SQL database to talk to. Let's connect to it in our API project.\n\nFull Training Courses: https://IAmTimCorey.com\nSource Code: https://www.iamtimcorey.com/downloads/?code=linux-ep-14",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mlaPGxE9hlY",
        "title": "307. Code is a Liability, Not an Asset",
        "publishedAt": "13 days ago",
        "durationSeconds": 1779,
        "views": 3379,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Why is more code a bad thing? Does it really matter how efficient your code is if your product works? Why do senior developers spend so much time eliminating code? These are the questions we will answer in today's episode of DevQuestions.\n\nFull Training Courses: https://IAmTimCorey.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TJujaEVO7rQ",
        "title": "GitHub's AI Problem - How AI Is Damaging the Platform",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 1701,
        "views": 18476,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "GitHub has an AI problem. You may have heard about GitHub's uptime problem, but the problem is a LOT more complex than you might know. So let's talk about why AI is crushing GitHub and what the solutions might be.\n\nFull Training Courses: https://IAmTimCorey.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5Okd8-YzhbI",
        "title": "SQL Database Design for the Ticket App - C# on Linux Episode 13",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 2164,
        "views": 3477,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We have started working on building a full demo app on Linux. In this video, we are going to be building out our SQL database content. We will create a table and some stored procedures for our Ticket App.\n\nFull Training Courses: https://IAmTimCorey.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "yN0b_j-A9RU",
        "title": "306. The Dangers of Fast-Moving Development with AI",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 1037,
        "views": 6703,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Isn't the amount of work an AI can do a good thing? Bug fixes and new features are being added faster than ever. Are there any downsides to this? These are the questions we will answer in today's episode of DevQuestions.\n\nFull Training Courses: https://IAmTimCorey.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gh0sln5m_TU",
        "title": "Creating Clear Instructions for AI - Ethical Uses of AI",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 656,
        "views": 3249,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Using an AI correctly includes knowing how to issue clear instructions. And while I think that AI coding tools are wildly over-used, there are benefits to knowing how to use them. In this video, I am going to solve a one-off problem with a small AI-developed application rather than doing manual steps in order to demonstrate issuing clear instructions.\n\nFull Training Courses: https://IAmTimCorey.com\nSource Code: https://www.iamtimcorey.com/downloads...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MeVbMb4Wi-Q",
        "title": "305. Red Flags in a Job Opportunity",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 2321,
        "views": 3913,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "What are some red flags when looking at a potential job? What should I avoid in an employer? Can I tell what the company culture will be like before I join an organization? These are the questions we will answer in today's episode of DevQuestions.\n\nFull Training Courses: https://IAmTimCorey.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YV2p0NqKZ-E",
        "title": "Installing Aspire And New Project Setup - C# on Linux Episode 12",
        "publishedAt": "1 month ago",
        "durationSeconds": 1139,
        "views": 1850,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Let's install and configure Aspire on our Linux machine. But we are also going to kick off the development of a new part of this series. We will start building a very small but real application...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qwAKqNEItTI",
        "title": "304. Why \"It Depends\" is a Developer's Most Important Phrase",
        "publishedAt": "1 month ago",
        "durationSeconds": 949,
        "views": 2229,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Why do senior developers always say \"it depends\"? Why can't they just answer the question? Why do we have all of these choices in software development? Why can't we just agree on the best solution?...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-H5mMexO4_I",
        "title": "Setting Up SQL Server on Linux - C# on Linux Episode 11",
        "publishedAt": "1 month ago",
        "durationSeconds": 1121,
        "views": 3776,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We saw how to use Docker to install image, and we used Portainer to view those images and containers. Now in this video, we are going to use Docker to set up Microsoft SQL Server 2025 (and...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0LTwT-iSs3U",
        "title": "Easy File/Text Sharing with LocalSend - C# on Linux Episode 10",
        "publishedAt": "1 month ago",
        "durationSeconds": 525,
        "views": 2502,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Sharing text, the clipboard contents, or even full files between Windows, Mac, Linux, iOS, and Android devices doesn't have to be hard. LocalSend makes things easy, and it is free to use.\n...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5JWCttdfGjY",
        "title": "303. Why Monoliths Beat Microservices Almost Every Time",
        "publishedAt": "1 month ago",
        "durationSeconds": 1306,
        "views": 12334,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Which is better: A monolith or a microservice application? Why do experienced developers not spend more time making microservices? When should we develop a monolith? These are the questions...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-RZmUkObVXU",
        "title": "Installing Docker and Portainer on Linux - C# on Linux Episode 9",
        "publishedAt": "1 month ago",
        "durationSeconds": 1354,
        "views": 2388,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Not everything should be installed directly onto your system. For example, I don't recommend installing SQL Server directly, yet that is often the database I recommend when working with C#....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uvB8IOUOaRQ",
        "title": "302. Why Do Developers Use the Command Line",
        "publishedAt": "1 month ago",
        "durationSeconds": 671,
        "views": 4464,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Why do developers create and use Command Line Interface (CLI) apps? Why are TUIs on the rise? Why did Claude Code decide to make their application a Terminal UI instead of a GUI? These are...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ayew1XdeM90",
        "title": "Installing JetBrains Rider on Linux Mint - C# on Linux Episode 8",
        "publishedAt": "1 month ago",
        "durationSeconds": 1134,
        "views": 2815,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We have the .NET 10 SDK installed and we've installed VS Code with the C# Dev Kit. But not everyone wants to use VS Code. So let's install another great alternative: JetBrains Rider. Let's...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PMial19Q4j8",
        "title": "Installing VS Code and the C# Dev Kit on Linux - C# on Linux Episode 7",
        "publishedAt": "1 month ago",
        "durationSeconds": 1171,
        "views": 2885,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Let's get VS Code with the C# Dev Kit installed and running on our Linux installation. Once we do, we will create a Blazor Web app to demonstrate creating an application, running a web application,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QHw3JVz1ne0",
        "title": "301. Does Quality Matter When AI Code Creation Is So Fast?",
        "publishedAt": "1 month ago",
        "durationSeconds": 1658,
        "views": 3084,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Does code quality matter anymore? AI can create so much code so quickly, so does it matter if it isn't perfect? It can just fix the mistakes and keep going. Is code quality a thing of the past?...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "I9aL7Sx6xdA",
        "title": "Installing the .NET 10 SDK on Linux - C# on Linux Episode 6",
        "publishedAt": "1 month ago",
        "durationSeconds": 836,
        "views": 4085,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Let's install .NET on Linux Mint. Specifically, we are going to install the .NET 10 SDK and build a couple quick applications to validate that we are up and running with C# on Linux. In upcoming...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "n8wnmgbnHwQ",
        "title": "300. Are Developer Training Methods Outdated Because of AI?",
        "publishedAt": "2 months ago",
        "durationSeconds": 1705,
        "views": 3539,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Has software development training changed because of AI? Do developers even need to learn languages when they have AI? Can AI be a good trainer? Can AI evaluate my work or give me good practice...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WgU8TJs4UsQ",
        "title": "Updating Apps on Linux - C# on Linux Episode 5",
        "publishedAt": "2 months ago",
        "durationSeconds": 529,
        "views": 2139,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Keeping your installation of Linux up to date doesn't have to be hard, but you need to know what steps to take. In this side quest in our C# on Linux series, we are going to look at both the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4jv2TAxd7Qc",
        "title": "Side Quest: Installing Edge on Linux - C# on Linux Episode 4",
        "publishedAt": "2 months ago",
        "durationSeconds": 1477,
        "views": 2102,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "So far in this series, we have tested out Linux, installed it on our machine, and done some basic configuration. Before we continue, I want to install my preferred browser. This is an optional...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Ei9eq6sJtLg",
        "title": "299. Hope - Why Software Developers Should Be Hopeful",
        "publishedAt": "2 months ago",
        "durationSeconds": 3305,
        "views": 8456,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Why is the job market slowing down? Are AI CEOs right about software developers being replaced in a year? Should I even become a software developer? Are there better careers out there? These...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "G3nKRmIkPxU",
        "title": "Software Quality (still) Matters and AI Is Making It Worse",
        "publishedAt": "2 months ago",
        "durationSeconds": 1448,
        "views": 4208,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Software quality matters. We have seen AI negatively impacting uptime. People shipping untested, buggy applications. And it isn't just the little apps. Windows, GitHub, Claude, ChatGPT, and...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "yzcPw9utPb0",
        "title": "How To Install Linux Mint - C# on Linux Episode 3",
        "publishedAt": "2 months ago",
        "durationSeconds": 1220,
        "views": 2944,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Now that you have learned the basics of how Linux works using a bootable USB thumb drive, let's install Linux onto our hard drive so that we have a dedicated machine for learning .NET on Linux....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ollC4DDKTUk",
        "title": "298. How to Transition from Tutorials To Getting Hired",
        "publishedAt": "2 months ago",
        "durationSeconds": 712,
        "views": 1740,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Watching tutorials isn't enough to get you a job. Most jobs want work experience. But you need a job to get that work experience. So how do you transition from watching a tutorial to getting...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hbDelSsNr4c",
        "title": "Testing Linux Mint Using a Thumb Drive - C# on Linux Episode 2",
        "publishedAt": "2 months ago",
        "durationSeconds": 1382,
        "views": 4955,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "You can test out Linux with just a spare USB drive. In this video, we are going to install Linux Mint to a thumb drive and then reboot into Linux without disrupting our installation of Windows....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kK4A6veGCOQ",
        "title": "Series Intro to Developing C# Apps on Linux - C# on Linux Episode 1",
        "publishedAt": "2 months ago",
        "durationSeconds": 891,
        "views": 11410,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In C# development, options are great. But often, we look at Windows as the only option for an operating system. In this series, we are going to add another option by seeing how to install,...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 21,
      "uploadsLast90d": 30,
      "uploadCadenceWeekly": 2.33,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 3084,
      "viewsPerVideoP90Last90d": 8456,
      "viewVelocityTrend": "stable"
    },
    "performanceBaseline": {
      "p50Views": 3084,
      "p90Views": 8456,
      "p99Views": 12334,
      "outperformingVideosLast90d": 4
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "ai-saas",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:training"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "iamtimcorey.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "linux",
        "share": 0.53,
        "evidenceVideoIds": [
          "hMhA5sLHUpY",
          "KyrH3D-JZ8Q",
          "W_6qvnkNV7o",
          "5Okd8-YzhbI",
          "YV2p0NqKZ-E"
        ]
      },
      {
        "label": "going",
        "share": 0.37,
        "evidenceVideoIds": [
          "hMhA5sLHUpY",
          "KyrH3D-JZ8Q",
          "5Okd8-YzhbI",
          "gh0sln5m_TU",
          "YV2p0NqKZ-E"
        ]
      },
      {
        "label": "full",
        "share": 0.37,
        "evidenceVideoIds": [
          "hMhA5sLHUpY",
          "KyrH3D-JZ8Q",
          "W2WtR0N4r0I",
          "W_6qvnkNV7o",
          "mlaPGxE9hlY"
        ]
      },
      {
        "label": "training",
        "share": 0.37,
        "evidenceVideoIds": [
          "hMhA5sLHUpY",
          "KyrH3D-JZ8Q",
          "W2WtR0N4r0I",
          "W_6qvnkNV7o",
          "mlaPGxE9hlY"
        ]
      },
      {
        "label": "courses",
        "share": 0.33,
        "evidenceVideoIds": [
          "hMhA5sLHUpY",
          "KyrH3D-JZ8Q",
          "W2WtR0N4r0I",
          "W_6qvnkNV7o",
          "mlaPGxE9hlY"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Tuesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "content pillars match high-value sponsor categories, consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 36,
      "reason": "fits ai-saas",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.55
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.35
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "fits ai-saas. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "IAmTimCorey — 0.4M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 36,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.74,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "ai-saas",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "f5afb54f025de89c797b37edcf68c6516aace83737c9aba140e72f0fa22d5314",
      "inputsHash": "f80e0dc7ff7498338387099a7ad62aff1b544b3edaf317ca08a22e69cf68e301",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-stable",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:19.843Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "skipped",
    "eventId": "3818c59db50d86acd620e6def5da7f0b38326d6a82518e356a92a375c88f240d",
    "channelHandle": "@Coreymschafer",
    "channelId": "UCmY91yfYo5DPqVt4TGkRNJA",
    "subscribers": 4910,
    "skipReason": {
      "source": "quality-gate",
      "rules": [
        "minSubscribers<50000"
      ],
      "message": "Channel filtered out by quality gate: minSubscribers<50000. No PPE event charged."
    },
    "summary": "Skipped @Coreymschafer — failed gate: minSubscribers<50000.",
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:20.533Z"
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "b2a51a5ba25ba564e02c618af3fe1085cdbd2cea63946d109a63f6baaeb38acd",
    "channelId": "UCI0vQvr9aFn27yR6Ej6n5UA",
    "channelHandle": "@realpython",
    "channelName": "Real Python",
    "channelUrl": "https://www.youtube.com/@realpython",
    "description": "Python tutorials and training videos for Pythonistas that go beyond the basics. \n\n🎓🐍 Get free Python tips and programming tutorials at https://realpython.com\n\nHey, I’m Dan Bader and I help Python developers take their coding skills and productivity to the next level. I’m an independent software engineer, author, and speaker. I’ve been developing software for 15 years—and I’d love to help you become a more proficient Python coder.\n\nOn this channel you’ll get new Python videos and screencasts every week. They’re bite-sized and to the point so you can fit them in with your day and pick up new Python skills on the side:\n\n► Free Python Articles & Tutorials: https://realpython.com\n► Listen to the Real Python Podcast: https://realpython.com/podcast",
    "joinDate": null,
    "location": null,
    "subscribers": 207000,
    "totalVideos": 1200,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_nzF12uuoHg0gD_rl6GKh3imllb_MI7Npr2B6tJpZp939U=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "realpython.com",
        "url": "https://realpython.com/cheatsheet"
      },
      {
        "platform": "realpython.com",
        "url": "https://realpython.com/skill-test"
      },
      {
        "platform": "realpython.com",
        "url": "https://realpython.com/start"
      },
      {
        "platform": "realpython.com",
        "url": "https://realpython.com"
      },
      {
        "platform": "realpython.com",
        "url": "https://realpython.com/podcast"
      }
    ],
    "recentVideos": [
      {
        "videoId": "D6Q7EdMmFTQ",
        "title": "Declarative Charts in Python & Discerning Iterators vs Iterables | Real Python Podcast #294",
        "publishedAt": "5 days ago",
        "durationSeconds": 3379,
        "views": 393,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "What if you could build charts in Python by describing what your data means, instead of scripting every visual detail? Christopher Trudeau is back on the show this week with another batch of PyCoder's Weekly articles and projects.\n\n👉 Links from the show: https://realpython.com/podcasts/rpp/294/\n\nWe cover a recent Real Python article about the data visualization library Altair. Most tools require you to write detailed boilerplate code to set up the axis and figure. Altair follows a declarative approach where you specify which columns go to which axis, the type of chart or plot, and what should be interactive. \n\nWe also share other articles and projects from the Python community, including recent releases, clarifying the differences between iterators and iterables, decoupling your business logic from the Django ORM, comparing an LLM-based tool for web scraping against Playwright, a neural network emulator for guitar amplifiers, and a CLI tool to generate ASCII art of the current moon phase.\n\nThis episode is sponsored by Build Your Own Coding Agent.\n\nTopics:\n\n00:00:00 -- Introduction\n00:02:38 -- Read the Docs Now Supports `uv` Natively\n00:03:09 -- Reverting the Incremental GC in Python 3.14 and 3.15\n00:04:51 -- Altair: Declarative Charts With Python\n00:12:23 -- Sponsor: Build Your Own Coding Agent\n00:13:17 -- Decoupling Your Business Logic From the Django ORM\n00:19:51 -- `browser-use` vs. Playwright: Which to Pick for Web Scraping?\n00:26:58 -- 2048: iterators and iterables - Ned Batchelder\n00:31:31 -- Video Course Spotlight\n00:33:00 -- Discussion: Jumping back into solo developer mode\n00:46:59 -- neural-amp-modeler: Neural network emulator for guitar amplifiers\n00:51:48 -- ascii-moon-phase-python: CLI for ASCII art of the current moon phase\n00:53:11 -- Thanks and goodbye\n00:54:43 -- Appendix: Neural Amp Modeler - Demo\n\n👉 Links from the show: https://realpython.com/podcasts/rpp/294/\n\nDownload your free Python Cheat Sheet here: https://realpython.com/cheatsheet\nFree Python Skill Test with instant level + learning plan: https://realpython.com/skill-test\nWant to learn faster? Become a Python Expert with unlimited access to 5,000+ tutorials, videos, and exercises: https://realpython.com/start\n\n🐍 Become a Python expert with real-world tutorials, on-demand courses, interactive quizzes, and 24/7 access to a community of experts at https://realpython.com\n\n▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰\n🐍 Start Here → https://realpython.com/start\n🗺️ Guided Learning Paths → https://realpython.com/learning-paths\n🎧 Real Python Podcast → https://realpython.com/podcast\n\n📚 Python Books → https://realpython.com/books\n📖 Python Reference → https://realpython.com/ref\n🧑‍💻 Quizzes & Exercises → https://realpython.com/quizzes\n\n🎓 Live Courses: https://realpython.com/live\n⭐️ Reviews & Learner Stories: https://realpython.com/learner-stories\n▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "P2pmcOiMSjE",
        "title": "Use Codex CLI to Enhance Your Python Projects: Installing & Setting Up",
        "publishedAt": "6 days ago",
        "durationSeconds": 510,
        "views": 490,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Download your free Python Cheat Sheet here: https://realpython.com/cheatsheet\nFree Python Skill Test with instant level + learning plan: https://realpython.com/skill-test\nWant to learn faster? Become a Python Expert with unlimited access to 5,000+ tutorials, videos, and exercises: https://realpython.com/start\n\n\nThis is a preview of the video course, \"Use Codex CLI to Enhance Your Python Projects\". After watching this video course, you’ll be able to use Codex CLI to add features to a Python project directly from your terminal. Codex CLI is an AI-powered coding assistant that runs inside your terminal. It understands your project structure, reads your files, and proposes multi-file changes using natural language instructions.\n\nInstead of copying code from a browser or relying on an IDE plugin, you’ll use Codex CLI to implement a real feature in a multi-file Python project directly from your terminal. \n\nThis is a portion of the complete course, which you can find here: https://realpython.com/courses/use-co... \n\nThe rest of the course covers:\nSetting Up Codex\nFirst Steps With Codex\nUsing Plan Mode in Codex CLI\nImplementing the Plan\nRefining Project Features\nUse Codex CLI to Enhance Your Python Projects (Quiz)\n\n\n\n🐍 Become a Python expert with real-world tutorials, on-demand courses, interactive quizzes, and 24/7 access to a community of experts at https://realpython.com\n\n▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰\n🐍 Start Here → https://realpython.com/start\n🗺️ Guided Learning Paths → https://realpython.com/learning-paths\n🎧 Real Python Podcast → https://realpython.com/podcast\n\n📚 Python Books → https://realpython.com/books\n📖 Python Reference → https://realpython.com/ref\n🧑‍💻 Quizzes & Exercises → https://realpython.com/quizzes\n\n🎓 Live Courses: https://realpython.com/live\n⭐️ Reviews & Learner Stories: https://realpython.com/learner-stories\n▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Rr4z-WspKsE",
        "title": "Agentic Data Science Pair Programming With marimo pair | Real Python Podcast #293",
        "publishedAt": "12 days ago",
        "durationSeconds": 3853,
        "views": 551,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How do you add agent skills to your data science workflow? How can a coding agent assist with data wrangling and research? This week on the show, Trevor Manz from marimo joins us to discuss marimo pair.\n\n👉 Links from the show: https://realpython.com/podcasts/rpp/293/\n\nTrevor is a founding engineer at marimo, where he's been working on integrating LLM tools with marimo. We discuss the balancing act of building a skill and determining how to give an agent access to all the variables in a notebook. He shares how they built a specialized reactive REPL that eliminates hidden state and allows the agent to continue constructing a reproducible Python program.\n\nWe dig into installing and getting started with marimo pair. Trevor also covers several of the tasks an agent can tackle in a data science workflow.\n\nTopics:\n\n00:00:00 -- Introduction\n00:02:26 -- Trevor's role at marimo\n00:03:08 -- Current AI tools in marimo\n00:06:26 -- Describing marimo notebooks\n00:10:11 -- What is marimo pair?\n00:18:49 -- Building an agent skill\n00:27:34 -- Setup & installation\n00:31:16 -- Video Course Spotlight\n00:32:42 -- Examples of EDA and data wrangling\n00:45:46 -- Experimenting inside of a notebook\n00:50:40 -- Managing context\n00:53:25 -- Accessing additional libraries\n00:57:16 -- Recent tools and updates from the marimo community\n00:59:31 -- What are you excited about in the world of Python?\n01:01:10 -- What do you want to learn next?\n01:02:26 -- How can people follow your work online?\n01:03:13 -- Thanks and goodbye\n\n👉 Links from the show: https://realpython.com/podcasts/rpp/293/\n\nDownload your free Python Cheat Sheet here: https://realpython.com/cheatsheet\nFree Python Skill Test with instant level + learning plan: https://realpython.com/skill-test\nWant to learn faster? Become a Python Expert with unlimited access to 5,000+ tutorials, videos, and exercises: https://realpython.com/start\n\n🐍 Become a Python expert with real-world tutorials, on-demand courses, interactive quizzes, and 24/7 access to a community of experts at https://realpython.com\n\n▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰\n🐍 Start Here → https://realpython.com/start\n🗺️ Guided Learning Paths → https://realpython.com/learning-paths\n🎧 Real Python Podcast → https://realpython.com/podcast\n\n📚 Python Books → https://realpython.com/books\n📖 Python Reference → https://realpython.com/ref\n🧑‍💻 Quizzes & Exercises → https://realpython.com/quizzes\n\n🎓 Live Courses: https://realpython.com/live\n⭐️ Reviews & Learner Stories: https://realpython.com/learner-stories\n▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VRMWx6o81YI",
        "title": "Testing Your Code With Python's unittest: Structuring & Validating Tests",
        "publishedAt": "13 days ago",
        "durationSeconds": 1031,
        "views": 326,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Download your free Python Cheat Sheet here: https://realpython.com/cheatsheet\nFree Python Skill Test with instant level + learning plan: https://realpython.com/skill-test\nWant to learn faster? Become a Python Expert with unlimited access to 5,000+ tutorials, videos, and exercises: https://realpython.com/start\n\n\nThis is a preview of the video course, \"Testing Your Code With Python's unittest\". The Python standard library ships with a testing framework named unittest, which you can use to write automated tests for your code. The unittest package has an object-oriented approach where test cases derive from a base class, which has several useful methods.\n\nThe framework supports many features that will help you write consistent unit tests for your code. These features include test cases, fixtures, test suites, and test discovery capabilities.\n\nThis is a portion of the complete course, which you can find here: https://realpython.com/courses/testin...\n\nThe rest of the course covers:\nAsserting Yourself\nExercise: Test a String Utility\nSkipping Tests\nUsing Subtests\nExercise: Parameterize Tests With Subtests\nPreparing With Fixtures\nExercise: Prepare Test Data With Fixtures\nTesting Your Code With Python's unittest (Quiz)\n\n\n\n🐍 Become a Python expert with real-world tutorials, on-demand courses, interactive quizzes, and 24/7 access to a community of experts at https://realpython.com\n\n▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰\n🐍 Start Here → https://realpython.com/start\n🗺️ Guided Learning Paths → https://realpython.com/learning-paths\n🎧 Real Python Podcast → https://realpython.com/podcast\n\n📚 Python Books → https://realpython.com/books\n📖 Python Reference → https://realpython.com/ref\n🧑‍💻 Quizzes & Exercises → https://realpython.com/quizzes\n\n🎓 Live Courses: https://realpython.com/live\n⭐️ Reviews & Learner Stories: https://realpython.com/learner-stories\n▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1wqjqSflyy0",
        "title": "Becoming a Better Python Developer Through Learning Rust | Real Python Podcast #292",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 2753,
        "views": 689,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How can learning Rust help make you a better Python Developer? How do techniques required by a compiled language translate to improving your Python code? Christopher Trudeau is back on the show this week with another batch of PyCoder's Weekly articles and projects.\n\n👉 Links from the show: https://realpython.com/podcasts/rpp/292/\n\nWe discuss a recent article by Bob Belderbos titled \"Learning Rust Made Me a Better Python Developer.\" Bob has been on a journey learning to program in Rust, which has made him rethink how he's been writing Python. The compiler forced him to confront things he'd been ignoring.\n\nWe also share other articles and projects from the Python community, including recent releases, a boatload of PEPs, NumPy as a synth engine, firing and forgetting with Python's asyncio, managing state with signals in Python, a documentation site generator for Python packages, and a tool to explain your Python environment.\n\nThis episode is sponsored by AgentField.\n\nTopics:\n\n00:00:00 -- Introduction\n00:02:23 -- Python 3.15.0a8, 3.14.4 and 3.13.13 Released\n00:03:01 -- Django Security Releases: 6.0.4, 5.2.13, and 4.2.30\n00:03:38 -- DjangoCon Europe 2027 Call for Organizers\n00:04:04 -- PEP 803: `\"abi3t\"`: Stable ABI for Free-Threaded Builds\n00:04:44 -- PEP 829: Structured Startup Configuration via .site.toml File\n00:05:18 -- PEP 830 – Add timestamps to exceptions and tracebacks\n00:05:44 -- PEP 831 – Frame Pointers Everywhere: Enabling System-Level Observability for Python\n00:06:59 -- PEP 832 – Virtual environment discovery\n00:10:13 -- PyCoder’s Weekly - Submit a Link\n00:11:15 -- NumPy as Synth Engine\n00:21:04 -- Sponsor: AgentField\n00:22:05 -- Fire and Forget at Textual\n00:25:39 -- Learning Rust Made Me a Better Python Developer\n00:34:06 -- Video Course Spotlight\n00:35:49 -- Signals: State Management for Python Developers\n00:40:34 -- great-docs: Documentation Site Generator for Python Package\n00:42:32 -- pywho: Explain Your Python Environment and Detect Shadows\n00:44:01 -- Thanks and goodbye\n\n👉 Links from the show: https://realpython.com/podcasts/rpp/292/\n\nDownload your free Python Cheat Sheet here: https://realpython.com/cheatsheet\nFree Python Skill Test with instant level + learning plan: https://realpython.com/skill-test\nWant to learn faster? Become a Python Expert with unlimited access to 5,000+ tutorials, videos, and exercises: https://realpython.com/start\n\n🐍 Become a Python expert with real-world tutorials, on-demand courses, interactive quizzes, and 24/7 access to a community of experts at https://realpython.com\n\n▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰\n🐍 Start Here → https://realpython.com/start\n🗺️ Guided Learning Paths → https://realpython.com/learning-paths\n🎧 Real Python Podcast → https://realpython.com/podcast\n\n📚 Python Books → https://realpython.com/books\n📖 Python Reference → https://realpython.com/ref\n🧑‍💻 Quizzes & Exercises → https://realpython.com/quizzes\n\n🎓 Live Courses: https://realpython.com/live\n⭐️ Reviews & Learner Stories: https://realpython.com/learner-stories\n▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZoxYMRjFwfU",
        "title": "Leverage OpenAI's API in Your Python Projects: Storing Your API Key & Setting Up Your Environment",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 764,
        "views": 287,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Download your free Python Cheat Sheet here: https://realpython.com/cheatsheet\nFree Python Skill Test with instant level + learning plan: https://realpython.com/skill-test\nWant to learn faster? Become a Python Expert with unlimited access to 5,000+ tutorials, videos, and exercises: https://realpython.com/start\n\n\nThis is a preview of the video course, \"Leverage OpenAI's API in Your Python Projects\". Python’s openai library provides the tools you need to integrate the ChatGPT API into your Python applications. With it, you can send text prompts to the API and receive AI-generated responses. You can also guide the AI’s behavior with developer role messages and handle both simple text generation and more complex code creation tasks.\n\nAfter watching this video course, you’ll understand how examples like this work under the hood. You’ll learn the fundamentals of using the ChatGPT API from Python and have code examples you can adapt for your own projects.\n\nThis is a portion of the complete course, which you can find here:\n\nThe rest of the course covers:\nInstalling OpenAI\nBuilding a Basic Example\nIntroducing Role-Based Messages\nRunning Role-Based Messages\nBreaking the Rules: Human vs Machine\nExercise: Build Role-Based Messages for ChatGPT\nStructuring the Output\nExercise: Model Structured Output With Pydantic\nTaking Your Next Steps\nLeverage OpenAI's API in Your Python Projects (Quiz)\n\n\n\n🐍 Become a Python expert with real-world tutorials, on-demand courses, interactive quizzes, and 24/7 access to a community of experts at https://realpython.com\n\n▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰\n🐍 Start Here → https://realpython.com/start\n🗺️ Guided Learning Paths → https://realpython.com/learning-paths\n🎧 Real Python Podcast → https://realpython.com/podcast\n\n📚 Python Books → https://realpython.com/books\n📖 Python Reference → https://realpython.com/ref\n🧑‍💻 Quizzes & Exercises → https://realpython.com/quizzes\n\n🎓 Live Courses: https://realpython.com/live\n⭐️ Reviews & Learner Stories: https://realpython.com/learner-stories\n▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rQFDGOiqPL0",
        "title": "Reassessing the LLM Landscape & Summoning Ghosts | Real Python Podcast #291",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 4510,
        "views": 608,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "What are the current techniques being employed to improve the performance of LLM-based systems? How is the industry shifting from post-training towards context engineering and multi-agent orchestration? This week on the show, Jodie Burchell, data scientist and Python Advocacy Team Lead at JetBrains, returns to discuss the current AI coding landscape. \n\n👉 Links from the show: https://realpython.com/podcasts/rpp/291/\n\nIn our last conversation, Jodie covered how LLMs were approaching the limits of scaling laws. This time, we recap last year's big focus on reasoning models and a post-training method called \"reinforcement learning from verifiable rewards\" (RLVR). We also cover test-time compute, where models spend more time reasoning through steps and considering multiple approaches to solve a problem.\n\nWe touch on Agent Context Protocol (ACP), agent orchestration layers, and context engineering. We also share some concerns about the hype cycle, maintaining all that code being generated, and running local models.\n\n\n00:00:00 -- Introduction\n00:02:02 -- Build a Language-Learning Agent course\n00:02:55 -- Update on the past six months of LLMs\n00:05:32 -- Reinforcement Learning From Verifiable Rewards\n00:07:32 -- Test Time Compute\n00:08:36 -- 2025 and the rise of agents\n00:14:24 -- Benchmarks shifting\n00:15:23 -- Andrew Karpathy and jagged intelligence\n00:19:16 -- Not evolving or growing animals but summoning ghosts\n00:23:34 -- Diminishing gains in newer models\n00:24:23 -- Context Engineering\n00:35:01 -- Multi-agent systems and diversity of models\n00:36:56 -- Video Course Spotlight\n00:38:34 -- Current generation of coding agents\n00:44:00 -- Fast vs deep reasoning\n00:45:18 -- Agent Context Protocol\n00:50:19 -- Working through the hype cycle\n00:55:43 -- Open-source contribution pollution\n00:57:21 -- Local models\n00:58:36 -- Rick Beato comparing how the music industry failed\n01:08:41 -- LLMs are an amazing development\n01:11:33 -- Keynote talk on AI summers and winters\n01:12:45 -- PyCon US and EuroPython\n01:14:11 -- Thanks and goodbye\n\n👉 Links from the show: https://realpython.com/podcasts/rpp/291/\n\nDownload your free Python Cheat Sheet here: https://realpython.com/cheatsheet\nFree Python Skill Test with instant level + learning plan: https://realpython.com/skill-test\nWant to learn faster? Become a Python Expert with unlimited access to 5,000+ tutorials, videos, and exercises: https://realpython.com/start\n\n🐍 Become a Python expert with real-world tutorials, on-demand courses, interactive quizzes, and 24/7 access to a community of experts at https://realpython.com\n\n▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰\n🐍 Start Here → https://realpython.com/start\n🗺️ Guided Learning Paths → https://realpython.com/learning-paths\n🎧 Real Python Podcast → https://realpython.com/podcast\n\n📚 Python Books → https://realpython.com/books\n📖 Python Reference → https://realpython.com/ref\n🧑‍💻 Quizzes & Exercises → https://realpython.com/quizzes\n\n🎓 Live Courses: https://realpython.com/live\n⭐️ Reviews & Learner Stories: https://realpython.com/learner-stories\n▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9SpLvgQFKzQ",
        "title": "Vector Databases and Embeddings With ChromaDB: Vectors & Word Embeddings",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 1178,
        "views": 448,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Download your free Python Cheat Sheet here: https://realpython.com/cheatsheet\nFree Python Skill Test with instant level + learning plan: https://realpython.com/skill-test\nWant to learn faster? Become a Python Expert with unlimited access to 5,000+ tutorials, videos, and exercises: https://realpython.com/start\n\n\nThis is a preview of the video course, \"Vector Databases and Embeddings With ChromaDB\". The era of large language models (LLMs) is here, bringing with it rapidly evolving libraries like ChromaDB that help augment LLM applications. You’ve most likely heard of chatbots like OpenAI’s ChatGPT, and perhaps you’ve even experienced their remarkable ability to reason about natural language processing (NLP) problems.\n\nModern LLMs, while imperfect, can accurately solve a wide range of problems and provide correct answers to many questions. However, due to the limits of their training and the number of text tokens they can process, LLMs aren’t a silver bullet for all tasks.\n\nYou wouldn’t expect an LLM to deliver relevant responses about topics that don’t appear in its training data. For example, if you asked ChatGPT to summarize information in confidential company documents, you’d be out of luck. You could show some of these documents to ChatGPT, but there’s a limit to how many documents you can upload before you exceed ChatGPT’s maximum token count. How would you select which documents to show ChatGPT?\n\nTo address these limitations and scale your LLM applications, a great option is to use a vector database like ChromaDB. A vector database allows you to store encoded unstructured objects, like text, as lists of numbers that can be compared to one another. For instance, you can find a collection of documents relevant to a question you’d like an LLM to answer.\n\nThis is a portion of the complete course, which you can find here: https://realpython.com/courses/vector...\n\nThe rest of the course covers:\nTackling Text Embeddings\nExercise: Find Similar Texts With Embeddings\nIntroducing Vector Databases\nQuerying Vector Databases\nExercise: Query a ChromaDB Collection\nAdding Context for a Large Language Model\nSetting Up the Project\nPreparing and Loading the Data\nConnecting to an LLM\nExercise: Build a RAG Context Prompt\nVector Databases and Embeddings With ChromaDB (Quiz)\n\n\n\n🐍 Become a Python expert with real-world tutorials, on-demand courses, interactive quizzes, and 24/7 access to a community of experts at https://realpython.com\n\n▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰\n🐍 Start Here → https://realpython.com/start\n🗺️ Guided Learning Paths → https://realpython.com/learning-paths\n🎧 Real Python Podcast → https://realpython.com/podcast\n\n📚 Python Books → https://realpython.com/books\n📖 Python Reference → https://realpython.com/ref\n🧑‍💻 Quizzes & Exercises → https://realpython.com/quizzes\n\n🎓 Live Courses: https://realpython.com/live\n⭐️ Reviews & Learner Stories: https://realpython.com/learner-stories\n▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xhpRfUru1iY",
        "title": "Advice on Managing Projects & Making Python Classes Friendly | Real Python Podcast #290",
        "publishedAt": "1 month ago",
        "durationSeconds": 3285,
        "views": 593,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "What goes into managing a major project? What techniques can you employ for a project that's in crisis? Christopher Trudeau is back on the show this week with another batch of PyCoder's Weekly articles and projects.\n\n👉 Links from the show: https://realpython.com/podcasts/rpp/290/\n\nWe discuss an article by Ben Khun titled, \"How I've Run Major Projects.\" We dig into the skills required for project management, and provide advice for when projects fall into crisis. We cover how the field's terminology has been updated. However, the time investment, sober communication, and planning still remain at the core of successful projects.\n\nWe also share other articles and projects from the Python community, including recent releases and announcements, exploring an IDE for data science development, using Python set comprehensions, making friendly classes, using `atexit` for cleanup, a high-performance caching library for Python written in Rust, and a curated list of awesome marimo things.\n\nThis episode is sponsored by PropelAuth.\n\nTopics:\n\n00:00:00 -- Introduction\n00:02:15 -- Starlette 1.0 Released\n00:03:08 -- PyOhio 2026 Call for Proposals Now Open!\n00:03:42 -- Spyder: Your IDE for Data Science Development in Python\n00:11:04 -- Python Set Comprehensions: How and When to Use Them\n00:14:40 -- Sponsor: PropelAuth\n00:15:17 -- Making Friendly Classes\n00:23:51 -- How to Use `atexit` for Cleanup\n00:25:49 -- Video Course Spotlight\n00:27:14 -- How I've run major projects\n00:47:47 -- awesome-marimo: Curated List of Awesome Marimo Things\n00:51:37 -- moka-py: A high performance caching library for Python written in Rust\n00:53:24 -- Thanks and goodbye\n\n👉 Links from the show: https://realpython.com/podcasts/rpp/290/\n\nDownload your free Python Cheat Sheet here: https://realpython.com/cheatsheet\nFree Python Skill Test with instant level + learning plan: https://realpython.com/skill-test\nWant to learn faster? Become a Python Expert with unlimited access to 5,000+ tutorials, videos, and exercises: https://realpython.com/start\n\n🐍 Become a Python expert with real-world tutorials, on-demand courses, interactive quizzes, and 24/7 access to a community of experts at https://realpython.com\n\n▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰\n🐍 Start Here → https://realpython.com/start\n🗺️ Guided Learning Paths → https://realpython.com/learning-paths\n🎧 Real Python Podcast → https://realpython.com/podcast\n\n📚 Python Books → https://realpython.com/books\n📖 Python Reference → https://realpython.com/ref\n🧑‍💻 Quizzes & Exercises → https://realpython.com/quizzes\n\n🎓 Live Courses: https://realpython.com/live\n⭐️ Reviews & Learner Stories: https://realpython.com/learner-stories\n▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6C6b97CxTJQ",
        "title": "Using Loguru to Simplify Python Logging: Setting Up & Understanding Logging Basics",
        "publishedAt": "1 month ago",
        "durationSeconds": 442,
        "views": 691,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Download your free Python Cheat Sheet here: https://realpython.com/cheatsheet\nFree Python Skill Test with instant level + learning plan: https://realpython.com/skill-test\nWant to learn faster? Become a Python Expert with unlimited access to 5,000+ tutorials, videos, and exercises: https://realpython.com/start\n\n\nThis is a preview of the video course, \"Using Loguru to Simplify Python Logging\". Logging is a vital programming practice that helps you track, understand, and debug your application’s behavior. Loguru is a Python library that provides simpler, more intuitive logging compared to Python’s built-in logging module.\n\nGood logging gives you insights into your program’s execution, helps you diagnose issues, and provides valuable information about your application’s health in production. Without proper logging, you risk missing critical errors, spending countless hours debugging blind spots, and potentially undermining your project’s overall stability.\n\nThis is a portion of the complete course, which you can find here: https://realpython.com/courses/using-...\n\nThe rest of the course covers:\nWorking With Log Levels\nLog Customization\nExercise: Log Events With a Custom Format\nAdding Context\nExercise: Log With Bound Context\nControlling the Context Even More\nSaving Logs to Files\nExercise: Log a Contextualized Session\nUsing Loguru to Simplify Python Logging (Quiz)\n\n\n\n🐍 Become a Python expert with real-world tutorials, on-demand courses, interactive quizzes, and 24/7 access to a community of experts at https://realpython.com\n\n▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰\n🐍 Start Here → https://realpython.com/start\n🗺️ Guided Learning Paths → https://realpython.com/learning-paths\n🎧 Real Python Podcast → https://realpython.com/podcast\n\n📚 Python Books → https://realpython.com/books\n📖 Python Reference → https://realpython.com/ref\n🧑‍💻 Quizzes & Exercises → https://realpython.com/quizzes\n\n🎓 Live Courses: https://realpython.com/live\n⭐️ Reviews & Learner Stories: https://realpython.com/learner-stories\n▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰▰",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "aT0FN0iVFKI",
        "title": "Adding Python to PATH: Understanding What PATH Is & Adding Python to PATH on Windows",
        "publishedAt": "1 month ago",
        "durationSeconds": 1141,
        "views": 609,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Download your free Python Cheat Sheet here: https://realpython.com/cheatsheet\nFree Python Skill Test with instant level + learning plan: https://realpython.com/skill-test\nWant to learn faster?...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bV7v9tlfmqo",
        "title": "Limitations in Human and Automated Code Review | Real Python Podcast #289",
        "publishedAt": "1 month ago",
        "durationSeconds": 3077,
        "views": 674,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "With the mountains of Python code that it's possible to generate now, how's your code review going? What are the limitations of human review, and where does machine review excel? Christopher...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "69KDhluYgxY",
        "title": "Understanding CRUD Operations in SQL: Understanding CRUD Operations & Connecting to SQL",
        "publishedAt": "1 month ago",
        "durationSeconds": 379,
        "views": 431,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Download your free Python Cheat Sheet here: https://realpython.com/cheatsheet\nFree Python Skill Test with instant level + learning plan: https://realpython.com/skill-test\nWant to learn faster?...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "y1frVLWaHEc",
        "title": "Automate Exploratory Data Analysis & Invent Python Comprehensions | Real Python Podcast #288",
        "publishedAt": "1 month ago",
        "durationSeconds": 3399,
        "views": 772,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How do you quickly get an understanding of what's inside a new set of data? How can you share an exploratory data analysis with your team? Christopher Trudeau is back on the show this week...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Vjx6kfzi8Qc",
        "title": "Downloading Files From URLs With Python: Exploring urllib, Response Headers, and requests",
        "publishedAt": "1 month ago",
        "durationSeconds": 605,
        "views": 621,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Download your free Python Cheat Sheet here: https://realpython.com/cheatsheet\nFree Python Skill Test with instant level + learning plan: https://realpython.com/skill-test\nWant to learn faster?...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "oebf1C3VFjs",
        "title": "Crafting and Editing In-Depth Tutorials at Real Python | Real Python Podcast #287",
        "publishedAt": "2 months ago",
        "durationSeconds": 4872,
        "views": 575,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "What goes into creating the tutorials you read at Real Python? What are the steps in the editorial process, and who are the people behind the scenes? This week on the show, Real Python team...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3b_1AXDn5GI",
        "title": "Working With APIs in Python: Reading Public Data - Requests and Responses",
        "publishedAt": "2 months ago",
        "durationSeconds": 473,
        "views": 651,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Download your free Python Cheat Sheet here: https://realpython.com/cheatsheet\nFree Python Skill Test with instant level + learning plan: https://realpython.com/skill-test\nWant to learn faster?...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "d8-Jyh-NaMw",
        "title": "What Does Python's __init__.py Do? Introducing __init__.py & Building a Basic Example",
        "publishedAt": "2 months ago",
        "durationSeconds": 700,
        "views": 741,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Download your free Python Cheat Sheet here: https://realpython.com/cheatsheet\nFree Python Skill Test with instant level + learning plan: https://realpython.com/skill-test\nWant to learn faster?...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "iTBqYc_9TtE",
        "title": "Overcoming Testing Obstacles With Python's Mock Object Library | Real Python Podcast #286",
        "publishedAt": "2 months ago",
        "durationSeconds": 2382,
        "views": 727,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Do you have complex logic and unpredictable dependencies that make it hard to write reliable tests? How can you use Python's mock object library to improve your tests? Christopher Trudeau is...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MUFLVmmppP0",
        "title": "Start Building With FastAPI: Getting Started With FastAPI & Introducing Pydantic",
        "publishedAt": "2 months ago",
        "durationSeconds": 972,
        "views": 660,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Download your free Python Cheat Sheet here: https://realpython.com/cheatsheet\nFree Python Skill Test with instant level + learning plan: https://realpython.com/skill-test\nWant to learn faster?...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "M2rI0Rw1l9I",
        "title": "Exploring MCP Apps & Adding Interactive UIs to Clients | Real Python Podcast #285",
        "publishedAt": "2 months ago",
        "durationSeconds": 4158,
        "views": 789,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How can you move your MCP tools beyond plain text? How do you add interactive UI components directly inside chat conversations? This week on the show, Den Delimarsky from Anthropic joins us...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nYEoL_iFuRs",
        "title": "Write Python Docstrings Effectively: Understanding & Accessing Docstrings",
        "publishedAt": "2 months ago",
        "durationSeconds": 660,
        "views": 795,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Download your free Python Cheat Sheet here: https://realpython.com/cheatsheet\nFree Python Skill Test with instant level + learning plan: https://realpython.com/skill-test\nWant to learn faster?...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mfQy7KMDbyA",
        "title": "Running Local LLMs With Ollama and Connecting With Python | Real Python Podcast #284",
        "publishedAt": "3 months ago",
        "durationSeconds": 2728,
        "views": 1216,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Would you like to learn how to work with LLMs locally on your own computer? How do you integrate your Python projects with a local model? Christopher Trudeau is back on the show this week with...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "NO5O1FXSYYA",
        "title": "Improving Your Tests With the Python Mock Object Library: Introducing Mock & Replacing Code",
        "publishedAt": "3 months ago",
        "durationSeconds": 997,
        "views": 589,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Download your free Python Cheat Sheet here: https://realpython.com/cheatsheet\nFree Python Skill Test with instant level + learning plan: https://realpython.com/skill-test\nWant to learn faster?...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "w6PnaTjlLdg",
        "title": "Improving Your GitHub Developer Experience | Real Python Podcast #283",
        "publishedAt": "3 months ago",
        "durationSeconds": 3596,
        "views": 798,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "What are ways to improve how you're using GitHub? How can you collaborate more effectively and improve your technical writing? This week on the show, Adam Johnson is back to talk about his...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "95--oibm6ac",
        "title": "Getting Started With Google Gemini CLI: Testing Your First Prompt",
        "publishedAt": "3 months ago",
        "durationSeconds": 503,
        "views": 1529,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Download your free Python Cheat Sheet here: https://realpython.com/cheatsheet\nFree Python Skill Test with instant level + learning plan: https://realpython.com/skill-test\nWant to learn faster?...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "FYpLddC11yA",
        "title": "Testing Python Code for Scalability & What's New in pandas 3.0 | Real Python Podcast #282",
        "publishedAt": "3 months ago",
        "durationSeconds": 2953,
        "views": 772,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How do you create automated tests to check your code for degraded performance as data sizes increase? What are the new features for pandas 3.0? Christopher Trudeau is back on the show this...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "NOm2hzPWJcY",
        "title": "Create Callable Instances With Python's .__call__(): Understanding Callables & Using .__call__()",
        "publishedAt": "3 months ago",
        "durationSeconds": 741,
        "views": 609,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Download your free Python Cheat Sheet here: https://realpython.com/cheatsheet\nFree Python Skill Test with instant level + learning plan: https://realpython.com/skill-test\nWant to learn faster?...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MKYfCariyAc",
        "title": "Continuing to Improve the Learning Experience at Real Python | Real Python Podcast #281",
        "publishedAt": "3 months ago",
        "durationSeconds": 2705,
        "views": 683,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If you haven't visited the Real Python website lately, then it's time to check out a great batch of updates to realpython.com! Dan Bader returns to the show this week to discuss improvements...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "R9_gToHrfWo",
        "title": "uv vs pip: Python Packaging and Dependency Management: Comparing uv and pip & their Organizations",
        "publishedAt": "3 months ago",
        "durationSeconds": 412,
        "views": 1925,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Download your free Python Cheat Sheet here: https://realpython.com/cheatsheet\nFree Python Skill Test with instant level + learning plan: https://realpython.com/skill-test\nWant to learn faster?...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 15,
      "uploadsLast90d": 30,
      "uploadCadenceWeekly": 2.33,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 651,
      "viewsPerVideoP90Last90d": 798,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 651,
      "p90Views": 798,
      "p99Views": 1529,
      "outperformingVideosLast90d": 4
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 3,
      "sponsorBrandsDetected": [
        "Build Your Own Coding Agent",
        "AgentField",
        "PropelAuth"
      ],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 10,
      "lastSponsoredVideoDate": "2026-05-09",
      "detectionDetail": [
        {
          "brand": "Build Your Own Coding Agent",
          "videoId": "D6Q7EdMmFTQ",
          "confidence": 0.7,
          "evidence": "description: sponsored by Build Your Own Coding Agent.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:22.623Z"
        },
        {
          "brand": "AgentField",
          "videoId": "1wqjqSflyy0",
          "confidence": 0.7,
          "evidence": "description: sponsored by AgentField.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:22.623Z"
        },
        {
          "brand": "PropelAuth",
          "videoId": "xhpRfUru1iY",
          "confidence": 0.7,
          "evidence": "description: sponsored by PropelAuth.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:22.624Z"
        }
      ]
    },
    "sponsorshipMaturity": {
      "tier": "regular",
      "evidence": {
        "sponsoredVideoCountLast90d": 3,
        "uniqueSponsorBrandsLast90d": 3,
        "firstSponsoredVideoDate": "2026-05-14"
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "realpython.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": true,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "python",
        "share": 1,
        "evidenceVideoIds": [
          "D6Q7EdMmFTQ",
          "P2pmcOiMSjE",
          "Rr4z-WspKsE",
          "VRMWx6o81YI",
          "1wqjqSflyy0"
        ]
      },
      {
        "label": "realpython",
        "share": 0.73,
        "evidenceVideoIds": [
          "D6Q7EdMmFTQ",
          "P2pmcOiMSjE",
          "Rr4z-WspKsE",
          "VRMWx6o81YI",
          "1wqjqSflyy0"
        ]
      },
      {
        "label": "com",
        "share": 0.73,
        "evidenceVideoIds": [
          "D6Q7EdMmFTQ",
          "P2pmcOiMSjE",
          "Rr4z-WspKsE",
          "VRMWx6o81YI",
          "1wqjqSflyy0"
        ]
      },
      {
        "label": "learning",
        "share": 0.73,
        "evidenceVideoIds": [
          "D6Q7EdMmFTQ",
          "P2pmcOiMSjE",
          "Rr4z-WspKsE",
          "VRMWx6o81YI",
          "1wqjqSflyy0"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Friday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "B",
      "rationale": "active sponsor history, consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "regular"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 51,
      "reason": "regular sponsor history",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.85
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.6,
      "level": "medium",
      "coldStart": false
    },
    "whyThisMatters": "regular sponsor history. Channel is in the active outreach window.",
    "whyNow": "Last sponsored video 5 days ago — within typical sponsorship-decision lookback for similar creators.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Real Python — 0.2M subs, B-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 51,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.59,
      "urgency": 0,
      "noiseRisk": 0.4
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "active sponsor history + no business email typically correlates with higher outreach responsiveness for mid-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:regular",
        "email-line-type:none",
        "channel-tier:mid"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mid-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": true,
      "requiresEnrichment": true,
      "priorityQueue": "medium"
    },
    "benchmarkRange": {
      "creatorTier": "mid",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "5-12%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mid-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "B-tier readiness — nurture or enrich before outreach.",
      "appliedRules": [
        "lastSponsored<90d"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "optimal",
      "reason": "Last sponsored video 5 days ago; within typical 14-30d decision-cycle for similar creators.",
      "decayRisk": 0.35
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 52,
      "reasons": [
        "Active sponsor history within last 90d (3 videos)"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "b2a51a5ba25ba564e02c618af3fe1085cdbd2cea63946d109a63f6baaeb38acd",
      "inputsHash": "d3a049e5234130678dfb9c609ccaa40bed01cf6765213ccd50ebb51f3da3a86e",
      "rulesApplied": [
        "sponsorship-history-regular",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:21.482Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "error",
    "eventId": "7afee7827f82efa05575a89ee80ba6662b326c0afe196495eac8c240a4ba287e",
    "channelHandle": "@PrettyPrintedTutorials",
    "channelId": null,
    "failureType": "not_found",
    "message": "ytInitialData not found",
    "error": true,
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:23.096Z"
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "0e5c0d41863f83b3047dce236b7952eaaff3f950b9c2c0eb1325202d07661ada",
    "channelId": "UC8wZnXYK_CGKlBcZp-GxYPA",
    "channelHandle": "@NeuralNine",
    "channelName": "NeuralNine",
    "channelUrl": "https://www.youtube.com/@NeuralNine",
    "description": "NeuralNine is an educational brand focusing on programming, machine learning and computer science in general! Let's develop brains!\n\n◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾\n📚 Programming Books & Merch 📚\n💻 The Algorithm Bible Book: https://www.neuralnine.com/books/\n🐍 The Python Bible Book: https://www.neuralnine.com/books/\n👕 Programming Merch: https://www.neuralnine.com/shop\n\n💼 Services 💼\n💻 Freelancing & Tutoring: https://www.neuralnine.com/services\n\n🖥️ Setup & Gear 🖥️: https://neuralnine.com/extras/\n\n🌐 Social Media & Contact 🌐 \n📱 Website: https://www.neuralnine.com/\n📷 Instagram: https://www.instagram.com/neuralnine\n🐦 Twitter: https://twitter.com/neuralnine\n🤵 LinkedIn: https://www.linkedin.com/company/neuralnine/\n📁 GitHub: https://github.com/NeuralNine \n\n🎵 Outro Music From: https://www.bensound.com/",
    "joinDate": null,
    "location": null,
    "subscribers": 469000,
    "totalVideos": 1000,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/l_2SPJx1Qd4IC01Fdlm-9cszWtmZv62ns80dOb-L-PyA5lcjdsSyjaz7LJRwBo4s9zDhtdiImw=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "neuralnine.com",
        "url": "https://www.neuralnine.com/books"
      },
      {
        "platform": "neuralnine.com",
        "url": "https://www.neuralnine.com/services"
      },
      {
        "platform": "neuralnine.com",
        "url": "https://www.neuralnine.com/tutoring"
      },
      {
        "platform": "neuralnine.com",
        "url": "https://www.neuralnine.com/extras"
      },
      {
        "platform": "twitter",
        "url": "https://www.twitter.com/NeuralNine"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/NeuralNine"
      },
      {
        "platform": "patreon.com",
        "url": "https://www.patreon.com/neuralnine"
      },
      {
        "platform": "github",
        "url": "https://github.com/NeuralNine"
      },
      {
        "platform": "neuralnine.com",
        "url": "https://www.neuralnine.com/books/"
      },
      {
        "platform": "neuralnine.com",
        "url": "https://www.neuralnine.com/shop"
      },
      {
        "platform": "neuralnine.com",
        "url": "https://neuralnine.com/extras/"
      },
      {
        "platform": "neuralnine.com",
        "url": "https://www.neuralnine.com/"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/neuralnine"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/neuralnine"
      },
      {
        "platform": "linkedin",
        "url": "https://www.linkedin.com/company/neuralnine/"
      },
      {
        "platform": "bensound.com",
        "url": "https://www.bensound.com/"
      }
    ],
    "recentVideos": [
      {
        "videoId": "nJ70b85-3zo",
        "title": "JavaScript Crash Course: Full Beginner Tutorial",
        "publishedAt": "8 hours ago",
        "durationSeconds": 3268,
        "views": 718,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻️ Need some help with a project or some consulting? Contact me here: https://www.neuralnine.com/services\n\n🐍 The Python Bible Book: https://www.neuralnine.com/books/\n💻 The Algorithm Bible Book: https://www.neuralnine.com/books/\n\nTimestamps:\n(0:00) Intro\n(2:03) Hello World\n(2:28) Variables & Constants\n(8:07) Data Types\n(10:56) Operators\n(16:11) Special Values\n(18:20) If Else Statements\n(25:19) Switch Case Statements\n(28:01) Loops\n(34:13) Loop Control Statements\n(38:02) Functions\n(46:00) Arrays, Maps, Sets\n(49:33) Classes & Objects\n(52:43) JavaScript in HTML\n(53:44) Outro",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OjcUzw6LS-c",
        "title": "ONNX: The PDF Format For Neural Networks",
        "publishedAt": "2 days ago",
        "durationSeconds": 1132,
        "views": 2420,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻️ Need some help with a project or some consulting? Contact me here: https://www.neuralnine.com/services\n\n🐍 The Python Bible Book: https://www.neuralnine.com/books/\n💻 The Algorithm Bible Book: https://www.neuralnine.com/books/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "acb9Vh39U48",
        "title": "OpenClaw: Simple VPS Setup Guide",
        "publishedAt": "5 days ago",
        "durationSeconds": 1062,
        "views": 1708,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻️ Need some help with a project or some consulting? Contact me here: https://www.neuralnine.com/services\n\n🐍 The Python Bible Book: https://www.neuralnine.com/books/\n💻 The Algorithm Bible Book: https://www.neuralnine.com/books/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Fnj7Qq8AHnw",
        "title": "Coding Slack Bots in Python: Quick Start Guide",
        "publishedAt": "9 days ago",
        "durationSeconds": 1164,
        "views": 1698,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻️ Need some help with a project or some consulting? Contact me here: https://www.neuralnine.com/services\n\n🐍 The Python Bible Book: https://www.neuralnine.com/books/\n💻 The Algorithm Bible Book: https://www.neuralnine.com/books/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4h5yEuQCssQ",
        "title": "FastEmbed: Local AI Embeddings in Python",
        "publishedAt": "12 days ago",
        "durationSeconds": 864,
        "views": 3538,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻️ Need some help with a project or some consulting? Contact me here: https://www.neuralnine.com/services\n\n🐍 The Python Bible Book: https://www.neuralnine.com/books/\n💻 The Algorithm Bible Book: https://www.neuralnine.com/books/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mZEYUy1MhZI",
        "title": "Agentspan: Building Durable AI Agents in Python",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 2286,
        "views": 3827,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out AgentSpan: https://agentspan.ai/?utm_campaign=yt...\n\n💻️ Need some help with a project or some consulting? Contact me here: https://www.neuralnine.com/services\n\n🐍 The Python Bible Book: https://www.neuralnine.com/books/\n💻 The Algorithm Bible Book: https://www.neuralnine.com/books/\n\nTimestamps:\n(0:00) Intro\n(0:52) Environment Setup\n(2:16) Theoretical Idea\n(5:47) Crash & Resume Example\n(21:19) Human in The Loop Example\n(29:21) LangGraph Example\n(37:22) Outro",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OQBvSQhkehs",
        "title": "yfinance Crash Course: Financial Programming in Python",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 1613,
        "views": 6878,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻️ Need some help with a project or some consulting? Contact me here: https://www.neuralnine.com/services\n\n🐍 The Python Bible Book: https://www.neuralnine.com/books/\n💻 The Algorithm Bible Book: https://www.neuralnine.com/books/\n\nTimestamps:\n(0:00) Intro\n(0:34) Environment Setup\n(3:13) Tickers & Basic Stock Information\n(8:45) Load Stock Prices\n(10:28) Option Chains\n(11:41) Funds Data\n(14:31) Multiple Tickers\n(16:07) Market Data\n(17:06) Sector & Industry Data\n(18:53) Financial Calendars\n(20:39) Lookup & Search\n(22:05) Advanced Querying\n(24:02) Live Streaming Market Data\n(25:32) Network Config\n(26:07) Outro",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dICc2TDMYjs",
        "title": "Coding AI Research Assistant in Python",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 1711,
        "views": 4796,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Consensus (free 1-week Pro trial): https://get.consensus.app/neuralnine\nSearch 220M+ peer-reviewed research papers inside Claude. Pro unlocks full results.\n\n💻️ Need some help with a project or some consulting? Contact me here: https://www.neuralnine.com/services\n\n🐍 The Python Bible Book: https://www.neuralnine.com/books/\n💻 The Algorithm Bible Book: https://www.neuralnine.com/books/\n\nTimestamps:\n(0:00) Intro\n(0:53) Project Setup\n(4:34) Minimal AI Research Assistant (CLI)\n(13:52) Vibe-Coding UI\n(15:52) Professional AI Research Assistant\n(27:52) Outro",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eyI0VR2B-fM",
        "title": "Claude Code: All Features For Power Users",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 2018,
        "views": 7544,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻️ Need some help with a project or some consulting? Contact me here: https://www.neuralnine.com/services\n\n🐍 The Python Bible Book: https://www.neuralnine.com/books/\n💻 The Algorithm Bible Book: https://www.neuralnine.com/books/\n\nTimestamps:\n(0:00) Intro\n(0:38) Installation\n(2:28) Using Claude Code\n(4:07) Slash Commands\n(10:03) CLAUDE.md\n(13:14) Skills\n(17:03) MCP Servers\n(18:40) Plugins\n(21:20) Subagents\n(26:17) Agent Teams\n(29:25) Worktrees\n(32:07) Memory\n(32:52) Outro",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Lm_2SHE207o",
        "title": "Why I Don't Think SaaS Is Dead...",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 561,
        "views": 2210,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻️ Need some help with a project or some consulting? Contact me here: https://www.neuralnine.com/services\n\n🐍 The Python Bible Book: https://www.neuralnine.com/books/\n💻 The Algorithm Bible Book: https://www.neuralnine.com/books/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ljSCqd3bhdE",
        "title": "PokeeClaw: Enterprise-Grade AI Agents With Zero Setup",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 760,
        "views": 1787,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out PokeeClaw: https://pokee.ai/?ref_code=pokeeai_a415 \nYou can save 10% with the coupon code: POKEE6WV72MC5\n\n💻️ Need some help with a project or some consulting? Contact me here:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0PiTviUTPoU",
        "title": "dataframely: Professional Validation of DataFrames in Python",
        "publishedAt": "1 month ago",
        "durationSeconds": 775,
        "views": 3827,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻️ Need some help with a project or some consulting? Contact me here: https://www.neuralnine.com/services\n\n🐍 The Python Bible Book: https://www.neuralnine.com/books/\n💻 The Algorithm...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3ntrfMSMNVc",
        "title": "Git Worktrees For Agents Are Awesome...",
        "publishedAt": "1 month ago",
        "durationSeconds": 816,
        "views": 3481,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻️ Need some help with a project or some consulting? Contact me here: https://www.neuralnine.com/services\n\n🐍 The Python Bible Book: https://www.neuralnine.com/books/\n💻 The Algorithm...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DWP_-jMTNH0",
        "title": "Qdrant: Perfect Vector Store For RAG in Python",
        "publishedAt": "1 month ago",
        "durationSeconds": 1884,
        "views": 5636,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻️ Need some help with a project or some consulting? Contact me here: https://www.neuralnine.com/services\n\n🐍 The Python Bible Book: https://www.neuralnine.com/books/\n💻 The Algorithm...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XtA6eWoS2MQ",
        "title": "Agent Skills 101: Never Explain Twice Again...",
        "publishedAt": "1 month ago",
        "durationSeconds": 1270,
        "views": 7455,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻️ Need some help with a project or some consulting? Contact me here: https://www.neuralnine.com/services\n\n🐍 The Python Bible Book: https://www.neuralnine.com/books/\n💻 The Algorithm...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nxB4M3GlcWQ",
        "title": "OpenCode is so much better than the rest...",
        "publishedAt": "1 month ago",
        "durationSeconds": 1087,
        "views": 80971,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻️ Need some help with a project or some consulting? Contact me here: https://www.neuralnine.com/services\n\n🐍 The Python Bible Book: https://www.neuralnine.com/books/\n💻 The Algorithm...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EKzZEOrpRPE",
        "title": "From 15GB to 4.7GB: Quantizing AI Models Locally",
        "publishedAt": "1 month ago",
        "durationSeconds": 822,
        "views": 7684,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻️ Need some help with a project or some consulting? Contact me here: https://www.neuralnine.com/services\n\n🐍 The Python Bible Book: https://www.neuralnine.com/books/\n💻 The Algorithm...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RJ-ZFzaEvzM",
        "title": "Modern Terminal User Interfaces in Python",
        "publishedAt": "1 month ago",
        "durationSeconds": 1581,
        "views": 12359,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💻️ Need some help with a project or some consulting? Contact me here: https://www.neuralnine.com/services\n\n🐍 The Python Bible Book: https://www.neuralnine.com/books/\n💻 The Algorithm...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mGERI9hpW6k",
        "title": "Scraper APIs Make Your Life Easier...",
        "publishedAt": "1 month ago",
        "durationSeconds": 911,
        "views": 6872,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video we explore the modern way of Web Scraping, which is using Scraper APIs. No proxies or custom scrapers. No manual maintenance.\n\nBrightData: https://brdta.com/neuralnine\n\n◾◾◾◾...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UC7mc5inDpI",
        "title": "This is an AI Supercomputer For Your Desk...",
        "publishedAt": "1 month ago",
        "durationSeconds": 840,
        "views": 91653,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, we take a look at the Dell Pro Max with GB10, which is Dell's implementation of NVIDIA's DGX Spark. An AI supercomputer with 1 PFlop of compute that easily fits onto your desk....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_gNfDvInmX0",
        "title": "How AI Replaces Your SaaS Tools... (Enter Pro Guide)",
        "publishedAt": "2 months ago",
        "durationSeconds": 1249,
        "views": 9315,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today we took the 60-Min AI Founder Challenge to see if Enter Pro can actually deliver a full SaaS application from scratch. Spoiler: The era of \"renting\" your software is over. Check out Enter...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6chRtu94NTY",
        "title": "Image Search Engine in Python - Multimodal Embeddings",
        "publishedAt": "2 months ago",
        "durationSeconds": 1992,
        "views": 4556,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today we build an image search engine in Python. For this we use multimodal embedding models and a Qdrant vector store.\n\nModel: https://huggingface.co/jinaai/jina-clip-v2\nCode: https://github.com/N...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Hy_yvDo6Y8k",
        "title": "Why I Go To Tech Meetups & You Should Too...",
        "publishedAt": "2 months ago",
        "durationSeconds": 558,
        "views": 2150,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today we yap about networking, meetups etc.\n\n◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾\n📚 Programming Books & Merch 📚\n🐍 The Python Bible Book: https://www.neuralnine.com/books/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nvnAeAH_zm4",
        "title": "Coding A Linux Soundboard From Scratch in Python",
        "publishedAt": "2 months ago",
        "durationSeconds": 1860,
        "views": 2869,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, we implement a Linux soundboard from scratch in Python.\n\nsoundbtw: https://github.com/NeuralNine/soundbtw\n\n◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾\n📚 Programming...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pXktHVUpXUc",
        "title": "Pydantic AI Crash Course: Agentic Framework For Production",
        "publishedAt": "2 months ago",
        "durationSeconds": 2475,
        "views": 12764,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This video is a crash course on Pydantic AI, an agentic framework for Python, which focuses on data validation, flexibility and being production-ready.\n\n◾◾◾◾◾◾◾◾◾◾◾◾◾◾...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cDNR5nLuczw",
        "title": "How I Stay Updated in Tech with 15 Minutes Per Day...",
        "publishedAt": "2 months ago",
        "durationSeconds": 660,
        "views": 11958,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today we yap about how to stay up-to-date in the tech and AI/ML space.\n\n◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾\n📚 Programming Books & Merch 📚\n🐍 The Python Bible Book: https://w...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SA-YyejZ2Cs",
        "title": "Medical AI Project: Side Effects Tracker in Python",
        "publishedAt": "2 months ago",
        "durationSeconds": 2180,
        "views": 3052,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today we build a medical side effects tracker in Python. This is a full agentic AI project where we use Python, Flask, LangChain and Arcade.\n\nArcade: https://arcade.dev.plug.dev/K8cpZQk\nCode:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qB_uKIB-SqQ",
        "title": "I Built An Obsidian AI Research Assistant with Oz...",
        "publishedAt": "2 months ago",
        "durationSeconds": 969,
        "views": 4244,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Warp Build today and get an extra 1000 Oz credits. ➞ https://oz.dev/neuralnineyt \n\n◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾\n📚 Programming Books & Merch 📚\n🐍 The Python...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3pWXbXjRdQE",
        "title": "I Started A Coding Habit & You Should Too...",
        "publishedAt": "2 months ago",
        "durationSeconds": 1008,
        "views": 108562,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today we are going to yap about coding for fun.\n\n◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾◾\n📚 Programming Books & Merch 📚\n🐍 The Python Bible Book: https://www.neuralnine.com/books...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_2ENYAWwqyk",
        "title": "Python Rust Extensions: Massively Speed Up Your Code",
        "publishedAt": "2 months ago",
        "durationSeconds": 771,
        "views": 8432,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today we learn how to build Rust extensions for Python using PyO3. We also see how much faster our Python code can become as a result of that.\n\nCode: https://github.com/NeuralNine/youtube-tutorials...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 20,
      "uploadsLast90d": 30,
      "uploadCadenceWeekly": 2.33,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 4556,
      "viewsPerVideoP90Last90d": 12764,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 4556,
      "p90Views": 12764,
      "p99Views": 91653,
      "outperformingVideosLast90d": 4
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "neuralnine.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.9,
        "evidenceVideoIds": [
          "nJ70b85-3zo",
          "OjcUzw6LS-c",
          "acb9Vh39U48",
          "Fnj7Qq8AHnw",
          "4h5yEuQCssQ"
        ]
      },
      {
        "label": "python",
        "share": 0.87,
        "evidenceVideoIds": [
          "nJ70b85-3zo",
          "OjcUzw6LS-c",
          "acb9Vh39U48",
          "Fnj7Qq8AHnw",
          "4h5yEuQCssQ"
        ]
      },
      {
        "label": "com",
        "share": 0.77,
        "evidenceVideoIds": [
          "nJ70b85-3zo",
          "OjcUzw6LS-c",
          "acb9Vh39U48",
          "Fnj7Qq8AHnw",
          "4h5yEuQCssQ"
        ]
      },
      {
        "label": "neuralnine",
        "share": 0.73,
        "evidenceVideoIds": [
          "nJ70b85-3zo",
          "OjcUzw6LS-c",
          "acb9Vh39U48",
          "Fnj7Qq8AHnw",
          "4h5yEuQCssQ"
        ]
      },
      {
        "label": "books",
        "share": 0.7,
        "evidenceVideoIds": [
          "nJ70b85-3zo",
          "OjcUzw6LS-c",
          "acb9Vh39U48",
          "Fnj7Qq8AHnw",
          "4h5yEuQCssQ"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Tuesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 29,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "NeuralNine — 0.5M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 29,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.81,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "0e5c0d41863f83b3047dce236b7952eaaff3f950b9c2c0eb1325202d07661ada",
      "inputsHash": "40fc7057b70bd2b88451748b483aaad1072af0fe15908adb8d00d85361cbb11f",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:22.423Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "5ae6e9cc6557895e21ac28ace47dbf7161f59da3c08d32c7c7f77a831b963c95",
    "channelId": "UC1mxuk7tuQT2D0qTMgKji3w",
    "channelHandle": "@veryacademy",
    "channelName": "Very Academy",
    "channelUrl": "https://www.youtube.com/@veryacademy",
    "description": "Very Academy is an online education provider that offers a vast and ever-growing catalogue of tutorials and courses. Very Academy's mission is to provide universally accessible, highest quality Computer Science and Technology education.\n\nBy providing you with the most relevant, highest-quality learning experiences to support your learning, we hope to help foster students into globally competent professionals in the field of Computer Science and Technology.",
    "joinDate": null,
    "location": null,
    "subscribers": 71600,
    "totalVideos": 1000,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/QToz3dcPjIN604hDLp02zpcHWIPcbh8bGXIdSHwneKV5KYYuBZKpVZglTHRr1mr-swO7tjzpcE8=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "udemy.com",
        "url": "https://www.udemy.com/course/django-4x-orm-mastery/?referralCode=75E80C2B6B6A61993881"
      },
      {
        "platform": "patreon.com",
        "url": "https://www.patreon.com/veryacademy"
      },
      {
        "platform": "paypal.com",
        "url": "https://www.paypal.com/donate/?hosted_button_id=W55GVT4UPXPYE"
      },
      {
        "platform": "github",
        "url": "https://github.com/veryacademy"
      },
      {
        "platform": "discord",
        "url": "https://discord.gg/TvZQJjsmAh"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/VeryAcademy"
      },
      {
        "platform": "facebook",
        "url": "https://www.facebook.com/Veryacademycom-113232103670580/"
      },
      {
        "platform": "tiktok",
        "url": "https://www.tiktok.com/@very_academy"
      }
    ],
    "recentVideos": [
      {
        "videoId": "ARWmzWfBfYM",
        "title": "Redis Project: Session-Based Cart | Implementing: Get/View Cart",
        "publishedAt": "10 months ago",
        "durationSeconds": 236,
        "views": 763,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Project 1: Fast Session Storage for Web Applications. Implementing: Get/View Cart\n\nRedis is one of the most powerful tools in modern web development — known for blazing-fast performance, real-time capabilities, and a simple yet flexible data model. Whether you're building e-commerce carts, analytics dashboards, or scalable backend systems, Redis can dramatically improve your app’s responsiveness and architecture.\n\n⏯️ YouTube Playlist:\n   • Course | Redis with Python & Django: Build...  \n\n🚀 Udemy Course Link:\nhttps://www.udemy.com/course/learn-re...\n\n➡️ Source Code:\nhttps://github.com/veryacademy/CW0005...\n\nIn this hands-on course, you’ll go beyond theory to build full-stack projects that integrate Redis with Python and Django. You’ll start with the fundamentals — keys, strings, hashes, lists, sets, pipelines, and transactions — all with practical coding exercises. From there, you’ll dive into real-world applications.\n\nWhether you’re a backend developer, Python enthusiast, or Django pro, this course gives you the Redis foundation and confidence to build high-performance, scalable applications — fast.\n\nDisclaimer: The thumbnail image used in this video was generated using artificial intelligence (AI) and is entirely fictional. It is intended solely to depict a generic representation of a computer programmer and is not based on, nor intended to resemble, any real individual. Any resemblance to actual persons, living or dead, is purely coincidental and unintentional.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "X3jRRhMgDog",
        "title": "Redis Project: Session-Based Cart | Implementing: Add to Cart",
        "publishedAt": "10 months ago",
        "durationSeconds": 899,
        "views": 661,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Project 1: Fast Session Storage for Web Applications. Implementing: Add to Cart\n\nRedis is one of the most powerful tools in modern web development — known for blazing-fast performance, real-time capabilities, and a simple yet flexible data model. Whether you're building e-commerce carts, analytics dashboards, or scalable backend systems, Redis can dramatically improve your app’s responsiveness and architecture.\n\n⏯️ YouTube Playlist:\n   • Course | Redis with Python & Django: Build...  \n\n🚀 Udemy Course Link:\nhttps://www.udemy.com/course/learn-re...\n\n➡️ Source Code:\nhttps://github.com/veryacademy/CW0005...\n\nIn this hands-on course, you’ll go beyond theory to build full-stack projects that integrate Redis with Python and Django. You’ll start with the fundamentals — keys, strings, hashes, lists, sets, pipelines, and transactions — all with practical coding exercises. From there, you’ll dive into real-world applications.\n\nWhether you’re a backend developer, Python enthusiast, or Django pro, this course gives you the Redis foundation and confidence to build high-performance, scalable applications — fast.\n\nDisclaimer: The thumbnail image used in this video was generated using artificial intelligence (AI) and is entirely fictional. It is intended solely to depict a generic representation of a computer programmer and is not based on, nor intended to resemble, any real individual. Any resemblance to actual persons, living or dead, is purely coincidental and unintentional.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Py7LOfIHG3g",
        "title": "Redis Project: Session-Based Cart | Django Sessions & Cart Identification",
        "publishedAt": "10 months ago",
        "durationSeconds": 238,
        "views": 310,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Project 1: Fast Session Storage for Web Applications. Django Sessions & Cart Identification\n\nRedis is one of the most powerful tools in modern web development — known for blazing-fast performance, real-time capabilities, and a simple yet flexible data model. Whether you're building e-commerce carts, analytics dashboards, or scalable backend systems, Redis can dramatically improve your app’s responsiveness and architecture.\n\n⏯️ YouTube Playlist:\n   • Course | Redis with Python & Django: Build...  \n\n🚀 Udemy Course Link:\nhttps://www.udemy.com/course/learn-re...\n\n➡️ Source Code:\nhttps://github.com/veryacademy/CW0005...\n\nIn this hands-on course, you’ll go beyond theory to build full-stack projects that integrate Redis with Python and Django. You’ll start with the fundamentals — keys, strings, hashes, lists, sets, pipelines, and transactions — all with practical coding exercises. From there, you’ll dive into real-world applications.\n\nWhether you’re a backend developer, Python enthusiast, or Django pro, this course gives you the Redis foundation and confidence to build high-performance, scalable applications — fast.\n\nDisclaimer: The thumbnail image used in this video was generated using artificial intelligence (AI) and is entirely fictional. It is intended solely to depict a generic representation of a computer programmer and is not based on, nor intended to resemble, any real individual. Any resemblance to actual persons, living or dead, is purely coincidental and unintentional.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "X34Bun68CRw",
        "title": "Redis Project: Session-Based Cart | Phase 2 Introduction: Adding Redis to the Project",
        "publishedAt": "10 months ago",
        "durationSeconds": 44,
        "views": 166,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Project 1: Fast Session Storage for Web Applications. Phase 2 Introduction: Adding Redis to the Project \n\nRedis is one of the most powerful tools in modern web development — known for blazing-fast performance, real-time capabilities, and a simple yet flexible data model. Whether you're building e-commerce carts, analytics dashboards, or scalable backend systems, Redis can dramatically improve your app’s responsiveness and architecture.\n\n⏯️ YouTube Playlist:\n   • Course | Redis with Python & Django: Build...  \n\n🚀 Udemy Course Link:\nhttps://www.udemy.com/course/learn-re...\n\n➡️ Source Code:\nhttps://github.com/veryacademy/CW0005...\n\nIn this hands-on course, you’ll go beyond theory to build full-stack projects that integrate Redis with Python and Django. You’ll start with the fundamentals — keys, strings, hashes, lists, sets, pipelines, and transactions — all with practical coding exercises. From there, you’ll dive into real-world applications.\n\nWhether you’re a backend developer, Python enthusiast, or Django pro, this course gives you the Redis foundation and confidence to build high-performance, scalable applications — fast.\n\nDisclaimer: The thumbnail image used in this video was generated using artificial intelligence (AI) and is entirely fictional. It is intended solely to depict a generic representation of a computer programmer and is not based on, nor intended to resemble, any real individual. Any resemblance to actual persons, living or dead, is purely coincidental and unintentional.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QZUeD34mtvE",
        "title": "Redis Project: Session-Based Cart | DRF API Docs Using Swagger UI",
        "publishedAt": "10 months ago",
        "durationSeconds": 297,
        "views": 235,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Project 1: Fast Session Storage for Web Applications. DRF API Docs Using Swagger UI\n\nRedis is one of the most powerful tools in modern web development — known for blazing-fast performance, real-time capabilities, and a simple yet flexible data model. Whether you're building e-commerce carts, analytics dashboards, or scalable backend systems, Redis can dramatically improve your app’s responsiveness and architecture.\n\n⏯️ YouTube Playlist:\n   • Course | Redis with Python & Django: Build...  \n\n🚀 Udemy Course Link:\nhttps://www.udemy.com/course/learn-re...\n\n➡️ Source Code:\nhttps://github.com/veryacademy/CW0005...\n\nIn this hands-on course, you’ll go beyond theory to build full-stack projects that integrate Redis with Python and Django. You’ll start with the fundamentals — keys, strings, hashes, lists, sets, pipelines, and transactions — all with practical coding exercises. From there, you’ll dive into real-world applications.\n\nWhether you’re a backend developer, Python enthusiast, or Django pro, this course gives you the Redis foundation and confidence to build high-performance, scalable applications — fast.\n\nDisclaimer: The thumbnail image used in this video was generated using artificial intelligence (AI) and is entirely fictional. It is intended solely to depict a generic representation of a computer programmer and is not based on, nor intended to resemble, any real individual. Any resemblance to actual persons, living or dead, is purely coincidental and unintentional.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GoDkrh0l-FM",
        "title": "Redis Project: Session-Based Cart | Creating Your First API Endpoint with DRF",
        "publishedAt": "10 months ago",
        "durationSeconds": 394,
        "views": 296,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Project 1: Fast Session Storage for Web Applications. Creating Your First API Endpoint with DRF\n\nRedis is one of the most powerful tools in modern web development — known for blazing-fast performance, real-time capabilities, and a simple yet flexible data model. Whether you're building e-commerce carts, analytics dashboards, or scalable backend systems, Redis can dramatically improve your app’s responsiveness and architecture.\n\n⏯️ YouTube Playlist:\n   • Course | Redis with Python & Django: Build...  \n\n🚀 Udemy Course Link:\nhttps://www.udemy.com/course/learn-re...\n\n➡️ Source Code:\nhttps://github.com/veryacademy/CW0005...\n\nIn this hands-on course, you’ll go beyond theory to build full-stack projects that integrate Redis with Python and Django. You’ll start with the fundamentals — keys, strings, hashes, lists, sets, pipelines, and transactions — all with practical coding exercises. From there, you’ll dive into real-world applications.\n\nWhether you’re a backend developer, Python enthusiast, or Django pro, this course gives you the Redis foundation and confidence to build high-performance, scalable applications — fast.\n\nDisclaimer: The thumbnail image used in this video was generated using artificial intelligence (AI) and is entirely fictional. It is intended solely to depict a generic representation of a computer programmer and is not based on, nor intended to resemble, any real individual. Any resemblance to actual persons, living or dead, is purely coincidental and unintentional.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6hzFexQ-x7I",
        "title": "Redis Project: Session-Based Cart | Seeding PostgreSQL with Scripts and Fixture Data",
        "publishedAt": "10 months ago",
        "durationSeconds": 691,
        "views": 238,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Project 1: Fast Session Storage for Web Applications. Seeding PostgreSQL with Scripts and Fixture Data\n\nRedis is one of the most powerful tools in modern web development — known for blazing-fast performance, real-time capabilities, and a simple yet flexible data model. Whether you're building e-commerce carts, analytics dashboards, or scalable backend systems, Redis can dramatically improve your app’s responsiveness and architecture.\n\n⏯️ YouTube Playlist:\n   • Course | Redis with Python & Django: Build...  \n\n🚀 Udemy Course Link:\nhttps://www.udemy.com/course/learn-re...\n\n➡️ Source Code:\nhttps://github.com/veryacademy/CW0005...\n\nIn this hands-on course, you’ll go beyond theory to build full-stack projects that integrate Redis with Python and Django. You’ll start with the fundamentals — keys, strings, hashes, lists, sets, pipelines, and transactions — all with practical coding exercises. From there, you’ll dive into real-world applications.\n\nWhether you’re a backend developer, Python enthusiast, or Django pro, this course gives you the Redis foundation and confidence to build high-performance, scalable applications — fast.\n\nDisclaimer: The thumbnail image used in this video was generated using artificial intelligence (AI) and is entirely fictional. It is intended solely to depict a generic representation of a computer programmer and is not based on, nor intended to resemble, any real individual. Any resemblance to actual persons, living or dead, is purely coincidental and unintentional.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dNOK_r-U9UE",
        "title": "Redis Project: Session-Based Cart | Designing and Building Django Models",
        "publishedAt": "10 months ago",
        "durationSeconds": 85,
        "views": 188,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Project 1: Fast Session Storage for Web Applications. Designing and Building Django Models\n\nRedis is one of the most powerful tools in modern web development — known for blazing-fast performance, real-time capabilities, and a simple yet flexible data model. Whether you're building e-commerce carts, analytics dashboards, or scalable backend systems, Redis can dramatically improve your app’s responsiveness and architecture.\n\n⏯️ YouTube Playlist:\n   • Course | Redis with Python & Django: Build...  \n\n🚀 Udemy Course Link:\nhttps://www.udemy.com/course/learn-re...\n\n➡️ Source Code:\nhttps://github.com/veryacademy/CW0005...\n\nIn this hands-on course, you’ll go beyond theory to build full-stack projects that integrate Redis with Python and Django. You’ll start with the fundamentals — keys, strings, hashes, lists, sets, pipelines, and transactions — all with practical coding exercises. From there, you’ll dive into real-world applications.\n\nWhether you’re a backend developer, Python enthusiast, or Django pro, this course gives you the Redis foundation and confidence to build high-performance, scalable applications — fast.\n\nDisclaimer: The thumbnail image used in this video was generated using artificial intelligence (AI) and is entirely fictional. It is intended solely to depict a generic representation of a computer programmer and is not based on, nor intended to resemble, any real individual. Any resemblance to actual persons, living or dead, is purely coincidental and unintentional.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vhWxm2GqTLI",
        "title": "Redis Project: Session-Based Cart | Initializing the Django Project and Environment",
        "publishedAt": "10 months ago",
        "durationSeconds": 368,
        "views": 326,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Project 1: Fast Session Storage for Web Applications. Initializing the Django Project and Environment\n\nRedis is one of the most powerful tools in modern web development — known for blazing-fast performance, real-time capabilities, and a simple yet flexible data model. Whether you're building e-commerce carts, analytics dashboards, or scalable backend systems, Redis can dramatically improve your app’s responsiveness and architecture.\n\n⏯️ YouTube Playlist:\n   • Course | Redis with Python & Django: Build...  \n\n🚀 Udemy Course Link:\nhttps://www.udemy.com/course/learn-re...\n\n➡️ Source Code:\nhttps://github.com/veryacademy/CW0005...\n\nIn this hands-on course, you’ll go beyond theory to build full-stack projects that integrate Redis with Python and Django. You’ll start with the fundamentals — keys, strings, hashes, lists, sets, pipelines, and transactions — all with practical coding exercises. From there, you’ll dive into real-world applications.\n\nWhether you’re a backend developer, Python enthusiast, or Django pro, this course gives you the Redis foundation and confidence to build high-performance, scalable applications — fast.\n\nDisclaimer: The thumbnail image used in this video was generated using artificial intelligence (AI) and is entirely fictional. It is intended solely to depict a generic representation of a computer programmer and is not based on, nor intended to resemble, any real individual. Any resemblance to actual persons, living or dead, is purely coincidental and unintentional.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2LPmC7kzim4",
        "title": "Redis Project: Session-Based Cart | Containerizing the Django Application with Docker",
        "publishedAt": "10 months ago",
        "durationSeconds": 315,
        "views": 320,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Project 1: Fast Session Storage for Web Applications. Containerizing the Django Application with Docker\n\nRedis is one of the most powerful tools in modern web development — known for blazing-fast performance, real-time capabilities, and a simple yet flexible data model. Whether you're building e-commerce carts, analytics dashboards, or scalable backend systems, Redis can dramatically improve your app’s responsiveness and architecture.\n\n⏯️ YouTube Playlist:\n   • Course | Redis with Python & Django: Build...  \n\n🚀 Udemy Course Link:\nhttps://www.udemy.com/course/learn-re...\n\n➡️ Source Code:\nhttps://github.com/veryacademy/CW0005...\n\nIn this hands-on course, you’ll go beyond theory to build full-stack projects that integrate Redis with Python and Django. You’ll start with the fundamentals — keys, strings, hashes, lists, sets, pipelines, and transactions — all with practical coding exercises. From there, you’ll dive into real-world applications.\n\nWhether you’re a backend developer, Python enthusiast, or Django pro, this course gives you the Redis foundation and confidence to build high-performance, scalable applications — fast.\n\nDisclaimer: The thumbnail image used in this video was generated using artificial intelligence (AI) and is entirely fictional. It is intended solely to depict a generic representation of a computer programmer and is not based on, nor intended to resemble, any real individual. Any resemblance to actual persons, living or dead, is purely coincidental and unintentional.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "G_JqroszAvE",
        "title": "Redis Project: Session-Based Cart | Project Overview",
        "publishedAt": "10 months ago",
        "durationSeconds": 114,
        "views": 259,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Project 1: Fast Session Storage for Web Applications. Session-Based Cart. Project Overview: What You'll Build.\n\nRedis is one of the most powerful tools in modern web development — known...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Jgja_L2vAy4",
        "title": "Redis Project: Session-Based Cart | Project Overview",
        "publishedAt": "10 months ago",
        "durationSeconds": 436,
        "views": 394,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Project 1: Fast Session Storage for Web Applications. Session-Based Cart. Project Overview: What You'll Build.\n\nRedis is one of the most powerful tools in modern web development — known...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KIUVBhSyW8c",
        "title": "Redis Project: Session-Based Cart | Phase 1 Introduction Django and Core Setup",
        "publishedAt": "10 months ago",
        "durationSeconds": 79,
        "views": 407,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Project 1: Fast Session Storage for Web Applications. Session-Based Cart. Phase 1 Introduction: Django and Core Setup \n\nRedis is one of the most powerful tools in modern web development —...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YHH6b9MR7lk",
        "title": "Django ORM Workshop | Return the nth Most Expensive Product",
        "publishedAt": "10 months ago",
        "durationSeconds": 271,
        "views": 357,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Django ORM Query Workshop/Challenges | Return the nth Most Expensive Product\n\nWelcome to the Django ORM Query Challenges!\nSharpen your Django skills with hands-on, real-world query exercises....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mX1Z1x56uvg",
        "title": "Django ORM Workshop | Find Users with Emails Ending in 'example.com'",
        "publishedAt": "11 months ago",
        "durationSeconds": 222,
        "views": 243,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Django ORM Query Workshop/Challenges | Find Users with Emails Ending in 'example.com'\n\nWelcome to the Django ORM Query Challenges!\nSharpen your Django skills with hands-on, real-world query...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rhHoU60fqH4",
        "title": "Django ORM Workshop | Show the Top 10 Most Expensive Active Products",
        "publishedAt": "11 months ago",
        "durationSeconds": 221,
        "views": 145,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Django ORM Query Workshop/Challenges | Show the Top 10 Most Expensive Active Products\n\nWelcome to the Django ORM Query Challenges!\nSharpen your Django skills with hands-on, real-world query...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Z5sy_R2Ql_w",
        "title": "Django ORM Workshop | Find Products Ending with the Letter 'E'",
        "publishedAt": "11 months ago",
        "durationSeconds": 143,
        "views": 163,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Django ORM Query Workshop/Challenges | Find Products Ending with the Letter 'E'\n\nWelcome to the Django ORM Query Challenges!\nSharpen your Django skills with hands-on, real-world query exercises....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "k_oHbnyhh_E",
        "title": "Django ORM Workshop | Get Products Starting with the Letter 'W'",
        "publishedAt": "11 months ago",
        "durationSeconds": 212,
        "views": 119,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Django ORM Query Workshop/Challenges | Get Products Starting with the Letter 'W'\n\nWelcome to the Django ORM Query Challenges!\nSharpen your Django skills with hands-on, real-world query exercises....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QeSTlBXBl0k",
        "title": "Django ORM Workshop | Find Users Named janedoe or johndoe",
        "publishedAt": "11 months ago",
        "durationSeconds": 241,
        "views": 163,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Django ORM Query Workshop/Challenges | Find Users Named janedoe or johndoe\n\nWelcome to the Django ORM Query Challenges!\nSharpen your Django skills with hands-on, real-world query exercises....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9hFwCB85cG4",
        "title": "Django ORM Workshop | Exclude Products Priced 19.99 and Under 100",
        "publishedAt": "11 months ago",
        "durationSeconds": 221,
        "views": 221,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Django ORM Query Workshop/Challenges | Exclude Products Priced 19.99 and Under 100\n\nWelcome to the Django ORM Query Challenges!\nSharpen your Django skills with hands-on, real-world query exercises....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WZf88DRptlY",
        "title": "Django ORM Workshop | List Products Priced Between 50 and 1000",
        "publishedAt": "11 months ago",
        "durationSeconds": 187,
        "views": 199,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Django ORM Query Workshop/Challenges | List Products Priced Between 50 and 1000\n\nWelcome to the Django ORM Query Challenges!\nSharpen your Django skills with hands-on, real-world query exercises....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "aTxy51Wp7XI",
        "title": "Django ORM Workshop | Find Products in Multiple Categories",
        "publishedAt": "11 months ago",
        "durationSeconds": 330,
        "views": 192,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Django ORM Query Workshop/Challenges | Find Products in Multiple Categories\n\nWelcome to the Django ORM Query Challenges!\nSharpen your Django skills with hands-on, real-world query exercises....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PWKeR7ouVD0",
        "title": "Django ORM Workshop | Retrieve Orders from the Last 30 Days",
        "publishedAt": "11 months ago",
        "durationSeconds": 333,
        "views": 259,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Django ORM Query Workshop/Challenges | Retrieve Orders from the Last 30 Days\n\nWelcome to the Django ORM Query Challenges!\nSharpen your Django skills with hands-on, real-world query exercises....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "oMPrWwH3oFg",
        "title": "Redis | Using Strings as Counters: INCR, DECR",
        "publishedAt": "11 months ago",
        "durationSeconds": 410,
        "views": 286,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Redis with Python & Django: Build Real-Time Projects Course | Using Strings as Counters: INCR, DECR\n\nRedis is one of the most powerful tools in modern web development — known for blazing-fast...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Xa0uiK8Yzqk",
        "title": "Django ORM Workshop | Get the First and Last 5 Added Products",
        "publishedAt": "11 months ago",
        "durationSeconds": 950,
        "views": 260,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Django ORM Query Workshop/Challenges | Get the First and Last 5 Added Products\n\nWelcome to the Django ORM Query Challenges!\nSharpen your Django skills with hands-on, real-world query exercises....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hP6g1MgOQNY",
        "title": "Redis | Appending to Strings: Using APPEND and Measuring with STRLEN",
        "publishedAt": "11 months ago",
        "durationSeconds": 416,
        "views": 174,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Redis with Python & Django: Build Real-Time Projects Course | Appending to Strings: Using APPEND and Measuring with STRLEN\n\nRedis is one of the most powerful tools in modern web development...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "T8ol7namVU8",
        "title": "Documenting Queries with Descriptions | Django GraphQL Strawberry Query Fundamentals",
        "publishedAt": "11 months ago",
        "durationSeconds": 202,
        "views": 266,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Django GraphQL Strawberry Query Fundamentals | Documenting Queries with Descriptions\n\nBuild GraphQL queries with Django ORM and Strawberry – from models to optimized APIs, fully hands-on....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EiRIdmaFjFQ",
        "title": "Redis | Retrieving Strings: GET, MGET, and Key Lookups",
        "publishedAt": "11 months ago",
        "durationSeconds": 255,
        "views": 162,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Redis with Python & Django: Build Real-Time Projects Course | Retrieving Strings: GET, MGET, and Key Lookups\n\nRedis is one of the most powerful tools in modern web development — known for...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xEKwrNOohoA",
        "title": "Django ORM Workshop | Filter Products by Price and Category",
        "publishedAt": "11 months ago",
        "durationSeconds": 217,
        "views": 179,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Django ORM Query Workshop/Challenges | Filter Products by Price and Category\n\nWelcome to the Django ORM Query Challenges!\nSharpen your Django skills with hands-on, real-world query exercises....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bwOBOKModyU",
        "title": "GraphiQL Interface | Django GraphQL Strawberry Query Fundamentals",
        "publishedAt": "11 months ago",
        "durationSeconds": 530,
        "views": 273,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Django GraphQL Strawberry Query Fundamentals | Connecting to Django with URLs & using the GraphiQL Interface\n\nBuild GraphQL queries with Django ORM and Strawberry – from models to optimized...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "web-services",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:web development"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "udemy.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "django",
        "share": 0.93,
        "evidenceVideoIds": [
          "ARWmzWfBfYM",
          "X3jRRhMgDog",
          "Py7LOfIHG3g",
          "X34Bun68CRw",
          "QZUeD34mtvE"
        ]
      },
      {
        "label": "real",
        "share": 0.83,
        "evidenceVideoIds": [
          "ARWmzWfBfYM",
          "X3jRRhMgDog",
          "Py7LOfIHG3g",
          "X34Bun68CRw",
          "QZUeD34mtvE"
        ]
      },
      {
        "label": "hands",
        "share": 0.77,
        "evidenceVideoIds": [
          "ARWmzWfBfYM",
          "X3jRRhMgDog",
          "Py7LOfIHG3g",
          "X34Bun68CRw",
          "QZUeD34mtvE"
        ]
      },
      {
        "label": "world",
        "share": 0.73,
        "evidenceVideoIds": [
          "ARWmzWfBfYM",
          "X3jRRhMgDog",
          "Py7LOfIHG3g",
          "X34Bun68CRw",
          "QZUeD34mtvE"
        ]
      },
      {
        "label": "exercises",
        "share": 0.67,
        "evidenceVideoIds": [
          "ARWmzWfBfYM",
          "X3jRRhMgDog",
          "Py7LOfIHG3g",
          "X34Bun68CRw",
          "QZUeD34mtvE"
        ]
      },
      {
        "label": "web development",
        "share": 0.53,
        "evidenceVideoIds": [
          "ARWmzWfBfYM",
          "X3jRRhMgDog",
          "Py7LOfIHG3g",
          "X34Bun68CRw",
          "QZUeD34mtvE"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "D",
      "rationale": "content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 33,
      "reason": "fits web-services",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.35
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "fits web-services. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 30,
    "failureType": null,
    "summary": "Very Academy — 0.1M subs, D-tier sponsorship readiness, low contactability, respond within 30 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 33,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.77,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mid-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mid"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mid-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "none"
    },
    "benchmarkRange": {
      "creatorTier": "mid",
      "sponsorCategory": "web-services",
      "historicalTypicalReplyRange": "5-12%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mid-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "ignore",
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": {
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "gaps": [
        "tier:D",
        "contactability:low"
      ]
    },
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "5ae6e9cc6557895e21ac28ace47dbf7161f59da3c08d32c7c7f77a831b963c95",
      "inputsHash": "d846798178dcc2489ad5be46a11079ecd14a614ce39b27ba3bf6c1b9f2356b16",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:23.274Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "f9f62323fda017a740c0a57c23b48f102ec9ef6a6197e86b79699d035da96cc0",
    "channelId": "UCSHZKyawb77ixDdsGog4iWA",
    "channelHandle": "@lexfridman",
    "channelName": "Lex Fridman",
    "channelUrl": "https://www.youtube.com/@lexfridman",
    "description": "Lex Fridman Podcast and other videos.",
    "joinDate": null,
    "location": null,
    "subscribers": 4990000,
    "totalVideos": 863,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_ljfMy9kUR1PH9VRf-XsTsPqFMgORC_zodOQVEAm4hx36lC=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "lexfridman.com",
        "url": "https://lexfridman.com"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/lexfridman"
      }
    ],
    "recentVideos": [
      {
        "videoId": "nepKKz-MzFM",
        "title": "FFmpeg: The Incredible Technology Behind Video on the Internet | Lex Fridman Podcast #496",
        "publishedAt": "7 days ago",
        "durationSeconds": 15502,
        "views": 192359,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Jean-Baptiste Kempf is lead developer of VLC and president of VideoLAN. Kieran Kunhya is a longtime FFmpeg contributor, codec engineer, and the person behind the now-infamous FFmpeg account on X.\nThank you for listening ❤ Check out our sponsors: https://lexfridman.com/sponsors/ep496-sb\nSee below for timestamps, transcript, and to give feedback, submit questions, contact Lex, etc.\n\nTranscript:\nhttps://lexfridman.com/ffmpeg-transcript\n\nCONTACT LEX:\nFeedback - give feedback to Lex: https://lexfridman.com/survey\nAMA - submit questions, videos or call-in: https://lexfridman.com/ama\nHiring - join our team: https://lexfridman.com/hiring\nOther - other ways to get in touch: https://lexfridman.com/contact\n\nEPISODE LINKS:\nFFmpeg on X: https://x.com/FFmpeg\nFFmpeg: https://ffmpeg.org/\nVideoLAN (VLC): https://www.videolan.org/\nVideoLAN on X: https://x.com/videolan\nJean-Baptiste's Website: https://jbkempf.com/\nJean-Baptiste's LinkedIn:   / jbkempf  \nJean-Baptiste's GitHub: https://github.com/jbkempf\nKieran's X: https://x.com/kierank_\nKieran's LinkedIn: https://bit.ly/3OORhmC\nKieran's GitHub: https://github.com/kierank\n\nSPONSORS:\nTo support this podcast, check out our sponsors & get discounts:\nLarridin: Measure AI adoption in your business.\nGo to https://lexfridman.com/s/larridin-ep4...\nBlitzy: AI agent for large enterprise codebases.\nGo to https://lexfridman.com/s/blitzy-ep496-sb\nBetterHelp: Online therapy and counseling.\nGo to https://lexfridman.com/s/betterhelp-e...\nFin: AI agent for customer service.\nGo to https://lexfridman.com/s/fin-ep496-sb\nLMNT: Zero-sugar electrolyte drink mix.\nGo to https://lexfridman.com/s/lmnt-ep496-sb\nPerplexity: AI-powered answer engine.\nGo to https://lexfridman.com/s/perplexity-e...\n\nOUTLINE:\n0:00 - Episode highlight\n2:17 - Introduction\n5:35 - Weirdest things VLC opens\n9:59 - How video playback works\n19:20 - Video codecs and containers\n30:07 - FFmpeg explained\n51:07 - Linus Torvalds\n55:46 - Turning down millions to keep VLC ad-free\n1:10:04 - FFmpeg & Google drama\n1:29:18 - FFmpeg developers\n1:35:55 - VLC and FFmpeg\n1:40:29 - History of FFmpeg\n1:43:46 - Reverse engineering codecs\n1:57:01 - FFmpeg testing\n2:01:08 - Assembly code (handwritten)\n2:25:26 - Rust programming language\n2:34:42 - FFmpeg and Libav fork\n2:43:04 - Open source burnout\n2:50:51 - x264 and internet video\n3:04:07 - Video compression basics\n3:11:04 - CIA and fake VLC\n3:21:39 - Ultra low latency streaming\n3:39:07 - AV2 codec and video patents\n3:48:59 - VLC backdoors\n3:59:14 - Video archiving\n4:05:51 - Future of FFmpeg and VLC\n\nPODCAST LINKS:\nPodcast Website: https://lexfridman.com/podcast\nApple Podcasts: https://apple.co/2lwqZIr\nSpotify: https://spoti.fi/2nEwCF8\nRSS: https://lexfridman.com/feed/podcast/\nPodcast Playlist:    • Lex Fridman Podcast  \nClips Channel:    / lexclips  \n\nSOCIAL LINKS:\nX: https://x.com/lexfridman\nInstagram:   / lexfridman  \nTikTok:   / lexfridman  \nLinkedIn:   / lexfridman  \nFacebook:   / lexfridman  \nPatreon:   / lexfridman  \nTelegram: https://t.me/lexfridman\nReddit:   / lexfridman",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "iKx3gAODybU",
        "title": "Vikings, Ragnar, Berserkers, Valhalla & the Warriors of the Viking Age | Lex Fridman Podcast #495",
        "publishedAt": "1 month ago",
        "durationSeconds": 7404,
        "views": 952848,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Lars Brownworth is a historian, teacher, podcaster, and author specializing in Viking history, medieval Europe, and the Byzantine Empire.\nThank you for listening ❤ Check out our sponsors: https://lexfridman.com/sponsors/ep495-sb\nSee below for timestamps, transcript, and to give feedback, submit questions, contact Lex, etc.\n\nTranscript:\nhttps://lexfridman.com/lars-brownwort...\n\nCONTACT LEX:\nFeedback - give feedback to Lex: https://lexfridman.com/survey\nAMA - submit questions, videos or call-in: https://lexfridman.com/ama\nHiring - join our team: https://lexfridman.com/hiring\nOther - other ways to get in touch: https://lexfridman.com/contact\n\nEPISODE LINKS:\nLars's Website: https://larsbrownworth.com/\nThe Sea Wolves (book): https://www.amazon.com/Sea-Wolves-His...\nLars's Books: https://amzn.to/4sHY0xw\n12 Byzantine Rulers Podcast : https://12byzantinerulers.com/\nNorman Centuries Podcast: https://apple.co/4sgSxNi\n\nSPONSORS:\nTo support this podcast, check out our sponsors & get discounts:\nLarridin: Measure AI adoption in your business.\nGo to https://lexfridman.com/s/larridin-ep4...\nBetterHelp: Online therapy and counseling.\nGo to https://lexfridman.com/s/betterhelp-e...\nLMNT: Zero-sugar electrolyte drink mix.\nGo to https://lexfridman.com/s/lmnt-ep495-sb\nFin: AI agent for customer service.\nGo to https://lexfridman.com/s/fin-ep495-sb\nShopify: Sell stuff online.\nGo to https://lexfridman.com/s/shopify-ep49...\nPerplexity: AI-powered answer engine.\nGo to https://lexfridman.com/s/perplexity-e...\n\nOUTLINE:\n0:00 - Episode highlight\n1:17 - Introduction\n2:37 - The start of the Viking Age\n12:30 - Viking military strategy, tactics & technology\n26:13 - Ragnar Lothbrok\n35:40 - The Great Heathen Army\n40:23 - Rollo and Normandy\n50:34 - Viking religion and Valhalla\n1:01:06 - Viking explorers\n1:06:13 - Vikings in North America\n1:19:35 - Vikings in the East\n1:39:14 - Byzantine Empire\n1:47:57 - History and human nature\n\nPODCAST LINKS:\nPodcast Website: https://lexfridman.com/podcast\nApple Podcasts: https://apple.co/2lwqZIr\nSpotify: https://spoti.fi/2nEwCF8\nRSS: https://lexfridman.com/feed/podcast/\nPodcast Playlist:    • Lex Fridman Podcast  \nClips Channel:    / lexclips  \n\nSOCIAL LINKS:\nX: https://x.com/lexfridman\nInstagram:   / lexfridman  \nTikTok:   / lexfridman  \nLinkedIn:   / lexfridman  \nFacebook:   / lexfridman  \nPatreon:   / lexfridman  \nTelegram: https://t.me/lexfridman\nReddit:   / lexfridman",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vif8NQcjVf0",
        "title": "Jensen Huang: NVIDIA - The $4 Trillion Company & the AI Revolution | Lex Fridman Podcast #494",
        "publishedAt": "1 month ago",
        "durationSeconds": 8759,
        "views": 1121743,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Jensen Huang is the co-founder and CEO of NVIDIA, the world's most valuable company and the engine powering the AI computing revolution.\nThank you for listening ❤ Check out our sponsors: https://lexfridman.com/sponsors/ep494-sb\nSee below for timestamps, transcript, and to give feedback, submit questions, contact Lex, etc.\n\nTranscript:\nhttps://lexfridman.com/jensen-huang-t...\n\nCONTACT LEX:\nFeedback - give feedback to Lex: https://lexfridman.com/survey\nAMA - submit questions, videos or call-in: https://lexfridman.com/ama\nHiring - join our team: https://lexfridman.com/hiring\nOther - other ways to get in touch: https://lexfridman.com/contact\n\nEPISODE LINKS:\nNVIDIA: https://nvidia.com\nNVIDIA on X: https://x.com/nvidia\nNVIDIA AI on X: https://x.com/NVIDIAAI\nNVIDIA on YouTube:    / @nvidia  \nNVIDIA on Instagram:   / nvidia  \nNVIDIA on LinkedIn:   / nvidia  \nNVIDIA on Facebook:   / nvidia  \nNVIDIA on GitHub: https://github.com/NVIDIA\nNemotron: https://developer.nvidia.com/nemotron\n\nSPONSORS:\nTo support this podcast, check out our sponsors & get discounts:\nPerplexity: AI-powered answer engine.\nGo to https://lexfridman.com/s/perplexity-e...\nShopify: Sell stuff online.\nGo to https://lexfridman.com/s/shopify-ep49...\nLMNT: Zero-sugar electrolyte drink mix.\nGo to https://lexfridman.com/s/lmnt-ep494-sb\nFin: AI agent for customer service.\nGo to https://lexfridman.com/s/fin-ep494-sb\nQuo: Phone system (calls, texts, contacts) for businesses.\nGo to https://lexfridman.com/s/quo-ep494-sb\n\nOUTLINE:\n0:00 - Introduction\n0:33 - Extreme co-design and rack-scale engineering\n3:18 - How Jensen runs NVIDIA\n22:40 - AI scaling laws\n37:40 - Biggest blockers to AI scaling laws\n39:23 - Supply chain\n41:18 - Memory\n47:24 - Power\n52:43 - Elon and Colossus\n56:11 - Jensen's approach to engineering and leadership\n1:01:37 - China\n1:09:50 - TSMC and Taiwan\n1:15:04 - NVIDIA's moat\n1:20:41 - AI data centers in space\n1:24:30 - Will NVIDIA be worth $10 trillion?\n1:34:39 - Leadership under pressure\n1:48:25 - Video games\n1:55:16 - AGI timeline\n1:57:29 - Future of programming\n2:11:01 - Consciousness\n2:17:22 - Mortality\n\nPODCAST LINKS:\nPodcast Website: https://lexfridman.com/podcast\nApple Podcasts: https://apple.co/2lwqZIr\nSpotify: https://spoti.fi/2nEwCF8\nRSS: https://lexfridman.com/feed/podcast/\nPodcast Playlist:    • Lex Fridman Podcast  \nClips Channel:    / lexclips  \n\nSOCIAL LINKS:\nX: https://x.com/lexfridman\nInstagram:   / lexfridman  \nTikTok:   / lexfridman  \nLinkedIn:   / lexfridman  \nFacebook:   / lexfridman  \nPatreon:   / lexfridman  \nTelegram: https://t.me/lexfridman\nReddit:   / lexfridman",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "H9rF1CSSh-w",
        "title": "Jeff Kaplan: World of Warcraft, Overwatch, Blizzard, and Future of Gaming | Lex Fridman Podcast #493",
        "publishedAt": "2 months ago",
        "durationSeconds": 18612,
        "views": 864379,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Jeff Kaplan is a legendary Blizzard lead game designer of World of Warcraft and Overwatch, now preparing to launch a new game, The Legend of California, from his new studio Kintsugiyama - available to wishlist on Steam today, with alpha later in March.\nThank you for listening ❤ Check out our sponsors: https://lexfridman.com/sponsors/ep493-sb\nSee below for timestamps, transcript, and to give feedback, submit questions, contact Lex, etc.\n\nTranscript:\nhttps://lexfridman.com/jeff-kaplan-tr...\n\nCONTACT LEX:\nFeedback - give feedback to Lex: https://lexfridman.com/survey\nAMA - submit questions, videos or call-in: https://lexfridman.com/ama\nHiring - join our team: https://lexfridman.com/hiring\nOther - other ways to get in touch: https://lexfridman.com/contact\n\nEPISODE LINKS:\nThe Legend of California (Steam Page): https://store.steampowered.com/app/25...\nJeff's Game Studio: https://www.kintsugiyama.com/\n\nSPONSORS:\nTo support this podcast, check out our sponsors & get discounts:\nFin: AI agent for customer service.\nGo to https://lexfridman.com/s/fin-ep493-sb\nBlitzy: AI agent for large enterprise codebases.\nGo to https://lexfridman.com/s/blitzy-ep493-sb\nBetterHelp: Online therapy and counseling.\nGo to https://lexfridman.com/s/betterhelp-e...\nShopify: Sell stuff online.\nGo to https://lexfridman.com/s/shopify-ep49...\nCodeRabbit: AI-powered code reviews.\nGo to https://lexfridman.com/s/coderabbit-e...\nPerplexity: AI-powered answer engine.\nGo to https://lexfridman.com/s/perplexity-e...\n\nOUTLINE:\n0:00 - Episode highlight\n1:27 - Introduction\n4:07 - Early games: Pac-Man, Zork, Doom, Quake\n18:33 - Writing career - 170 rejection letters\n34:06 - EverQuest obsession\n47:04 - Getting hired at Blizzard\n1:02:32 - Lowest point in Jeff's life\n1:08:37 - One of Us\n1:12:54 - Early Blizzard culture\n1:32:36 - Building World of Warcraft\n1:50:20 - How WoW changed video games\n2:07:42 - Single-player vs Multi-player\n2:28:35 - How Blizzard made great video games\n2:54:25 - Online toxicity\n3:01:59 - Why Titan failed\n3:19:09 - Overwatch in six weeks\n3:46:07 - Best Overwatch heroes\n3:54:37 - The challenge of matchmaking\n3:58:01 - Rust\n4:08:22 - Why Jeff left Blizzard\n4:30:35 - Diablo IV\n4:32:03 - Getting back to making video games\n4:40:59 - The Legend of California\n4:54:44 - Greatest video game of all time\n5:02:51 - AI and future of video games\n\nPODCAST LINKS:\nPodcast Website: https://lexfridman.com/podcast\nApple Podcasts: https://apple.co/2lwqZIr\nSpotify: https://spoti.fi/2nEwCF8\nRSS: https://lexfridman.com/feed/podcast/\nPodcast Playlist:    • Lex Fridman Podcast  \nClips Channel:    / lexclips  \n\nSOCIAL LINKS:\nX: https://x.com/lexfridman\nInstagram:   / lexfridman  \nTikTok:   / lexfridman  \nLinkedIn:   / lexfridman  \nFacebook:   / lexfridman  \nPatreon:   / lexfridman  \nTelegram: https://t.me/lexfridman\nReddit:   / lexfridman",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1SJiTwbSI58",
        "title": "Rick Beato: Greatest Guitarists of All Time, History & Future of Music | Lex Fridman Podcast #492",
        "publishedAt": "2 months ago",
        "durationSeconds": 9228,
        "views": 437275,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Rick Beato is a music educator, interviewer, producer, songwriter, and a true multi-instrument musician, playing guitar, bass, cello & piano. His incredible YouTube channel celebrates great musicians & musical ideas, and helps millions of people fall in love with great music all over again.\nThank you for listening ❤ Check out our sponsors: https://lexfridman.com/sponsors/ep492-sb\nSee below for timestamps, transcript, and to give feedback, submit questions, contact Lex, etc.\n\nTranscript:\nhttps://lexfridman.com/rick-beato-tra...\n\nCONTACT LEX:\nFeedback - give feedback to Lex: https://lexfridman.com/survey\nAMA - submit questions, videos or call-in: https://lexfridman.com/ama\nHiring - join our team: https://lexfridman.com/hiring\nOther - other ways to get in touch: https://lexfridman.com/contact\n\nEPISODE LINKS:\nRick's YouTube:    / rickbeato  \nRick's X: https://x.com/rickbeato\nRick's Instagram:   / rickbeato1  \nRick's Website: https://rickbeato.com\nRick's Ear Training: https://beatoeartraining.com\nThe Beato Book: https://beatobook.com\n\nSPONSORS:\nTo support this podcast, check out our sponsors & get discounts:\nUPLIFT Desk: Standing desks and office ergonomics.\nGo to https://lexfridman.com/s/uplift_desk-...\nBetterHelp: Online therapy and counseling.\nGo to https://lexfridman.com/s/betterhelp-e...\nLMNT: Zero-sugar electrolyte drink mix.\nGo to https://lexfridman.com/s/lmnt-ep492-sb\nFin: AI agent for customer service.\nGo to https://lexfridman.com/s/fin-ep492-sb\nShopify: Sell stuff online.\nGo to https://lexfridman.com/s/shopify-ep49...\nPerplexity: AI-powered answer engine.\nGo to https://lexfridman.com/s/perplexity-e...\n\nOUTLINE:\n0:00 - Introduction\n0:44 - Guitar solos\n4:43 - Gypsy jazz and Django Reinhardt\n6:14 - Bebop jazz\n10:27 - Perfect pitch vs relative pitch\n15:04 - Learning to play guitar\n38:34 - Miles Davis\n44:01 - Bass guitar\n45:08 - Greatest guitar solos of all time\n1:14:23 - 27 Club\n1:19:04 - Elton John\n1:22:18 - Metallica\n1:26:48 - Tom Waits\n1:32:39 - Greatest rock stars\n1:36:02 - Beethoven\n1:42:37 - Bach\n1:45:27 - AI in music\n1:59:18 - Sabrina Carpenter\n2:02:49 - YouTube copyright strikes\n2:08:26 - Spotify\n2:19:18 - Guitars\n2:23:40 - Advice\n\nPODCAST LINKS:\nPodcast Website: https://lexfridman.com/podcast\nApple Podcasts: https://apple.co/2lwqZIr\nSpotify: https://spoti.fi/2nEwCF8\nRSS: https://lexfridman.com/feed/podcast/\nPodcast Playlist:    • Lex Fridman Podcast  \nClips Channel:    / lexclips  \n\nSOCIAL LINKS:\nX: https://x.com/lexfridman\nInstagram:   / lexfridman  \nTikTok:   / lexfridman  \nLinkedIn:   / lexfridman  \nFacebook:   / lexfridman  \nPatreon:   / lexfridman  \nTelegram: https://t.me/lexfridman\nReddit:   / lexfridman",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KGVpKPNUdzA",
        "title": "Khabib vs Lex: Training with Khabib | FULL EXCLUSIVE FOOTAGE",
        "publishedAt": "2 months ago",
        "durationSeconds": 1329,
        "views": 715137,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video I'm training with Khabib Nurmagomedov, one of the greatest fighters of all time and a great human being. This was truly an honor for me 🙏\nThank you for listening ❤ Check out our sponsors: https://lexfridman.com/sponsors/mv577-sb\nSee below for timestamps, and to give feedback, submit questions, contact Lex, etc.\n\nCONTACT LEX:\nFeedback - give feedback to Lex: https://lexfridman.com/survey\nAMA - submit questions, videos or call-in: https://lexfridman.com/ama\nHiring - join our team: https://lexfridman.com/hiring\nOther - other ways to get in touch: https://lexfridman.com/contact\n\nEPISODE LINKS:\nKhabib's Instagram:   / khabib_nurmagomedov  \nKhabib's YouTube:    / @khabibtheeagle  \nKhabib's X: https://x.com/TeamKhabib\nKhabib's Telegram: https://t.me/khabib_nurmagomedov\nKhabib's Facebook:   / khabibtheeagle  \nDominance MMA: https://dominancemma.com/\nUFC PI: https://www.ufcpi.com/\n\nSPONSORS:\nTo support this podcast, check out our sponsors & get discounts:\nLMNT: Zero-sugar electrolyte drink mix.\nGo to https://lexfridman.com/s/lmnt-mv577-sb\n\nOUTLINE:\n0:00 - Training with Khabib Nurmagomedov\n1:18 - Lex training with Khabib - Round 1\n9:11 - Khabib vs Glover Teixeira\n9:45 - Lex training with Khabib - Round 2\n18:09 - Khabib training philosophy\n\nPODCAST LINKS:\nPodcast Website: https://lexfridman.com/podcast\nApple Podcasts: https://apple.co/2lwqZIr\nSpotify: https://spoti.fi/2nEwCF8\nRSS: https://lexfridman.com/feed/podcast/\nPodcast Playlist:    • Lex Fridman Podcast  \nClips Channel:    / lexclips  \n\nSOCIAL LINKS:\nX: https://x.com/lexfridman\nInstagram:   / lexfridman  \nTikTok:   / lexfridman  \nLinkedIn:   / lexfridman  \nFacebook:   / lexfridman  \nPatreon:   / lexfridman  \nTelegram: https://t.me/lexfridman\nReddit:   / lexfridman",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YFjfBk8HI5o",
        "title": "OpenClaw: The Viral AI Agent that Broke the Internet - Peter Steinberger | Lex Fridman Podcast #491",
        "publishedAt": "3 months ago",
        "durationSeconds": 11752,
        "views": 1232285,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Peter Steinberger is the creator of OpenClaw, an open-source AI agent framework that's the fastest-growing project in GitHub history.\nThank you for listening ❤ Check out our sponsors: https://lexfridman.com/sponsors/ep491-sb\nSee below for timestamps, transcript, and to give feedback, submit questions, contact Lex, etc.\n\nTranscript:\nhttps://lexfridman.com/peter-steinber...\n\nCONTACT LEX:\nFeedback - give feedback to Lex: https://lexfridman.com/survey\nAMA - submit questions, videos or call-in: https://lexfridman.com/ama\nHiring - join our team: https://lexfridman.com/hiring\nOther - other ways to get in touch: https://lexfridman.com/contact\n\nEPISODE LINKS:\nPeter's X: https://x.com/steipete\nPeter's GitHub: https://github.com/steipete\nPeter's Website: https://steipete.com\nPeter's LinkedIn:   / steipete  \nOpenClaw Website: https://openclaw.ai\nOpenClaw GitHub: https://github.com/openclaw/openclaw\nOpenClaw Discord:   / discord  \n\nSPONSORS:\nTo support this podcast, check out our sponsors & get discounts:\nPerplexity: AI-powered answer engine.\nGo to https://lexfridman.com/s/perplexity-e...\nQuo: Phone system (calls, texts, contacts) for businesses.\nGo to https://lexfridman.com/s/quo-ep491-sb\nCodeRabbit: AI-powered code reviews.\nGo to https://lexfridman.com/s/coderabbit-e...\nFin: AI agent for customer service.\nGo to https://lexfridman.com/s/fin-ep491-sb\nBlitzy: AI agent for large enterprise codebases.\nGo to https://lexfridman.com/s/blitzy-ep491-sb\nShopify: Sell stuff online.\nGo to https://lexfridman.com/s/shopify-ep49...\nLMNT: Zero-sugar electrolyte drink mix.\nGo to https://lexfridman.com/s/lmnt-ep491-sb\n\nOUTLINE:\n0:00 - Episode highlight\n1:30 - Introduction\n5:36 - OpenClaw origin story\n8:55 - Mind-blowing moment\n18:22 - Why OpenClaw went viral\n22:19 - Self-modifying AI agent\n27:04 - Name-change drama\n44:15 - Moltbook saga\n52:34 - OpenClaw security concerns\n1:01:14 - How to code with AI agents\n1:32:09 - Programming setup\n1:38:52 - GPT Codex 5.3 vs Claude Opus 4.6\n1:47:59 - Best AI agent for programming\n2:09:59 - Life story and career advice\n2:13:56 - Money and happiness\n2:17:49 - Acquisition offers from OpenAI and Meta\n2:34:58 - How OpenClaw works\n2:46:17 - AI slop\n2:52:20 - AI agents will replace 80% of apps\n3:00:57 - Will AI replace programmers?\n3:12:57 - Future of OpenClaw community\n\nPODCAST LINKS:\nPodcast Website: https://lexfridman.com/podcast\nApple Podcasts: https://apple.co/2lwqZIr\nSpotify: https://spoti.fi/2nEwCF8\nRSS: https://lexfridman.com/feed/podcast/\nPodcast Playlist:    • Lex Fridman Podcast  \nClips Channel:    / lexclips  \n\nSOCIAL LINKS:\nX: https://x.com/lexfridman\nInstagram:   / lexfridman  \nTikTok:   / lexfridman  \nLinkedIn:   / lexfridman  \nFacebook:   / lexfridman  \nPatreon:   / lexfridman  \nTelegram: https://t.me/lexfridman\nReddit:   / lexfridman",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EV7WhVT270Q",
        "title": "State of AI in 2026: LLMs, Coding, Scaling Laws, China, Agents, GPUs, AGI | Lex Fridman Podcast #490",
        "publishedAt": "3 months ago",
        "durationSeconds": 15913,
        "views": 843499,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Nathan Lambert and Sebastian Raschka are machine learning researchers, engineers, and educators. Nathan is the post-training lead at the Allen Institute for AI (Ai2) and the author of The RLHF Book. Sebastian Raschka is the author of Build a Large Language Model (From Scratch) and Build a Reasoning Model (From Scratch).\nThank you for listening ❤ Check out our sponsors: https://lexfridman.com/sponsors/ep490-sb\nSee below for timestamps, transcript, and to give feedback, submit questions, contact Lex, etc.\n\nTranscript:\nhttps://lexfridman.com/ai-sota-2026-t...\n\nCorrection:\nHere's an updated image listing a collection of recent open & closed AI models with some improvements & fixes:\nhttps://lexfridman.com/wordpress/wp-c...\n\nCONTACT LEX:\nFeedback - give feedback to Lex: https://lexfridman.com/survey\nAMA - submit questions, videos or call-in: https://lexfridman.com/ama\nHiring - join our team: https://lexfridman.com/hiring\nOther - other ways to get in touch: https://lexfridman.com/contact\n\nEPISODE LINKS:\nNathan's X: https://x.com/natolambert\nNathan's Blog: https://interconnects.ai\nNathan's Website: https://natolambert.com\nNathan's YouTube:    / @natolambert  \nNathan's GitHub: https://github.com/natolambert\nNathan's Book: https://rlhfbook.com\nSebastian's X: https://x.com/rasbt\nSebastian's Blog: https://magazine.sebastianraschka.com\nSebastian's Website: https://sebastianraschka.com\nSebastian's YouTube:    / @sebastianraschka  \nSebastian's GitHub: https://github.com/rasbt\nSebastian's Books:\nBuild a Large Language Model (From Scratch): https://manning.com/books/build-a-lar...\nBuild a Reasoning Model (From Scratch): https://manning.com/books/build-a-rea...\n\nSPONSORS:\nTo support this podcast, check out our sponsors & get discounts:\nBox: Intelligent content management platform.\nGo to https://lexfridman.com/s/box-ep490-sb\nQuo: Phone system (calls, texts, contacts) for businesses.\nGo to https://lexfridman.com/s/quo-ep490-sb\nUPLIFT Desk: Standing desks and office ergonomics.\nGo to https://lexfridman.com/s/uplift_desk-...\nFin: AI agent for customer service.\nGo to https://lexfridman.com/s/fin-ep490-sb\nShopify: Sell stuff online.\nGo to https://lexfridman.com/s/shopify-ep49...\nCodeRabbit: AI-powered code reviews.\nGo to https://lexfridman.com/s/coderabbit-e...\nLMNT: Zero-sugar electrolyte drink mix.\nGo to https://lexfridman.com/s/lmnt-ep490-sb\nPerplexity: AI-powered answer engine.\nGo to https://lexfridman.com/s/perplexity-e...\n\nOUTLINE:\n0:00 - Introduction\n1:57 - China vs US: Who wins the AI race?\n10:38 - ChatGPT vs Claude vs Gemini vs Grok: Who is winning?\n21:38 - Best AI for coding\n28:29 - Open Source vs Closed Source LLMs\n40:08 - Transformers: Evolution of LLMs since 2019\n48:05 - AI Scaling Laws: Are they dead or still holding?\n1:04:12 - How AI is trained: Pre-training, Mid-training, and Post-training\n1:37:18 - Post-training explained: Exciting new research directions in LLMs\n1:58:11 - Advice for beginners on how to get into AI development & research\n2:21:03 - Work culture in AI (72+ hour weeks)\n2:24:49 - Silicon Valley bubble\n2:28:46 - Text diffusion models and other new research directions\n2:34:28 - Tool use\n2:38:44 - Continual learning\n2:44:06 - Long context\n2:50:21 - Robotics\n2:59:31 - Timeline to AGI\n3:06:47 - Will AI replace programmers?\n3:25:18 - Is the dream of AGI dying?\n3:32:07 - How AI will make money?\n3:36:29 - Big acquisitions in 2026\n3:41:01 - Future of OpenAI, Anthropic, Google DeepMind, xAI, Meta\n3:53:35 - Manhattan Project for AI\n4:00:10 - Future of NVIDIA, GPUs, and AI compute clusters\n4:08:15 - Future of human civilization\n\nPODCAST LINKS:\nPodcast Website: https://lexfridman.com/podcast\nApple Podcasts: https://apple.co/2lwqZIr\nSpotify: https://spoti.fi/2nEwCF8\nRSS: https://lexfridman.com/feed/podcast/\nPodcast Playlist:    • Lex Fridman Podcast  \nClips Channel:    / lexclips  \n\nSOCIAL LINKS:\nX: https://x.com/lexfridman\nInstagram:   / lexfridman  \nTikTok:   / lexfridman  \nLinkedIn:   / lexfridman  \nFacebook:   / lexfridman  \nPatreon:   / lexfridman  \nTelegram: https://t.me/lexfridman\nReddit:   / lexfridman",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Z-FRe5AKmCU",
        "title": "Paul Rosolie: Uncontacted Tribes in the Amazon Jungle | Lex Fridman Podcast #489",
        "publishedAt": "4 months ago",
        "durationSeconds": 11179,
        "views": 1228422,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Paul Rosolie is a naturalist, explorer, author of a new book titled Junglekeeper, and is someone who has dedicated his life to protecting the Amazon rainforest.\nThank you for listening ❤ Check out our sponsors: https://lexfridman.com/sponsors/ep489-sb\nSee below for timestamps, transcript, and to give feedback, submit questions, contact Lex, etc.\n\nTranscript:\nhttps://lexfridman.com/paul-rosolie-3...\n\nCONTACT LEX:\nFeedback - give feedback to Lex: https://lexfridman.com/survey\nAMA - submit questions, videos or call-in: https://lexfridman.com/ama\nHiring - join our team: https://lexfridman.com/hiring\nOther - other ways to get in touch: https://lexfridman.com/contact\n\nEPISODE LINKS:\nJunglekeeper (new book): https://amzn.to/4q7vpAp\nPaul's Instagram:   / paulrosolie  \nJunglekeepers Website: https://junglekeepers.org\nPaul's Website: https://paulrosolie.com\nMother of God (book): https://amzn.to/3ww2ob1\n\nSPONSORS:\nTo support this podcast, check out our sponsors & get discounts:\nPerplexity: AI-powered answer engine.\nGo to https://lexfridman.com/s/perplexity-e...\nBetterHelp: Online therapy and counseling.\nGo to https://lexfridman.com/s/betterhelp-e...\nLMNT: Zero-sugar electrolyte drink mix.\nGo to https://lexfridman.com/s/lmnt-ep489-sb\nShopify: Sell stuff online.\nGo to https://lexfridman.com/s/shopify-ep48...\nFin: AI agent for customer service.\nGo to https://lexfridman.com/s/fin-ep489-sb\nMiro: Online collaborative whiteboard platform.\nGo to https://lexfridman.com/s/miro-ep489-sb\nMasterClass: Online classes from world-class experts.\nGo to https://lexfridman.com/s/masterclass-...\n\nOUTLINE:\n0:00 - Episode highlight\n1:08 - Introduction\n3:59 - Uncontacted tribes in the Amazon Jungle\n11:45 - Intense new encounter\n34:51 - Never-before-seen footage of tribe warriors\n48:07 - The mysteries of the jungle\n1:02:42 - Tribe's diet: Monkeys, turtles, and turtle eggs\n1:12:18 - Jane Goodall\n1:18:30 - Advice for young people\n1:27:44 - Cartel, Narco-traffickers & assassination attempts\n1:49:44 - Climbing the giant tree\n2:00:42 - Giant anaconda\n2:18:00 - Rescuing a spider monkey\n2:24:04 - Dangerous animal encounters\n2:34:12 - Writing, journaling, and great writer inspirations\n\nPODCAST LINKS:\nPodcast Website: https://lexfridman.com/podcast\nApple Podcasts: https://apple.co/2lwqZIr\nSpotify: https://spoti.fi/2nEwCF8\nRSS: https://lexfridman.com/feed/podcast/\nPodcast Playlist:    • Lex Fridman Podcast  \nClips Channel:    / lexclips  \n\nSOCIAL LINKS:\nX: https://x.com/lexfridman\nInstagram:   / lexfridman  \nTikTok:   / lexfridman  \nLinkedIn:   / lexfridman  \nFacebook:   / lexfridman  \nPatreon:   / lexfridman  \nTelegram: https://t.me/lexfridman\nReddit:   / lexfridman",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "14OPT6CcsH4",
        "title": "Infinity, Paradoxes, Gödel Incompleteness & the Mathematical Multiverse | Lex Fridman Podcast #488",
        "publishedAt": "4 months ago",
        "durationSeconds": 13938,
        "views": 482858,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Joel David Hamkins is a mathematician and philosopher specializing in set theory, the foundations of mathematics, and the nature of infinity, and he's the #1 highest-rated user on MathOverflow. He is also the author of several books, including Proof and the Art of Mathematics and Lectures on the Philosophy of Mathematics. And he has a great blog called Infinitely More.\nThank you for listening ❤ Check out our sponsors: https://lexfridman.com/sponsors/ep488-sb\nSee below for timestamps, transcript, and to give feedback, submit questions, contact Lex, etc.\n\nTranscript:\nhttps://lexfridman.com/joel-david-ham...\n\nCONTACT LEX:\nFeedback - give feedback to Lex: https://lexfridman.com/survey\nAMA - submit questions, videos or call-in: https://lexfridman.com/ama\nHiring - join our team: https://lexfridman.com/hiring\nOther - other ways to get in touch: https://lexfridman.com/contact\n\nEPISODE LINKS:\nJoel's X: https://x.com/JDHamkins\nJoel's Website: https://jdh.hamkins.org\nJoel's Substack: https://www.infinitelymore.xyz\nJoel's MathOverflow: https://mathoverflow.net/users/1946/j...\nJoel's Papers: https://jdh.hamkins.org/publications\nJoel's Books:\nLectures on the Philosophy of Mathematics: https://amzn.to/3MThaAt\nProof and the Art of Mathematics: https://amzn.to/3YACc9A\n\nSPONSORS:\nTo support this podcast, check out our sponsors & get discounts:\nPerplexity: AI-powered answer engine.\nGo to https://lexfridman.com/s/perplexity-e...\nFin: AI agent for customer service.\nGo to https://lexfridman.com/s/fin-ep488-sb\nMiro: Online collaborative whiteboard platform.\nGo to https://lexfridman.com/s/miro-ep488-sb\nCodeRabbit: AI-powered code reviews.\nGo to https://lexfridman.com/s/coderabbit-e...\nChevron: Reliable energy for data centers.\nGo to https://lexfridman.com/s/chevron-ep48...\nShopify: Sell stuff online.\nGo to https://lexfridman.com/s/shopify-ep48...\nLMNT: Zero-sugar electrolyte drink mix.\nGo to https://lexfridman.com/s/lmnt-ep488-sb\nMasterClass: Online classes from world-class experts.\nGo to https://lexfridman.com/s/masterclass-...\n\nOUTLINE:\n0:00 - Introduction\n2:17 - Infinity & paradoxes\n49:27 - Russell's paradox\n1:02:35 - Gödel's incompleteness theorems\n1:20:06 - Truth vs proof\n1:31:30 - The Halting Problem\n1:47:23 - Does infinity exist?\n2:04:57 - MathOverflow\n2:08:49 - The Continuum Hypothesis\n2:18:36 - Hardest problems in mathematics\n2:28:03 - Mathematical multiverse\n2:46:55 - Surreal numbers\n2:57:33 - Conway's Game of Life\n2:59:49 - Computability theory\n3:09:41 - P vs NP\n3:12:58 - Greatest mathematicians in history\n3:26:43 - Infinite chess\n3:45:01 - Most beautiful idea in mathematics\n\nPODCAST LINKS:\nPodcast Website: https://lexfridman.com/podcast\nApple Podcasts: https://apple.co/2lwqZIr\nSpotify: https://spoti.fi/2nEwCF8\nRSS: https://lexfridman.com/feed/podcast/\nPodcast Playlist:    • Lex Fridman Podcast  \nClips Channel:    / lexclips  \n\nSOCIAL LINKS:\nX: https://x.com/lexfridman\nInstagram:   / lexfridman  \nTikTok:   / lexfridman  \nLinkedIn:   / lexfridman  \nFacebook:   / lexfridman  \nPatreon:   / lexfridman  \nTelegram: https://t.me/lexfridman\nReddit:   / lexfridman",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_bBRVNkAfkQ",
        "title": "Deciphering Secrets of Ancient Civilizations, Noah's Ark, and Flood Myths | Lex Fridman Podcast #487",
        "publishedAt": "5 months ago",
        "durationSeconds": 7513,
        "views": 1562000,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Irving Finkel is a scholar of ancient languages and a longtime curator at the British Museum, renowned for his expertise in Mesopotamian history and cuneiform writing. He specializes in reading...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Qp0rCU49lMs",
        "title": "Michael Levin: Hidden Reality of Alien Intelligence & Biological Life | Lex Fridman Podcast #486",
        "publishedAt": "5 months ago",
        "durationSeconds": 11889,
        "views": 833221,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Michael Levin is a biologist at Tufts University working on novel ways to understand and control complex pattern formation in biological systems.\nThank you for listening ❤ Check out our sponsors:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "m_CFCyc2Shs",
        "title": "David Kirtley: Nuclear Fusion, Plasma Physics, and the Future of Energy | Lex Fridman Podcast #485",
        "publishedAt": "5 months ago",
        "durationSeconds": 9415,
        "views": 558443,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "David Kirtley is a nuclear fusion engineer and CEO of Helion Energy, a company working on building the world's first commercial fusion power plant by 2028.\nThank you for listening ❤ Check...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "o3gbXDjNWyI",
        "title": "Dan Houser: GTA, Red Dead Redemption, Rockstar, Absurd & Future of Gaming | Lex Fridman Podcast #484",
        "publishedAt": "6 months ago",
        "durationSeconds": 9926,
        "views": 1624201,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Dan Houser is co-founder of Rockstar Games and legendary creative mind behind Grand Theft Auto (GTA) and Red Dead Redemption series of video games.\nThank you for listening ❤ Check out our...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7OLVwZeMCfY",
        "title": "Julia Shaw: Criminal Psychology of Murder, Serial Killers, Memory & Sex | Lex Fridman Podcast #483",
        "publishedAt": "6 months ago",
        "durationSeconds": 9727,
        "views": 398800,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Julia Shaw is a criminal psychologist and author who in her books explores human nature, including psychopathy, violent crime, the psychology of evil, police interrogation, false memory manipulatio...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qjPH9njnaVU",
        "title": "Pavel Durov: Telegram, Freedom, Censorship, Money, Power & Human Nature | Lex Fridman Podcast #482",
        "publishedAt": "7 months ago",
        "durationSeconds": 16450,
        "views": 2856950,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Pavel Durov is the founder and CEO of Telegram.\nThank you for listening ❤ Check out our sponsors: https://lexfridman.com/sponsors/ep482-sb\nSee below for timestamps, transcript, and to give...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SvKv7D4pBjE",
        "title": "Norman Ohler: Hitler, Nazis, Drugs, WW2, Blitzkrieg, LSD, MKUltra & CIA | Lex Fridman Podcast #481",
        "publishedAt": "7 months ago",
        "durationSeconds": 15945,
        "views": 950175,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Norman Ohler is a historian and author of \"Blitzed: Drugs in the Third Reich,\" a book that investigates the role of psychoactive drugs, particularly stimulants such as methamphetamine, in the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-Qm1_On71Oo",
        "title": "Dave Hone: T-Rex, Dinosaurs, Extinction, Evolution, and Jurassic Park | Lex Fridman Podcast #480",
        "publishedAt": "8 months ago",
        "durationSeconds": 12986,
        "views": 884314,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Dave Hone is a paleontologist, expert on dinosaurs, co-host of the Terrible Lizards podcast, and author of numerous scientific papers and books on the behavior and ecology of dinosaurs. He...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "HsLgZzgpz9Y",
        "title": "Dave Plummer: Programming, Autism, and Old-School Microsoft Stories | Lex Fridman Podcast #479",
        "publishedAt": "8 months ago",
        "durationSeconds": 6629,
        "views": 260020,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Dave Plummer is a programmer, former Microsoft software engineer (Windows 95, NT, XP), creator of Task Manager, author of two books on autism, and host of the Dave's Garage YouTube channel,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jdCKiEJpwf4",
        "title": "Scott Horton: The Case Against War and the Military Industrial Complex | Lex Fridman Podcast #478",
        "publishedAt": "8 months ago",
        "durationSeconds": 37591,
        "views": 740580,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Scott Horton is the director of the Libertarian Institute, editorial director of Antiwar.com, host of The Scott Horton Show, co-host of Provoked, and for the past three decades a staunch critic...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "y3yAVZk3tyA",
        "title": "Keyu Jin: China's Economy, Tariffs, Trade, Trump, Communism & Capitalism | Lex Fridman Podcast #477",
        "publishedAt": "9 months ago",
        "durationSeconds": 6570,
        "views": 838036,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Keyu Jin is an economist specializing in China's economy, international macroeconomics, global trade imbalances, and financial policy. She is the author of The New China Playbook: Beyond Socialism...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "U1H1Ob7jk8Q",
        "title": "Jack Weatherford: Genghis Khan and the Mongol Empire | Lex Fridman Podcast #476",
        "publishedAt": "9 months ago",
        "durationSeconds": 16202,
        "views": 907592,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Jack Weatherford is an anthropologist and historian specializing in Genghis Khan and the Mongol Empire.\nThank you for listening ❤ Check out our sponsors: https://lexfridman.com/sponsors/ep476-sb...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-HzgcbRXUK8",
        "title": "Demis Hassabis: Future of AI, Simulating Reality, Physics and Video Games | Lex Fridman Podcast #475",
        "publishedAt": "9 months ago",
        "durationSeconds": 8895,
        "views": 1397326,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Demis Hassabis is the CEO of Google DeepMind and Nobel Prize winner for his groundbreaking work in protein structure prediction using AI.\nThank you for listening ❤ Check out our sponsors:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vagyIcmIGOQ",
        "title": "DHH: Future of Programming, AI, Ruby on Rails, Productivity & Parenting | Lex Fridman Podcast #474",
        "publishedAt": "10 months ago",
        "durationSeconds": 22128,
        "views": 1106859,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "David Heinemeier Hansson (aka DHH) is a legendary programmer, creator of Ruby on Rails, co-owner & CTO of 37signals that created Basecamp, HEY, & ONCE, and is a NYT-best-selling author (with...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gtmJi8LbAts",
        "title": "Iran War Debate: Nuclear Weapons, Trump, Peace, Power & the Middle East | Lex Fridman Podcast #473",
        "publishedAt": "10 months ago",
        "durationSeconds": 14716,
        "views": 642631,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Debate on Iran war between Scott Horton and Mark Dubowitz. Scott Horton is the author and director of the Libertarian Institute, editorial director of Antiwar.com, host of The Scott Horton...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "HUkBz-cdB-k",
        "title": "Terence Tao: Hardest Problems in Mathematics, Physics & the Future of AI | Lex Fridman Podcast #472",
        "publishedAt": "10 months ago",
        "durationSeconds": 11674,
        "views": 1839102,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Terence Tao is widely considered to be one of the greatest mathematicians in history. He won the Fields Medal and the Breakthrough Prize in Mathematics, and has contributed to a wide range...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9V6tWC4CdFQ",
        "title": "Sundar Pichai: CEO of Google and Alphabet | Lex Fridman Podcast #471",
        "publishedAt": "11 months ago",
        "durationSeconds": 7925,
        "views": 1134750,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Sundar Pichai is CEO of Google and Alphabet.\nThank you for listening ❤ Check out our sponsors: https://lexfridman.com/sponsors/ep471-sb\nSee below for timestamps, transcript, and to give feedback,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cp1lprZUQcE",
        "title": "James Holland: World War II, Hitler, Churchill, Stalin & Biggest Battles | Lex Fridman Podcast #470",
        "publishedAt": "11 months ago",
        "durationSeconds": 12276,
        "views": 1631788,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "James Holland is a historian specializing in World War II. He hosts a podcast called WW2 Pod: We Have Ways of Making You Talk.\nThank you for listening ❤ Check out our sponsors: https://lexfridman...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4OyB3hFb2AA",
        "title": "Oliver Anthony: Country Music, Blue-Collar America, Fame, Money, and Pain | Lex Fridman Podcast #469",
        "publishedAt": "11 months ago",
        "durationSeconds": 8349,
        "views": 193423,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Oliver Anthony is singer-songwriter who first gained worldwide fame with his viral hit Rich Men North of Richmond. He became a voice for many who are voiceless, with many of his songs speaking...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "A6m4iJIw_84",
        "title": "Janna Levin: Black Holes, Wormholes, Aliens, Paradoxes & Extra Dimensions | Lex Fridman Podcast #468",
        "publishedAt": "1 year ago",
        "durationSeconds": 10851,
        "views": 975585,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Janna Levin is a theoretical physicist and cosmologist specializing in black holes, cosmology of extra dimensions, topology of the universe, and gravitational waves.\nThank you for listening...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 3,
      "uploadsLast90d": 8,
      "uploadCadenceWeekly": 0.62,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 843499,
      "viewsPerVideoP90Last90d": 1121743,
      "viewVelocityTrend": "stable"
    },
    "performanceBaseline": {
      "p50Views": 843499,
      "p90Views": 1121743,
      "p99Views": 1121743,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "bit.ly",
        "amazon.com",
        "amzn.to"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "lexfridman.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "lex",
        "share": 1,
        "evidenceVideoIds": [
          "nepKKz-MzFM",
          "iKx3gAODybU",
          "vif8NQcjVf0",
          "H9rF1CSSh-w",
          "1SJiTwbSI58"
        ]
      },
      {
        "label": "fridman",
        "share": 1,
        "evidenceVideoIds": [
          "nepKKz-MzFM",
          "iKx3gAODybU",
          "vif8NQcjVf0",
          "H9rF1CSSh-w",
          "1SJiTwbSI58"
        ]
      },
      {
        "label": "podcast",
        "share": 1,
        "evidenceVideoIds": [
          "nepKKz-MzFM",
          "iKx3gAODybU",
          "vif8NQcjVf0",
          "H9rF1CSSh-w",
          "1SJiTwbSI58"
        ]
      },
      {
        "label": "listening",
        "share": 0.63,
        "evidenceVideoIds": [
          "nepKKz-MzFM",
          "iKx3gAODybU",
          "vif8NQcjVf0",
          "H9rF1CSSh-w",
          "1SJiTwbSI58"
        ]
      },
      {
        "label": "check",
        "share": 0.6,
        "evidenceVideoIds": [
          "nepKKz-MzFM",
          "iKx3gAODybU",
          "vif8NQcjVf0",
          "H9rF1CSSh-w",
          "1SJiTwbSI58"
        ]
      },
      {
        "label": "machine learning",
        "share": 0.03,
        "evidenceVideoIds": [
          "EV7WhVT270Q"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "strong views-per-subscriber ratio.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "strong",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 36,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.55
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Lex Fridman — 5.0M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 36,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.74,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "f9f62323fda017a740c0a57c23b48f102ec9ef6a6197e86b79699d035da96cc0",
      "inputsHash": "a0e319309923682b9aaf3581cd0a4b2c16f8e258a40fac0e21b288ebbdec4dfe",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-stable",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:24.452Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "b885dbb45450ad3d28513bb6b99a1ce175dfbc6b5a42b927b8803db50c38f432",
    "channelId": "UCZHmQk67mSJgfCCTn7xBfew",
    "channelHandle": "@YannicKilcher",
    "channelName": "Yannic Kilcher",
    "channelUrl": "https://www.youtube.com/@YannicKilcher",
    "description": "I make videos about machine learning research papers, programming, and issues of the AI community, and the broader impact of AI in society.\n\nTwitter: https://twitter.com/ykilcher\nDiscord: https://ykilcher.com/discord\nBitChute: https://www.bitchute.com/channel/yannic-kilcher\nLinkedIn: https://www.linkedin.com/in/ykilcher\nBiliBili: https://space.bilibili.com/2017636191\n\nIf you want to support me, the best thing to do is to share out the content :)\n\nIf you want to support me financially (completely optional and voluntary, but a lot of people have asked for this):\nSubscribeStar: https://www.subscribestar.com/yannickilcher\nPatreon: https://www.patreon.com/yannickilcher\nBitcoin (BTC): bc1q49lsw3q325tr58ygf8sudx2dqfguclvngvy2cq\nEthereum (ETH): 0x7ad3513E3B8f66799f507Aa7874b1B0eBC7F85e2\nLitecoin (LTC): LQW2TRyKYetVC8WjFkhpPhtpbDM4Vw7r9m\nMonero (XMR): 4ACL8AGrEo5hAir8A9CeVrW8pEauWvnp1WnSDZxW7tziCDLhZAGsgzhRQABDnFy8yuM9fWJDviJPHKRjV4FWt19CJZN9D4n",
    "joinDate": null,
    "location": null,
    "subscribers": 320000,
    "totalVideos": 485,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_nqmmpWC-iPIeVF4grbJGcGmoWyYX0E6_PFGITlKv7jTMrh=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "ykilcher.com",
        "url": "https://ykilcher.com"
      },
      {
        "platform": "ykilcher.com",
        "url": "https://ykilcher.com/merch"
      },
      {
        "platform": "ykilcher.com",
        "url": "https://ykilcher.com/discord"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/ykilcher"
      },
      {
        "platform": "bitchute.com",
        "url": "https://www.bitchute.com/channel/yannic-kilcher"
      },
      {
        "platform": "linkedin",
        "url": "https://www.linkedin.com/in/ykilcher"
      },
      {
        "platform": "space.bilibili.com",
        "url": "https://space.bilibili.com/2017636191"
      },
      {
        "platform": "subscribestar.com",
        "url": "https://www.subscribestar.com/yannickilcher"
      },
      {
        "platform": "patreon.com",
        "url": "https://www.patreon.com/yannickilcher"
      }
    ],
    "recentVideos": [
      {
        "videoId": "xHi8PUIVyoo",
        "title": "I BUILT A FULLY AUTOMATIC MANSPLAINER",
        "publishedAt": "2 months ago",
        "durationSeconds": 826,
        "views": 8935,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "All information about GTC and the DGX Spark Raffle is here: https://www.ykilcher.com/gtc\n\n\nLinks:\nHomepage: https://ykilcher.com\nMerch: https://ykilcher.com/merch\nYouTube:    / yannickilcher  \nTwitter:   / ykilcher  \nDiscord: https://ykilcher.com/discord\nLinkedIn:   / ykilcher  \n\nIf you want to support me, the best thing to do is to share out the content :)\n\nIf you want to support me financially (completely optional and voluntary, but a lot of people have asked for this):\nSubscribeStar: https://www.subscribestar.com/yannick...\nPatreon:   / yannickilcher  \nBitcoin (BTC): bc1q49lsw3q325tr58ygf8sudx2dqfguclvngvy2cq\nEthereum (ETH): 0x7ad3513E3B8f66799f507Aa7874b1B0eBC7F85e2\nLitecoin (LTC): LQW2TRyKYetVC8WjFkhpPhtpbDM4Vw7r9m\nMonero (XMR): 4ACL8AGrEo5hAir8A9CeVrW8pEauWvnp1WnSDZxW7tziCDLhZAGsgzhRQABDnFy8yuM9fWJDviJPHKRjV4FWt19CJZN9D4n",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "taCVT5vDAk0",
        "title": "TiDAR: Think in Diffusion, Talk in Autoregression (Paper Analysis)",
        "publishedAt": "4 months ago",
        "durationSeconds": 2822,
        "views": 20666,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Paper: https://arxiv.org/abs/2511.08923\n\nAbstract:\nDiffusion language models hold the promise of fast parallel generation, while autoregressive (AR) models typically excel in quality due to their causal structure aligning naturally with language modeling. This raises a fundamental question: can we achieve a synergy with high throughput, higher GPU utilization, and AR level quality? Existing methods fail to effectively balance these two aspects, either prioritizing AR using a weaker model for sequential drafting (speculative decoding), leading to lower drafting efficiency, or using some form of left-to-right (AR-like) decoding logic for diffusion, which still suffers from quality degradation and forfeits its potential parallelizability. We introduce TiDAR, a sequence-level hybrid architecture that drafts tokens (Thinking) in Diffusion and samples final outputs (Talking) AutoRegressively - all within a single forward pass using specially designed structured attention masks. This design exploits the free GPU compute density, achieving a strong balance between drafting and verification capacity. Moreover, TiDAR is designed to be serving-friendly (low overhead) as a standalone model. We extensively evaluate TiDAR against AR models, speculative decoding, and diffusion variants across generative and likelihood tasks at 1.5B and 8B scales. Thanks to the parallel drafting and sampling as well as exact KV cache support, TiDAR outperforms speculative decoding in measured throughput and surpasses diffusion models like Dream and Llada in both efficiency and quality. Most notably, TiDAR is the first architecture to close the quality gap with AR models while delivering 4.71x to 5.91x more tokens per second.\n\nAuthors: Jingyu Liu, Xin Dong, Zhifan Ye, Rishabh Mehta, Yonggan Fu, Vartika Singh, Jan Kautz, Ce Zhang, Pavlo Molchanov\n\nLinks:\nHomepage: https://ykilcher.com\nMerch: https://ykilcher.com/merch\nYouTube:    / yannickilcher  \nTwitter:   / ykilcher  \nDiscord: https://ykilcher.com/discord\nLinkedIn:   / ykilcher  \n\nIf you want to support me, the best thing to do is to share out the content :)\n\nIf you want to support me financially (completely optional and voluntary, but a lot of people have asked for this):\nSubscribeStar: https://www.subscribestar.com/yannick...\nPatreon:   / yannickilcher  \nBitcoin (BTC): bc1q49lsw3q325tr58ygf8sudx2dqfguclvngvy2cq\nEthereum (ETH): 0x7ad3513E3B8f66799f507Aa7874b1B0eBC7F85e2\nLitecoin (LTC): LQW2TRyKYetVC8WjFkhpPhtpbDM4Vw7r9m\nMonero (XMR): 4ACL8AGrEo5hAir8A9CeVrW8pEauWvnp1WnSDZxW7tziCDLhZAGsgzhRQABDnFy8yuM9fWJDviJPHKRjV4FWt19CJZN9D4n",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "v67plFw1nMw",
        "title": "Titans: Learning to Memorize at Test Time (Paper Analysis)",
        "publishedAt": "4 months ago",
        "durationSeconds": 1951,
        "views": 22974,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Paper: https://arxiv.org/abs/2501.00663\n\nAbstract:\nOver more than a decade there has been an extensive research effort on how to effectively utilize recurrent models and attention. While recurrent models aim to compress the data into a fixed-size memory (called hidden state), attention allows attending to the entire context window, capturing the direct dependencies of all tokens. This more accurate modeling of dependencies, however, comes with a quadratic cost, limiting the model to a fixed-length context. We present a new neural long-term memory module that learns to memorize historical context and helps attention to attend to the current context while utilizing long past information. We show that this neural memory has the advantage of fast parallelizable training while maintaining a fast inference. From a memory perspective, we argue that attention due to its limited context but accurate dependency modeling performs as a short-term memory, while neural memory due to its ability to memorize the data, acts as a long-term, more persistent, memory. Based on these two modules, we introduce a new family of architectures, called Titans, and present three variants to address how one can effectively incorporate memory into this architecture. Our experimental results on language modeling, common-sense reasoning, genomics, and time series tasks show that Titans are more effective than Transformers and recent modern linear recurrent models. They further can effectively scale to larger than 2M context window size with higher accuracy in needle-in-haystack tasks compared to baselines.\n\nAuthors: Ali Behrouz, Peilin Zhong, Vahab Mirrokni\n\nLinks:\nHomepage: https://ykilcher.com\nMerch: https://ykilcher.com/merch\nYouTube:    / yannickilcher  \nTwitter:   / ykilcher  \nDiscord: https://ykilcher.com/discord\nLinkedIn:   / ykilcher  \n\nIf you want to support me, the best thing to do is to share out the content :)\n\nIf you want to support me financially (completely optional and voluntary, but a lot of people have asked for this):\nSubscribeStar: https://www.subscribestar.com/yannick...\nPatreon:   / yannickilcher  \nBitcoin (BTC): bc1q49lsw3q325tr58ygf8sudx2dqfguclvngvy2cq\nEthereum (ETH): 0x7ad3513E3B8f66799f507Aa7874b1B0eBC7F85e2\nLitecoin (LTC): LQW2TRyKYetVC8WjFkhpPhtpbDM4Vw7r9m\nMonero (XMR): 4ACL8AGrEo5hAir8A9CeVrW8pEauWvnp1WnSDZxW7tziCDLhZAGsgzhRQABDnFy8yuM9fWJDviJPHKRjV4FWt19CJZN9D4n",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Nao16-6l6dQ",
        "title": "[Paper Analysis] The Free Transformer (and some Variational Autoencoder stuff)",
        "publishedAt": "6 months ago",
        "durationSeconds": 2410,
        "views": 22703,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://arxiv.org/abs/2510.17558\n\nAbstract:\nWe propose an extension of the decoder Transformer that conditions its generative process on random latent variables which are learned without supervision thanks to a variational procedure. Experimental evaluations show that allowing such a conditioning translates into substantial improvements on downstream tasks.\n\nAuthor: François Fleuret\n\nLinks:\nHomepage: https://ykilcher.com\nMerch: https://ykilcher.com/merch\nYouTube:    / yannickilcher  \nTwitter:   / ykilcher  \nDiscord: https://ykilcher.com/discord\nLinkedIn:   / ykilcher  \n\nIf you want to support me, the best thing to do is to share out the content :)\n\nIf you want to support me financially (completely optional and voluntary, but a lot of people have asked for this):\nSubscribeStar: https://www.subscribestar.com/yannick...\nPatreon:   / yannickilcher  \nBitcoin (BTC): bc1q49lsw3q325tr58ygf8sudx2dqfguclvngvy2cq\nEthereum (ETH): 0x7ad3513E3B8f66799f507Aa7874b1B0eBC7F85e2\nLitecoin (LTC): LQW2TRyKYetVC8WjFkhpPhtpbDM4Vw7r9m\nMonero (XMR): 4ACL8AGrEo5hAir8A9CeVrW8pEauWvnp1WnSDZxW7tziCDLhZAGsgzhRQABDnFy8yuM9fWJDviJPHKRjV4FWt19CJZN9D4n",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0bpYCxv2qhw",
        "title": "[Video Response] What Cloudflare's code mode misses about MCP and tool calling",
        "publishedAt": "6 months ago",
        "durationSeconds": 799,
        "views": 9264,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Theo's Video:    • MCP is the wrong abstraction  \nCloudflare article: https://blog.cloudflare.com/code-mode/\n\nLinks:\nHomepage: https://ykilcher.com\nMerch: https://ykilcher.com/merch\nYouTube:    / yannickilcher  \nTwitter:   / ykilcher  \nDiscord: https://ykilcher.com/discord\nLinkedIn:   / ykilcher  \n\nIf you want to support me, the best thing to do is to share out the content :)\n\nIf you want to support me financially (completely optional and voluntary, but a lot of people have asked for this):\nSubscribeStar: https://www.subscribestar.com/yannick...\nPatreon:   / yannickilcher  \nBitcoin (BTC): bc1q49lsw3q325tr58ygf8sudx2dqfguclvngvy2cq\nEthereum (ETH): 0x7ad3513E3B8f66799f507Aa7874b1B0eBC7F85e2\nLitecoin (LTC): LQW2TRyKYetVC8WjFkhpPhtpbDM4Vw7r9m\nMonero (XMR): 4ACL8AGrEo5hAir8A9CeVrW8pEauWvnp1WnSDZxW7tziCDLhZAGsgzhRQABDnFy8yuM9fWJDviJPHKRjV4FWt19CJZN9D4n",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zKohTkN0Fyk",
        "title": "[Paper Analysis] On the Theoretical Limitations of Embedding-Based Retrieval (Warning: Rant)",
        "publishedAt": "7 months ago",
        "durationSeconds": 2937,
        "views": 35702,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Paper: https://arxiv.org/abs/2508.21038\n\nAbstract:\nVector embeddings have been tasked with an ever-increasing set of retrieval tasks over the years, with a nascent rise in using them for reasoning, instruction-following, coding, and more. These new benchmarks push embeddings to work for any query and any notion of relevance that could be given. While prior works have pointed out theoretical limitations of vector embeddings, there is a common assumption that these difficulties are exclusively due to unrealistic queries, and those that are not can be overcome with better training data and larger models. In this work, we demonstrate that we may encounter these theoretical limitations in realistic settings with extremely simple queries. We connect known results in learning theory, showing that the number of top-k subsets of documents capable of being returned as the result of some query is limited by the dimension of the embedding. We empirically show that this holds true even if we restrict to k=2, and directly optimize on the test set with free parameterized embeddings. We then create a realistic dataset called LIMIT that stress tests models based on these theoretical results, and observe that even state-of-the-art models fail on this dataset despite the simple nature of the task. Our work shows the limits of embedding models under the existing single vector paradigm and calls for future research to develop methods that can resolve this fundamental limitation.\n\nAuthors: Orion Weller, Michael Boratko, Iftekhar Naim, Jinhyuk Lee\n\nLinks:\nHomepage: https://ykilcher.com\nMerch: https://ykilcher.com/merch\nYouTube:    / yannickilcher  \nTwitter:   / ykilcher  \nDiscord: https://ykilcher.com/discord\nLinkedIn:   / ykilcher  \n\nIf you want to support me, the best thing to do is to share out the content :)\n\nIf you want to support me financially (completely optional and voluntary, but a lot of people have asked for this):\nSubscribeStar: https://www.subscribestar.com/yannick...\nPatreon:   / yannickilcher  \nBitcoin (BTC): bc1q49lsw3q325tr58ygf8sudx2dqfguclvngvy2cq\nEthereum (ETH): 0x7ad3513E3B8f66799f507Aa7874b1B0eBC7F85e2\nLitecoin (LTC): LQW2TRyKYetVC8WjFkhpPhtpbDM4Vw7r9m\nMonero (XMR): 4ACL8AGrEo5hAir8A9CeVrW8pEauWvnp1WnSDZxW7tziCDLhZAGsgzhRQABDnFy8yuM9fWJDviJPHKRjV4FWt19CJZN9D4n",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hkAH7-u7t5k",
        "title": "AGI is not coming!",
        "publishedAt": "9 months ago",
        "durationSeconds": 429,
        "views": 158849,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "jack Morris's investigation into GPT-OSS training data\n\nhttps://x.com/jxmnop/status/1953899426075816164?t=3YRhVQDwQLk2gouTSACoqA&s=09",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hpC4qjWu_aY",
        "title": "Context Rot: How Increasing Input Tokens Impacts LLM Performance (Paper Analysis)",
        "publishedAt": "9 months ago",
        "durationSeconds": 2269,
        "views": 32701,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Paper: https://research.trychroma.com/contex...\n\nAbstract:\nLarge Language Models (LLMs) are typically presumed to process context uniformly—that is, the model should handle the 10,000th token just as reliably as the 100th. However, in practice, this assumption does not hold. We observe that model performance varies significantly as input length changes, even on simple tasks.\nIn this report, we evaluate 18 LLMs, including the state-of-the-art GPT-4.1, Claude 4, Gemini 2.5, and Qwen3 models. Our results reveal that models do not use their context uniformly; instead, their performance grows increasingly unreliable as input length grows.\n\nAuthors: Kelly Hong, Anton Troynikov, Jeff Huber\n\nLinks:\nHomepage: https://ykilcher.com\nMerch: https://ykilcher.com/merch\nYouTube:    / yannickilcher  \nTwitter:   / ykilcher  \nDiscord: https://ykilcher.com/discord\nLinkedIn:   / ykilcher  \n\nIf you want to support me, the best thing to do is to share out the content :)\n\nIf you want to support me financially (completely optional and voluntary, but a lot of people have asked for this):\nSubscribeStar: https://www.subscribestar.com/yannick...\nPatreon:   / yannickilcher  \nBitcoin (BTC): bc1q49lsw3q325tr58ygf8sudx2dqfguclvngvy2cq\nEthereum (ETH): 0x7ad3513E3B8f66799f507Aa7874b1B0eBC7F85e2\nLitecoin (LTC): LQW2TRyKYetVC8WjFkhpPhtpbDM4Vw7r9m\nMonero (XMR): 4ACL8AGrEo5hAir8A9CeVrW8pEauWvnp1WnSDZxW7tziCDLhZAGsgzhRQABDnFy8yuM9fWJDviJPHKRjV4FWt19CJZN9D4n",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RAEy3JZmIaA",
        "title": "Energy-Based Transformers are Scalable Learners and Thinkers (Paper Review)",
        "publishedAt": "9 months ago",
        "durationSeconds": 2871,
        "views": 31341,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Paper: https://arxiv.org/abs/2507.02092\nCode: https://github.com/alexiglad/EBT\nWebsite: https://energy-based-transformers.git...\n\nAbstract:\nInference-time computation techniques, analogous to human System 2 Thinking, have recently become popular for improving model performances. However, most existing approaches suffer from several limitations: they are modality-specific (e.g., working only in text), problem-specific (e.g., verifiable domains like math and coding), or require additional supervision/training on top of unsupervised pretraining (e.g., verifiers or verifiable rewards). In this paper, we ask the question \"Is it possible to generalize these System 2 Thinking approaches, and develop models that learn to think solely from unsupervised learning?\" Interestingly, we find the answer is yes, by learning to explicitly verify the compatibility between inputs and candidate-predictions, and then re-framing prediction problems as optimization with respect to this verifier. Specifically, we train Energy-Based Transformers (EBTs) -- a new class of Energy-Based Models (EBMs) -- to assign an energy value to every input and candidate-prediction pair, enabling predictions through gradient descent-based energy minimization until convergence. Across both discrete (text) and continuous (visual) modalities, we find EBTs scale faster than the dominant Transformer++ approach during training, achieving an up to 35% higher scaling rate with respect to data, batch size, parameters, FLOPs, and depth. During inference, EBTs improve performance with System 2 Thinking by 29% more than the Transformer++ on language tasks, and EBTs outperform Diffusion Transformers on image denoising while using fewer forward passes. Further, we find that EBTs achieve better results than existing models on most downstream tasks given the same or worse pretraining performance, suggesting that EBTs generalize better than existing approaches. Consequently, EBTs are a promising new paradigm for scaling both the learning and thinking capabilities of models.\n\nAuthors: Alexi Gladstone, Ganesh Nanduru, Md Mofijul Islam, Peixuan Han, Hyeonjeong Ha, Aman Chadha, Yilun Du, Heng Ji, Jundong Li, Tariq Iqbal\n\nLinks:\nHomepage: https://ykilcher.com\nMerch: https://ykilcher.com/merch\nYouTube:    / yannickilcher  \nTwitter:   / ykilcher  \nDiscord: https://ykilcher.com/discord\nLinkedIn:   / ykilcher  \n\nIf you want to support me, the best thing to do is to share out the content :)\n\nIf you want to support me financially (completely optional and voluntary, but a lot of people have asked for this):\nSubscribeStar: https://www.subscribestar.com/yannick...\nPatreon:   / yannickilcher  \nBitcoin (BTC): bc1q49lsw3q325tr58ygf8sudx2dqfguclvngvy2cq\nEthereum (ETH): 0x7ad3513E3B8f66799f507Aa7874b1B0eBC7F85e2\nLitecoin (LTC): LQW2TRyKYetVC8WjFkhpPhtpbDM4Vw7r9m\nMonero (XMR): 4ACL8AGrEo5hAir8A9CeVrW8pEauWvnp1WnSDZxW7tziCDLhZAGsgzhRQABDnFy8yuM9fWJDviJPHKRjV4FWt19CJZN9D4n",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "V71AJoYAtBQ",
        "title": "On the Biology of a Large Language Model (Part 2)",
        "publishedAt": "1 year ago",
        "durationSeconds": 3386,
        "views": 17315,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "An in-depth look at Anthropic's Transformer Circuit Blog Post\nPart 1 here:    • On the Biology of a Large Language Model (...  \nDiscord here: https;//ykilcher.com/discord\n\nhttps://transformer-circuits.pub/2025...\n\nAbstract:\nWe investigate the internal mechanisms used by Claude 3.5 Haiku — Anthropic's lightweight production model — in a variety of contexts, using our circuit tracing methodology.\n\nAuthors:\nJack Lindsey†, Wes Gurnee*, Emmanuel Ameisen*, Brian Chen*, Adam Pearce*, Nicholas L. Turner*, Craig Citro*,\nDavid Abrahams, Shan Carter, Basil Hosmer, Jonathan Marcus, Michael Sklar, Adly Templeton,\nTrenton Bricken, Callum McDougall◊, Hoagy Cunningham, Thomas Henighan, Adam Jermyn, Andy Jones, Andrew Persic, Zhenyi Qi, T. Ben Thompson,\nSam Zimmerman, Kelley Rivoire, Thomas Conerly, Chris Olah, Joshua Batson*‡\n\nLinks:\nHomepage: https://ykilcher.com\nMerch: https://ykilcher.com/merch\nYouTube:    / yannickilcher  \nTwitter:   / ykilcher  \nDiscord: https://ykilcher.com/discord\nLinkedIn:   / ykilcher  \n\nIf you want to support me, the best thing to do is to share out the content :)\n\nIf you want to support me financially (completely optional and voluntary, but a lot of people have asked for this):\nSubscribeStar: https://www.subscribestar.com/yannick...\nPatreon:   / yannickilcher  \nBitcoin (BTC): bc1q49lsw3q325tr58ygf8sudx2dqfguclvngvy2cq\nEthereum (ETH): 0x7ad3513E3B8f66799f507Aa7874b1B0eBC7F85e2\nLitecoin (LTC): LQW2TRyKYetVC8WjFkhpPhtpbDM4Vw7r9m\nMonero (XMR): 4ACL8AGrEo5hAir8A9CeVrW8pEauWvnp1WnSDZxW7tziCDLhZAGsgzhRQABDnFy8yuM9fWJDviJPHKRjV4FWt19CJZN9D4n",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mU3g2YPKlsA",
        "title": "On the Biology of a Large Language Model (Part 1)",
        "publishedAt": "1 year ago",
        "durationSeconds": 3245,
        "views": 57407,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "An in-depth look at Anthropic's Transformer Circuit Blog Post\n\nhttps://transformer-circuits.pub/2025/attribution-graphs/biology.html\n\nAbstract:\nWe investigate the internal mechanisms used by...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bAWV_yrqx4w",
        "title": "[GRPO Explained] DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models",
        "publishedAt": "1 year ago",
        "durationSeconds": 4140,
        "views": 170386,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#deepseek #llm #grpo\n\nGRPO is one of the core advancements used in Deepseek-R1, but was introduced already last year in this paper that uses a combination of new RL techniques and iterative...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "loaTGpqfctI",
        "title": "Byte Latent Transformer: Patches Scale Better Than Tokens (Paper Explained)",
        "publishedAt": "1 year ago",
        "durationSeconds": 2175,
        "views": 47573,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#tokenization #llm #meta\n\nThis paper does away with tokenization and creates an LLM architecture that operates on dynamically sized \"patches\" instead of tokens. By controlling the patch size,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-r0XPC7TLzY",
        "title": "Safety Alignment Should be Made More Than Just a Few Tokens Deep (Paper Explained)",
        "publishedAt": "1 year ago",
        "durationSeconds": 2933,
        "views": 13389,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This paper demonstrates in a series of experiments that current safety alignment techniques of LLMs, as well as corresponding jailbreaking attacks, are in large part focusing on modulating...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gfU5y7qCxF0",
        "title": "TokenFormer: Rethinking Transformer Scaling with Tokenized Model Parameters (Paper Explained)",
        "publishedAt": "1 year ago",
        "durationSeconds": 1703,
        "views": 19668,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A deep dive into the TokenFormer and an opinion about its impact, novelty, and relation to prior work.\n\nPaper: https://arxiv.org/abs/2410.23168\n\nAbstract:\nTransformers have become the predominant...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Bs6eyNQjGpo",
        "title": "GSM-Symbolic: Understanding the Limitations of Mathematical Reasoning in Large Language Models",
        "publishedAt": "1 year ago",
        "durationSeconds": 2226,
        "views": 21034,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This paper (by Apple) questions the mathematical reasoning abilities of current LLMs and designs a synthetic template-based dataset distribution to investigate various aspects around LLM performanc...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jE9jAZC42NE",
        "title": "Were RNNs All We Needed? (Paper Explained)",
        "publishedAt": "1 year ago",
        "durationSeconds": 1668,
        "views": 60007,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This paper posits the interesting question: How much of the performance of Mamba, S4, and other state-space-like models is actually just attributable to some very core concepts - rather than...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AfAmwIP2ntY",
        "title": "Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters (Paper)",
        "publishedAt": "1 year ago",
        "durationSeconds": 3182,
        "views": 30966,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How can one best use extra FLOPS at test time?\n\nPaper: https://arxiv.org/abs/2408.03314\n\nAbstract:\nEnabling LLMs to improve their outputs by using more test-time computation is a critical step...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WwbukAcMM4k",
        "title": "Privacy Backdoors: Stealing Data with Corrupted Pretrained Models (Paper Explained)",
        "publishedAt": "1 year ago",
        "durationSeconds": 3836,
        "views": 18827,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#llm #privacy #finetuning \n\nCan you tamper with a base model in such a way that it will exactly remember its fine-tuning data? This paper presents a method of doing exactly that, and implements...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "B45FlSQ8ITo",
        "title": "Scalable MatMul-free Language Modeling (Paper Explained)",
        "publishedAt": "1 year ago",
        "durationSeconds": 2985,
        "views": 35183,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Matrix multiplications (MatMuls) are pervasive throughout modern machine learning architectures. However, they are also very resource intensive and require special accelerators (GPUs). This...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "no7EQkOiHQM",
        "title": "Hallucination-Free? Assessing the Reliability of Leading AI Legal Research Tools (Paper Explained)",
        "publishedAt": "1 year ago",
        "durationSeconds": 4318,
        "views": 42034,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#rag #hallucinations #legaltech \n\nAn in-depth look at a recent Stanford paper examining the degree of hallucinations in various LegalTech tools that incorporate LLMs.\n\nOUTLINE:\n0:00 - Intro...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0OaEv1a5jUM",
        "title": "xLSTM: Extended Long Short-Term Memory",
        "publishedAt": "1 year ago",
        "durationSeconds": 3420,
        "views": 45238,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "xLSTM is an architecture that combines the recurrency and constant memory requirement of LSTMs with the large-scale training of transformers and achieves impressive results.\n\nPaper: https://arxiv.o...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5bPBbQyLI7E",
        "title": "[ML News] OpenAI is in hot waters (GPT-4o, Ilya Leaving, Scarlett Johansson legal action)",
        "publishedAt": "1 year ago",
        "durationSeconds": 1762,
        "views": 33579,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "#gpt4o #sky #scarlettjohansson \n\nAfter the release of their flagship model GPT-4o, OpenAI finds itself in multiple controversies and an exodus of senior personnel - notably Ilya Sutskever\n...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "52kMBrAI_IM",
        "title": "ORPO: Monolithic Preference Optimization without Reference Model (Paper Explained)",
        "publishedAt": "2 years ago",
        "durationSeconds": 2006,
        "views": 25794,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Paper: https://arxiv.org/abs/2403.07691\n\nAbstract:\nWhile recent preference alignment algorithms for language models have demonstrated promising results, supervised fine-tuning (SFT) remains...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tRavLU8Ih4A",
        "title": "[ML News] Chips, Robots, and Models",
        "publishedAt": "2 years ago",
        "durationSeconds": 2354,
        "views": 29369,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "OUTLINE:\n0:00 - Intro\n0:19 - Our next-generation Meta Training and Inference Accelerator\n01:39 - ALOHA Unleashed\n03:10 - Apple Inks $50M Deal with Shutterstock for AI Training Data\n04:28 -...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3a0_hAiFKag",
        "title": "TransformerFAM: Feedback attention is working memory",
        "publishedAt": "2 years ago",
        "durationSeconds": 2221,
        "views": 39733,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Paper: https://arxiv.org/abs/2404.09173\n\nAbstract:\nWhile Transformers have revolutionized deep learning, their quadratic attention complexity hinders their ability to process infinitely long...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GtveKYXYo_0",
        "title": "[ML News] Devin exposed | NeurIPS track for high school students",
        "publishedAt": "2 years ago",
        "durationSeconds": 1067,
        "views": 41124,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "OUTLINE:\n0:00 - Intro\n0:21 - Debunking Devin: \"First AI Software Engineer\" Upwork lie exposed!\n07:24 - NeurIPS 2024 will have a track for papers from high schoolers.\n13:29 - Opus can operate...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "r_UBBfTPcF0",
        "title": "Leave No Context Behind: Efficient Infinite Context Transformers with Infini-attention",
        "publishedAt": "2 years ago",
        "durationSeconds": 2237,
        "views": 60096,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Google researchers achieve supposedly infinite context attention via compressive memory.\n\nPaper: https://arxiv.org/abs/2404.07143\n\nAbstract:\nThis work introduces an efficient method to scale...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kzB23CoZG30",
        "title": "[ML News] Llama 3 changes the game",
        "publishedAt": "2 years ago",
        "durationSeconds": 1879,
        "views": 47897,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Meta's Llama 3 is out. New model, new license, new opportunities.\n\nReferences:\nhttps://llama.meta.com/llama3/\nhttps://ai.meta.com/blog/meta-llama-3/\nhttps://github.com/meta-llama/llama3/blob/main/M...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZcoOW8nqVP8",
        "title": "Hugging Face got hacked",
        "publishedAt": "2 years ago",
        "durationSeconds": 1081,
        "views": 31645,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Links:\nHomepage: https://ykilcher.com\nMerch: https://ykilcher.com/merch\nYouTube: https://www.youtube.com/c/yannickilcher\nTwitter: https://twitter.com/ykilcher\nDiscord: https://ykilcher.com/discord...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 1,
      "uploadCadenceWeekly": 0.08,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 8935,
      "viewsPerVideoP90Last90d": 8935,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": 8935,
      "p90Views": 8935,
      "p99Views": 8935,
      "outperformingVideosLast90d": 1
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "ykilcher.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "paper",
        "share": 0.67,
        "evidenceVideoIds": [
          "taCVT5vDAk0",
          "v67plFw1nMw",
          "Nao16-6l6dQ",
          "zKohTkN0Fyk",
          "hpC4qjWu_aY"
        ]
      },
      {
        "label": "https",
        "share": 0.63,
        "evidenceVideoIds": [
          "xHi8PUIVyoo",
          "taCVT5vDAk0",
          "v67plFw1nMw",
          "Nao16-6l6dQ",
          "0bpYCxv2qhw"
        ]
      },
      {
        "label": "abstract",
        "share": 0.43,
        "evidenceVideoIds": [
          "taCVT5vDAk0",
          "v67plFw1nMw",
          "Nao16-6l6dQ",
          "zKohTkN0Fyk",
          "hpC4qjWu_aY"
        ]
      },
      {
        "label": "com",
        "share": 0.4,
        "evidenceVideoIds": [
          "xHi8PUIVyoo",
          "taCVT5vDAk0",
          "v67plFw1nMw",
          "Nao16-6l6dQ",
          "0bpYCxv2qhw"
        ]
      },
      {
        "label": "model",
        "share": 0.4,
        "evidenceVideoIds": [
          "taCVT5vDAk0",
          "v67plFw1nMw",
          "hpC4qjWu_aY",
          "RAEy3JZmIaA",
          "V71AJoYAtBQ"
        ]
      },
      {
        "label": "machine learning",
        "share": 0.03,
        "evidenceVideoIds": [
          "B45FlSQ8ITo"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 32,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Yannic Kilcher — 0.3M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 32,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.78,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "b885dbb45450ad3d28513bb6b99a1ce175dfbc6b5a42b927b8803db50c38f432",
      "inputsHash": "5d77fc193549d094c5909689b8b6b7aad9eb8fe35420e12351e278ab88395ede",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:24.828Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "63e2417a1eb4f7341d6191786519a5e7d18545171c135a17bf2200773da30ef7",
    "channelId": "UCnVzApLJE2ljPZSeQylSEyg",
    "channelHandle": "@dataschool",
    "channelName": "Data School",
    "channelUrl": "https://www.youtube.com/@dataschool",
    "description": "Are you trying to learn data science so that you can get your first data science job? You're probably confused about what you're \"supposed\" to learn, and then you have the hardest time actually finding lessons you can understand!\n\nData School focuses you on the topics you need to master first, and offers in-depth tutorials that you can understand regardless of your educational background.\n\nMy name is Kevin Markham, and I'm the founder of Data School. I've taught data science using the Python programming language to hundreds of students in the classroom, and hundreds of thousands of students (like you) online.\n\nFinding the right teacher was so important to my data science education, and so I sincerely hope that I can be the right data science teacher for you.\n\nPlease click the SUBSCRIBE button to be notified of my new data science tutorials! I look forward to interacting with you in the comments :)",
    "joinDate": null,
    "location": null,
    "subscribers": 261000,
    "totalVideos": 157,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/6BOjfaL4qiGVpFWDqlYDKp84xAipXDaXOKYIdSd0-O9f9sEL9hhowqVAbbUah-0z52EomTqw=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "tuesday.tips",
        "url": "https://tuesday.tips/"
      },
      {
        "platform": "twitter",
        "url": "https://x.com/justmarkham"
      },
      {
        "platform": "facebook",
        "url": "https://www.facebook.com/DataScienceSchool/"
      },
      {
        "platform": "linkedin",
        "url": "https://linkedin.com/in/justmarkham"
      },
      {
        "platform": "courses.dataschool.io",
        "url": "https://courses.dataschool.io"
      },
      {
        "platform": "github",
        "url": "https://github.com/justmarkham"
      }
    ],
    "recentVideos": [
      {
        "videoId": "wvvTog-FXOk",
        "title": "How to use top AI models on a budget",
        "publishedAt": "6 months ago",
        "durationSeconds": 465,
        "views": 3378,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want to chat with the best AI models from OpenAI, Claude, and Google without paying $20/month? I'll show you how to use API keys with TypingMind to access top models for a fraction of the cost, demonstrate its killer feature of chatting with multiple models side-by-side, and explain when paying for a subscription is actually the smarter choice.\n\nGet API keys from...\nOpenAI: https://platform.openai.com/api-keys\nClaude: https://console.anthropic.com/setting...\nGoogle: https://aistudio.google.com/app/apikey\n\nTypingMind: https://www.typingmind.com/\n\nMy new Machine Learning book: https://dataschool.kit.com/mlbook\n\nTimestamps:\n0:00 Introduction\n0:37 Pay-per-token\n1:18 Setup part 1: API keys\n2:14 Setup part 2: TypingMind\n3:02 Cost examples\n4:05 Chatting with multiple models\n5:36 Disadvantages of pay-per-token\n6:31 TypingMind Premium\n7:24 My Machine Learning book",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5xAgKRFvFg0",
        "title": "Top AI news: ChatGPT undeletes your chats, Copilot security flaw, Veo 3 TV ad",
        "publishedAt": "11 months ago",
        "durationSeconds": 159,
        "views": 2084,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This week in AI: Veo 3 makes a TV ad, ChatGPT saves your deleted chats, Midjourney gets sued, Google talks AGI, and Copilot patches a huge security flaw.\n\nSources:\nKalshi ad:    • Disney approved our insane AI Kalshi ad to...  \nKalshi ad creator's post: https://x.com/PJaccetturo/status/1932...\nOpenAI's response to court order: https://openai.com/index/response-to-...\nSam Altman's post: https://x.com/sama/status/19307850561...\nWired story on Disney lawsuit: https://www.wired.com/story/disney-un...\nDisney lawsuit PDF: https://www.documentcloud.org/documen...\nSundar Pichai interview:    • Sundar Pichai: CEO of Google and Alphabet ...  \nAim's post on Copilot security: https://www.aim.security/lp/aim-labs-...\n\n0:00 AI-generated TV ad airs during NBA finals\n0:33 Court orders OpenAI to retain user chats\n1:07 Disney & Universal sue Midjourney\n1:38 Google CEO: AGI by 2030?\n2:06 Security vulnerability in Microsoft 365 Copilot",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JF8WjK70AEQ",
        "title": "What is Retrieval Augmented Generation (RAG)?",
        "publishedAt": "11 months ago",
        "durationSeconds": 179,
        "views": 1346,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This is a lesson from my new course, Build AI agents with Python: https://courses.dataschool.io/build-a...\n0:00 RAG definition\n0:14 Problem that RAG solves\n0:49 RAG part 1: Indexing\n1:43 RAG part 2: Retrieval and generation\n2:38 How RAG prevents hallucinations\n\nFurther reading: https://python.langchain.com/docs/tut...\n\nThumbnail image credit: LangChain",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TDlGKocbHoc",
        "title": "Jupyter & IPython terminology explained",
        "publishedAt": "1 year ago",
        "durationSeconds": 299,
        "views": 2719,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Are you trying to understand the differences between Jupyter Notebook, JupyterLab, IPython, Colab, and other related terms? You're in the right place!\n\nThis video is also available as a blog post: https://www.dataschool.io/jupyter-and...\n\nLinks from the video:\nIPython: https://ipython.readthedocs.io/en/sta...\nJupyter Notebook: https://jupyter-notebook.readthedocs....\nJupyterLab: https://jupyterlab.readthedocs.io/en/...\nJupyter kernels: https://github.com/jupyter/jupyter/wi...\nJupyterLab Desktop: https://github.com/jupyterlab/jupyter...\nJupyterLite: https://github.com/jupyterlite/jupyte...\nGoogle Colab: https://colab.research.google.com/\nKaggle Code: https://www.kaggle.com/code\nDeepnote: https://deepnote.com/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rOKXLCCyWn8",
        "title": "How to keep up with AI in 2025",
        "publishedAt": "1 year ago",
        "durationSeconds": 177,
        "views": 2688,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "AI is moving incredibly FAST. I'll show you the 7 best sources I follow to keep up with the most important developments in AI.\n\nThis video is also available as a blog post: https://www.dataschool.io/best-ai-new...\n\nLinks from the video:\n2024 AI timeline: https://huggingface.co/spaces/reach-v...\nThe Neuron: https://sparklp.co/p/8d06bb74cf (affiliate link)\nThe Batch: https://www.deeplearning.ai/the-batch/\nSimon Willison's blog: https://simonwillison.net/\nThings we learned about LLMs in 2024: https://simonwillison.net/2024/Dec/31...\nOne Useful Thing: https://www.oneusefulthing.org/\nAhead of AI: https://magazine.sebastianraschka.com/\nNoteworthy AI Research Papers of 2024 (Part One): https://magazine.sebastianraschka.com...\nNoteworthy AI Research Papers of 2024 (Part Two): https://magazine.sebastianraschka.com...\nUnderstanding AI: https://www.understandingai.org/\nLLMs explained with a minimum of math and jargon: https://www.understandingai.org/p/lar...\nAm I Stronger Yet?: https://amistrongeryet.substack.com/\nAre We on the Brink of AGI?: https://amistrongeryet.substack.com/p...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GnN3Lqh3wOU",
        "title": "Build an AI chatbot with Python",
        "publishedAt": "1 year ago",
        "durationSeconds": 340,
        "views": 1992,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Watch the first two lessons of my new course, Build an AI chatbot with Python ($9): https://courses.dataschool.io/build-a...\n\nIn this video, you'll learn:\nWhat is a Large Language Model (LLM)?\nHow are LangChain and LangGraph used to build AI apps?\nWhat are my recommendations for free and cheap LLMs?\n\nResources:\nLangChain: https://python.langchain.com/docs/int...\nLangGraph: https://langchain-ai.github.io/langgr...\nOpenAI API pricing: https://openai.com/api/pricing/\nOpenAI tokenizer: https://platform.openai.com/tokenizer\nFree LLM API resources: https://github.com/cheahjs/free-llm-a...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mN51Tp02RNk",
        "title": "Course outline: \"Master Machine Learning with scikit-learn\"",
        "publishedAt": "1 year ago",
        "durationSeconds": 288,
        "views": 4012,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This is the outline of my NEW course, \"Master Machine Learning with scikit-learn.\" You can enroll here: https://courses.dataschool.io/master-...\n\nFor all paid courses, I offer location-based discounts (up to 75%) to people in 160+ countries. Check your discount here: https://courses.dataschool.io/discounts\n\nEnroll in a FREE Data Science course here: https://courses.dataschool.io/free-co...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZYJ7OjNobmA",
        "title": "Course overview: \"Master Machine Learning with scikit-learn\"",
        "publishedAt": "1 year ago",
        "durationSeconds": 114,
        "views": 1647,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This is the overview of my NEW course, \"Master Machine Learning with scikit-learn.\" You can enroll here: https://courses.dataschool.io/master-...\n\nFor all paid courses, I offer location-based discounts (up to 75%) to people in 160+ countries. Check your discount here: https://courses.dataschool.io/discounts\n\nEnroll in a FREE Data Science course here: https://courses.dataschool.io/free-co...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AZzk8fQVHSU",
        "title": "Introduction to model ensembling",
        "publishedAt": "1 year ago",
        "durationSeconds": 100,
        "views": 1121,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn the how & why of \"ensembling\", the surprisingly simple way to make better Machine Learning predictions!\n\nP.S. This is a lesson from my NEW course, \"Master Machine Learning with scikit-learn.\" You can enroll here: https://courses.dataschool.io/master-...\n\nFor all paid courses, I offer location-based discounts (up to 75%) to people in 160+ countries. Check your discount here: https://courses.dataschool.io/discounts\n\nEnroll in a FREE Data Science course here: https://courses.dataschool.io/free-co...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "47jp10PxzIg",
        "title": "How to save a scikit-learn Pipeline with custom transformers",
        "publishedAt": "1 year ago",
        "durationSeconds": 140,
        "views": 2075,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If you need to save a Pipeline with custom transformers, you’ll have to define the functions it depends upon in the new environment. In this lesson, you’ll learn how avoid that burden by using the cloudpickle library.\n\nP.S. This is a lesson from my NEW course, \"Master Machine Learning with scikit-learn.\" You can enroll here: https://courses.dataschool.io/master-...\n\nFor all paid courses, I offer location-based discounts (up to 75%) to people in 160+ countries. Check your discount here: https://courses.dataschool.io/discounts\n\nEnroll in a FREE Data Science course here: https://courses.dataschool.io/free-co...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "E5zOAtlrQqE",
        "title": "Should I shuffle samples with cross-validation?",
        "publishedAt": "1 year ago",
        "durationSeconds": 232,
        "views": 1501,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "By default, the cross_val_score function in scikit-learn does not shuffle samples. In this lesson, you’ll learn when you might need to shuffle and how to do it.\n\nP.S. This is a lesson from...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "n21_An7Usyc",
        "title": "Cost-sensitive learning in scikit-learn",
        "publishedAt": "1 year ago",
        "durationSeconds": 256,
        "views": 2063,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If your dataset has significant class imbalance, the \"cost\" may differ between the two types of prediction errors. In this lesson, you’ll learn how to use cost-sensitive learning to adjust...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MtQqYtn-ox0",
        "title": "scikit-learn vs Deep Learning",
        "publishedAt": "1 year ago",
        "durationSeconds": 110,
        "views": 2364,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In an age of Deep Learning, I think scikit-learn is still well worth mastering. In this lesson, you'll find out why!\n\nP.S. This is a lesson from my NEW course, \"Master Machine Learning with...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vUSFLs8w_dg",
        "title": "How to read the scikit-learn documentation",
        "publishedAt": "2 years ago",
        "durationSeconds": 451,
        "views": 7986,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In order to become truly proficient with scikit-learn, you need to be able to read the documentation. In this video, I'll walk you through the five main pages and page types that you need to...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WkqM0ndr42c",
        "title": "My top 50 scikit-learn tips",
        "publishedAt": "3 years ago",
        "durationSeconds": 10051,
        "views": 15246,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If you already know the basics of scikit-learn, but you want to be more efficient and get up-to-date with the latest features, then THIS is the video for you.\n\nMy name is Kevin Markham, and...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tWFQqaRtSQA",
        "title": "21 more pandas tricks",
        "publishedAt": "4 years ago",
        "durationSeconds": 1480,
        "views": 50715,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "You're about to learn 21 tricks that will help you to work faster, write better pandas code, and impress your friends. These are the BEST tricks that I couldn't fit into my FIRST tricks video!...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gd-TZut-oto",
        "title": "Adapt this pattern to solve many Machine Learning problems",
        "publishedAt": "4 years ago",
        "durationSeconds": 469,
        "views": 12890,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Here's a simple pattern that can be adapted to solve many ML problems. It has plenty of shortcomings, but can work surprisingly well as-is!\n\nShortcomings include:\n- Assumes all columns have...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "v2QpvCJ1ar8",
        "title": "Tune multiple models simultaneously with GridSearchCV",
        "publishedAt": "4 years ago",
        "durationSeconds": 307,
        "views": 7909,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "You can tune 2+ models using the same grid search! Here's how:\n1. Create multiple parameter dictionaries\n2. Specify the model within each dictionary\n3. Put the dictionaries in a list\n\n👉...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sMlsd2CnIf4",
        "title": "Access part of a Pipeline using slicing",
        "publishedAt": "4 years ago",
        "durationSeconds": 218,
        "views": 2819,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want to operate on part of a Pipeline (instead of the whole thing)? Slice it using Python's slicing notation!\n\n👉 New tips every TUESDAY and THURSDAY! 👈\n\n🎥 Watch all tips: https://www.youtu...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fvY3InlnOh8",
        "title": "Tune the parameters of a VotingClassifer or VotingRegressor",
        "publishedAt": "4 years ago",
        "durationSeconds": 247,
        "views": 5300,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want to improve the accuracy of your VotingClassifier? Try tuning the 'voting' and 'weights' parameters to change how predictions are combined!\n\nP.S. If you're using VotingRegressor, just tune...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2lq2k6J3GW4",
        "title": "Ensemble multiple models using VotingClassifer or VotingRegressor",
        "publishedAt": "4 years ago",
        "durationSeconds": 272,
        "views": 11554,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want to improve your classifier's accuracy? Create multiple models and ensemble them using VotingClassifier!\n\nP.S. VotingRegressor is also available\n\n👉 New tips every TUESDAY and THURSDAY!...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "unP3rCfzROk",
        "title": "Create feature interactions using PolynomialFeatures",
        "publishedAt": "4 years ago",
        "durationSeconds": 248,
        "views": 8027,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want to include \"feature interactions\" in your model? Use PolynomialFeatures!\n\nP.S. This is impractical if you have lots of features, and unnecessary if you're using a tree-based model.\n\n👉...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QqFGKVieywY",
        "title": "Speed up GridSearchCV using parallel processing",
        "publishedAt": "4 years ago",
        "durationSeconds": 136,
        "views": 5372,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want your grid search to run faster? Set n_jobs=-1 to use parallel processing with all CPUs!\n\n👉 New tips every TUESDAY and THURSDAY! 👈\n\n🎥 Watch all tips: https://www.youtube.com/playlist?l...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "n_x40CdPZss",
        "title": "Use OrdinalEncoder instead of OneHotEncoder with tree-based models",
        "publishedAt": "4 years ago",
        "durationSeconds": 419,
        "views": 4479,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "With a tree-based model, try OrdinalEncoder instead of OneHotEncoder even for nominal (unordered) features.\nAccuracy will often be similar, but OrdinalEncoder will be much faster!\n\n👉 New...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vHGRXuOtFnE",
        "title": "Passthrough some columns and drop others in a ColumnTransformer",
        "publishedAt": "4 years ago",
        "durationSeconds": 192,
        "views": 4613,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In a ColumnTransformer, you can use the strings 'passthrough' and 'drop' in place of a transformer. Useful if you need to passthrough some columns and drop others!\n\n👉 New tips every TUESDAY...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6EtfLjKhIec",
        "title": "Drop the first category from binary features (only) with OneHotEncoder",
        "publishedAt": "4 years ago",
        "durationSeconds": 247,
        "views": 3307,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "New in version 0.23: Use drop='if_binary' with OneHotEncoder to drop the first category ONLY if it's a binary feature (meaning it has exactly two categories).\n\nNote: Beginning in scikit-learn...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9MW6Vpzbock",
        "title": "Estimators only print parameters that have been changed",
        "publishedAt": "4 years ago",
        "durationSeconds": 96,
        "views": 1979,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "New in version 0.23: Estimators only print the parameters that are *not* set to their default values.\nYou can still see all parameters with get_params(), or restore the previous behavior with...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "aMLLY9T3HPQ",
        "title": "Load a toy dataset into a DataFrame",
        "publishedAt": "4 years ago",
        "durationSeconds": 131,
        "views": 3354,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "New in version 0.23: Need to load a toy dataset into a DataFrame, including column names? Set as_frame=True.\nWant features and target as separate objects? Also set return_X_y=True.\n\n👉 New...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "NxLfpcfGzns",
        "title": "Get the feature names output by a ColumnTransformer",
        "publishedAt": "4 years ago",
        "durationSeconds": 139,
        "views": 8975,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Need to get the feature names output by a ColumnTransformer?\nUse get_feature_names(), which now works with \"passthrough\" columns (new in version 0.23)!\n\n👉 New tips every TUESDAY and THURSDAY!...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_UKYxucD1Io",
        "title": "Create an interactive diagram of a Pipeline in Jupyter",
        "publishedAt": "4 years ago",
        "durationSeconds": 128,
        "views": 5067,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "New in version 0.23: Create interactive diagrams of Pipelines (and other estimators) in Jupyter!\nClick on any element to see more details. You can even export the diagram to an HTML file!\n...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "tuesday.tips",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.4,
        "evidenceVideoIds": [
          "wvvTog-FXOk",
          "5xAgKRFvFg0",
          "JF8WjK70AEQ",
          "TDlGKocbHoc",
          "rOKXLCCyWn8"
        ]
      },
      {
        "label": "scikit",
        "share": 0.33,
        "evidenceVideoIds": [
          "mN51Tp02RNk",
          "ZYJ7OjNobmA",
          "AZzk8fQVHSU",
          "47jp10PxzIg",
          "E5zOAtlrQqE"
        ]
      },
      {
        "label": "dataschool",
        "share": 0.3,
        "evidenceVideoIds": [
          "wvvTog-FXOk",
          "JF8WjK70AEQ",
          "TDlGKocbHoc",
          "rOKXLCCyWn8",
          "GnN3Lqh3wOU"
        ]
      },
      {
        "label": "want",
        "share": 0.27,
        "evidenceVideoIds": [
          "wvvTog-FXOk",
          "WkqM0ndr42c",
          "sMlsd2CnIf4",
          "fvY3InlnOh8",
          "2lq2k6J3GW4"
        ]
      },
      {
        "label": "machine learning",
        "share": 0.23,
        "evidenceVideoIds": [
          "wvvTog-FXOk",
          "mN51Tp02RNk",
          "ZYJ7OjNobmA",
          "AZzk8fQVHSU",
          "47jp10PxzIg"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Sunday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 32,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Data School — 0.3M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 32,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.78,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "63e2417a1eb4f7341d6191786519a5e7d18545171c135a17bf2200773da30ef7",
      "inputsHash": "bfdb46a6a32ae0bb55bef5f31d819b13a3b20544a0705689477a945a5cbf558b",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:25.542Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "138a796606ec1c6caf727c3d83a673fa96e418f5465e08db48340eeff5997cee",
    "channelId": "UCdngmbVKX1Tgre699-XLlUA",
    "channelHandle": "@TechWorldwithNana",
    "channelName": "TechWorld with Nana",
    "channelUrl": "https://www.youtube.com/@TechWorldwithNana",
    "description": "Helping millions of engineers to advance their careers with DevOps & Cloud education 💙\n\nI create new videos every month, topics include mainly DevOps and Cloud tutorials. Subscribe and activate bell notification so you don't miss new videos :)\n\nI'm a Docker Captain, AWS Container Hero 🤓  💪\n\n►  https://www.techworld-with-nana.com/\n\nSome topics covered:\n - Docker\n - Kubernetes\n - CI/CD - GitLab CI, GitHub Actions, Jenkins\n - Python\n - Ansible\n - Prometheus Monitoring\n - Terraform\n - YAML\n - & more!\n\nHave fun watching my videos! 🙂",
    "joinDate": null,
    "location": null,
    "subscribers": 1440000,
    "totalVideos": 162,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ZAuMKdMcyV3mhX857oCGWzQAQ4AqZhiDIO76MTC_DqckrujSNg5Mh2AQh6ngWYv7bzfu7TBoj24=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "bit.ly",
        "url": "https://bit.ly/45sukcI"
      },
      {
        "platform": "linkedin",
        "url": "https://linkedin.com/in/nana-janashia"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/techworld_with_nana/"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/Njuchi_"
      },
      {
        "platform": "techworld-with-nana.com",
        "url": "https://www.techworld-with-nana.com/"
      }
    ],
    "recentVideos": [
      {
        "videoId": "w0SQGCt-6Ro",
        "title": "Networking Concepts Every DevOps Engineer Must Know",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 2321,
        "views": 79892,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "► Grab your Networking Playbook: https://bit.ly/3OR6jZc\n► From Zero to DevOps Professional in 6-months: https://bit.ly/4tn8djd\n\nThis video covers the core networking fundamentals every engineer needs to know - from basic IP addresses to advanced Kubernetes networking. We'll follow a simple approach: watch how one application grows from a single server to a complex cloud system, and learn each networking concept exactly when it becomes necessary.\n\n\n▬▬▬▬▬▬ 𝗧𝗵𝗮𝗻𝗸𝘀 𝗧𝗮𝗶𝗹𝘀𝗰𝗮𝗹𝗲 𝗳𝗼𝗿 𝗺𝗮𝗸𝗶𝗻𝗴 𝘁𝗵𝗶𝘀 𝘃𝗶𝗱𝗲𝗼 𝗽𝗼𝘀𝘀𝗶𝗯𝗹𝗲!  🙌 ▬▬▬▬▬▬ \n👉 If setting up secure network access between your devices and cloud infrastructure still feels painful, Tailscale makes it embarrassingly simple: https://tailscale.com/techworldwithnana\n🎁 Use code NANA to get 3 free months off any paid plan!\n\n\n▬▬▬▬▬▬ What You'll Learn ▬▬▬▬▬▬ \n→ IP addresses, DNS, ports, and network interfaces explained simply\n→ How virtualization and VMs changed networking\n→ Cloud networking: VPC, subnets, security groups, NAT Gateway (AWS)\n→ How Docker networking works (bridge networks, overlay networks, port mapping)\n→ Kubernetes networking deep dive: pods, CNI, services, Ingress, network policies\n\nNetworking is one of the most important — and most skipped — foundations for DevOps, cloud, and software engineers. In this video, I'll walk you through how networking actually works, from a single physical server all the way to containers and Kubernetes, using one practical real-world example the whole way through.\n\nNo dry theory. Just concepts that finally make sense.\n\n\n▬▬▬▬▬▬ 𝗧𝗜𝗠𝗘𝗦𝗧𝗔𝗠𝗣𝗦  ▬▬▬▬▬▬\n00:00 Introduction\n00:58 Phase 1: The Physical Server Era  (IP, DNS, ports, eth0)\n10:30 Phase 2: Virtual Machines & Hypervisors\n18:10 Phase 3: Cloud Networking ((AWS VPC, subnets, security groups))\n22:33 Phase 4: Docker Networking ( (Docker bridge, overlay, port mapping))\n28:16 Phase 5: Kubernetes Networking (pods, CNI, services, Ingress, network policies)\n37:11 Key Takeaways\n\n\n▬▬▬▬▬▬ 𝗖𝗼𝗻𝗻𝗲𝗰𝘁 𝘄𝗶𝘁𝗵 𝗺𝗲 👋   ▬▬▬▬▬▬ \nINSTAGRAM             ►  https://bit.ly/2F3LXYJ\nTWITTER                   ►  https://bit.ly/3i54PUB\nLINKEDIN                  ►  https://bit.ly/3hWOLVT\n\nNetworking Basics | Networking Crash Course | Networking Fundamentals | Networking for DevOps | Networking Tutorial for Beginners | Networking 101",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2oBYYZ5nWK0",
        "title": "New DevOps Job? Do This to Exceed Expectations",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 1238,
        "views": 24155,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Your first 30 days set the tone for your entire time at a company. Here's what to do.\n► Grab your Quick Wins DevOps Playbook you can implement right away: https://bit.ly/4rrzizX\n► Our Graduates go into their first job with confidence - watch their journeys here:    • TWN Career Interview Series  \n► Learn more about our programs: https://bit.ly/4s9oQhJ\n\nYour first 30 days set the tone for your entire time at a company. Most new DevOps engineers make the mistake of suggesting tool changes and rewrites before understanding the system. In this video, I'll show you the right approach to go from \"new DevOps hire\" to \"valued team member\".\n\nPlus, the critical mistakes to avoid that can hurt your credibility fast.\n\n▬▬▬▬▬▬ 𝗧𝗵𝗮𝗻𝗸𝘀 𝗥𝗮𝗶𝗹𝘄𝗮𝘆 𝗳𝗼𝗿 𝗺𝗮𝗸𝗶𝗻𝗴 𝘁𝗵𝗶𝘀 𝘃𝗶𝗱𝗲𝗼 𝗽𝗼𝘀𝘀𝗶𝗯𝗹𝗲!  🙌 ▬▬▬▬▬▬ \n👉 Railway is an all-in-one intelligent cloud platform that hosts production-ready deployments.\n👉 Try it out with my link to get $20 in Railway credits: https://bit.ly/4u93vqe\n\n▬▬▬▬▬▬ 𝗗𝗘𝗩𝗢𝗣𝗦 𝗖𝗔𝗥𝗘𝗘𝗥 𝗩𝗜𝗗𝗘𝗢𝗦  ▬▬▬▬▬▬\n🙋🏽‍♂️  From Retail Worker to Lead DevOps Engineer:    • Nigeria to UK: How He Became a DevOps Engi...  \n🙋🏻‍♀️  From Manufacturing Engineer to DevSecOps Engineer:    • She Quit Her Stable Job to Become a DevOps...  \n🙋🏻‍♂️  From Test Engineering to DevOps:    • 13 Years in QA: Why Traditional QA is Disa...  \n⚫️  How to Build an Irresistible Engineering Profile:    • How To Build an Engineering Profile That A...  \n⚫️  6 DevOps Career Paths with 6-Figure Potential:    • 6 DevOps Career Paths with 6-Figure Potential  \n⚫️  I Analyzed 100+ DevOps Job Posts from 5 Different Countries :   • I Analyzed 100+ DevOps Job Posts from 5 Di...  \n⚫️  Most Detailed DevOps Roadmap (Study Guide):    • Most Detailed DevOps Roadmap | Weekly Brea...  \n\n▬▬▬▬▬▬ 𝗧𝗜𝗠𝗘𝗦𝗧𝗔𝗠𝗣𝗦  ▬▬▬▬▬▬\n00:00 - Intro: 2 Types of Engineers\n01:30 - The Mindset Shift (Before Day 1)\n04:20 - Map the Infrastructure (Quietly, First)\n06:25 - Learn from Incidents, Not Documentation\n08:00 - Find Small, Low-Risk Wins\n12:09 - Learn the Release and On-Call Process Early\n13:42 - What NOT to Do in Your First 30 Days\n16:36 - How You Actually Exceed Expectations\n\n\n▬▬▬▬▬▬ 𝗖𝗼𝗻𝗻𝗲𝗰𝘁 𝘄𝗶𝘁𝗵 𝗺𝗲 👋   ▬▬▬▬▬▬ \nINSTAGRAM             ►  https://bit.ly/2F3LXYJ\nTWITTER                   ►  https://bit.ly/3i54PUB\nLINKEDIN                  ►  https://bit.ly/3hWOLVT\n\n\nDo This in Your First 30 Days as a DevOps Engineer | Starting a New DevOps Job? Do This to Exceed Expectations |  How to Impress Your Team in Your First DevOps Job  |  New DevOps Engineer? Do This Before Touching Production  | Don't Make This Mistake Your First Day as a DevOps Engineer\nDON'T Suggest Kubernetes Yet - Here's Why  |  New DevOps Engineers Make These Critical Mistakes",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IQZPC0sFqMk",
        "title": "How Netflix, Spotify & Uber actually run multi-cloud architectures",
        "publishedAt": "1 month ago",
        "durationSeconds": 2385,
        "views": 19779,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Multi-cloud sounds simple — use the best of AWS, Google Cloud, and Azure together. But the reality? Managing multiple clouds can double your bill and triple your complexity before you even deploy your first service.\n\n► Git repo: https://gitlab.com/twn-youtube/multi-...\n\n🔶 Control Plane provides a unified platform to deploy, secure, and manage your entire multi-cloud infrastructure from one place.\n🔶 Check them out for a 30-day free trial: https://controlplane.com/\n\nIn this video, I break down how companies like Netflix, Spotify, and Uber actually run multi-cloud architectures — and more importantly, what makes it manageable at scale.\n\nYou'll learn:\nThe two multi-cloud patterns and the real problems each one creates\nWhy credential management, networking, and infrastructure duplication are the hidden killers\nThe abstraction layer concept that makes multi-cloud actually work\nA practical demo deploying a containerized app across AWS, Azure, and GCP using Control Plane\n\nWhether you're architecting for resilience or just trying to use the best service from each provider — this video gives you the full picture.\n\n▬▬▬▬▬▬ 𝗧𝗜𝗠𝗘𝗦𝗧𝗔𝗠𝗣𝗦  ▬▬▬▬▬▬\n0:00 — Intro - How Netflix, Spotify & Uber actually use multi-cloud\n2:06 — Realistic Scenario of Multi-Cloud\n3:52 — Two Multi-Cloud Implementation Patterns (And their challenges)\n8:23 — Abstraction layer\n10:25 — How Control Plane works\n16:08 — Practical demo: Deploying across AWS, Azure & GCP\n19:05 — Step 1: Setting Up the Multi-Cloud Infrastructure\n21:23 — Step 2: Deploying the Application\n26:25 — Step 3: Add Authentication to access S3 bucket\n37:20 — Step 4: Testing Failover\n\n\n\n▬▬▬▬▬▬ Connect with me 👋   ▬▬▬▬▬▬ \nINSTAGRAM             ►  https://bit.ly/2F3LXYJ\nTWITTER                   ►  https://bit.ly/3i54PUB\nLINKEDIN                  ►  https://bit.ly/3hWOLVT",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "q6x8J7QIakI",
        "title": "She Quit Her Stable Job to Become a DevOps Engineer (And is Now a Golden Kubestronaut)",
        "publishedAt": "2 months ago",
        "durationSeconds": 4082,
        "views": 21983,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "After 8 years as a Senior Manufacturing Engineer in medical devices, Ana Pedra walked away from a stable career to start over in tech - with zero DevOps experience.\nNow she's a Cloud DevSecOps Engineer deploying production systems with Kubernetes across AWS, Azure, and GCP. She's achieved Golden Kubestronaut status and is now helping others make the same transition.\n\n𝗔𝗻𝗮 𝗣𝗲𝗱𝗿𝗮 𝗱𝗶𝗱 𝘁𝗵𝗲𝘀𝗲 𝘀𝘁𝗿𝘂𝗰𝘁𝘂𝗿𝗲𝗱 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝘀 𝘁𝗼 𝗴𝗲𝘁 𝘁𝗵𝗲𝗿𝗲:\n🔗 DevOps Bootcamp: https://bit.ly/3OJhClW\n🔗 DevSecOps Bootcamp: https://bit.ly/46DHB4k\n\n▬▬▬▬▬▬  Thanks Ana Pedra for sharing your journey with the community 💙   ▬▬▬▬▬▬\n► Connect with her on LinkedIn:   / anapedra  \n► Be sure to checkout her Youtube channel:    / @clouddevopswithana   \n\nHer journey: \n→ 2-month career break \n→ intensive learning \n→ first DevOps job within weeks \n→ DevSecOps role at Spitch\n→ became Golden Kubestronaut\n→ teaching others to do the same\n\nIn this interview, Ana breaks down:\n→ How she proved her skills without professional experience\n→ What actually got her hired (hint: it wasn't just certifications)\n→ Her exact interview prep strategy\n→ Day-to-day reality of working in DevOps\n→ Why starting over was the best decision she ever made\n\nIf you're thinking it's too late to switch careers or you need years of experience to break into DevOps - Ana's story proves otherwise.\n\n\n▬▬▬▬▬▬ T I M E S T A M P S ⏰  ▬▬▬▬▬▬\n00:00 Introduction to Ana Pedra & Overview\n01:59 Changing Careers after 8 years\n07:58 Choosing a Profession in Tech and DevOps\n12:31 Learning Strategy\n14:35 Interview Challenges\n17:17 DevOps bootcamp experience\n21:58 Triple Proof Strategy for Securing a Job\n28:05 The Job Interview Breakthrough\n37:30 Navigating the Job Market as a Junior DevOps Engineer\n41:21 Advice for Aspiring DevOps Professionals\n44:00 First Days at Work\n46:55 Choosing the Right Job for Growth\n51:49 Day in the Life of a DevOps Engineer\n54:18 Continuous Learning Mindset - DevSecOps\n56:19 Your career is not set in stone\n58:35 Importance of Intentional Learning (Staying motivated)\n01:03:27 Becoming a Golden Kubestronaut and Helping People\n01:04:30 Career Timeline Recapped\n\n\n▬▬▬▬▬▬ 🎙️ PART OF INTERVIEW SERIES 🎙️    ▬▬▬▬▬▬\nLink to playlist:    • TWN Career Interview Series  \nThis series features in-depth conversations with industry experts like Kelsey Hightower and real career journeys, from people who made it happen, sharing practical insights on learning paths, interview preparation, and day-to-day DevOps work.\n\nI capture real transformation stories from our DevOps bootcamp graduates about building a DevOps career. Hear how people learned Kubernetes, prepared project portfolios, landed multiple job offers, and navigate the evolving landscape of AI in infrastructure. Whether you're considering DevOps or already in the field, these conversations reveal what's actually working.\n\n▬▬▬▬▬▬ Connect with me 👋   ▬▬▬▬▬▬ \nINSTAGRAM             ►  https://bit.ly/2F3LXYJ\nTWITTER                   ►  https://bit.ly/3i54PUB\nLINKEDIN                  ►  https://bit.ly/3hWOLVT",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fwP2JW_VnZI",
        "title": "Linux Commands in 30 Mins (Real-World Example)",
        "publishedAt": "2 months ago",
        "durationSeconds": 1933,
        "views": 46171,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "From single Linux commands to building powerful command chains that solve real-world problems\n► Grab your Cheat Sheet here: https://bit.ly/4sgEE2M\n► Become a DevOps Professional in 6-months: https://bit.ly/4q4fu68\n► Git Repo: https://gitlab.com/twn-youtube/twn-li...\n\n▬▬▬▬▬▬ Thanks F5 NGINX for sponsoring this video 🙌   ▬▬▬▬▬▬ \n🔶 More information about Ingress NGINX Alternative: https://blog.nginx.org/blog/the-ingre...\n🔶 Get started pulling the image from Docker Hub: Docker Hub: https://hub.docker.com/r/nginx/nginx-... \n\nWhether you're managing servers, deploying applications, or troubleshooting issues in production, knowing how to work with Linux commands is absolutely essential for any engineer.\n\nIn this video, I'll show a handful of fundamental Linux commands that will make your daily work much more efficient. And we won't just learn them in isolation - we'll build them up step by step, combining them into powerful command chains that solve real-world problems.\n\nLet's imagine a realistic scenario: You're managing a web application that's been running for a while, and it generates various log files every day. Your task is to investigate error messages that users have been reporting. We'll use this scenario to learn each command, starting simple and gradually building more complex operations.\n\n▬▬▬▬▬▬ Connect with me 👋   ▬▬▬▬▬▬ \nINSTAGRAM             ►  https://bit.ly/2F3LXYJ\nTWITTER                   ►  https://bit.ly/3i54PUB\nLINKEDIN                  ►  https://bit.ly/3hWOLVT",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MFjDt6ONWzk",
        "title": "Why DevOps Demand Is Exploding (5 Critical Factors)",
        "publishedAt": "3 months ago",
        "durationSeconds": 2035,
        "views": 110359,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "What 5 key factors is driving DevOps demand, and what you need to learn to take advantage of this opportunity.\n📥 Free DevOps Career Guide: https://bit.ly/3OuC4Xm\n🎓 Looking for a structured path to fast-track your learning? https://bit.ly/4rJn9qW\n🎬 Watch real DevOps journeys:    • TWN Career Interview Series  \n\nDevOps engineers are in critical demand right now - and this window won't stay open forever.\nIn this video, I break down why 2026 is the perfect time to learn DevOps skills, the 5 key factors driving explosive demand, and exactly what you need to learn to take advantage of this opportunity.\n\nWhat you'll learn:\n✅ Why DevOps is where software engineering was 10 years ago (and why that matters)\n✅ How AI is actually INCREASING the value of DevOps skills\n✅ The exact skill roadmap companies are hiring for (with real job examples)\n✅ The 4 biggest learning mistakes that waste years of your time\n✅ How to go from beginner to job-ready in 6-9 months (part-time)\n\n▬▬▬▬▬▬ 𝗧𝗵𝗮𝗻𝗸𝘀 𝗖𝗼𝗻𝘁𝗿𝗼𝗹 𝗣𝗹𝗮𝗻𝗲 𝗳𝗼𝗿 𝗺𝗮𝗸𝗶𝗻𝗴 𝘁𝗵𝗶𝘀 𝘃𝗶𝗱𝗲𝗼 𝗽𝗼𝘀𝘀𝗶𝗯𝗹𝗲!  🙌 ▬▬▬▬▬▬ \n👉 Control Plane provides a unified platform to deploy, secure, and manage your entire multi-cloud infrastructure from one place.\n👉 Check them out for a 30-day free trial: https://controlplane.com/\n\n▬▬▬▬▬▬ 𝗗𝗘𝗩𝗢𝗣𝗦 𝗖𝗔𝗥𝗘𝗘𝗥 𝗩𝗜𝗗𝗘𝗢𝗦  ▬▬▬▬▬▬\n⚫️  From Retail Worker to Lead DevOps Engineer:    • Nigeria to UK: How He Became a DevOps Engi...  \n⚫️  From Test Engineering to DevOps:    • 13 Years in QA: Why Traditional QA is Disa...  \n⚫️  How to Build an Irresistible Engineering Profile:    • How To Build an Engineering Profile That A...  \n⚫️  6 DevOps Career Paths with 6-Figure Potential:    • 6 DevOps Career Paths with 6-Figure Potential  \n⚫️  I Analyzed 100+ DevOps Job Posts from 5 Different Countries :   • I Analyzed 100+ DevOps Job Posts from 5 Di...  \n⚫️  Most Detailed DevOps Roadmap (Study Guide):    • Most Detailed DevOps Roadmap | Weekly Brea...  \n\n▬▬▬▬▬▬ 𝗧𝗜𝗠𝗘𝗦𝗧𝗔𝗠𝗣𝗦  ▬▬▬▬▬▬\n00:00 - Intro: Why NOW is the time for DevOps\n02:14 - Data about DevOps Skills Gap\n04:27 - What's Coming in 2026 And Beyond: 5 Factors\n07:26 - AI's impact on DevOps (In 2 Ways)\n11:35 - Why companies struggle to find skilled engineers\n16:36 - What you actually need to learn (the roadmap)\n22:18 - The critical question: How much depth? How to combine?\n25:58 - Avoid These Common Learning Mistakes\n20:30 - How to avoid these mistakes\n32:07 - Final Thoughts: Your 10-year opportunity\n\n\n▬▬▬▬▬▬ 𝗖𝗼𝗻𝗻𝗲𝗰𝘁 𝘄𝗶𝘁𝗵 𝗺𝗲 👋   ▬▬▬▬▬▬ \nINSTAGRAM             ►  https://bit.ly/2F3LXYJ\nTWITTER                   ►  https://bit.ly/3i54PUB\nLINKEDIN                  ►  https://bit.ly/3hWOLVT\n\n\nWhy DevOps Skills are in critical demand NOW (Skill Gap Closing) | Why DevOps Jobs will Explode in 2026 (And How To Take Advantage) | Why DevOps Demand Is Exploding (And Why AI Accelerates It) | AI Is Making DevOps Engineers MORE Valuable (Here's Why) | Why DevOps Is Where Software Engineering Was in 2015",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tCehFMwjWqM",
        "title": "What Most Engineers Get Wrong About AI and Career | Kelsey Hightower",
        "publishedAt": "3 months ago",
        "durationSeconds": 3065,
        "views": 48720,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I sat down with Kelsey Hightower—the engineer who helped build Kubernetes, reached the top at Google as a Distinguished Engineer, and walked away from it all in 2023 when he retired at age 42 to ask bigger questions about technology and what really matters.\n\n𝗕𝗲𝗰𝗼𝗺𝗲 𝗳𝘂𝘁𝘂𝗿𝗲-𝗽𝗿𝗼𝗼𝗳:\n►  Grab your DevOps Career Guide: https://bit.ly/4qvUMvV\n►  Fast track from Zero to DevOps expert: https://bit.ly/4bJzd6r\n\n▬▬▬▬▬▬ 𝗧𝗵𝗮𝗻𝗸𝘀 𝗖𝗼𝗻𝘁𝗿𝗼𝗹 𝗣𝗹𝗮𝗻𝗲 𝗳𝗼𝗿 𝗺𝗮𝗸𝗶𝗻𝗴 𝘁𝗵𝗶𝘀 𝘃𝗶𝗱𝗲𝗼 𝗽𝗼𝘀𝘀𝗶𝗯𝗹𝗲!  🙌 ▬▬▬▬▬▬ \n👉 Control Plane provides a unified platform to deploy, secure, and manage your entire multi-cloud infrastructure from one place.\n👉 Check them out for a 30-day free trial: https://controlplane.com/\n\nThis isn't your typical tech interview. It's about the patterns we keep repeating—the complexity trap we fell into with Kubernetes, the same mistakes happening now with AI, and the choices that separate engineers who adapt from those who get left behind.\n\nKelsey shares the learning approach that took him to Google's highest engineering level, the hard truth about letting go of ego after retiring, and why the DeepSeek breakthrough proves we have more control over AI than the hype wants us to believe.\n\nFrom a $35 book and working fast food to building his career on his own terms at the highest level—his path breaks all the rules and shows what's actually possible.\n\nThis conversation will change how you think about AI, your career, and building things that last. Whether you're worried about your job, stuck in your learning, or trying to figure out what's next—Kelsey's perspective cuts through all the noise.\n\nWe cover:\n◼️ Why the mistakes engineers made with Kubernetes are happening again with AI\n◼️ What actually works in production (hint: simpler than you think)\n◼️ Kelsey's career path from a $35 certification book to Google's highest engineering level\n◼️ The learning method that made him irreplaceable\n◼️ Why DeepSeek changed everything about AI's future\n◼️ Who really controls technology - humans or AI?\n\n\n▬▬▬▬▬▬ T I M E S T A M P S ⏰  ▬▬▬▬▬▬\n00:00 Introduction & Overview\n02:17 The Birth of Kubernetes (What Most People Don't Know)\n07:25 The Biggest Mistake Engineers Made with K8s\n12:00 What Actually Works in Production\n13:41 Kelsey's Career Journey to Distinguished Engineer at Google\n24:14 Do We Get New Versions of You Every Year?\n30:12 The What/Why/How Learning Method\n34:05 After Retirement - Learning How to Live\n39:31 Kelsey's Opinion on AI\n43:23 You Get To Decide\n47:57 Key Takeaways From the Conversation\n\n\n▬▬▬▬▬▬ 🎙️ PART OF INTERVIEW SERIES 🎙️    ▬▬▬▬▬▬\nLink to playlist:    • TWN Career Interview Series  \nThis series features in-depth conversations with industry experts like Kelsey Hightower and real career journeys, from people who made it happen, sharing practical insights on learning paths, interview preparation, and day-to-day DevOps work.\n\n\n▬▬▬▬▬▬ Connect with me 👋   ▬▬▬▬▬▬ \nINSTAGRAM             ►  https://bit.ly/2F3LXYJ\nTWITTER                   ►  https://bit.ly/3i54PUB\nLINKEDIN                  ►  https://bit.ly/3hWOLVT",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Cpy20DnIDTI",
        "title": "If I would start DevOps from 0 - How would I start and what would I learn",
        "publishedAt": "3 months ago",
        "durationSeconds": 580,
        "views": 122792,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The advice I would give myself if I start DevOps and Cloud from Zero again\n► Grab your DevOps Starter Kit: https://bit.ly/49Dz8zM\n\n► Become a DevOps Professional in 6-months: https://bit.ly/3N644A3\n\n📊 Check out the Most In-Demand Skills by market analysis based on data from 400,000+ job postings across major tech hubs: https://prepare.sh/trends/devops\n\nStop following random roadmaps that make you even more confused than before you started using them. To make this easy for you, let me tell you the exact sequence that actually works, because it has worked for thousands of engineers in our program. By focusing on strong foundation skills and building from there, you can ensure solid career growth and effective career planning, making it easy to overcome confusion and move forward with clear direction.\n\n\n▬▬▬▬▬▬ 𝗧𝗜𝗠𝗘𝗦𝗧𝗔𝗠𝗣𝗦  ▬▬▬▬▬▬\n00:00 Intro\n00:18 DevOps Roadmap\n06:11 Learning Mistakes to Avoid\n\n▬▬▬▬▬▬ 𝗗𝗘𝗩𝗢𝗣𝗦 𝗖𝗔𝗥𝗘𝗘𝗥 𝗩𝗜𝗗𝗘𝗢𝗦  ▬▬▬▬▬▬\n⚫️  From Retail Worker to Lead DevOps Engineer:    • Nigeria to UK: How He Became a DevOps Engi...  \n⚫️  From Test Engineering to DevOps:    • 13 Years in QA: Why Traditional QA is Disa...  \n⚫️  How to Build an Irresistible Engineering Profile:    • How To Build an Engineering Profile That A...  \n⚫️  6 DevOps Career Paths with 6-Figure Potential:    • 6 DevOps Career Paths with 6-Figure Potential  \n⚫️  I Analyzed 100+ DevOps Job Posts from 5 Different Countries :   • I Analyzed 100+ DevOps Job Posts from 5 Di...  \n⚫️  Most Detailed DevOps Roadmap (Study Guide):    • Most Detailed DevOps Roadmap | Weekly Brea...  \n\n▬▬▬▬▬▬ 𝗖𝗼𝗻𝗻𝗲𝗰𝘁 𝘄𝗶𝘁𝗵 𝗺𝗲 👋   ▬▬▬▬▬▬ \nINSTAGRAM             ►  https://bit.ly/2F3LXYJ\nTWITTER                   ►  https://bit.ly/3i54PUB\nLINKEDIN                  ►  https://bit.ly/3hWOLVT\n\nDevOps Roadmap | DevOps Engineer Roadmap | How to learn DevOps | How to become a DevOps engineer | Learn DevOps from Scratch | Roadmap for DevOps Engineer",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GQQqf-C2ha4",
        "title": "3 Git Workflows Every Developer Should Know (And When to Use Each)",
        "publishedAt": "4 months ago",
        "durationSeconds": 1892,
        "views": 127291,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "► I've put together a handy checklist to transform manual workflows into an automated pipeline - you can grab it here: https://bit.ly/49hNEMh\n► Become a DevOps Expert in 6-months: https://bit.ly/4qHfRDy\n\nIn this tutorial I break down the three main Git branching strategies that teams use today: GitFlow, GitHub Flow, and Trunk-Based Development. We'll look at how they evolved, why they exist, and most importantly, when each one actually makes sense for your project. \n\n\n▬▬▬▬▬▬ 𝗧𝗵𝗮𝗻𝗸𝘀 𝗠𝗼𝗻𝗴𝗼𝗗𝗕 𝗳𝗼𝗿 𝘀𝗽𝗼𝗻𝘀𝗼𝗿𝗶𝗻𝗴 𝘁𝗵𝗶𝘀 𝘃𝗶𝗱𝗲𝗼 🙌 ▬▬▬▬▬▬\n► Check out MongoDB and start building for free: https://fandf.co/3LbC9Ou\n\n\nThese Git workflows are super relevant for most development teams today. And in this video I talk about how they have evolved over time. Because here's the thing—the way we work with Git, the way we branch, merge, and deploy code has changed dramatically over the last decade. And understanding why these changes happened will help you make much better decisions for your own team.\n\n▬▬▬▬▬▬ 𝗧𝗜𝗠𝗘𝗦𝗧𝗔𝗠𝗣𝗦  ▬▬▬▬▬▬\n00:00 Intro\n01:48 Why Git Workflows Matter\n03:22 GitFlow - The Structured Approach\n08:51 GitHub Flow - The Minimalist\n14:32 Trunk-Based Development - The All-In Approach\n22:10 Why These Git Workflows Evolved\n24:50 Git Workflows in Practice (Real-World Tradeoffs)\n27:37 Practical Tips\n29:55 Key Takeaway\n\n▬▬▬▬▬▬ 𝗖𝗼𝗻𝗻𝗲𝗰𝘁 𝘄𝗶𝘁𝗵 𝗺𝗲 👋   ▬▬▬▬▬▬ \nINSTAGRAM             ►  https://bit.ly/2F3LXYJ\nTWITTER                   ►  https://bit.ly/3i54PUB\nLINKEDIN                  ►  https://bit.ly/3hWOLVT\n\nGitFlow vs GitHub Flow vs Trunk-Based: Choosing the Right Strategy | Git Workflows Explained: Which One Should Your Team Actually Use? | Every Git Branching Strategy Explained (And When to Use Each) | The Complete Guide to Git Workflows in 2026 | 3 Git Workflows Every Developer Should Know (With Real Examples) | Git Branching Strategies Compared: The Good, Bad & Ugly",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YTIvpuV6I20",
        "title": "Nigeria to UK: How He Became a DevOps Engineer Before His Visa Ran Out",
        "publishedAt": "4 months ago",
        "durationSeconds": 3731,
        "views": 23143,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How He Went From Civil Engineering Graduate from Nigeria to DevOps Engineer in UK (Complete Timeline)\n► Grab your DevOps Career Guide: https://bit.ly/49n2vGq\n\n𝗕𝗲𝗰𝗼𝗺𝗲 𝗳𝘂𝘁𝘂𝗿𝗲-𝗽𝗿𝗼𝗼𝗳 𝗶𝗻 𝟮𝟬𝟮𝟲?  𝗜𝘀𝗿𝗲𝗮𝗹 𝗱𝗶𝗱 𝘁𝗵𝗲𝘀𝗲 𝘀𝘁𝗿𝘂𝗰𝘁𝘂𝗿𝗲𝗱 𝗽𝗿𝗼𝗴𝗿𝗮𝗺𝘀 𝘁𝗼 𝗴𝗲𝘁 𝘁𝗵𝗲𝗿𝗲:\n🔗 DevOps Bootcamp: https://bit.ly/4pMkZWH\n🔗 DevSecOps Bootcamp: https://bit.ly/3MPHrzJ\n\n▬▬▬▬▬▬ 𝗧𝗵𝗮𝗻𝗸𝘀 𝗖𝗼𝗻𝘁𝗿𝗼𝗹 𝗣𝗹𝗮𝗻𝗲 𝗳𝗼𝗿 𝗺𝗮𝗸𝗶𝗻𝗴 𝘁𝗵𝗶𝘀 𝘃𝗶𝗱𝗲𝗼 𝗽𝗼𝘀𝘀𝗶𝗯𝗹𝗲!  🙌 ▬▬▬▬▬▬ \n👉 Control Plane provides a unified platform to deploy, secure, and manage your entire multi-cloud infrastructure from one place.\n👉 Check them out for a 30-day free trial: https://controlplane.com/\n\nIsreal had a big problem. He studied civil engineering in Nigeria, moved to the UK for his master's degree, and his visa was running out. If he couldn't find a job that would sponsor his visa, he'd have to leave the country. He had zero IT experience. He was working night shifts at retail stores just to pay rent. After 9 months of intense learning in our DevOps program, he landed a Lead DevOps Engineer. \n\nThis was about 2-3 years ago. Now he is working as a Lead DevSecOps engineer at a cybersecurity company.\n\nIn this interview, we revisit his whole journey - his struggles, the moment he decided to bet on himself, and the exact steps he took to go from complete beginner to landing a leadership role. You'll learn his specific path, how he prepared for interviews, and his honest advice for anyone thinking it's impossible. If you're feeling stuck or think you're too late to break into tech, this story will show you what's possible.\n\n▬▬▬▬▬▬  Thanks Isreal, for being so open and sharing your journey with the community 💙   ▬▬▬▬▬▬\n► Connect with him on LinkedIn:   / isrealurephu  \n\nIn this video, Isreal shares:\n◼️ Why he chose DevOps (and how it solved his visa problem)\n◼️ The mistakes he made with scattered online courses\n◼️ The pressure of an expiring visa\n◼️ How he studied in our DevOps Bootcamp while working retail jobs\n◼️ The exact interview questions that got him hired\n◼️ Why companies chose him over CS graduates\n◼️ How he got two job offers and negotiated a 25% higher salary\n\nIf you're trying to break into DevOps with no IT background, or you're stuck in a career you don't like, this is the roadmap.\n\n▬▬▬▬▬▬ T I M E S T A M P S ⏰  ▬▬▬▬▬▬\n00:00 Introduction to Isreal & Overview\n01:59 Civil Engineering Background and UK Visa Pressure\n10:29 Overcoming the Scattered Learning Phase\n20:25 The Learning System\n26:58 The Job Hunt\n31:37 The Interview & Offer\n37:43 Landing 2 Offers\n43:36 First Day Reality\n48:42 Upgrading Skills to DevSecOps\n52:01 Performance Review after 1 year\n54:55 Isreal's Advice for aspiring DevOps engineers\n58:20 Career Timeline Recapped\n\n\n▬▬▬▬▬▬ 🎙️ PART OF INTERVIEW SERIES 🎙️    ▬▬▬▬▬▬\nLink to playlist:    • TWN Career Interview Series  \nThis series features in-depth conversations with industry experts like Kelsey Hightower and real career journeys, from people who made it happen, sharing practical insights on learning paths, interview preparation, and day-to-day DevOps work.\n\nI capture real transformation stories from our DevOps bootcamp graduates about building a DevOps career. Hear how people learned Kubernetes, prepared project portfolios, landed multiple job offers, and navigate the evolving landscape of AI in infrastructure. Whether you're considering DevOps or already in the field, these conversations reveal what's actually working.\n\n▬▬▬▬▬▬ Connect with me 👋   ▬▬▬▬▬▬ \nINSTAGRAM             ►  https://bit.ly/2F3LXYJ\nTWITTER                   ►  https://bit.ly/3i54PUB\nLINKEDIN                  ►  https://bit.ly/3hWOLVT",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xj_GjnD4uyI",
        "title": "Every Networking Concept Explained In 20 Minutes",
        "publishedAt": "5 months ago",
        "durationSeconds": 1401,
        "views": 520501,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "► Grab your Networking Essentials Playbook: https://bit.ly/4oNN9Q4\n► Become a DevOps Professional in 6-months: https://bit.ly/3KT4h98\nA short, but comprehensive tutorial to learn the Networking...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QQ4UyZNXof8",
        "title": "How AI is Changing DevOps Careers | What You Need to Know",
        "publishedAt": "5 months ago",
        "durationSeconds": 3427,
        "views": 88303,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "DevOps Career in 2026: Should You Learn AI or Double Down on DevOps Fundamentals?\n► Grab your DevOps Starter Kit: https://bit.ly/4oZ4qGD\n► Skills Companies ACTUALLY Want: https://youtu.be/7d3MU...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "biqYkVf-a7Y",
        "title": "MLOps Explained - What It Is, Why You Need It and How It Works",
        "publishedAt": "6 months ago",
        "durationSeconds": 1583,
        "views": 118318,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "► Grab your MLOps roadmap here: https://bit.ly/43IQO9N\n► Ready to land a higher-paying role? Book a free call to see if our DevOps bootcamp fits your career goals: https://bit.ly/4oynnzQ...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4J53WvB1-4E",
        "title": "13 Years in QA: Why Traditional QA is Disappearing (And What to Do)",
        "publishedAt": "6 months ago",
        "durationSeconds": 3175,
        "views": 21072,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Rody (15 years in QA) shares his career journey from being a senior test automation engineer to embracing DevOps and eventually transitioning to freelance work. \n▬▬▬▬▬▬  Wondering...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fkKIcCzA5jk",
        "title": "The Big Picture: AI, Machine Learning, and Neural Networks",
        "publishedAt": "6 months ago",
        "durationSeconds": 2782,
        "views": 56811,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "ML models need solid infrastructure to run in production. Grab our DevOps Roadmap to learn the foundational skills that power modern AI systems: https://bit.ly/ai-to-devops-roadmap \n\n#machinelearni...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "B7CwU_tNYIE",
        "title": "Kafka Crash Course - Hands-On Project",
        "publishedAt": "7 months ago",
        "durationSeconds": 4079,
        "views": 203396,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ready to build complete production systems? Grab your DevOps Roadmap PDF to see the full tech stack that powers scalable applications  → https://bit.ly/4nnNecZ\n\nThis is the ONLY Kafka Tutorial...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zFa9_K8BS8I",
        "title": "Learn Docker in 2026 - Complete Roadmap Beginner to Pro",
        "publishedAt": "8 months ago",
        "durationSeconds": 1879,
        "views": 107029,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "► Grab your Docker Roadmap PDF here: https://bit.ly/4mOF1P2\nStep by Step Guide to learn Docker in 2026 | Docker Learning Roadmap\n\nDocker has become a standard technology in software development...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hNNhUxQHaLs",
        "title": "How To Build an Engineering Profile That Attracts Recruiters 24/7",
        "publishedAt": "8 months ago",
        "durationSeconds": 1430,
        "views": 37971,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "► Grab your Complete Implementation Guide : https://bit.ly/devops-attraction-system\nStruggling to land job interviews? In this video I show you how to build an engineering profile that attracts...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pEEq8ff2DJs",
        "title": "6 DevOps Career Paths with 6-Figure Potential",
        "publishedAt": "9 months ago",
        "durationSeconds": 1310,
        "views": 51262,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "► Grab your DevOps Guide here: https://bit.ly/4lQ4cAh\nDevOps isn't just one clear-cut role. You'll see job listings for Cloud Engineers, SREs, Platform\nEngineers, DevOps Engineers – all...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PNhq_4d-5ek",
        "title": "Bash Scripting Tutorial for Beginners",
        "publishedAt": "9 months ago",
        "durationSeconds": 3933,
        "views": 258143,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn Bash Scripting in 1 Hour | Shell Scripting Tutorial\n► Grab your Bash Scripting Handout PDF here: https://bit.ly/4kBb031\n\nIn this complete bash scripting tutorial you'll learn everything...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7d3MU2DgUPg",
        "title": "I Analyzed 100+ DevOps Job Posts from 5 Different Countries | Skills Companies ACTUALLY Want",
        "publishedAt": "10 months ago",
        "durationSeconds": 2096,
        "views": 37368,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "► Grab your DevOps Career Guide here: https://bit.ly/4ebSxbO\nHere's The DevOps Skills Companies ACTUALLY Want - How to Get Your First DevOps Job: Real Requirements Breakdown\n\n💸 NOTE ABOUT...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6eroP2XGtTI",
        "title": "Cloud Engineer Roadmap | From Beginner to Advanced",
        "publishedAt": "11 months ago",
        "durationSeconds": 2215,
        "views": 86386,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How to Become a Cloud Engineer in 2025 - This detailed cloud roadmap covers everything you need to stand out in the cloud computing field. Download your free PDF guide here: https://bit.ly/3FMh4aD...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Nn08HVq4BHA",
        "title": "AI vs Programmers: 4 Critical Skills You Need To Win the Race",
        "publishedAt": "11 months ago",
        "durationSeconds": 1431,
        "views": 185053,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Coding alone won't survive the AI revolution. That's why we created this DevOps Roadmap for Software Engineers: https://bit.ly/3SvshPT\nWill AI Replace Programmers? I'll share 4 skills that...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AknbizcLq4w",
        "title": "CI/CD Explained: The DevOps Skill That Makes You 10x More Valuable",
        "publishedAt": "1 year ago",
        "durationSeconds": 1267,
        "views": 456380,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "CI/CD Explained with Real Life Examples | How DevOps Teams Automate Everything\n► Grab your actionable CI/CD checklist here: https://bit.ly/423Cnf2\n\nWhat is CI/CD? Learn how Continuous Integration...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CLh2ACdXNbc",
        "title": "20% of Linux Commands You'll Use 80% of the Time (Real-World Example)",
        "publishedAt": "1 year ago",
        "durationSeconds": 1502,
        "views": 455153,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "► Download Linux Commands Cheat Sheet for quick reference here: https://bit.ly/4j2N4FA\n\n► Watch this Bash Scripting video next: https://youtu.be/PNhq_4d-5ek\n\nLearn how to transform the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "116elYvjJ1M",
        "title": "Most Detailed DevOps Roadmap | Weekly Breakdown",
        "publishedAt": "1 year ago",
        "durationSeconds": 1902,
        "views": 98933,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ready to land a higher-paying role? Book a free call to see if our bootcamp fits your career goals: https://bit.ly/4nO3PGh\n▬▬ 📚 Download Study Guide + DevOps Roadmap PDF Bundle here:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QkdkLdMBuL0",
        "title": "Kafka Tutorial for Beginners | Everything you need to get started",
        "publishedAt": "1 year ago",
        "durationSeconds": 1113,
        "views": 1234622,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "► Step by Step DevOps Roadmap PDF: https://bit.ly/4jv2qDH\n\nApache Kafka Tutorial | Everything you need to know: What is Kafka, Real Life Kafka Use Cases, How Kafka works, Kafka vs RabbitMQ...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "klyAhaklGNU",
        "title": "HashiCorp Vault Tutorial for Beginners - What, Why and How",
        "publishedAt": "1 year ago",
        "durationSeconds": 1750,
        "views": 150029,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Full HashiCorp Vault Tutorial explaining What is HashiCorp Vault, How Vault works, Vault Architecture\n\n►  📖  Download DevSecOps Curriculum here: https://bit.ly/3PpQpS4\n►  📖  More...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1J2YOV6LcwY",
        "title": "Complete DevOps Roadmap 2026 - Master these 4 Levels!",
        "publishedAt": "1 year ago",
        "durationSeconds": 2273,
        "views": 386565,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Master the 4 Stages of Learning DevOps to become a Pro | DevOps Roadmap to go from Zero to DevOps Expert in 2026\n\n►  📖  Download DevOps Roadmap PDF here: https://bit.ly/4jwP5cM\n\n ▬▬▬▬...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "q8OleYuqntY",
        "title": "Full NGINX Tutorial - Demo Project with Node.js, Docker",
        "publishedAt": "1 year ago",
        "durationSeconds": 4300,
        "views": 320065,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Full NGINX Tutorial for Beginners - Even if you've never used Nginx before, this crash course will get you up to speed with a simple real-life demo project!\n\n▬▬▬▬▬▬  R E S O U R...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 3,
      "uploadsLast90d": 8,
      "uploadCadenceWeekly": 0.62,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 46171,
      "viewsPerVideoP90Last90d": 110359,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 46171,
      "p90Views": 110359,
      "p99Views": 110359,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "bit.ly"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "bit.ly",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.93,
        "evidenceVideoIds": [
          "w0SQGCt-6Ro",
          "2oBYYZ5nWK0",
          "IQZPC0sFqMk",
          "q6x8J7QIakI",
          "fwP2JW_VnZI"
        ]
      },
      {
        "label": "bit",
        "share": 0.93,
        "evidenceVideoIds": [
          "w0SQGCt-6Ro",
          "2oBYYZ5nWK0",
          "IQZPC0sFqMk",
          "q6x8J7QIakI",
          "fwP2JW_VnZI"
        ]
      },
      {
        "label": "devops",
        "share": 0.77,
        "evidenceVideoIds": [
          "w0SQGCt-6Ro",
          "2oBYYZ5nWK0",
          "q6x8J7QIakI",
          "fwP2JW_VnZI",
          "MFjDt6ONWzk"
        ]
      },
      {
        "label": "grab",
        "share": 0.6,
        "evidenceVideoIds": [
          "w0SQGCt-6Ro",
          "2oBYYZ5nWK0",
          "fwP2JW_VnZI",
          "tCehFMwjWqM",
          "Cpy20DnIDTI"
        ]
      },
      {
        "label": "machine learning",
        "share": 0.03,
        "evidenceVideoIds": [
          "fkKIcCzA5jk"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 29,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "TechWorld with Nana — 1.4M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 29,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.81,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "138a796606ec1c6caf727c3d83a673fa96e418f5465e08db48340eeff5997cee",
      "inputsHash": "b663cba22feaf6cca1646332bb963a62d83a07e4e139b363cc3d9f2aaa480b5b",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:26.812Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "7b3439328bed9ee617ee334d96baf9191f31f791f1d2a8b1243a907e92c9e00b",
    "channelId": "UC9x0AN7BWHpCDHSm9NiJFJQ",
    "channelHandle": "@NetworkChuck",
    "channelName": "NetworkChuck",
    "channelUrl": "https://www.youtube.com/@NetworkChuck",
    "description": "Welcome to NetworkChuck!\n\nI LOVE Information Technology!! My goal is to help as MANY PEOPLE AS POSSIBLE jump into a career in the IT field through obtaining IT Certifications. I talk about Cisco Certifications, CompTIA, AWS, Microsoft...pretty much EVERYTHING in IT. As a CBT Nuggets Trainer, it's also my passion to TEACH information technology and to make it FUN. \n\nIf your goals are to obtain your CCNA, CompTIA A+, CompTIA Network+...I'm here to help you with that goal in any way I can!\n\n*****Interested in Sponsoring NetworkChuck? Email chuck@networkchuck.com",
    "joinDate": null,
    "location": null,
    "subscribers": 5250000,
    "totalVideos": 590,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_k01-_GpvVZW8w4ULtaQaa55ls8aMf2a5dXhIe56pjMvG0=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "networkchuck.com",
        "url": "https://networkchuck.com"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/networkchuck"
      },
      {
        "platform": "instagram",
        "url": "https://instagram.com/networkchuck"
      },
      {
        "platform": "twitch",
        "url": "https://twitch.tv/networkchuck"
      },
      {
        "platform": "ntck.co",
        "url": "https://ntck.co/more"
      }
    ],
    "recentVideos": [
      {
        "videoId": "G3jvn7n-68Y",
        "title": "i didn't want to like this....",
        "publishedAt": "1 month ago",
        "durationSeconds": 1063,
        "views": 286425,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Perplexity Computer (I'm working with Perplexity on this one to give you an honest look): https://ntck.co/perplexity\n\nPerplexity Computer is a $200/month AI system that orchestrates 19 frontier models, runs in the cloud while you sleep, and builds real apps from a single prompt. I built my own AI system — 103 skills, multiple models, AI employees — and didn't want to like it. But after building 7 real projects from my phone in Japan, I have to be honest about what happened.\n\nIn this video, you'll learn how Perplexity Computer works under the hood — Firecracker micro VMs, multi-model orchestration, sandboxed sub-agents — and see real projects built from scratch: a gaming website, a cult investigation dashboard, a self-improving Japanese learning app, and more. Whether you're evaluating AI coding tools or looking for the fastest way to turn ideas into real apps, this honest review covers the good, the bad, and the real credit costs.\n\n---\n\nJoin the NetworkChuck Academy!: https://ntck.co/NCAcademy\n\n---\n\nRESOURCES / LINKS:\n🌐 Perplexity Computer: https://ntck.co/perplexity\n💻 Keith Arcade (play the games I built): https://keitharcade.networkchuck.video\n💻 Konbini Quest (Japanese convenience store RPG): https://konbiniquest.networkchuck.video\n💻 Yellow Deli Files (the cult investigation): https://yellowdelifiles.networkchuck....\n💻 Blockbuster POS Simulator: https://blockbuster.networkchuck.video\nCost Subsidy report: https://github.com/NetworkChuckTeam/5...\n📖 Perplexity Computer Launch Blog: https://www.perplexity.ai/hub/blog/co...\n📺 My AI Employee video (OpenClaw):    • OpenClaw......RIGHT NOW??? (it's not what ...  \n📺 My Personal AI Infrastructure video:    • You've Been Using AI the Hard Way (Use Thi...  \n\n---\n\nTIMESTAMPS:\n0:00 - I built my own AI system and didn't want to like this\n2:18 - What is Perplexity Computer and how does it work\n3:00 - Building a Blockbuster POS system in one prompt\n3:39 - How the orchestrator routes your prompts to 19 models\n4:46 - Firecracker micro VMs and sandboxed sub-agents\n6:36 - Self-improving apps that run while you sleep\n7:43 - Building a full gaming website for my kids\n9:44 - Why my ideas started pouring out\n11:03 - I accidentally found a cult in Japan\n12:30 - How much Perplexity Computer actually costs\n14:06 - Everything else I built with Perplexity Computer\n14:50 - What my kids built on their own\n15:25 - My honest verdict on Perplexity Computer\n\n---\n\n**Sponsored by Perplexity\n\n---\n\nSUPPORT NETWORKCHUCK:\n☕☕ COFFEE and MERCH: https://ntck.co/coffee\n\nREADY TO LEARN??\n🔥🔥Join the NetworkChuck Academy!: https://ntck.co/NCAcademy\n📚 CCNA Course: https://ntck.co/ccna\n\nFOLLOW ME EVERYWHERE:\nInstagram:   / networkchuck  \nX/Twitter: https://x.com/networkchuck\nFacebook:   / networkchuck  \nJoin the Discord server: https://ntck.co/discord\n\nSome links in this description are affiliate links. If you buy through them, I may earn a small commission at no extra cost to you.\n\n#perplexitycomputer #aitools #networkchuck",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eGSsoSEppNU",
        "title": "the WORST hack of 2026",
        "publishedAt": "1 month ago",
        "durationSeconds": 660,
        "views": 479698,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Axios, the most popular HTTP library with over 100 million weekly downloads, was just hijacked in one of the most sophisticated supply chain attacks in history. A hacker took over the lead maintainer's npm account, injected a phantom dependency that deploys a cross-platform remote access trojan in 1.1 seconds, and the malware erases itself leaving no trace. I break down exactly how it happened, explain what a supply chain attack is, and show you how to check if YOUR system is affected.\n\nnpm supply chain attack, axios hacked, axios npm compromised, supply chain attack explained, npm install malware, remote access trojan, axios 1.14.1, plain-crypto-js, npm security, javascript security, open source security, postinstall script attack, supply chain hack 2026\n\nTIMESTAMPS:\n0:00 - npm install just became DANGEROUS\n0:41 - How the attack happened\n0:52 - What is Axios? (and why you probably have it)\n1:39 - The account takeover\n2:20 - The ONE line of code that did it all\n3:06 - How it was discovered\n3:32 - The postinstall dropper\n4:08 - The RAT payload (Mac, Windows, Linux)\n4:28 - The self-destruct (no evidence left)\n4:40 - What IS a supply chain attack?\n4:55 - The coffee analogy\n5:51 - Are YOU affected? Let's check together\n6:34 - Checking for the RAT on your system\n6:51 - What to do if you're compromised\n7:50 - Prayer\n9:19 - BONUS: Pikachu explains supply chain attacks\n\nALL COMMANDS, DETECTION SCRIPTS, IOCs, AND REMEDIATION:\nhttps://github.com/theNetworkChuck/ax...\n\nQuick check:\nnpm list axios\nnpm list -g axios\n\nBAD VERSIONS: 1.14.1 and 0.30.4\nSAFE VERSIONS: 1.14.0 and 0.30.3\n\nOne command that would have BLOCKED this attack:\nnpm config set min-release-age 3\n\nRESOURCES:\nSocket.dev (first to detect): https://socket.dev/blog/axios-npm-pac...\nStepSecurity deep dive: https://www.stepsecurity.io/blog/axio...\nGitHub Issue: https://github.com/axios/axios/issues...\nHuntress Blog: https://www.huntress.com/blog/supply-...\n\nJohn Hammond Video:    • HUGE npm axios supply chain attack  \nJohn Hammond Livestream:    • 🚨 NPM axios Supply Chain Attack 🚨  \n\nSUPPORT NETWORKCHUCK:\nNetworkChuck Academy: https://academy.networkchuck.com\n\nFOLLOW ME EVERYWHERE:\nTwitter:   / networkchuck  \nInstagram:   / networkchuck  \nTikTok:   / networkchuck  \nDiscord:   / discord  \n\nREADY TO LEARN??\nNetworkChuck Academy: https://academy.networkchuck.com\nYouTube Membership: https://www.youtube.com/networkchuck/...\n\n#npm #supplychain #cybersecurity",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "T-HZHO_PQPY",
        "title": "OpenClaw......RIGHT NOW??? (it's not what you think)",
        "publishedAt": "1 month ago",
        "durationSeconds": 2084,
        "views": 979861,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get your own VPS and set up OpenClaw: https://hostinger.com/ncopenclaw Use code NETWORKCHUCK!\n\nOpenClaw has 308K GitHub stars — more than React, more than the Linux kernel. But what IS it actually? I set it up on a VPS, gave it a Telegram bot, and watched it build a news briefing and server monitoring dashboard in minutes — something that took an entire n8n workflow video to do before. But I also kinda hate it. In this video, I cut through the hype and give you my honest take as someone who built the same thing with Claude Code before OpenClaw existed.\n\nIn this video, you'll learn how to install OpenClaw on a Linux VPS in under 5 minutes, connect it to Telegram, build an AI news briefing agent and IT monitoring dashboard, understand the four pillars of OpenClaw (AI models, channels, memory, and tools), configure security with the built-in security audit, set up tool profiles and red lines, and decide if OpenClaw is right for you. Whether you're an AI enthusiast drowning in hype or a sysadmin curious about AI agents, this covers everything from one-line install to hardened security config.\n\n\nRESOURCES / LINKS: \n🎓 NetworkChuck Academy (OpenClaw Course):https://ntck-ac.co/oc1\n💻 GitHub Setup Guide (all commands): https://github.com/theNetworkChuck/op... \n🌐 OpenClaw: https://openclaw.ai \n🛠️ ClawHub (Skills Directory): https://clawhub.com \n🛠️ Hostinger VPS: https://hostinger.com/ncopenclaw \n📺 n8n Automation Video:    • You NEED to Use n8n RIGHT NOW!! (Free, Loc...   \n☕ NetworkChuck Coffee: https://networkchuck.coffee \n\n\nTIMESTAMPS: \n0:00 - OpenClaw stressed me out (308K GitHub stars) \n1:44 - Setting up OpenClaw in 5 minutes on a VPS \n4:22 - Connecting Telegram and hatching your agent \n7:30 - Project 1: AI news briefing (one sentence vs entire n8n workflow) \n8:14 - Project 2: AI IT engineer monitoring your own server \n9:34 - What IS OpenClaw actually? (gateway + 4 pillars) \n15:07 - Tools, cron jobs, and heartbeats \n17:08 - ClawHub skills, browser, and sub-agents \n19:27 - Why everyone freaked out (my honest take) \n20:55 - Securing your OpenClaw instance \n30:01 - My verdict: how I actually use OpenClaw\n\n\n**Sponsored by Hostinger\n\n\n\nSUPPORT NETWORKCHUCK: \n☕☕ COFFEE and MERCH: https://ntck.co/coffee\n\n\nREADY TO LEARN?? \n🔥🔥Join the NetworkChuck Academy!: https://ntck.co/NCAcademy \n📚 CCNA Course: https://ntck.co/ccna\n\n\nFOLLOW ME EVERYWHERE: \nInstagram:   / networkchuck   \nX/Twitter: https://x.com/networkchuck \nFacebook:   / networkchuck   \nJoin the Discord server: https://ntck.co/discord\n\n\nSome links in this description are affiliate links. If you buy through them, I may earn a small commission at no extra cost to you.\n\n\n#openclaw #aiagents #networkchuck",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dbMXi9q78Tk",
        "title": "I almost quit YouTube....",
        "publishedAt": "2 months ago",
        "durationSeconds": 1388,
        "views": 831847,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try TwinGate for FREE (5 users): https://ntck.co/twingate\nAccess your homelab, NAS, and servers from anywhere with zero trust network access!\n\nAI is stressing me out—like, a LOT. So much that I almost quit YouTube. In this video, I'm coming to you from Okinawa, Japan where I've been on a 3-month sabbatical trying to find clarity in the middle of the most intense AI wave we've ever seen. I talk about what's really happening in our industry, the burnout that nobody's talking about, and why I'm choosing relentless optimism over fear.\n\nIn this video, you'll hear my honest take on AI burnout, the viral Matt Schumer article, OpenClaw, tech layoffs in 2026, and why the anxiety is the real problem—not the robots. Whether you're a network engineer worried about your career, an IT professional feeling paralyzed by the pace of change, or just someone who loves tech but feels overwhelmed, this conversation is for you. I'm not pretending to have the answers anymore—I'm learning alongside you.\n\n\nJoin the NetworkChuck Academy!: https://ntck.co/NCAcademy\n\n\nRESOURCES / LINKS:\n🌐 Matt Schumer's Viral AI Article: https://x.com/mattshumer_\n📖 UC Berkeley AI Burnout Study (62% report anxiety by month 6)\n📖 Yale Budget Lab: AI labor displacement analysis\n📖 Fortune Article Rebuttal on AI coding claims\n📺 OpenClaw Series (coming soon on this channel!)\n🛠️ TwinGate - Zero Trust Network Access: https://ntck.co/twingate\n📺 NetworkChuck Academy: https://ntck.co/NCAcademy\n\n\nTIMESTAMPS:\n0:00 - AI is stressing me out and I almost quit YouTube\n1:20 - Why I'm in Japan for three months on sabbatical\n2:09 - The AI anxiety followed me to Okinawa\n3:03 - The love-hate relationship every techie has with AI\n3:51 - It's okay to feel overwhelmed by AI right now\n4:41 - OpenClaw, Schumer article, and what happened recently\n6:37 - UC Berkeley burnout study and 2026 tech layoff stats\n7:17 - Not everyone agrees with the AI doom narrative\n7:34 - TwinGate: Access your homelab from anywhere (Sponsor)\n9:36 - Is the viral Schumer article actually accurate?\n11:51 - The real problem isn't future job loss—it's today's anxiety\n12:26 - Why I froze and couldn't make an OpenClaw video\n13:23 - What I realized on a flight with no WiFi\n14:27 - I'm bad at AI and I'm being honest about it\n16:09 - I'm not quitting YouTube and I'm not pretending anymore\n16:21 - What's changing on this channel in 2026\n18:02 - The camera didn't kill painting and AI won't kill us\n19:46 - My phrase for 2026: Relentless Optimism\n20:51 - A prayer for this community\n\n\nFEATURING:\n👤 Matt Schumer (CEO, HyperWrite/OthersideAI): https://x.com/mattshumer_\n👤 Gary Marcus (NYU Professor, AI Critic): https://x.com/GaryMarcus\n👤 Daniel Miessler (AI/Security Expert): https://x.com/DanielMiessler\nYouTube:    / @danielmiessler  \n👤 Vishal Misra (Columbia University Professor): https://x.com/vishalmisra\n👤 Eric Markowitz (Managing Partner, Nightview Capital): https://x.com/EricMarkowitz\n\n\n**Sponsored by TwinGate\n\n\n\nSUPPORT NETWORKCHUCK:\n☕☕ COFFEE and MERCH: https://ntck.co/coffee\n\nREADY TO LEARN??\n🔥🔥Join the NetworkChuck Academy!: https://ntck.co/NCAcademy\n📚 CCNA Course: https://ntck.co/ccna\n\nFOLLOW ME EVERYWHERE:\nInstagram:   / networkchuck  \nX/Twitter: https://x.com/networkchuck\nFacebook:   / networkchuck  \nJoin the Discord server: https://ntck.co/discord\n\nSome links in this description are affiliate links. If you buy through them, I may earn a small commission at no extra cost to you.\n\n#ai #techcareers #networkchuck",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ocQ7ZKhHU5Q",
        "title": "Claude Code on your Phone is OFFICIAL (it changes  everything)",
        "publishedAt": "2 months ago",
        "durationSeconds": 451,
        "views": 293299,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get your CCNA at NetworkChuck Academy: https://academy.networkchuck.com\n\n\n  Remember when I hacked together a way to run Claude Code from my phone? That video blew up. Well… Anthropic saw it and said \"hold my\n  beer.\" They just dropped Remote Control — an OFFICIAL way to start a coding session on your laptop and control it from your phone. So\n  obviously I had to test it… at a zoo in Japan. 🦁\n\n  My AI kept coding while I was watching capybaras. This changes everything.\n\n\n  🔥🔥Join the NetworkChuck Academy!: https://ntck.co/NCAcademy\n\n\n  RESOURCES / LINKS:\n\n  📱 Claude Code Remote Control: https://docs.anthropic.com/en/docs/cl...\n  📺 My Previous Video (the DIY way):    • Claude Code on your phone in 10 minutes  \n  📢 Official Announcement: https://x.com/noahzweben/status/20263...\n  💻 Claude Code: https://docs.anthropic.com/en/docs/cl...\n\n\n  TIMESTAMPS:\n\n  0:00 - Claude Code just changed the game\n  0:34 - I'm in Japan and I have a problem\n  0:57 - Demo: Setting up Remote Control\n  1:33 - Controlling Claude Code from my phone\n  2:17 - This solves EVERYTHING\n  2:50 - I used it at the zoo with capybaras\n  3:13 - The Ask Tool works too\n  3:27 - My feature request to Anthropic\n  4:19 - NetworkChuck Academy\n  4:45 - Bonus: AI-generated thumbnails from my phone\n  5:30 - Outro\n  5:51 - Prayer\n\n\n  **Sponsored by NetworkChuck Academy\n\n\n  SUPPORT NETWORKCHUCK\n  ---------------------------------------------------\n  🎓🎓 Sign up for NetworkChuck Academy: https://ntck.co/NCAcademy\n\n  ☕☕ COFFEE and MERCH: https://ntck.co/coffee\n\n  🌐🌐 Use the MOST SECURE Web Browser, NetworkChuck Cloud Browser: https://browser.networkchuck.com/\n\n  🧠🧠 Use n8n, my favorite automation tool: https://ntck.co/n8n\n\n  🆘🆘 NEED HELP?? Join the Discord Server:   / discord  \n\n  STUDY WITH ME on Twitch: https://bit.ly/nc_twitch\n\n  READY TO LEARN??\n  ---------------------------------------------------\n  -Sign up for NetworkChuck Academy: https://ntck.co/NCAcademy\n  -Get your CCNA: https://bit.ly/nc-ccna\n\n  FOLLOW ME EVERYWHERE\n  ---------------------------------------------------\n  Instagram:   / networkchuck  \n  Twitter:   / networkchuck  \n  Facebook:   / networkchuck  \n  Join the Discord server: http://bit.ly/nc-discord\n\n\n  Do you want to know how I draw on the screen?? Go to https://ntck.co/EpicPen and use code NetworkChuck to get 20% off!!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_yfiUQSbdPY",
        "title": "become an AI HACKER (it's easier than you think)",
        "publishedAt": "2 months ago",
        "durationSeconds": 1006,
        "views": 328793,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Protect your family from AI-powered scams with Bitdefender Premium Security: https://bitdefend.me/NCTWOF\nFREE Cybersecurity Guide for Kids: https://bitdefend.me/NCTWOF\n\nIn part 1, you hacked baby Gandalf. That was cute. Now it's time to graduate. Jason Haddix—the guy who literally wrote the AI pentesting methodology—is back to show you Agent Breaker, a CTF you can host yourself, and the exact skills you need to start calling yourself an AI pentester.\n\nA 12-year-old solved this in 35 minutes. You have no excuses.\n\n🔥🔥Join the NetworkChuck Academy!: https://ntck.co/NCAcademy\n\nRESOURCES / LINKS:\n🧙 Baby Gandalf (start here): https://gandalf.lakera.ai/\n⚔️ Agent Breaker: https://gandalf.lakera.ai/agent-breaker\n🔧 Auto Parts CTF (GitHub): https://github.com/arcanum-ai/auto-pa...\n📚 Jason's AI Security Resource Hub: https://github.com/Arcanum-Sec/ai-sec...\n🎓 Jason's Official AI Hacking Courses: https://www.arcanum-sec.com/\n👤 Jason Haddix on Twitter/X: https://x.com/jhaddix\n📺 Part 1 — Hacking AI is TOO EASY:    • Hacking AI is TOO EASY (this should be ill...  \n\nTIMESTAMPS:\n0:00 - You need to learn AI hacking NOW\n1:03 - What is Agent Breaker?\n2:00 - Watching Jason hack Agent Breaker live\n4:05 - Bitdefender — Protect your family from AI scams\n5:15 - What I learned from Jason's approach\n5:51 - I tried 239 times on Level 1\n7:08 - Auto Parts CTF — a REAL AI pentest\n7:42 - Hosting the CTF yourself (Docker)\n8:40 - Watching Jason chain the full attack\n10:39 - What real AI pentesting looks like\n11:19 - A 12-year-old solved this in 35 minutes\n12:54 - Your AI hacking roadmap\n14:15 - Part 3 teaser (Parsel Tongue + elite tools)\n15:00 - Prayer\n\n**Sponsored by Bitdefender\n\nSUPPORT NETWORKCHUCK\n-------------------------------------------------\n🎓🎓 Sign up for NetworkChuck Academy: https://ntck.co/NCAcademy\n☕☕ COFFEE and MERCH: https://ntck.co/coffee\n🌐🌐 Use the MOST SECURE Web Browser, NetworkChuck Cloud Browser: https://browser.networkchuck.com/\n🧠🧠 Use n8n, my favorite automation tool: https://ntck.co/n8n\n🆘🆘 NEED HELP?? Join the Discord Server:   / discord  \n\nSTUDY WITH ME on Twitch: https://bit.ly/nc_twitch\n\nREADY TO LEARN??\n-------------------------------------------------\n-Sign up for NetworkChuck Academy: https://ntck.co/NCAcademy\n-Get your CCNA: https://bit.ly/nc-ccna\n\nFOLLOW ME EVERYWHERE\n-------------------------------------------------\nInstagram:   / networkchuck  \nTwitter:   / networkchuck  \nFacebook:   / networkchuck  \nJoin the Discord server: http://bit.ly/nc-discord\n\nDo you want to know how I draw on the screen?? Go to https://ntck.co/EpicPen and use code NetworkChuck to get 20% off!!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9LjgqZ2wP0g",
        "title": "I Tried running in 3D printed shoes",
        "publishedAt": "3 months ago",
        "durationSeconds": 874,
        "views": 117278,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out the Bambu Lab H2D -- a massive, multi-tool machine that can 3D print, laser engrave, laser cut, and more: https://ntck.co/H2D \n\n\nI 3D-printed a pair of shoes and ran five miles in them. It sounds insane, because it was. But this was only possible through the Bambu Lab H2D: a machine that goes far beyond normal 3D printing with dual nozzles, multi-material support, flexible TPU printing, laser engraving, laser cutting, and even plotting. My team and I tried out all of its features, and pushed the printer to its limit. Watch to the end to see if my shoes (or my feet) held up.\n\n🔥🔥Join the NetworkChuck Academy!: https://ntck.co/NCAcademy \n\n\nRESOURCES / LINKS:\n\n🖨️ 3D Printing Nerd YouTube Channel:    / 3dprintingnerd  \n\n👟 The shoe print I used:\nhttps://makerworld.com/en/models/1229...\n\n\n\nTIMESTAMPS:\n\n0:00 - Intro\n0:50 - Setup and Unboxing\n4:40 - Lasers\n6:43 - Cutting & Drawing\n7:43 - TPU (Soft Filament!)\n9:51 - The Run\n\n\n\n\n\n**Sponsored by BambuLabs\n\n\n\n\n\n\n\nSUPPORT NETWORKCHUCK\n---------------------------------------------------\n🎓🎓 Sign up for NetworkChuck Academy: https://ntck.co/NCAcademy \n\n☕☕ COFFEE and MERCH: https://ntck.co/coffee \n\n🌐🌐 Use the MOST SECURE Web Browser, NetworkChuck Cloud Browser: https://browser.networkchuck.com/\n\n🧠🧠 Use n8n, my favorite automation tool: https://ntck.co/n8n\n\n🆘🆘 NEED HELP?? Join the Discord Server:   / discord   \n\nSTUDY WITH ME on Twitch: https://bit.ly/nc_twitch \n\nREADY TO LEARN??\n---------------------------------------------------\n-Sign up for NetworkChuck Academy: https://ntck.co/NCAcademy \n-Get your CCNA: https://bit.ly/nc-ccna \n\nFOLLOW ME EVERYWHERE\n---------------------------------------------------\nInstagram:   / networkchuck   \nTwitter:   / networkchuck   \nFacebook:   / networkchuck   \nJoin the Discord server: http://bit.ly/nc-discord \n\n\n\n\nDo you want to know how I draw on the screen?? Go to https://ntck.co/EpicPen and use code NetworkChuck to get 20% off!! \n\n“Running 5 Miles in 3D Printed Shoes (It Was a Mistake)”\n“I Tried 3D Printing Shoes… Here’s What Happened”\n“This 3D Printer Can Do WAY More Than Printing”\n“Are 3D Printed Shoes the Future?”\n“I Ran 5 Miles in 3D Printed Shoes”\n“Testing the Craziest 3D Printer I’ve Ever Used”\n“Laser Cutting, Engraving, AND 3D Printing??”\n“Why This 3D Printer Blew My Mind”\n“Multi-Tool 3D Printer Review (Print, Cut, Engrave)”\n“Can You Actually Wear 3D Printed Shoes?”\n“TPU vs PLA: Printing Shoes the Hard Way”\n“The Most Versatile 3D Printer Ever?”\n“I Tried to Replace Shoes With a 3D Printer”\n“From Laser Engraving to Running Shoes”\n“This Printer Can Basically Do Everything”\n“3D Printing Shoes Was a Terrible Idea”\n“The Limits of 3D Printing (My Feet Found Them)”\n“Why 3D Printing Is More Powerful Than You Think”\n“Testing the Future of Custom Shoes”\n“I Abused a 3D Printer for Science”\n\n#3DPrinting #BambuLab #DIY",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "FEDiAHzS0zw",
        "title": "Claude Code on your phone in 10 minutes",
        "publishedAt": "3 months ago",
        "durationSeconds": 582,
        "views": 253183,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Set up your own FOREVER TERMINAL with Hostinger: https://hostinger.com/networkchuck (Use code NETWORKCHUCK for a discount)\n\n\nClaude Code is a terminal app… and that’s the problem. Phones don’t have terminals. So in this video, I build a forever terminal in the cloud that lets you run Claude Code from your phone, ANYWHERE. Airport. Couch. Plane. Bathroom. Whatever.\n\n\n🔥🔥Join the NetworkChuck Academy!: https://ntck.co/NCAcademy \n\n\nRESOURCES / LINKS:\n\n💻 GITHUB Guide: https://github.com/theNetworkChuck/re... \n\n☁️ Termius (mobile terminal app): https://termius.com\n\n📺 My previous video on Tmux:    • you need to learn tmux RIGHT NOW!!  \n\n🟩 Tmux: https://github.com/tmux/tmux\n\n\n\n\nTIMESTAMPS:\n\n0:00 - Intro\n1:04 - Forever Terminal\n2:34 - VPS Hardening\n3:27 - Mobile Access With Termius\n6:18 - Session Persistence with Tmux\n\n\n\n\n\n**Sponsored by Hostinger\n\n\n\n\n\nSUPPORT NETWORKCHUCK\n---------------------------------------------------\n🎓🎓 Sign up for NetworkChuck Academy: https://ntck.co/NCAcademy \n\n☕☕ COFFEE and MERCH: https://ntck.co/coffee \n\n🌐🌐 Use the MOST SECURE Web Browser, NetworkChuck Cloud Browser: https://browser.networkchuck.com/\n\n🧠🧠 Use n8n, my favorite automation tool: https://ntck.co/n8n\n\n🆘🆘 NEED HELP?? Join the Discord Server:   / discord   \n\nSTUDY WITH ME on Twitch: https://bit.ly/nc_twitch \n\nREADY TO LEARN??\n---------------------------------------------------\n-Sign up for NetworkChuck Academy: https://ntck.co/NCAcademy \n-Get your CCNA: https://bit.ly/nc-ccna \n\nFOLLOW ME EVERYWHERE\n---------------------------------------------------\nInstagram:   / networkchuck   \nTwitter:   / networkchuck   \nFacebook:   / networkchuck   \nJoin the Discord server: http://bit.ly/nc-discord \n\n\n\n\nDo you want to know how I draw on the screen?? Go to https://ntck.co/EpicPen and use code NetworkChuck to get 20% off!! \n\nRun Claude Code from Your Phone (Anywhere)\n\n\nI Built a FOREVER Terminal for Claude Code\n\n\nCode From Your Phone Using Claude Code\n\n\nClaude Code on Mobile (Secure & Persistent)\n\n\nHow to Use Claude Code Without a Laptop\n\n\nA Cloud Terminal That Never Dies\n\n\nThe Ultimate Remote Terminal Setup\n\n\ntmux Changed How I Use Claude Code\n\n\nSecure Cloud Terminal for Hacking Anywhere\n\n\nClaude Code Addiction Just Got Worse\n\n\nCoding from Your Phone Like a Hacker\n\n\nBuild a Cloud Terminal You Can Access Anywhere\n\n\nClaude Code Mobile Setup Tutorial\n\n\nThis Terminal Never Goes Down\n\n\nThe Best Way to Use Claude Code Remotely\n\n\nSSH Into Claude Code from Your Phone\n\n\nMy “Forever Terminal” Explained\n\n\nCloud Coding from Anywhere\n\n\nThe Ultimate Claude Code Setup\n\n\n#ClaudeCode #Linux #Terminal",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cT22fTzotYc",
        "title": "FREE Phone Calls with Claude Code",
        "publishedAt": "3 months ago",
        "durationSeconds": 1191,
        "views": 234450,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try 3CX for yourself (FREE tier available): https://www.3cx.com/try/?src=networkc...\n\n\nI gave my server a phone number… and now it can call me. In this video, I take a normal phone system (3CX) and connect it directly to my AI workflows running in the terminal. That means I can call my AI from any phone (even a payphone) and have it create tasks, send Slack messages, generate thumbnails, monitor my servers, and call me back when something breaks.\n\n🔥🔥Join the NetworkChuck Academy!: https://ntck.co/NCAcademy \n\n\nRESOURCES / LINKS:\n\n💻 GITHUB Guide: https://github.com/theNetworkChuck/cl...\n\n▶️ Setup video guide & walkthrough:    • Talk to Claude on 3CX Phone System Tutoria...  \n\n🧠 Use n8n, my favorite automation tool: https://ntck.co/n8n\n\n\n\n\n\nTIMESTAMPS:\n\n0:00 - Intro\n0:42 - The Platform\n7:27 - the Power\n9:28 - the Character\n15:01 - the Moment\n\n\n\n\n**Sponsored by 3CX\n\n\n\n\n\n\n\nSUPPORT NETWORKCHUCK\n---------------------------------------------------\n🎓🎓 Sign up for NetworkChuck Academy: https://ntck.co/NCAcademy \n\n☕☕ COFFEE and MERCH: https://ntck.co/coffee \n\n🌐🌐 Use the MOST SECURE Web Browser, NetworkChuck Cloud Browser: https://browser.networkchuck.com/\n\n🧠🧠 Use n8n, my favorite automation tool: https://ntck.co/n8n\n\n🆘🆘 NEED HELP?? Join the Discord Server:   / discord   \n\nSTUDY WITH ME on Twitch: https://bit.ly/nc_twitch \n\nREADY TO LEARN??\n---------------------------------------------------\n-Sign up for NetworkChuck Academy: https://ntck.co/NCAcademy \n-Get your CCNA: https://bit.ly/nc-ccna \n\nFOLLOW ME EVERYWHERE\n---------------------------------------------------\nInstagram:   / networkchuck   \nTwitter:   / networkchuck   \nFacebook:   / networkchuck   \nJoin the Discord server: http://bit.ly/nc-discord \n\n\n\n\nDo you want to know how I draw on the screen?? Go to https://ntck.co/EpicPen and use code NetworkChuck to get 20% off!! \n\nI Gave My AI a Phone Number (Now It Calls Me)\nMy Server Can Call Me Now… Here’s How\nI Turned a Phone System Into an AI Brain\nI Connected My Phone to the Terminal\nThis AI Can Call You When Your Server Breaks\nI Built an AI That Uses the Phone\nCalling My AI From a Payphone\nWhy I Gave My Server a Phone Number\nThis Phone System Changed How I Use AI\nAI That Calls You Back\nI Built an AI Phone System (This Changes Everything)\nMy AI Has a Phone Extension Now\nI Turned VoIP Into an AI Control Plane\nThis AI Answers the Phone and Runs My Life\nI Built AI Employees With a Phone System\nYour Phone System Is Smarter Than You Think\nI Let My AI Answer Calls (And Call Me Back)\nCalling My AI From Anywhere (No Internet)\nI Replaced Apps With Phone Calls\nThe Future of AI Is a Phone Call\n\n#VoIP #Automation #Homelab",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bFgTxr5yst0",
        "title": "Ethernet is DEAD?? Mac Studio is 100x FASTER!!",
        "publishedAt": "4 months ago",
        "durationSeconds": 1994,
        "views": 855504,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Hey…just try Twingate….you'll never look at VPN the same: https://ntck.co/twingate-networkchuck\n\n  I built another AI supercomputer with 4 Mac Studios... but this time it actually works. Earlier this year, I clustered 5 Mac Studios and it was 91% SLOWER. Everyone said clustering was stupid. But Apple just dropped a software update that changes everything - RDMA over Thunderbolt 5. Latency dropped from 300 microseconds to 3 microseconds. Now we're running trillion-parameter models locally at speeds that actually make sense.\n\n  🔥🔥Join the NetworkChuck Academy!: https://ntck.co/NCAcademy\n\n\n  RESOURCES / LINKS:\n\n  Docs/walkthrough: https://github.com/theNetworkChuck/ma...\n  Exo Labs: https://github.com/exo-explore/exo\n  MLX (Apple's ML Framework): https://github.com/ml-explore/mlx\n  My First Cluster Video (the failure):    • I built an AI supercomputer with 5 Mac Stu...  \n  RDMA Networking Explained:    • AI Networking is CRAZY!! (but is it fast e...  \n\n\n  TIMESTAMPS:\n\n  0:00 - The $50,000 AI Supercomputer\n  0:53 - What Apple Changed\n  3:05 - Connecting the Cluster\n  4:17 - Pipeline vs Tensor Parallelism\n  7:52 - RDMA: The 100x Latency Fix\n  10:02 - Twingate (Sponsor)\n  11:39 - Exo Labs is BACK\n  14:42 - Single Node vs Cluster Testing\n  17:58 - Qwen 3 Coder 480B Testing\n  19:03 - Kimi K2 (1 Trillion Parameters)\n  21:09 - Stacking Multiple Models\n  25:22 - Real Apps: Open WebUI + Xcode\n  27:57 - Final Thoughts\n  28:47 - How MLX Makes This Possible\n\n\n  **Sponsored by Twingate\n\n\n  THE SPECS:\n  • 4x Mac Studio M4 Ultra (512GB RAM each)\n  • 2TB unified memory / 320 GPU cores / 32TB storage\n  • $50,000 (vs $780,000+ for equivalent NVIDIA H100s)\n\n  THE RESULTS:\n  • Llama 3.3 70B: 16 tok/s (3x faster than before)\n  • Kimi K2 (1T params): 28 tok/s\n  • DeepSeek V3.1 671B: 27 tok/s\n  • Qwen 3 Coder 480B: 40 tok/s\n\n\n\n\n  SUPPORT NETWORKCHUCK\n  ---------------------------------------------------\n  🎓🎓 Sign up for NetworkChuck Academy: https://ntck.co/NCAcademy\n\n  ☕☕ COFFEE and MERCH: https://ntck.co/coffee\n\n  🌐🌐 Use the MOST SECURE Web Browser, NetworkChuck Cloud Browser: https://browser.networkchuck.com/\n\n  🧠🧠 Use n8n, my favorite automation tool: https://ntck.co/n8n\n\n  🆘🆘 NEED HELP?? Join the Discord Server:   / discord  \n\n  STUDY WITH ME on Twitch: https://bit.ly/nc_twitch\n\n  READY TO LEARN??\n  ---------------------------------------------------\n  -Sign up for NetworkChuck Academy: https://ntck.co/NCAcademy\n  -Get your CCNA: https://bit.ly/nc-ccna\n\n  FOLLOW ME EVERYWHERE\n  ---------------------------------------------------\n  Instagram:   / networkchuck  \n  Twitter:   / networkchuck  \n  Facebook:   / networkchuck  \n  Join the Discord server: http://bit.ly/nc-discord\n\n\n\n\n  Do you want to know how I draw on the screen?? Go to https://ntck.co/EpicPen and use code NetworkChuck to get 20% off!!\n\n  clustering works now. thank Apple and Exo Labs.\n\n  # #\n\n\n\n  TAGS:\n  mac studio cluster, ai supercomputer, local ai, rdma, exo labs, apple silicon, m4 ultra, unified memory, tensor parallelism, llm, kimi k2, deepseek, llama, mlx, thunderbolt 5, home lab ai, self hosted ai, 2tb ram, gpu cluster, apple ai",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tbCKWX34_G4",
        "title": "stop trusting cloud cameras!! (here's what I use instead)",
        "publishedAt": "4 months ago",
        "durationSeconds": 2365,
        "views": 632677,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get an exclusive 15% discount on Saily eSIM CTA data plans! Download Saily app and use code networkchuck at checkout: https://saily.com/networkchuck \n\nSomeone might be watching you through...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "s96JeuuwLzc",
        "title": "I'll never use n8n the same......",
        "publishedAt": "5 months ago",
        "durationSeconds": 1045,
        "views": 583691,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get 67% OFF Hostinger’s n8n self-hosting AND an extra 10% OFF with code NETWORKCHUCK: https://hostinger.com/ncn8n\n\nN8n just got stupid powerful. In this video, I show you how I wired Claude...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "o-8amaZBi5M",
        "title": "Hackers infected the wrong girlfriend....",
        "publishedAt": "5 months ago",
        "durationSeconds": 1617,
        "views": 447519,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get Bitdefender Premium Security with Scam Copilot: https://bitdefend.me/NCTWOF\n\n\n\nHidden inside Romania is a real cyber-crime-fighting team almost no one knows about: the Draco team. These...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pwWBcsxEoLk",
        "title": "You SUCK at Prompting AI (Here's the secret)",
        "publishedAt": "5 months ago",
        "durationSeconds": 1440,
        "views": 693419,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Level up your prompting skills with Coursera, and get 40% off for 3 months of Coursera Plus:  https://ntck.co/coursera \n\nYou’re probably using AI wrong. Don’t worry, it’s not your fault....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_KzObeom88Y",
        "title": "The Dark Web EXPOSED (FREE + Open-Source Tool)",
        "publishedAt": "5 months ago",
        "durationSeconds": 1227,
        "views": 994111,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Start your free ThreatLocker trial (no credit card required): https://www.threatlocker.com/networkchuck \n\nAt DEF CON, I met a dark web researcher who built “Robin”, an AI-powered Tor scraper...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qFsj6KL8_nU",
        "title": "DEFCON is Not What I Expected...",
        "publishedAt": "6 months ago",
        "durationSeconds": 941,
        "views": 330154,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Are you really still using VPN? It’s time for a change: https://ntck.co/defcon33\n\nWhat happens when you throw 30,000 hackers into one place? Welcome to DEF CON, my first ever hacker convention....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MsQACpcuTkU",
        "title": "You've Been Using AI the Hard Way (Use This Instead)",
        "publishedAt": "6 months ago",
        "durationSeconds": 2024,
        "views": 1993802,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Access your devices securely from anywhere with TwinGate: https://ntck.co/ai_terminal \n\n\nStill using AI in the browser? You’re doing it the slow way. In this video, I BREAK OUT of the GUI...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "FYL9e_aqZY0",
        "title": "This AI Supercomputer can fit on your desk...",
        "publishedAt": "6 months ago",
        "durationSeconds": 1439,
        "views": 1099340,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Access your devices securely from anywhere with TwinGate: https://ntck.co/dgxspark \n\n\nNVIDIA just sent me their smallest AI supercomputer that fits in the palm of my hand. This is the NVIDIA...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "budTmdQfXYU",
        "title": "n8n Now Runs My ENTIRE Homelab",
        "publishedAt": "7 months ago",
        "durationSeconds": 2837,
        "views": 964508,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Setup n8n in 5 min with https://hostinger.com/ncn8n + use code NETWORKCHUCK for a discount. \n\n🔥🧠 Check out our N8N COURSE on NetworkChuck Academy!: https://ntck.co/n8n_academy \n\nIn this...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GuTcle5edjk",
        "title": "you need to learn MCP RIGHT NOW!! (Model Context Protocol)",
        "publishedAt": "8 months ago",
        "durationSeconds": 2320,
        "views": 1471740,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🐳 Try for FREE the Docker MCP Catalog: https://dockr.ly/3UFTCj4\n🖥️ Download Docker Desktop: https://dockr.ly/3HgjIGj\n\n\nYou need to learn MCP Right Now!! The Model Context Protocol (MCP)...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "v477fvbj3rk",
        "title": "THIS Is Where the Internet Lives",
        "publishedAt": "8 months ago",
        "durationSeconds": 1084,
        "views": 1341611,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out Equinix and learn more about how they power the internet: https://eqix.it/4gioy31\n\nWhat if I told you the world’s biggest companies don’t use the internet like you and me? Instead,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Qvx2sVgQ-u0",
        "title": "Hacking AI is TOO EASY (this should be illegal)",
        "publishedAt": "9 months ago",
        "durationSeconds": 1599,
        "views": 1218953,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want to deploy AI in your cloud apps SAFELY? Let Wiz help: https://ntck.co/wiz\n\nCan you hack AI? In this video I sit down with elite AI hacker Jason Haddix to unpack how attackers compromise...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ONgECvZNI3o",
        "title": "You NEED to Use n8n RIGHT NOW!! (Free, Local, Private)",
        "publishedAt": "9 months ago",
        "durationSeconds": 1596,
        "views": 2491495,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Start using n8n with a VPS via https://hostinger.com/ncn8n + use code NETWORKCHUCK for a discount. \n\n🔥🧠 Check out our N8N COURSE on NetworkChuck Academy!: https://ntck.co/n8n_academy...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kxYh9RwLUFw",
        "title": "I'm done with the AI hype",
        "publishedAt": "10 months ago",
        "durationSeconds": 1218,
        "views": 214154,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn more about self-driving networks: https://juniper.net/provenAI\nSee AIOps in the data center with Juniper’s interactive demo: https://juniper.net/chucklovesdatacenters\nStay connected...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3BXE0e3QZ4U",
        "title": "got AI anxiety? Do this RIGHT NOW!",
        "publishedAt": "10 months ago",
        "durationSeconds": 1418,
        "views": 188960,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Are you really still using VPN? You need Twingate: https://ntck.co/twingate_telos \n\n\nIf you’ve got AI anxiety about your career, you need to watch this. In this video, I dive into the “Telos...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tTQ4vfCdMYw",
        "title": "I went to the LARGEST networking event in the world!",
        "publishedAt": "10 months ago",
        "durationSeconds": 736,
        "views": 96782,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Stay connected from anywhere–even Cisco Live. See how we keep our studio online with Twingate :https://ntck.co/twingate_ciscolive2025 \n\nI haven’t been back to Cisco Live since 2019. But...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4hkJX7LBdXc",
        "title": "I'm worried about Network Engineers.....",
        "publishedAt": "11 months ago",
        "durationSeconds": 1718,
        "views": 369180,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Thanks to Cisco for sponsoring me to come to CiscoLIVE 2025. This trip would not have been possible without them! Check out CiscoU: http://U.cisco.com/tutorials \n\nI went to Cisco LIVE 2025...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6P-vjgPx9ww",
        "title": "37 INSANE Linux Commands you NEED to Know in 2025",
        "publishedAt": "11 months ago",
        "durationSeconds": 665,
        "views": 365964,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Run your Linux homelab in the cloud with Hostinger: https://hostinger.com/networkchuck10 (Use code networkchuck10 for 10% off)\n\nThe top 37 Linux Commands you NEED to know (actually, 41🤫)....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6WYBvbn-mgQ",
        "title": "Can This Tiny Board Replace Your Entire HomeLab? – Zima Board 2",
        "publishedAt": "1 year ago",
        "durationSeconds": 1925,
        "views": 493416,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Data brokers are selling your info. Stop them with Incogni: https://incogni.com/networkchuck Plus, get 60% off Incogni with code: NetworkChuck\n\n\nZimaBoard 2 on Kickstarter: https://bit.ly/4jgh4y7...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LQAOeZBdZ2k",
        "title": "Saying Goodbye….",
        "publishedAt": "1 year ago",
        "durationSeconds": 1130,
        "views": 142171,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Stay close to what matters with Twingate: https://ntck.co/twingate_moses \n\n\nYou’ve probably seen Bernard Hackwell in my intros, my thumbnails, maybe even on a coffee mug. But he wasn’t...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 3,
      "uploadsLast90d": 9,
      "uploadCadenceWeekly": 0.7,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 293299,
      "viewsPerVideoP90Last90d": 831847,
      "viewVelocityTrend": "rising"
    },
    "performanceBaseline": {
      "p50Views": 293299,
      "p90Views": 831847,
      "p99Views": 831847,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 8,
      "sponsorBrandsDetected": [
        "Perplexity",
        "Hostinger",
        "TwinGate",
        "NetworkChuck Academy",
        "Bitdefender",
        "BambuLabs",
        "3CX",
        "Twingate",
        "Checkout",
        "Cisco"
      ],
      "affiliateLinkHosts": [
        "bit.ly"
      ],
      "sponsorshipFrequencyPercent": 89,
      "lastSponsoredVideoDate": "2026-04-14",
      "detectionDetail": [
        {
          "brand": "Perplexity",
          "videoId": "G3jvn7n-68Y",
          "confidence": 0.7,
          "evidence": "description: Sponsored by Perplexity",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:29.583Z"
        },
        {
          "brand": "Hostinger",
          "videoId": "T-HZHO_PQPY",
          "confidence": 0.95,
          "evidence": "description: Sponsored by Hostinger",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:29.583Z"
        },
        {
          "brand": "TwinGate",
          "videoId": "dbMXi9q78Tk",
          "confidence": 0.7,
          "evidence": "description: Sponsored by TwinGate",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:29.584Z"
        },
        {
          "brand": "NetworkChuck Academy",
          "videoId": "ocQ7ZKhHU5Q",
          "confidence": 0.7,
          "evidence": "description: Sponsored by NetworkChuck Academy",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:29.584Z"
        },
        {
          "brand": "Bitdefender",
          "videoId": "_yfiUQSbdPY",
          "confidence": 0.7,
          "evidence": "description: Sponsored by Bitdefender",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:29.584Z"
        },
        {
          "brand": "BambuLabs",
          "videoId": "9LjgqZ2wP0g",
          "confidence": 0.7,
          "evidence": "description: Sponsored by BambuLabs",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:29.584Z"
        },
        {
          "brand": "Hostinger",
          "videoId": "FEDiAHzS0zw",
          "confidence": 0.95,
          "evidence": "description: Sponsored by Hostinger",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:29.584Z"
        },
        {
          "brand": "3CX",
          "videoId": "cT22fTzotYc",
          "confidence": 0.7,
          "evidence": "description: Sponsored by 3CX",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:29.585Z"
        },
        {
          "brand": "Twingate",
          "videoId": "bFgTxr5yst0",
          "confidence": 0.7,
          "evidence": "description: Sponsored by Twingate",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:29.585Z"
        },
        {
          "brand": "Checkout",
          "videoId": "tbCKWX34_G4",
          "confidence": 0.7,
          "evidence": "description: use code networkchuck at checkout",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:29.585Z"
        },
        {
          "brand": "Cisco",
          "videoId": "4hkJX7LBdXc",
          "confidence": 0.7,
          "evidence": "description: Thanks to Cisco for sponsoring",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:29.585Z"
        }
      ]
    },
    "sponsorshipMaturity": {
      "tier": "regular",
      "evidence": {
        "sponsoredVideoCountLast90d": 8,
        "uniqueSponsorBrandsLast90d": 10,
        "firstSponsoredVideoDate": "2026-05-14"
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "ai-saas",
          "confidence": 0.25,
          "evidence": [
            "historical-sponsor:Perplexity"
          ]
        },
        {
          "category": "web-services",
          "confidence": 0.25,
          "evidence": [
            "historical-sponsor:Hostinger"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": "[REDACTED]",
      "businessEmailSource": "channel-about-section",
      "businessEmailMxValid": true,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "networkchuck.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "high",
      "components": {
        "businessEmailPresent": true,
        "businessEmailValid": true,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": true,
        "affiliateLinksPresent": true
      },
      "interpretation": "Will likely respond to sponsorship outreach: business email validated + active sponsor history + external website live."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.97,
        "evidenceVideoIds": [
          "G3jvn7n-68Y",
          "eGSsoSEppNU",
          "T-HZHO_PQPY",
          "dbMXi9q78Tk",
          "ocQ7ZKhHU5Q"
        ]
      },
      {
        "label": "ntck",
        "share": 0.63,
        "evidenceVideoIds": [
          "G3jvn7n-68Y",
          "T-HZHO_PQPY",
          "dbMXi9q78Tk",
          "ocQ7ZKhHU5Q",
          "_yfiUQSbdPY"
        ]
      },
      {
        "label": "com",
        "share": 0.6,
        "evidenceVideoIds": [
          "G3jvn7n-68Y",
          "eGSsoSEppNU",
          "T-HZHO_PQPY",
          "dbMXi9q78Tk",
          "ocQ7ZKhHU5Q"
        ]
      },
      {
        "label": "networkchuck",
        "share": 0.53,
        "evidenceVideoIds": [
          "G3jvn7n-68Y",
          "eGSsoSEppNU",
          "T-HZHO_PQPY",
          "dbMXi9q78Tk",
          "ocQ7ZKhHU5Q"
        ]
      },
      {
        "label": "code",
        "share": 0.47,
        "evidenceVideoIds": [
          "eGSsoSEppNU",
          "T-HZHO_PQPY",
          "ocQ7ZKhHU5Q",
          "_yfiUQSbdPY",
          "9LjgqZ2wP0g"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "A",
      "rationale": "active sponsor history, business email validated, content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "strong",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "regular"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 83,
      "reason": "regular sponsor history x validated business email x growth rising last 90d x fits ai-saas",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.85
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.95
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.85
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.45
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 1,
      "level": "high",
      "coldStart": false
    },
    "whyThisMatters": "regular sponsor history + validated business email + rising 90d view velocity + fits ai-saas. Channel is in the active outreach window.",
    "whyNow": "Last sponsored video 30 days ago — within typical sponsorship-decision lookback for similar creators.",
    "respondWithinDays": 3,
    "failureType": null,
    "summary": "NetworkChuck — 5.3M subs, A-tier sponsorship readiness, high contactability, respond within 3 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": true,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 83,
      "readyForOutreach": true,
      "blockers": [],
      "stepsToReady": []
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.27,
      "urgency": 0,
      "noiseRisk": 0
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": {
      "isValidFormat": true,
      "canonical": "chuck@networkchuck.com",
      "domain": "networkchuck.com",
      "lineType": "corporate",
      "mxValid": true,
      "confidence": 0.9,
      "originalInput": "chuck@networkchuck.com",
      "email": null
    },
    "allEmailValidations": [
      {
        "isValidFormat": true,
        "canonical": "chuck@networkchuck.com",
        "domain": "networkchuck.com",
        "lineType": "corporate",
        "mxValid": true,
        "confidence": 0.9,
        "originalInput": "chuck@networkchuck.com",
        "email": null
      }
    ],
    "contactabilityScore": {
      "score": 88,
      "level": "high",
      "components": {
        "presence": 25,
        "sourceQuality": 18,
        "validationQuality": 18,
        "identityStrength": 14,
        "freshness": 8,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "email",
      "secondary": "agency-form",
      "reason": "Validated business email + active sponsor history — email-first maximises response rate."
    },
    "sequenceFit": {
      "directOutreachAllowed": true,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "channel-about",
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.88
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.88,
      "gap": 0.06,
      "howToClose": [
        "Run ryanclinton/person-enrichment-lookup against 'chuck@networkchuck.com' to identify the inbox owner."
      ]
    },
    "recoveryPlan": null,
    "reachability": {
      "status": "high",
      "score": 0.85,
      "factors": [
        "business-email-validated",
        "external-website-active",
        "corporate-email-domain"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "active sponsor history + validated corporate business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:regular",
        "email-line-type:corporate",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [],
      "safeChannels": [
        "email",
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [
      {
        "email": "[REDACTED]",
        "rank": 1,
        "reason": "corporate-domain email",
        "role": "business"
      }
    ],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": true,
      "sendToAgencyRouter": false,
      "sendToCrm": true,
      "requiresEnrichment": false,
      "priorityQueue": "high"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "ai-saas",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "act",
      "reason": "A-tier readiness with validated contact and active sponsor history.",
      "appliedRules": [
        "tier:A",
        "contactability:high",
        "lastSponsored<90d"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [
      {
        "trigger": "regular-sponsor + high-contactability + tier-A",
        "play": "Draft personalised partnership pitch referencing recent sponsor categories",
        "owner": "sponsorship-team",
        "urgency": "high"
      }
    ],
    "timingWindow": {
      "status": "optimal",
      "reason": "Last sponsored video 30 days ago; within typical 14-30d decision-cycle for similar creators.",
      "decayRisk": 0.5
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 88,
      "reasons": [
        "A-tier sponsorship readiness — composite signal exceeds high-band threshold",
        "Validated business email (MX confirmed)",
        "Active sponsor history within last 90d (8 videos)",
        "Low confidence-conflict count in scoring trace"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "7b3439328bed9ee617ee334d96baf9191f31f791f1d2a8b1243a907e92c9e00b",
      "inputsHash": "f2d344f77f42189461a9f582ecf3968e4b996a1d5fad61ab25864b4bf64cc439",
      "rulesApplied": [
        "business-email-validated",
        "sponsorship-history-regular",
        "growth-velocity-rising",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:28.581Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "92ce56e0b7f064f9370f7c74e8924077866a6191e3e8b556f65613547e3b0c62",
    "channelId": "UCP7WmQ_U4GB3K51Od9QvM0w",
    "channelHandle": "@davidbombal",
    "channelName": "David Bombal",
    "channelUrl": "https://www.youtube.com/@davidbombal",
    "description": "Want to learn about IT? Want to get ahead in your career?  Well, this is the right place!\n\nOn this channel, I discuss Linux, Python, Ethical Hacking, Networking, CCNA, Virtualization and other IT related topics.\n\nThis YouTube channel has new videos uploaded every week! Subscribe for technical, detailed, no fluff content.\n\nAll the best!\nDavid",
    "joinDate": null,
    "location": null,
    "subscribers": 3050000,
    "totalVideos": 2100,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/BHBUxrUCPIYlg0k0m80ik0B72cSvovty6pLH6oQaBW3YsIigZrivjzK9J08BhNff5_xJkS2feQ=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "davidbombal.com",
        "url": "https://www.davidbombal.com"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/davidbombal"
      },
      {
        "platform": "linkedin",
        "url": "https://www.linkedin.com/in/davidbombal"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/davidbombal"
      }
    ],
    "recentVideos": [
      {
        "videoId": "oZ1sWLd6VM4",
        "title": "Is this laptop any good? (Real World Use cases)",
        "publishedAt": "3 days ago",
        "durationSeconds": 1358,
        "views": 38170,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This is not just another laptop review. It is a real-world test of the GeekBook X14 Pro\nfor Linux, VMs, local AI, travel, and technical work, with the good and the bad included.\n\nBig thank you to Geekom for sponsoring this video.  To get a discount on your Geekom X14 Pro and Geekom A5 Mini PC use the following codes: \n\n// Get your discounts here //\nFor GeekBook X14 Pro: \n10% Coupon: BOMGBOOK10\nX14 Pro US Amazon: https://amzn.id/JX3GtXD\nX14 Pro US Official: https://dub.sh/senrf2E\n\nFor GEEKOM A5 Mini PC:\n6% Coupon: A5DAVIDYT\nUK Official: https://dub.sh/xtDJnfM\nUK Amazon: https://amzn.id/oXXDOTI\n\nUnfortunately, the laptop is not available in the UK as yet.\n\n// David's SOCIAL // \nDiscord:   / discord   \nX:   / davidbombal   \nInstagram:   / davidbombal   \nLinkedIn:   / davidbombal   \nFacebook:   / davidbombal.co   \nTikTok:   / davidbombal   \nYouTube:    / @davidbombal  \nSpotify:  https://open.spotify.com/show/3f6k6gE...\nSoundCloud:    / davidbombal  \nApple Podcast:  https://podcasts.apple.com/us/podcast...\n\n// MY STUFF //\n https://www.amazon.com/shop/davidbombal \n\n// SPONSORS // \nInterested in sponsoring my videos? Reach out to my team here: sponsors@davidbombal.com\n\n// MENU //\n0:00 - Geekom also makes laptops\n0:23 - A real review\n01:54 - Unboxing\n03:45 - Powering on for the first time // Laptop setup\n05:09 - Laptop specifications\n06:05 - Downloading VirtualBox & Kali Linux VM\n06:34 - Setting up VirtualBox & Kali Linux VM\n08:59 - Dawid laptop review\n13:10 - Russouw laptop review\n14:36 - Benchmark tests\n14:47 - Cinebench benchmark\n15:03 - Geekbench 6 CPU & GPU benchmark\n15:17 - Battery life\n15:56 - Real-time benchmark on battery\n16:51 - Gaming benchmark\n17:09 - AI benchmark\n18:06 - Overall laptop review\n18:50 - Local AI benchmark\n20:42 - Superposition Benchmark // GPU benchmark\n21:42 - Audio/Speakers review\n22:11 - GPU benchmark score\n22:29 - Conclusion\n\nPlease note that links listed may be affiliate links and provide me with a small percentage/kickback should you use them to purchase any of the items listed or recommended. Thank you for supporting me and this channel! \n\nDisclaimer: This video is for educational purposes only.\n\n#laptop #windows #linux",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UTqDuWHbZkw",
        "title": "Dual Boot Windows and Ubuntu Linux in 10 Minutes (2026)",
        "publishedAt": "10 days ago",
        "durationSeconds": 978,
        "views": 290249,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How to dual boot between Windows 11 and Ubuntu Linux - I'll show you all the steps - how to download the ISO, flash a USB drive, create space on your hard drive, repartition your SSD, configure the BIOS to boot correctly and install Ubuntu - basically all the steps to get Ubuntu installed and working in a few minutes.\n\nNote: I was NOT paid to make this video. However, because Geekom gave me the laptop used in the video I've marked it as sponsored. \n\nNote: I didn't use Ventoy in this video because of an issue with Ventoy - if you are interested in using Ventoy, have a look at this video for more information:    • Stop Reflashing USBs: Build a Ventoy Toolkit  \n\n// Other demonstrations //\nDual Boot between Windows 11 and Kali Linux:    • Dual Boot Windows and Kali Linux in 10 Min...  \n\n// David's SOCIAL // \nDiscord:   / discord   \nX:   / davidbombal   \nInstagram:   / davidbombal   \nLinkedIn:   / davidbombal   \nFacebook:   / davidbombal.co   \nTikTok:   / davidbombal   \nYouTube:    / @davidbombal  \nSpotify:  https://open.spotify.com/show/3f6k6gE...\nSoundCloud:    / davidbombal  \nApple Podcast:  https://podcasts.apple.com/us/podcast...\n\n// MY STUFF //\n https://www.amazon.com/shop/davidbombal \n\n// SPONSORS // \nInterested in sponsoring my videos? Reach out to my team here: sponsors@davidbombal.com\n\n// MENU //\n0:00 - Intro\n02:10 - Using Secure Boot for Dual Boot\n03:07 - Downloading and Installing Ubuntu\n04:12 - Downloading and Installing Rufus\n05:01 - Writing the ISO on to the USB\n06:30 - Disable Bitlocker\n07:44 - Checking and Shrinking Partitions\n09:46 - Installing Ubuntu\n13:52 - Booting in to Ubuntu\n15:06 - Dual Booting in Action\n16:06 - Outro\n\nPlease note that links listed may be affiliate links and provide me with a small percentage/kickback should you use them to purchase any of the items listed or recommended. Thank you for supporting me and this channel! \n\nDisclaimer: This video is for educational purposes only.\n\n#linux #windows #ubuntu",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0QUNUm06Llw",
        "title": "Stop Reflashing USBs: Build a Ventoy Toolkit",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 772,
        "views": 431005,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This is one of the utilities that I have found really useful. And the best part is that it is Open Source and Free!\n\nSave time and make it easier to install Linux or other operating systems. Keep lots of ISO images on a single USB stick or flash drive rather than having one for each operating system. No need to use Rufus or Etcher. \n\nNote: There is currently an issue with Ventoy 1.1.11 and Ubuntu. More details on GitHub: https://github.com/ventoy/Ventoy/issu...\n\n// GitHub REFERENCE in video //\nhttps://github.com/ventoy/Ventoy\n\n// To download Ventoy //\nhttps://www.ventoy.net/en/index.html\n\n// David's SOCIAL // \nDiscord:   / discord   \nX:   / davidbombal   \nInstagram:   / davidbombal   \nLinkedIn:   / davidbombal   \nFacebook:   / davidbombal.co   \nTikTok:   / davidbombal   \nYouTube:    / @davidbombal  \nSpotify:  https://open.spotify.com/show/3f6k6gE...\nSoundCloud:    / davidbombal  \nApple Podcast:  https://podcasts.apple.com/us/podcast...\n\n// MY STUFF //\n https://www.amazon.com/shop/davidbombal \n\n// SPONSORS // \nInterested in sponsoring my videos? Reach out to my team here: sponsors@davidbombal.com\n\n// MENU //\n0:00 - Intro\n0:32 - Demonstration \n02:39 - Advantages of Ventoy\n05:33 - How to Set Up Ventoy\n11:01 - Troubleshooting Secure Boot\n12:12 - Grub Install\n12:26 - Outro\n\nPlease note that links listed may be affiliate links and provide me with a small percentage/kickback should you use them to purchase any of the items listed or recommended. Thank you for supporting me and this channel! \n\nDisclaimer: This video is for educational purposes only.\n\n#ventoy #linux #windows",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CwzTXL7nOAE",
        "title": "Stop using these browsers in 2026!",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 1235,
        "views": 386858,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ad infested mess or bliss? What are you going to choose in 2026? \nBig thank you to DeleteMe for sponsoring this video. Use my link https://joindeleteme.com/Bombal to receive a 20% discount or use the QR Code in the video.\n\nPrivacy or tracking and selling of your data? What are you going to do?\n\nIn this video, I run a practical browser privacy test and compare how different browsers behave on real websites. I demonstrate how bad some browsers are compared to others (pop-ups, intrusive ads, tracking, cookie prompts, autoplay videos, and a huge amount of visual clutter) which results in more bandwidth, CPU and memory being used.\n\nNot only does this make browsing bad, but can it can also increase your privacy risks through data harvesting, aggressive tracking, and potentially\nmalicious ads.\n\nI tested a bunch of browsers in this video:\n1) Microsoft Edge\n2) Google Chrome\n3) Mullvad Browser\n4) Brave\n5) Tor\n6) LibreWolf\n7) DuckDuckGo Browser\n8)  Firefox\n9) Safari\n\n// David's SOCIAL // \nDiscord:   / discord   \nX:   / davidbombal   \nInstagram:   / davidbombal   \nLinkedIn:   / davidbombal   \nFacebook:   / davidbombal.co   \nTikTok:   / davidbombal   \nYouTube:    / @davidbombal  \nSpotify:  https://open.spotify.com/show/3f6k6gE...\nSoundCloud:    / davidbombal  \nApple Podcast:  https://podcasts.apple.com/us/podcast...\n\n// MY STUFF //\n https://www.amazon.com/shop/davidbombal \n\n// SPONSORS // \nInterested in sponsoring my videos? Reach out to my team here: sponsors@davidbombal.com\n\n// MENU //\n0:00 - Coming Up\n0:06 - Intro\n01:00 - DeleteMe Advert\n02:26 - Browser Public Preferences\n04:07 - Reviewing Microsoft Edge\n06:17 - Reviewing Mullvad\n07:45 - Comparing Microsoft Edge and Mullvad\n08:37 - Reviewing Tor Browser\n09:56 - Reviewing Chrome\n10:39 - Reviewing Brave\n10:53 - Reviewing LibreWolf\n11:28 - Reviewing DuckDuckGo\n12:10 - Reviewing Opera\n13:36 - Reviewing a Cyber Focused Website\n15:18 - Reviewing Safari\n16:48 - PrivacyGuides.org Recommendations\n16:31 - PrivacyTests.org Data\n19:56 - David's Recommendations\n20:21 - Conclusion\n\nPlease note that links listed may be affiliate links and provide me with a small percentage/kickback should you use them to purchase any of the items listed or recommended. Thank you for supporting me and this channel! \n\nDisclaimer: This video is for educational purposes only.\n\n#privacy #browser #best",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "niL4JPfcD3g",
        "title": "How to track dark ships using OSINT (with demos)",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 2998,
        "views": 327755,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Big thank you to DeleteMe for sponsoring this video. Use my link https://joindeleteme.com/Bombal to receive a 20% discount or use the QR Code in the video.\n\nIn this OSINT deep dive, professional OSINT analyst Ray Baker joins David Bombal to explore the shadowy world of maritime cybersecurity and vessel tracking. Discover the critical differences between the dark fleet and shadow fleet, and learn the exact open-source intelligence methods used to track ships attempting to hide their identities on the open ocean. From manipulating AIS tracking data and repainting ship decks to the terrifying reality of hacking Chinese-made port cranes, this video uncovers the hidden cyber threats facing global supply chains. We also explore the tools used by professionals, such as MarineTraffic and Equasis, to investigate illicit maritime activities and track adversarial movements.\n\n// Rae Baker’s SOCIAL //\nWebsite:  https://www.raebaker.net/\nLinkedIn:    / raebakerosint  \nX:  https://x.com/wondersmith_rae\n\n// Amazon Books REFERENCE //\nDeep Dive:  Exploring the Real-world Value of Open Source Intelligence\n\nUS:   https://amzn.to/4mw8Swo\nUK: https://amzn.to/4t6uhhQ\n\n// Website REFERENCE //\nhttps://www.marinetraffic.com/en/ais/...\nhttps://home.treasury.gov/\nhttps://tankertrackers.com/\n\n// Video REFERENCE //\nDeep Dive into OSINT:     • Deep Dive OSINT (Hacking, Shodan and more!)  \n\n// David's SOCIAL // \nDiscord:   / discord   \nX:   / davidbombal   \nInstagram:   / davidbombal   \nLinkedIn:   / davidbombal   \nFacebook:   / davidbombal.co   \nTikTok:   / davidbombal   \nYouTube:    / @davidbombal  \nSpotify:  https://open.spotify.com/show/3f6k6gE...\nSoundCloud:    / davidbombal  \nApple Podcast:  https://podcasts.apple.com/us/podcast...\n\n// MY STUFF //\n https://www.amazon.com/shop/davidbombal \n\n// SPONSORS // \nInterested in sponsoring my videos? Reach out to my team here: sponsors@davidbombal.com\n\n// MENU //\n0:00 - Coming Up\n0:52 - Intro\n01:25 - About Deep Dive\n03:15 - Sponsor\n04:14 - Opinions on AI\n06:20 - About Rae\n07:41 - What are Dark Fleets?\n10:04 - Automatic Identification Systems\n14:42 - TankerTrackers.com\n16:03 - MarineTraffic.com\n21:50 - Info to be Gained from Ports\n23:05 - Dark vs Shadow \n26:43 - Extrapolating Ship Information \n30:07 - Relevancy Of Ships to Cybersecurity\n32:23 - Implications of Cyber Threats\n34:41 - SHODAN.io\n37:31 - Why is Maritime OSINT important? \n40:02 - Commercial Reasons for OSINT\n43:15 - How to Track Ships When They Go Dark\n45:19 - Where to Learn More\n49:30 - Outro\n \nPlease note that links listed may be affiliate links and provide me with a small percentage/kickback should you use them to purchase any of the items listed or recommended. Thank you for supporting me and this channel! \n\nDisclaimer: This video is for educational purposes only.\n\n#osint #iran #cybersecurity",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "46hy3r_1VqY",
        "title": "How your ISP tracks you (even with encrypted DNS)",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 2000,
        "views": 151925,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "NOTE: DNS or HTTPS / Encrypted DNS won't make you invisible. Watch and find out.\n\nSome people believe that encrypted DNS makes them invisible, but is this video I use a live Wireshark capture to prove that your ISP can still see every website you visit. You will learn how to verify your own privacy leaks and a VPN are necessary to truly go dark on the wire.\n\nIn this deep-dive network lab, we use Wireshark and a physical ethernet tap to expose the truth about modern web privacy. You will see firsthand how your ISP can still track every website you visit, even when using encrypted DNS (DNS over HTTPS) and TLS 1.3. We demonstrate how the Server Name Indication (SNI) field in the Client Hello packet leaks your destination in plain text. The video explores advanced privacy technologies like Encrypted Client Hello (ECH) in Firefox and Cloudflare, explains why these features often break corporate filtering, and proves why a VPN remains the only definitive way to hide your traffic from network snooping and government logging.\n\n// YouTube video REFERENCE //\nThe one BIG mistake you are making with DNS security today:     • The one BIG mistake you are making with DN...  \n\n// Book REFERENCE //\nDNS & Bind 4th Edition\nUS:   https://amzn.to/4s8WaWm\nUK:  https://amzn.to/4sztLbB\n\n// David's SOCIAL // \nDiscord:   / discord   \nX:   / davidbombal   \nInstagram:   / davidbombal   \nLinkedIn:   / davidbombal   \nFacebook:   / davidbombal.co   \nTikTok:   / davidbombal   \nYouTube:    / @davidbombal  \nSpotify:  https://open.spotify.com/show/3f6k6gE...\nSoundCloud:    / davidbombal  \nApple Podcast:  https://podcasts.apple.com/us/podcast...\n\n// MY STUFF //\n https://www.amazon.com/shop/davidbombal \n\n// SPONSORS // \nInterested in sponsoring my videos? Reach out to my team here: sponsors@davidbombal.com\n\n// MENU //\n0:00 - DNS myths!\n01:53 - Jump to the timestamps\n02:16 - Debunking DNS myths\n02:59 - Interviewing Cricket Liu // Pros & Cons of DNS\n06:49 - DNS monitoring demo\n10:33 - Changing DNS provider in Chrome\n13:00 - Turning off Secure DNS in Chrome\n14:43 - TLSv1.3 is still visible // What is SNI?\n18:56 - DNS using CloudFlare\n22:11 - What is ECH?\n22:52 - TLSv1.3 is still visible continued\n26:53 - IP address lookup\n28:10 - Summary\n28:58 - Will using VPN help?\n31:32 - Conclusion\n\nPlease note that links listed may be affiliate links and provide me with a small percentage/kickback should you use them to purchase any of the items listed or recommended. Thank you for supporting me and this channel! \n\nDisclaimer: This video is for educational purposes only.\n\n#dns #myths #privacy",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OvLCY2F_3MA",
        "title": "Hackers are using AI to win. 3 ways to STOP them in 2026.",
        "publishedAt": "1 month ago",
        "durationSeconds": 3655,
        "views": 319072,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Are AI attackers winning the cybersecurity war? In this video, I sit down with Daniel Miessler, a 25-year security veteran, to discuss the terrifying reality of AI-driven cyber attacks and the massive advantage hackers have today. But it is not all doom and gloom. Daniel introduces his open-source project, PAI (Personal AI Infrastructure), demonstrating how you can build a customized, local AI assistant to automate your workflow, defend your data, and level up your tech skills. We cover everything from AI agents conducting prompt injection CTFs (like Gandalf) in real-time, to the future of work and why the ultimate goal of many corporations is zero human employees. Whether you are worried about AI replacing your job or you want to learn how to leverage local LLMs, Linux, and agentic AI to become an unstoppable force, this conversation is your blueprint for surviving and thriving in the 2026 tech landscape.\n\nGo here to get PAI for free: https://github.com/danielmiessler/Per...\n\n// Daniel’s SOCIAL //\nTwitter/X:    / danielmiessler  \nWebsite:  https://danielmiessler.com/\nGitHub:  https://github.com/danielmiessler\nLinkedIn:    / danielmiessler  \nYouTube:     / @unsupervised-learning  \n\n// David's SOCIAL // \nDiscord:   / discord   \nX:   / davidbombal   \nInstagram:   / davidbombal   \nLinkedIn:   / davidbombal   \nFacebook:   / davidbombal.co   \nTikTok:   / davidbombal   \nYouTube:    / @davidbombal  \nSpotify:  https://open.spotify.com/show/3f6k6gE...\nSoundCloud:    / davidbombal  \nApple Podcast:  https://podcasts.apple.com/us/podcast...\n\n// MY STUFF //\n https://www.amazon.com/shop/davidbombal \n\n// SPONSORS // \nInterested in sponsoring my videos? Reach out to my team here: sponsors@davidbombal.com\n\n// MENU //\n0:00 - Coming Up \n01:05 - Introduction \n02:06 - Daniel’s Background & His Predictions of The Future of AI \n05:52 - How Attackers use AI \n08:40 - Open Source SSL Vulnerability\n10:20 - Helping Businesses Scale using AI \n12:48 - Personal AI Infrastructure (PAI)\n15:54 - Empowering People To Believe in Themselves\n17:34 - Demo (PAI)\n31:12 - Examples of Using (PAI) for Automating Your Life \n34:13 - The Real Internet Of Things Concept\n37:39 - What Happens To Security & Privacy with Personalised AI \n42:43 - Running AI Locally For Privacy & Security Reasons \n44:44 - What Does AI Mean for Humans & Their Future \n50:00 - The AI Hype, Real or Fake ?\n56:01 - Will Universal basic Income be a Reality In the Future ?\n59:10 - The Advantages of AI \n01:00:23 - Outro & Conclusion \n\nPlease note that links listed may be affiliate links and provide me with a small percentage/kickback should you use them to purchase any of the items listed or recommended. Thank you for supporting me and this channel! \n\nDisclaimer: This video is for educational purposes only.\n\n#ai #anthropic  #mythos",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eFiHaEgXRlc",
        "title": "Hacking Windows Active Directory in 10 minutes",
        "publishedAt": "1 month ago",
        "durationSeconds": 1529,
        "views": 455643,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Thank you ThreatLocker for sponsoring my trip to ZTW26 and also for sponsoring this video. To start your free trial with ThreatLocker please use the following link:  https://www.threatlocker.com/davidbombal\n\n// Spencer Alessi’s SOCIAL //\nYouTube:     / @techspence  \nWebsite:  https://spenceralessi.com/adsecuritykit/\nX:  https://x.com/techspence\nLinkedIn:    / spenceralessi  \nSwag:  https://www.etsy.com/shop/ethicalthre...\n\n// ThreatLocker’s SOCIAL //\nLinkedIn:  https://www.linkedin.com/company/thre...\nX:  https://x.com/threatlocker\nInstagram:    / threatlocker  \nWebsite:  https://www.threatlocker.com/\n\n// David's SOCIAL // \nDiscord:   / discord   \nX:   / davidbombal   \nInstagram:   / davidbombal   \nLinkedIn:   / davidbombal   \nFacebook:   / davidbombal.co   \nTikTok:   / davidbombal   \nYouTube:    / @davidbombal  \nSpotify:  https://open.spotify.com/show/3f6k6gE...\nSoundCloud:    / davidbombal  \nApple Podcast:  https://podcasts.apple.com/us/podcast...\n\n// MY STUFF //\n https://www.amazon.com/shop/davidbombal \n\n// SPONSORS // \nInterested in sponsoring my videos? Reach out to my team here: sponsors@davidbombal.com\n\n// MENU //\n0:00 - Coming up\n0:54 - Spencer Alessi introduction & background\n02:20 - Pentesting demo // Active Directory\n03:34 - Control paths // Finding bad permissions with ADeleg\n06:04 - Finding bad permissions with NetTools\n06:52 - The most common issue\n08:15 - Certificate abuse\n12:20 - Quick recap\n12:30 - Certificate abuse continued\n15:10 - Pentesting summary\n15:09 - How to become a pentester\n18:48 - Recommended certifications\n20:54 - Advice for blue teamers\n22:15 - Overcoming being an introvert // Soft skills vs tech skills\n23:43 - Windows hacking in the real world\n24:54 - Conclusion\n\nPlease note that links listed may be affiliate links and provide me with a small percentage/kickback should you use them to purchase any of the items listed or recommended. Thank you for supporting me and this channel! \n\nDisclaimer: This video is for educational purposes only.\n\n#microsoft #windows11 #hacker",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "t_Oy395P4Q0",
        "title": "WhatsApp Hackers for Hire on the Dark Web (Surprisingly cheap)",
        "publishedAt": "1 month ago",
        "durationSeconds": 1651,
        "views": 369134,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Thank you to ThreatLocker for sponsoring my trip to ZTW26 and also for sponsoring this video.  To start your free trial with ThreatLocker please use the following link:  https://www.threatlocker.com/davidbombal\n\n// Colin Ellis’ SOCIAL //\nLinkedIn:    / collinellis95  \n\n// ThreatLocker’s SOCIAL //\nLinkedIn:  https://www.linkedin.com/company/thre...\nX:  https://x.com/threatlocker\nInstagram:    / threatlocker  \nWebsite:  https://www.threatlocker.com/\n\n// David's SOCIAL // \nDiscord:   / discord   \nX:   / davidbombal   \nInstagram:   / davidbombal   \nLinkedIn:   / davidbombal   \nFacebook:   / davidbombal.co   \nTikTok:   / davidbombal   \nYouTube:    / @davidbombal  \nSpotify:  https://open.spotify.com/show/3f6k6gE...\nSoundCloud:    / davidbombal  \nApple Podcast:  https://podcasts.apple.com/us/podcast...\n\n// MY STUFF //\n https://www.amazon.com/shop/davidbombal \n\n// SPONSORS // \nInterested in sponsoring my videos? Reach out to my team here: sponsors@davidbombal.com\n\n// MENU //\n0:00 - Coming up\n01:00 - Intro\n02:24 - Demo Start - Clear Net\n03:37 - Tails and Tor\n04:55 - Navigating the Dark Web\n07:28 - Hire a Hacker\n14:30 - Script Kitties and We The North\n20:42 - Zero Trust World\n21:46 - Ransomware Group Clop\n23:35 - Digital Hygiene\n27:17 - Outro\n\nPlease note that links listed may be affiliate links and provide me with a small percentage/kickback should you use them to purchase any of the items listed or recommended. Thank you for supporting me and this channel! \n\nDisclaimer: This video is for educational purposes only.\n\n#darkweb #hacking #tor",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Il4zammf52w",
        "title": "Google Big Sleep: The End of Human Hackers?",
        "publishedAt": "1 month ago",
        "durationSeconds": 4102,
        "views": 337213,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Big thank you to DeleteMe for sponsoring this video.  Use my link http://jointdeleteme.com/Bombal to receive a 20% discount or use the QR code in the video.\n\nWelcome back to the channel! In this deep dive, Stephen returns to break down the rapidly evolving landscape of AI in cybersecurity. We explore the critical differences between offensive AI (using AI to enhance attacks) and adversarial AI (attacking the AI models themselves). Learn the mechanics behind prompt injection, LLM jailbreaking, and how vector databases are structured. We also analyze real-world case studies, including Google Project Zero's Big Sleep autonomous zero-day agent, and demonstrate how new AI-driven tools are being used for patch diffing and root cause analysis. Finally, we tackle the massive industry question: will AI replace human penetration testers, and what steps should you take right now to futureproof your tech career? Plus, a quick look at how automated agents are tackling API vulnerabilities like BOLA. \n\n// Stephen's Social // \nTwitter:   / steph3nsims   \nYouTube:    / @offbyonesecurity  \nDiscord:    / discord  \n\n// David's SOCIAL // \nDiscord:   / discord   \nX:   / davidbombal   \nInstagram:   / davidbombal   \nLinkedIn:   / davidbombal   \nFacebook:   / davidbombal.co   \nTikTok:   / davidbombal   \nYouTube:    / @davidbombal  \nSpotify:  https://open.spotify.com/show/3f6k6gE...\nSoundCloud:    / davidbombal  \nApple Podcast:  https://podcasts.apple.com/us/podcast...\n\n// MY STUFF //\n https://www.amazon.com/shop/davidbombal \n\n// SPONSORS // \nInterested in sponsoring my videos? Reach out to my team here: sponsors@davidbombal.com\n\n// MENU //\n0:00 - Coming Up\n01:10 - DeleteMe Ad\n02:29 - Intro\n03:25 - About Stephen\n06:10 - AI Explained\n09:45 - Why You Should Study AI\n13:04 - The Different AI Defined\n22:10 - Vector Databases\n24:05 - How Are Red Teamers Using AI\n28:47 - Where Red Teamers Can Practice\n34:10 - How Chatbots Work\n36:14 - AI's Affect on Companies / Jobs\n42:51 - What AI Can't Do\n44:33 - Exploit Mitigation\n48:47 - AI Hallucinations\n56:01 - Web Apps and API's\n59:46 - AI-Powered Products\n59:18 - Demo Begins\n01:03:01 - Final Thoughts\n01:06:23 - Where To Learn\n01:08:01 - Conclusion\n\nPlease note that links listed may be affiliate links and provide me with a small percentage/kickback should you use them to purchase any of the items listed or recommended. Thank you for supporting me and this channel! \n\nDisclaimer: This video is for educational purposes only.\n#ai #aihacking #artificalintelligence",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "u0ynt7CK2og",
        "title": "Vibe Hacking: How AI Is Helping Hackers",
        "publishedAt": "1 month ago",
        "durationSeconds": 4532,
        "views": 812780,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Big thank you to Radware for sponsoring this video. Download the Radware Global Threat Analysis Report 2026 here:  https://www.radware.com/threat-analysis-report/\n\nIn this interview, David...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PNWkvT3r3TQ",
        "title": "7 REAL 5-Minute Cybersecurity Hacks Everyone Should Know",
        "publishedAt": "1 month ago",
        "durationSeconds": 2210,
        "views": 424470,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Big thank you to ThreatLocker for sponsoring my trip to ZTW26 and also for sponsoring this video.  To start your free trial with ThreatLocker please use the following link:  https://www.threatlocke...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tFSb2lSgqwA",
        "title": "Stop buying AI security tools until you watch this",
        "publishedAt": "1 month ago",
        "durationSeconds": 1576,
        "views": 638938,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Thank you to ThreatLocker for sponsoring my trip to ZTW26 and also for sponsoring this video.  To start your free trial with ThreatLocker please use the following link:  https://www.threatlocker.co...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "b_KDCLBVng0",
        "title": "Hackers can bypass Your MFA In 2026 (And How To Stop It)",
        "publishedAt": "1 month ago",
        "durationSeconds": 2291,
        "views": 543213,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Thank you to ThreatLocker for sponsoring my trip to ZTW26 and also for sponsoring this video. To start your free trial with ThreatLocker please use the following link:  https://www.threatlocker.com...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "F2_0Rs36fSA",
        "title": "Warning and demo: Hackers can use AI to create malware",
        "publishedAt": "1 month ago",
        "durationSeconds": 579,
        "views": 328689,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Big thanks to @ThreatLocker  for sponsoring my trip to ZTW26 and also for sponsoring this video.  To start your free trial with ThreatLocker please use the following link:  https://www.threatlocker...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Rrr4HrI8E6g",
        "title": "The one BIG mistake you are making with DNS security today",
        "publishedAt": "1 month ago",
        "durationSeconds": 3486,
        "views": 440505,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Big thank you to Infoblox for sponsoring this video.  To learn more about Infoblox please visit:  https://www.infoblox.com/ \n\nDo you know the difference between encrypted DNS and secure DNS?...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KBIQE9fo8mU",
        "title": "Top 4 Web hacking demos for aspiring hackers (with labs and CTF)",
        "publishedAt": "1 month ago",
        "durationSeconds": 1513,
        "views": 531601,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Big thanks to @ThreatLocker for sponsoring my trip to ZTW26 and also for sponsoring this video.  To start your free trial with ThreatLocker please use the following link:  https://www.threatlocker....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KsXzTz5H2QQ",
        "title": "Every Reason Why I Hate AI and You Should Too",
        "publishedAt": "2 months ago",
        "durationSeconds": 3070,
        "views": 698506,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Big thanks to @ThreatLocker for sponsoring my trip to ZTW26 and also for sponsoring this video.  To start your free trial with ThreatLocker please use the following link:  https://www.threatlocker....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tya56SPQW78",
        "title": "VirtualBox VM Escape: Integer Overflow Explained Clearly",
        "publishedAt": "2 months ago",
        "durationSeconds": 2856,
        "views": 128897,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this episode, David Bombal sits down with vulnerability researcher Vladimir Tokarev (with Dawid on the interview) to show what AI-assisted vulnerability research looks like when it actually...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mJ6tgZcuFzU",
        "title": "How to hack IP Cameras (Ethically) and learn IoT hacking",
        "publishedAt": "2 months ago",
        "durationSeconds": 2548,
        "views": 362390,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Are your smart home devices spying on you? In this video, David Bombal interviews cybersecurity researcher and IoT penetration tester, Matt Brown, to reveal how to intercept and decrypt supposedly...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-SXddlIZkUs",
        "title": "You need to learn Splunk in 2026",
        "publishedAt": "2 months ago",
        "durationSeconds": 2108,
        "views": 198734,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn Splunk basics with James Hodge in this introductory tutorial. We dive into SPL, analyzing Linux logs, and a powerful AI Canvas demo for network troubleshooting.\n\nBig thanks to Cisco for...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lhypZBpHGcU",
        "title": "These 6 Sci-Fi Movies Predicted The AI Nightmare!",
        "publishedAt": "2 months ago",
        "durationSeconds": 4294,
        "views": 118251,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Big thanks to Brilliant for sponsoring this video. To try everything Brilliant has to offer, visit https://brilliant.org/davidbombal to start your 30-day free trial or scan the QR code onscreen...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9b4EjMsB5bg",
        "title": "DNS Explained using Wireshark: You probably don't know how DNS really works.",
        "publishedAt": "2 months ago",
        "durationSeconds": 2194,
        "views": 409313,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Big thank you to Infoblox for sponsoring this video.  For more information on Infoblox have a look at their website:  https://www.infoblox.com/ \n\n// Get Wireshark Certified //\nCheck out the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "aR5V30SUK6k",
        "title": "Firewall Demo of Red Team vs Blue Team: Hacking Finance Apps with AI Chatbots",
        "publishedAt": "2 months ago",
        "durationSeconds": 1719,
        "views": 1339222,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, we dive into a real-world Red Team vs. Blue Team scenario. We simulate a cyberattack on a Finance Application that has integrated a new LLM Chatbot. You’ll see firsthand how...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "A2GIi6cUqmc",
        "title": "Agentic AI is breaking your Cybersecurity controls (and how to solve it)",
        "publishedAt": "2 months ago",
        "durationSeconds": 1356,
        "views": 250891,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video David speaks to Peter Bailey (SVP and GM of Cisco’s Security business). AI agents are moving fast inside enterprises, and CISOs are hitting the brakes for one reason: the attack...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gbZfgoBN6tA",
        "title": "Official Cisco Ethical Hacking Course Is FREE",
        "publishedAt": "2 months ago",
        "durationSeconds": 1491,
        "views": 226634,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Cisco just announced massive changes for 2026, including free AI training, a new Ethical Hacking certificate, and the return of the Wireless track. In this video, I sit down with Ryan and Lacey...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WHOgdsEiyew",
        "title": "Top 7 OSINT tools REVEALED for 2026",
        "publishedAt": "2 months ago",
        "durationSeconds": 3168,
        "views": 375005,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Are you ready to see the 7 digital investigation tools that completely changed how I look at the internet? In this video, I’m REVEALING a powerful stack of OSINT (Open Source Intelligence)...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1kV6nCqcjZs",
        "title": "The 100Tbps AI Switch: Inside the Beast",
        "publishedAt": "3 months ago",
        "durationSeconds": 1919,
        "views": 230053,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Is this the most powerful network switch ever built? In this interview from Cisco Live, we look at the new generation of Cisco 8000 and Nexus switches capable of routing 100 Terabits per second....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "13qAUEWK6zI",
        "title": "NO Microsoft Account Needed: Windows 11 Local Setup (2026)",
        "publishedAt": "3 months ago",
        "durationSeconds": 909,
        "views": 192448,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Are you frustrated that Windows 11 forces you to sign in with a Microsoft account during installation? You are not alone. In this guide, I will show you the definitive \"Rufus Fix\" to completely...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OzVzo9gtiec",
        "title": "Password Cracking: Can a Rainbow table reverse a hashed password?",
        "publishedAt": "3 months ago",
        "durationSeconds": 3043,
        "views": 225576,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Big thank you to DeleteMe for sponsoring this video. Use my link http://joindeleteme.com/Bombal to receive a 20% discount or use the QR Code in the video. \n\nIn this interview, David Bombal...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 17,
      "uploadsLast90d": 30,
      "uploadCadenceWeekly": 2.33,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 337213,
      "viewsPerVideoP90Last90d": 638938,
      "viewVelocityTrend": "stable"
    },
    "performanceBaseline": {
      "p50Views": 337213,
      "p90Views": 638938,
      "p99Views": 812780,
      "outperformingVideosLast90d": 4
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 1,
      "sponsorBrandsDetected": [
        "Brilliant"
      ],
      "affiliateLinkHosts": [
        "amazon.com",
        "amzn.to",
        "brilliant.org"
      ],
      "sponsorshipFrequencyPercent": 3,
      "lastSponsoredVideoDate": "2026-03-15",
      "detectionDetail": [
        {
          "brand": "Brilliant",
          "videoId": "lhypZBpHGcU",
          "confidence": 0.95,
          "evidence": "description: thanks to Brilliant for sponsoring",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:29.682Z"
        }
      ]
    },
    "sponsorshipMaturity": {
      "tier": "occasional",
      "evidence": {
        "sponsoredVideoCountLast90d": 1,
        "uniqueSponsorBrandsLast90d": 1,
        "firstSponsoredVideoDate": "2026-05-14"
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "education",
          "confidence": 0.25,
          "evidence": [
            "historical-sponsor:Brilliant"
          ]
        },
        {
          "category": "ai-saas",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:AI assistants"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "davidbombal.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "medium",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": true,
        "affiliateLinksPresent": true
      },
      "interpretation": "Reachable but with gaps: missing one or more of email validation, sponsor history, or external website."
    },
    "topicPillars": [
      {
        "label": "sponsoring",
        "share": 0.7,
        "evidenceVideoIds": [
          "oZ1sWLd6VM4",
          "UTqDuWHbZkw",
          "0QUNUm06Llw",
          "CwzTXL7nOAE",
          "niL4JPfcD3g"
        ]
      },
      {
        "label": "https",
        "share": 0.67,
        "evidenceVideoIds": [
          "oZ1sWLd6VM4",
          "UTqDuWHbZkw",
          "0QUNUm06Llw",
          "CwzTXL7nOAE",
          "niL4JPfcD3g"
        ]
      },
      {
        "label": "www",
        "share": 0.63,
        "evidenceVideoIds": [
          "oZ1sWLd6VM4",
          "UTqDuWHbZkw",
          "0QUNUm06Llw",
          "CwzTXL7nOAE",
          "niL4JPfcD3g"
        ]
      },
      {
        "label": "please",
        "share": 0.57,
        "evidenceVideoIds": [
          "oZ1sWLd6VM4",
          "UTqDuWHbZkw",
          "0QUNUm06Llw",
          "CwzTXL7nOAE",
          "niL4JPfcD3g"
        ]
      },
      {
        "label": "big",
        "share": 0.5,
        "evidenceVideoIds": [
          "oZ1sWLd6VM4",
          "CwzTXL7nOAE",
          "niL4JPfcD3g",
          "46hy3r_1VqY",
          "Il4zammf52w"
        ]
      },
      {
        "label": "AI assistants",
        "share": 0.03,
        "evidenceVideoIds": [
          "OvLCY2F_3MA"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Tuesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "B",
      "rationale": "content pillars match high-value sponsor categories, consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "moderate",
        "businessContactSignal": "moderate",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "occasional"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 57,
      "reason": "fits education",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.5
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.6
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.55
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.45
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.6,
      "level": "medium",
      "coldStart": false
    },
    "whyThisMatters": "fits education. Channel is in the active outreach window.",
    "whyNow": "Last sponsored video 60 days ago — within typical sponsorship-decision lookback for similar creators.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "David Bombal — 3.0M subs, B-tier sponsorship readiness, medium contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 57,
      "readyForOutreach": false,
      "blockers": [
        "contactability:medium — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.53,
      "urgency": 0,
      "noiseRisk": 0.4
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": true,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "occasional sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:occasional",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": true,
      "requiresEnrichment": true,
      "priorityQueue": "medium"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "education",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "B-tier readiness — nurture or enrich before outreach.",
      "appliedRules": [
        "lastSponsored<90d"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "late",
      "reason": "Last sponsored video 60 days ago; past typical 14-30d decision-cycle for similar creators.",
      "decayRisk": 0.7
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 52,
      "reasons": [
        "Active sponsor history within last 90d (1 videos)"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "92ce56e0b7f064f9370f7c74e8924077866a6191e3e8b556f65613547e3b0c62",
      "inputsHash": "cd2f13cd9086046cc32297f1e93c02ead6ad5ff8214fbec9a555d7ea7ae59341",
      "rulesApplied": [
        "sponsorship-history-occasional",
        "growth-velocity-stable",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:28.623Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "b0f537c71e7a4394bda9c043b14cd609d5e4660e4e795720de609bf52615988f",
    "channelId": "UC4MdpjzjPuop_qWNAvR23JA",
    "channelHandle": "@DevOpsDirective",
    "channelName": "DevOps Directive",
    "channelUrl": "https://www.youtube.com/@DevOpsDirective",
    "description": "My goal with DevOps Directive (https://devopsdirective.com/) is to provide educational and entertaining (hopefully?…) content to enable engineers to level up their skills and keep up with the continuously evolving DevOps and Cloud Infrastructure landscape.\n\nI will be exploring many different types of media, including:\n\n- Video Tutorials\n- Open Source Projects\n- Interviews\n- Live & Recorded Screen Casts\n- Internet Office Hours\n\nTopics include:\n- Infrastructure as Code\n- Kubernetes\n- Databases\n- Networking\n- Security\n- Continuous Integration/Continuous Deployment\n- Monitoring\n- Cloud Providers\n- Career Advancement\n\nI am not an expert in all of these topics. That being said, I am good at reading documentation, asking the right questions, and explaining what I learn along the way.\n\nJoin me!\n\n-Sid",
    "joinDate": null,
    "location": null,
    "subscribers": 102000,
    "totalVideos": 82,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_lUjQeQyFaZmA4peQptxDwOoa89ONEjIDvDWWV9NkRIbA=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "devopsdirective.com",
        "url": "https://devopsdirective.com/"
      },
      {
        "platform": "discord.devopsdirective.com",
        "url": "https://discord.devopsdirective.com"
      }
    ],
    "recentVideos": [
      {
        "videoId": "A-beOnncri8",
        "title": "I Built a Remote Coding Agent Platform on Railway (OpenCode, Claude Code, Codex)",
        "publishedAt": "3 months ago",
        "durationSeconds": 5534,
        "views": 3450,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "With the rise of AI coding agents, I decided to build myself a way to run and secure them in the cloud!\n\nI started basic, with a single service and progressed to a custom control plane for launching and accessing as many agents as a I want!\n\n---\nThank you to Railway (https://railway.com?referralCode=P06L...) for sponsoring this video! I have used Railway since 2022 and have always admired their relentless focus on developer experience!\n\nGitHub Repo: https://github.com/sidpalas/backgroun...\nRailway Template: https://railway.com/deploy/background...\n\nTimestamps:\n00:00:00 - intro\n00:01:30 - motivation\n00:03:50 - mise \n00:05:08 - containerize opencode\n00:07:05 - deploy to railway\n00:13:30 - add code-server to container image\n00:17:54 - use railway API\n00:22:21 - build control plane api\n00:49:32 - add frontend\n01:01:59 - add proxy for sandbox access\n01:17:38 - add claude code and codex to container image\n01:22:22 - set up github access\n01:30:00 - end to end demo\n01:31:19 - conclusion\n\n--- \nJoin the Community: \n💬 Discord: https://discord.devopsdirective.com\n💻 GitHub: https://github.com/sidpalas/backgroun...\n🐥 Twitter:  https://x.com/sidpalas\n👨‍💼 LinkedIn:   / sid-palas  \n🌐 Website: https://devopsdirective.com\n\n--- \nCommunity size at time of posting: \nSubscribers: 98,682 \nChannel Views: 3,834,877",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Xwpi0ITkL3U",
        "title": "Complete GitHub Actions Course - From BEGINNER to PRO",
        "publishedAt": "7 months ago",
        "durationSeconds": 13356,
        "views": 182428,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn GitHub Actions to enable your teams to build and ship software faster!  🏗️ ⚙️ 🚀\n\nThis course covers everything from the fundamentals of the platform through building out a DevOps system complete with workflows to test, build, and deploy a microservice application!\n\n---\n\nThank you to Namespace (https://namespace.so/?utm_source=devo...) for sponsoring this course. It is because of their support that I am able to provide it to the community free of charge!\n\nNamespace provides:\nDrop-in hosted GitHub Action runners that accelerate jobs while reducing cost (often by changing just a single line in your configuration).\nBlazing-fast caching layers that keep dependency installs snappy.\nRemote Docker builders for dramatically quicker container image builds.\nDeep observability with insights into job timing and resource utilization you simply can't get in GitHub's native UI.\n\nIf you end up using Namespace, use the link above and let them know you found out about them through me!\n\n---\n\nWritten Course: https://courses.devopsdirective.com/g...\nGitHub Repo: https://github.com/sidpalas/devops-di...\n\n---\n\nTimestamps\n0:00:00 Introduction\n0:04:38 History and Motivation\n0:12:37 Why GitHub Actions?\n0:19:04 Setting up your Development Environment\n0:23:59 Core Features\n0:44:20 Advanced Features\n1:07:12 Marketplace Actions\n1:13:30 Authoring Actions\n1:31:35 Common Workflows\n1:40:43 Developer Experience\n1:57:31 Best Practices\n2:06:32 Capstone Project\n2:13:16 Capstone: Test Workflow\n2:42:50 Capstone: Build/Push Workflow\n3:08:39 Capstone: Update GitOps Manifests Workflow\n3:20:24 Capstone: Release Automation Workflow\n3:28:56 Capstone: Stale Issue/PR Workflow\n3:31:01 Capstone: Export Timing Data Workflow\n3:33:38 Capstone: Using Namespace for Improved Performance\n3:41:42 Conclusion\n\n--- \nJoin the Community: \n💬 Discord: https://discord.devopsdirective.com\n💻 GitHub: https://github.com/sidpalas/devops-di...\n🐥 Twitter:  https://x.com/sidpalas\n👨‍💼 LinkedIn:   / sid-palas  \n🌐 Website: https://devopsdirective.com\n\n--- \nCommunity size at time of posting: \nSubscribers: 90,682 \nChannel Views: 3,376,098",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2T86xAtR6Fo",
        "title": "Complete Kubernetes Course - From BEGINNER to PRO",
        "publishedAt": "1 year ago",
        "durationSeconds": 22481,
        "views": 501481,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn to use Kubernetes to deploy and operate your applications! 🚢 🚀\n\nThis course covers the foundations of Kubernetes, guides you through deploying a representative demo application, and then explores \"day 2\" operations (what happens after your application is running)\n\n---\n🔗 LINKS 🔗 \n\nWritten Course: https://courses.devopsdirective.com/k...\n\nGitHub Repo: https://github.com/sidpalas/devops-di...\n\nDiscord Community: https://discord.devopsdirective.com\n\nOptions to support financially:\nGitHub Sponsors (https://github.com/sidpalas?tab=spons...)\nBuy Me a Coffee (https://buymeacoffee.com/devopsdirective)\n---\n\nCloud provider sign-up links:\nGoogle Cloud Platform (https://cloud.google.com/free?hl=en)\nCivo Cloud (https://dashboard.civo.com/signup)\n\nOther tools used throughout the course:\nKluctl (https://kluctl.io/)\nKubernetes in Docker (https://kind.sigs.k8s.io/)\nCloudnative-PG (https://cloudnative-pg.io/)\nTrivy Operator (https://aquasecurity.github.io/trivy-...)\nExternal Secrets Operator (https://external-secrets.io/latest/)\nTilt (https://tilt.dev/)\n\n---\n\nTimestamps: \n00:00:00 - Intro\n00:06:41 -- History and Motivation\n00:12:08 -- Technology Overview\n00:22:15 -- Installation and Set Up (KinD, Civo, GKE)\n00:51:35 -- Built-in Kubernetes Resources\n02:52:31 -- Helm\n03:14:26 -- Demo Application\n03:25:23 -- Building Container Images\n03:33:55 -- Deploying the Demo Application\n03:48:42 -- GKE Logging and Monitoring\n03:50:59 -- Extending the Kubernetes API\n03:57:09 -- Deploying Auxiliary Tooling (Cloudnative-pg + Trivy Operator)\n04:14:59 -- Developer Experience (using Tilt and External Secrets Operator)\n04:35:42 -- Debugging Applications in Kubernetes\n04:46:24 -- Deploying to Multiple Environments (Kustomize, Helm, and Kluctl)\n05:25:14 -- Cluster/Node Upgrades\n05:35:18 -- Continuous Integration & Continuous Delivery (GitHub Actions + Kluctl GitOps)\n06:10:12 -- What's Next?\n06:13:16 -- Outro\n\n--- \nJoin the Community: \n💬 Discord: https://discord.devopsdirective.com \n💻 GitHub: https://github.com/sidpalas\n🐥 Twitter:   / sidpalas   \n👨‍💼 LinkedIn:   / sid-palas   \n🌐 Website: https://devopsdirective.com \n\n--- \nCommunity size at time of posting: \nSubscribers: 62,338 \nChannel Views: 2177555",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "oitx514tQgk",
        "title": "Deploy Containers on Railway (Docker Beginner to Pro -- BONUS VIDEO)",
        "publishedAt": "2 years ago",
        "durationSeconds": 1703,
        "views": 18391,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Deploying the sample application from DevOps Directive's \"Docker Beginner to Pro\" course to https://railway.com?referralCode=P06La2 (NOTE: This is affiliate link).\n\nCheck out the full course at: https://courses.devopsdirective.com/d...\n\nConfigurations can be found here: https://github.com/sidpalas/devops-di...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6TpXObxxFOU",
        "title": "Deploy Containers on Kubernetes (Docker Beginner to Pro - BONUS VIDEO)",
        "publishedAt": "2 years ago",
        "durationSeconds": 2739,
        "views": 12240,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Deploying the sample application from DevOps Directive's \"Docker Beginner to Pro\" course to a Kubernetes cluster running on Civo Cloud.\n\nCheck out the full course at: https://courses.devopsdirective.com/d...\n\nConfigurations can be found here: https://github.com/sidpalas/devops-di...\n\nThis video used to only be available via purchase (https://sidpalas.gumroad.com/l/uwhjr), but now it is freely available!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0Wc4-_DownU",
        "title": "Find Vulnerabilities Fast! New Docker CLI Command: Docker Scout",
        "publishedAt": "2 years ago",
        "durationSeconds": 640,
        "views": 11393,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Docker Desktop recently added the \"docker scout\" group of commands. They help to scan container images for known vulnerabilities so you can build more secure images!\n\nIf you want to learn more about docker and containers, check out my course: Complete Docker Course - From BEGINNER to PRO! (   • Complete Docker Course - From BEGINNER to ...  )\n\n---\n\nDocker Scout Documentation: https://docs.docker.com/scout/\nKubecon Europe 2023 Talk about tricking container image scanners:    • Malicious Compliance: Reflections on Trust...  \n\n---\n \nJoin the Community: \n💬 Discord:   / discord   \n💻 GitHub: https://github.com/sidpalas/devops-di... \n🐥 Twitter:   / sidpalas   \n👨‍💼 LinkedIn:   / sid-palas   \n🌐 Website: https://devopsdirective.com \n\n--- \nCommunity size at time of posting: \nSubscribers: 41660 \nChannel Views: 1311217",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RqTEHSBrYFw",
        "title": "Complete Docker Course - From BEGINNER to PRO! (Learn Containers)",
        "publishedAt": "3 years ago",
        "durationSeconds": 17061,
        "views": 792474,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn Docker and containers to improve your software systems! 🐳 📦\n\nThis course covers everything from getting started all the way through building a containerized web application and deploying it to the cloud!\n\n---\n\n🙏 Thank you to Shipyard (https://shipyard.build/) for sponsoring this course. It is because of their support that I am able to provide it to the community free of charge!\n\nShipyard is the easiest way to generate on-demand ephemeral environments (aka a new environment for every pull request) for your containerized applications. \n\nShipyard has also provided an exclusive coupon code for students of this course. The first 300 people to use the code \"DEVOPSDIRECTIVE\" during signup will get an additional 30 days free on either their startup or business tier plans! (UPDATE: There are still some codes available, sign up today to claim yours!)\n\nSign up with this link to automatically apply the coupon code: https://shipyard.social/DevOpsDirecti...!\n\n--- \n\nWritten Course: https://courses.devopsdirective.com/d...\n\nGitHub Repo: https://github.com/sidpalas/devops-di...\n\nBonus Videos: https://links.devopsdirective.com/doc... \n\n---\n\nTimestamps: \n00:00 - Introduction \n04:40 - History and motivation\n30:27 - Technology overview\n40:30 - Installation and set up\n47:15 - Using 3rd party container images\n48:06 - Understanding container data and docker volumes\n1:13:00 - Demo application\n1:28:37 - Building container images\n2:23:46 - Container registries\n2:33:45 - Running containers\n3:02:36 - Container security\n3:06:58 - Interacting with Docker objects\n3:18:36 - Development workflow\n3:52:05 - Ephemeral environments with Shipyard \n4:07:17 - Deploying containers\n4:42:59 - Final wrap up\n\n--- \nJoin the Community: \n💬 Discord:   / discord   \n💻 GitHub: https://github.com/sidpalas/devops-di... \n🐥 Twitter:   / sidpalas   \n👨‍💼 LinkedIn:   / sid-palas   \n🌐 Website: https://devopsdirective.com \n\n--- \nCommunity size at time of posting: \nSubscribers: 36883 \nChannel Views: 1199466",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "otB0qGGmDFI",
        "title": "Start Coding Faster with Remote Development Environments! [Devops Deployed Ep 10]",
        "publishedAt": "3 years ago",
        "durationSeconds": 3331,
        "views": 3602,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Remote development environments have matured immensely over the past few years, with Gitpod leading the charge. Today I am joined by Pauline Narvas and Chris Weichel of Gitpod! \n\nWe talk about remote dev environments, the importance of community for the company, and how the organization + technology operates. \n\nI hope you enjoy the discussion!\n\n---\n\nLinks:\nhttps://gitpod.io/\nhttps://gitpod.io/chat (discord)\n\nKubecon talks: \nhttps://kccncna2022.sched.com/event/1...\n\nhttps://kccncna2022.sched.com/event/1...\n\n---\n\nTimestamps:\n00:00 - Introduction\n01:12 - What is Gitpod?\n02:12 - Why would I want a remote development environment?\n05:32 - Using Gitpod for my blog\n07:11 - Interacting with service dependencies\n08:49 - Surprising customer usage\n10:13 - Evolution of remote dev environments\n11:58 - Comparison with GitHub Codespaces\n14:34 - Why is community important within the DevX space?\n20:35 - How does Gitpod being open source impact things?\n24:31 - Community heroes program\n30:24 - Working as a globally remote team\n33:30 - Document transparency + request for comment process\n35:57 - RFC guidelines\n37:06 - Gitpod infrastructure and architecture\n41:10 - Failure modes with stateful Kubernetes pods\n42:50 - Speeding up image pulls\n45:56 - Moving away from Helm towards Golang installer\n48:48 - Security challenges and isolation\n53:55 - How to get started with Gitpod?\n54:31 - Using gitpod.io/# to try with any Github repo\n\n---\n\nJoin the Community:\n💬 Discord:  discord.devopsdirective.com\n💻 GitHub: https://github.com/sidpalas/devops-di...\n🐥 Twitter:   / sidpalas  \n👨‍💼 LinkedIn:   / sid-palas  \n🌐 Website: https://devopsdirective.com\n\n--- \n\nCommunity size at time of posting:\nSubscribers: 28340\nChannel Views:  885286",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4yk_yQaY4KU",
        "title": "How to Choose a Kubernetes Provider?",
        "publishedAt": "3 years ago",
        "durationSeconds": 1346,
        "views": 6843,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Every cloud provider has a managed Kubernetes offering, so how should you pick which one to use?\n\nAt face value, they seem similar, but you should consider the differences when choosing between them. This video provides a framework for thinking about the types of differences.\n\n---\n\nTimestamps:\n00:00 - Introduction\n00:57 - Non-Kuberentes Factors\n03:01 - Ease of use, Developer Experience, Operator Experience\n06:02 - Uptime/Service Level Agreement\n07:08 - Pricing\n09:17 - Speed of Launch\n10:28 - Kubernetes version availability \n11:15 - Host OS options\n12:02 - Data center locations\n13:15 - Private API endpoint\n14:32 - GPU/TPU access\n14:59 - Autoscaling\n16:35 - Cloud Integrations\n20:30 - Add-ons\n21:45 - Summary\n\n---\n\nJoin the Community:\n💬 Discord:   / discord  \n💻 GitHub: https://github.com/sidpalas/devops-di...\n🐥 Twitter:   / sidpalas  \n👨‍💼 LinkedIn:   / sid-palas  \n🌐 Website: https://devopsdirective.com\n\n--- \n\nCommunity size at time of posting:\nSubscribers: 28121\nChannel Views:  876522",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XltFOyGanYE",
        "title": "Kubernetes 101: Deploying Your First Application!",
        "publishedAt": "3 years ago",
        "durationSeconds": 2447,
        "views": 115746,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Create a hello world API with Python using FastAPI, bundle it up as a container image, and then deploy it to a Kubernetes cluster on Civo Cloud!\n\nThis is the fifth episode in a new content series in which I plan to build an application platform with Kubernetes. This is the same type of thing that I have helped multiple startup companies build over the past 4 years! \n\nhttps://kubestarterkit.com/\nhttps://github.com/DevOps-Directive/k...\n\n--\n\nTimestamps:\n00:00 - Introduction\n01:20 - Fast API  setup\n05:15 - Containerize the application\n11:23 - Push to DockerHub\n13:05 - Create Kubernetes cluster \n15:18 - Define Kubernetes resources\n21:52 - Authenticating to cluster\n24:00 - Deploy into cluster \n27:44 - Setting up ingress\n30:30 - Setting up DNS\n32:10 - Deploying a new version to demo loadbalancing\n35:00 - Debugging\n38:19 - Recap\n\n---\n\nJoin the Community:\n💬 Discord:   / discord  \n💻 GitHub: https://github.com/sidpalas/devops-di...\n🐥 Twitter:   / sidpalas  \n👨‍💼 LinkedIn:   / sid-palas  \n🌐 Website: https://devopsdirective.com\n\n--- \n\nCommunity size at time of posting:\nSubscribers: 26909\nChannel Views:  840395",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GZ-SSXf9udU",
        "title": "Internal Developer Platforms are the Future! [DevOps Deployed Ep 09]",
        "publishedAt": "3 years ago",
        "durationSeconds": 2503,
        "views": 5529,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Discussion with Chris Stephenson, Chief Technology Officer of Humanitec, about Internal Developer Platforms, why they matter, and how companies are building them to increase developer velocity!...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "228XgLK1I8A",
        "title": "Why Does Kubernetes Exist?",
        "publishedAt": "3 years ago",
        "durationSeconds": 424,
        "views": 15765,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Kubernetes seems so complex, why is that? In this video, we look at the past 20 years of web application deployment to understand how things have evolved and the role that workload orchestrators...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Jk0xrN4crqg",
        "title": "Should you Self-Host Kubernetes?",
        "publishedAt": "3 years ago",
        "durationSeconds": 368,
        "views": 18462,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "With so many managed Kubernetes offerings available, should you consider self-hosting? How about using a higher-level abstraction such as AWS Fargate or Google Cloud Run?\n\nThis is the third...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZLygD4A-Mco",
        "title": "Is Kubernetes Right for YOU?",
        "publishedAt": "3 years ago",
        "durationSeconds": 497,
        "views": 5805,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "When does it make sense to use Kubernetes and when you might want to avoid it!\n\nThis is the second episode in a new content series in which I plan to build an application platform with Kubernetes....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XBihyIDWwVk",
        "title": "Infrastructure as Code at scale with Spacelift.io's Marcin Wyszynski [DevOps Deployed Ep 08]",
        "publishedAt": "4 years ago",
        "durationSeconds": 2717,
        "views": 3442,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Discussion with Marcin Wyszynski, Chief Product Officer of Spacelift, about why you might want a dedicated CI/CD platform for your Infrastructure as Code as well as the technology and team...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "p54Zstvv9sQ",
        "title": "Cloud Infrastructure on Easy Mode with Jake Cooper from Railway.App [DevOps Deployed Ep 07]",
        "publishedAt": "4 years ago",
        "durationSeconds": 2857,
        "views": 5145,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Discussion with Jake Cooper, CEO of Railway, about how they help developers work with cloud infrastructure more easily.\n\nLinks: \n- https://dev.new\n- https://railway.app\n\n--\n\nTimestamps:\n00:00...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Q8qHUCsbNss",
        "title": "Making DevOps Easier with Ephemeral Environments at Shipyard.Build [DevOps Deployed Ep. 06]",
        "publishedAt": "4 years ago",
        "durationSeconds": 2917,
        "views": 1385,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Discussion with Benjie De Groot, CEO of Shipyard about how they provide ephemeral environments as well as the technology and team building the company!\n\nLinks:\n- https://shipyard.build/\n- https://s...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7xngnjfIlK4",
        "title": "Complete Terraform Course - From BEGINNER to PRO! (Learn Infrastructure as Code)",
        "publishedAt": "4 years ago",
        "durationSeconds": 9484,
        "views": 1313912,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to use Terraform to automate your AWS infrastructure. The course covers everything from getting started to a modular automated system using GitHub actions to deploy into AWS.\n\nWritten...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VaZfNYj8J4A",
        "title": "Building a Kubernetes Based Cloud Platform at Civo [DevOps Deployed Ep. 05]",
        "publishedAt": "4 years ago",
        "durationSeconds": 2901,
        "views": 1320,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I spoke with @kubesimplify​ Director of Technical Evangelism at Civo Cloud (https://www.civo.com/) about DevOps at Civo and for Civo's customers!\n\nSaiyam's Youtube Channel: https://saiyampathak.c...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Bke6nXS6Vlo",
        "title": "Bringing DevOps to the Public Sector at Raft [DevOps Deployed Ep. 04]",
        "publishedAt": "4 years ago",
        "durationSeconds": 2881,
        "views": 573,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I had the chance to chat with Bhaarat Sharma and Barak Stout, CTO and Lead R&D engineer respectively at Tech Lead at raft (https://goraft.tech/), a niche digital consulting firm specializing...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cfPdK41jCfI",
        "title": "Generating Pulumi Infrastructure Code with AI! 🤖",
        "publishedAt": "4 years ago",
        "durationSeconds": 510,
        "views": 1931,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Will the robots take our DevOps jobs? I used the world's largest code-writing machine learning model (Open AI codex) to write Infrastructure as Code (IaC) configurations using Pulumi. \n\nI challenge...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5JQlFK6MdVQ",
        "title": "How to Speed up Docker Development! 🐳 Hot Reloading, Debuggers, and More!",
        "publishedAt": "4 years ago",
        "durationSeconds": 812,
        "views": 35673,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Docker is a powerful tool for building and deploying applications, but when getting started, development can be slow and frustrating... 😡\n\nIn this video use a node.js (express.js) API applicatio...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "FHwnrYm0mNc",
        "title": "GitHub Copilot CRUSHES Leetcode Interview Questions! 😳",
        "publishedAt": "4 years ago",
        "durationSeconds": 560,
        "views": 266393,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "GitHub Copilot might not be ready to take my entire job yet, but it would certainly outperform me in a FAANG style technical interview!\n\nI tested Copilot against a variety of Leetcode problems,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "izmnOsqFupQ",
        "title": "Building a Platform to Wrangle Distributed Systems with Charity Majors [DevOps Deployed Ep. 03]",
        "publishedAt": "4 years ago",
        "durationSeconds": 2792,
        "views": 772,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Charity Majors shares the history behind Honeycomb, an observability platform to help understand and troubleshoot complex distributed systems. She talks through the motivations for building...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "HmQk6mB-71I",
        "title": "The Infrastructure Behind Low Code App Builder Thunkable [DevOps Deployed Ep. 02]",
        "publishedAt": "4 years ago",
        "durationSeconds": 2337,
        "views": 581,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I had the chance to chat with Wei Li and José Dominguez of Thunkable, the low code, cross-platform app builder. We spoke about how they have managed to grow to over 2 million users with a...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vTNv2RKa5LU",
        "title": "Platform Engineering at HubSpot with Tech Lead Gowtam Lal [DevOps Deployed Ep. 01]",
        "publishedAt": "4 years ago",
        "durationSeconds": 2652,
        "views": 3507,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I had the chance to chat with Gowtam Lal, a Tech Lead at HubSpot to learn about how platform engineering operates within their organization.\n\nWe cover everything from how they use Apache Mesos...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VlRTSnqN3YA",
        "title": "Is Cryptocurrency Killing Free Continuous Integration?",
        "publishedAt": "5 years ago",
        "durationSeconds": 176,
        "views": 716,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "People have started taking advantage of free CI systems such as Github Actions, Gitlab CI, LayerCI, etc... to mine cryptocurrencies.\n\nThis is a major drain of resources on these providers and...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1y2nRNexRVk",
        "title": "How fast can I create 10,000 kubernetes pods?!",
        "publishedAt": "5 years ago",
        "durationSeconds": 443,
        "views": 1836,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I managed to squeeze over 11k pods into a cluster with just 44 x 1vCPU worker nodes. I had to deploy my own control plane, increase the maximum number of pods/node, and use a tiny container...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VG8rZIE8ET8",
        "title": "TINY CONTAINER CHALLENGE: Building the World's Smallest Docker Container!",
        "publishedAt": "5 years ago",
        "durationSeconds": 364,
        "views": 3894,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Containers are often praised as being lightweight, but can easily end up being quite large.\n\nI am issuing a challenge to YOU to build the smallest possible container image that is still a functiona...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "oQ7R1eGDdTY",
        "title": "Don't watch this video. Go build something instead! 🛠",
        "publishedAt": "5 years ago",
        "durationSeconds": 397,
        "views": 989,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If used incorrectly, video tutorials are a waste of time! This video lays out why this is the case and how to overcome it by avoiding the \"happy path\" and using a concept called the \"zone of...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 1,
      "uploadCadenceWeekly": 0.08,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 3450,
      "viewsPerVideoP90Last90d": 3450,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": 3450,
      "p90Views": 3450,
      "p99Views": 3450,
      "outperformingVideosLast90d": 1
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "developer-tools",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:github"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "devopsdirective.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "devops",
        "share": 0.63,
        "evidenceVideoIds": [
          "Xwpi0ITkL3U",
          "2T86xAtR6Fo",
          "oitx514tQgk",
          "6TpXObxxFOU",
          "0Wc4-_DownU"
        ]
      },
      {
        "label": "https",
        "share": 0.47,
        "evidenceVideoIds": [
          "A-beOnncri8",
          "Xwpi0ITkL3U",
          "2T86xAtR6Fo",
          "oitx514tQgk",
          "6TpXObxxFOU"
        ]
      },
      {
        "label": "github",
        "share": 0.43,
        "evidenceVideoIds": [
          "A-beOnncri8",
          "Xwpi0ITkL3U",
          "2T86xAtR6Fo",
          "oitx514tQgk",
          "6TpXObxxFOU"
        ]
      },
      {
        "label": "com",
        "share": 0.37,
        "evidenceVideoIds": [
          "A-beOnncri8",
          "Xwpi0ITkL3U",
          "2T86xAtR6Fo",
          "oitx514tQgk",
          "6TpXObxxFOU"
        ]
      },
      {
        "label": "platform",
        "share": 0.33,
        "evidenceVideoIds": [
          "A-beOnncri8",
          "Xwpi0ITkL3U",
          "2T86xAtR6Fo",
          "XltFOyGanYE",
          "ZLygD4A-Mco"
        ]
      },
      {
        "label": "machine learning",
        "share": 0.03,
        "evidenceVideoIds": [
          "cfPdK41jCfI"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Sunday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "D",
      "rationale": "content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 33,
      "reason": "fits developer-tools",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.35
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "fits developer-tools. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 30,
    "failureType": null,
    "summary": "DevOps Directive — 0.1M subs, D-tier sponsorship readiness, low contactability, respond within 30 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 33,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.77,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mid-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mid"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mid-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "none"
    },
    "benchmarkRange": {
      "creatorTier": "mid",
      "sponsorCategory": "developer-tools",
      "historicalTypicalReplyRange": "5-12%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mid-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "ignore",
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": {
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "gaps": [
        "tier:D",
        "contactability:low"
      ]
    },
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "b0f537c71e7a4394bda9c043b14cd609d5e4660e4e795720de609bf52615988f",
      "inputsHash": "46af84f59769237fde191d9a6cf95d4d1529268f49ab223805c61f9e9cd832a9",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:29.986Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "5076105a7542ae31c0b45ead871599d7a32d44f58a277457714d37367022b845",
    "channelId": "UC0ZTPkdxlAKf-V33tqXwi3Q",
    "channelHandle": "@HackerSploit",
    "channelName": "HackerSploit",
    "channelUrl": "https://www.youtube.com/@HackerSploit",
    "description": "HackerSploit is the leading provider of free Infosec and cybersecurity training. Our goal is to make cybersecurity training more effective and accessible to students and professionals. We achieve this by providing essential training on how to attack and defend systems with virtual labs and real-world scenarios. We offer individual and corporate training packages in Penetration Testing & Red Team Operations, Web application penetration testing, and cybersecurity awareness training.",
    "joinDate": null,
    "location": null,
    "subscribers": 1010000,
    "totalVideos": 486,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_k_J7wNcT5Rol4WmhPhxxZVp838zcB1tDhWH2ywfnIZp-o=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "hackersploit.academy",
        "url": "https://hackersploit.academy/"
      },
      {
        "platform": "hackersploit.org",
        "url": "https://hackersploit.org"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/HackerSploit"
      },
      {
        "platform": "patreon.com",
        "url": "https://patreon.com/HackerSploit"
      },
      {
        "platform": "forum.hackersploit.org",
        "url": "https://forum.hackersploit.org"
      },
      {
        "platform": "twitch",
        "url": "https://www.twitch.tv/realhackersploit"
      }
    ],
    "recentVideos": [
      {
        "videoId": "SbZ7JUII-SQ",
        "title": "How FIN6 Exfiltrates Files Over FTP",
        "publishedAt": "1 year ago",
        "durationSeconds": 1481,
        "views": 14649,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Access the FIN6 Exfiltration Lab: https://bit.ly/3XsXFRZ\n\nIn this final episode of our FIN6 Adversary Emulation mini-series, we demonstrate how to emulate FIN6’s exfiltration techniques, focusing on how this financially motivated threat actor collects, stages, archives, and exfiltrates sensitive data from compromised systems.\n\n// CYBER RANGES Adversary Emulation Labs\n► New to CYBER RANGES? Register for a free account here: https://bit.ly/42VxDu5\n► Access the FIN6 Exfiltration Lab: https://bit.ly/3XsXFRZ\n► Adversary Emulation Fundamentals Labs (Free): https://bit.ly/4gQd8SB\n\n🔗 Video Resources & References\nCTID Adversary Emulation Library: https://github.com/center-for-threat-...\n\n🎥 Have an idea for a video? make your submission here: https://forms.gle/VDwwMsuudzQfT9VM6\n\n\n// MORE RESOURCES\nHACKERSPLOIT BLOG  ►► https://bit.ly/3qjvSjK\nHACKERSPLOIT FORUM  ►► https://bit.ly/39r2kcY\nHACKERSPLOIT ACADEMY ►► https://bit.ly/39CuORr\nCYBER RANGES (LABS) ►► https://app.cyberranges.com\n\n// SOCIAL NETWORKS\nTWITTER ►► https://bit.ly/3sNKXfq\nINSTAGRAM ►► https://bit.ly/3sP1Syh\nLINKEDIN ►► https://bit.ly/360qwlN\nPATREON ►► https://bit.ly/365iDLK\nMERCHANDISE ►► https://bit.ly/3c2jDEn\n\n// MY BOOKS\nPrivilege Escalation Techniques ►► https://amzn.to/3ylCl33\nDocker Security Essentials (FREE) ►► https://bit.ly/3pDcFuA\n\n// SUPPORT THE CHANNEL\nNordVPN Affiliate Link (73% Off) ►► https://bit.ly/3DEPbu5\nGet $100 In Free Linode Credit ►► https://bit.ly/3yagvix\n\n// CYBERTALK PODCAST \nSpotify ►► https://spoti.fi/3lP65jv\nApple Podcasts ►► https://apple.co/3GsIPQo\n\n// WE VALUE YOUR FEEDBACK\nWe hope you enjoyed the video and found value in the content. We value your feedback, If you have any questions or suggestions feel free to post them in the comments section or contact us directly via our social platforms.\n\n// THANK YOU!\nThanks for watching!\nБлагодарю за просмотр!\nKiitos katsomisesta\nDanke fürs Zuschauen!\n感谢您观看\nMerci d'avoir regardé\nObrigado por assistir\nدیکھنے کے لیے شکریہ\nदेखने के लिए धन्यवाद\nGrazie per la visione\nGracias por ver\nشكرا للمشاهدة\n\n-----------------------------------------------------------------------------------\n#pentesting #cybersecurity #hacker",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Iwxmscx3XXc",
        "title": "Emulating FIN6 - Active Directory Enumeration Made EASY",
        "publishedAt": "1 year ago",
        "durationSeconds": 1222,
        "views": 11359,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this episode of the FIN6 Adversary Emulation series, we focus on Active Directory (AD) enumeration—a critical phase in FIN6’s discovery techniques. Understanding how adversaries enumerate Active Directory environments will help you refine your tradecraft or improve your detection and mitigation capabilities if you are a Blue Teamer.\n\nIn this video, you will learn how FIN6 performs Active Directory enumeration, and how to use native Windows commands like \"net\" and PowerShell's \"Get-AD*\" cmdlets for AD Enumeration. You will also learn how to utilize \"AdFind.exe\" to extract information from an Active Directory Environment. \n\nThe lab environment used in this demonstration is available for free on CYBER RANGES, allowing you to follow along and practice these techniques in a safe and controlled setting.\n\n// CYBER RANGES Adversary Emulation Labs\n► New to CYBER RANGES? Register for a free account here: https://bit.ly/42VxDu5\n► Access the FIN6 AD Enumeration Lab: https://bit.ly/3XsXFRZ\n► Adversary Emulation Fundamentals Labs (Free): https://bit.ly/4gQd8SB\n\n🔗 Video Resources & References\nCTID Adversary Emulation Library: https://github.com/center-for-threat-...\n\n🎥 Have an idea for a video? make your submission here: https://forms.gle/VDwwMsuudzQfT9VM6\n\n\n// MORE RESOURCES\nHACKERSPLOIT BLOG  ►► https://bit.ly/3qjvSjK\nHACKERSPLOIT FORUM  ►► https://bit.ly/39r2kcY\nHACKERSPLOIT ACADEMY ►► https://bit.ly/39CuORr\nCYBER RANGES (LABS) ►► https://app.cyberranges.com\n\n// SOCIAL NETWORKS\nTWITTER ►► https://bit.ly/3sNKXfq\nINSTAGRAM ►► https://bit.ly/3sP1Syh\nLINKEDIN ►► https://bit.ly/360qwlN\nPATREON ►► https://bit.ly/365iDLK\nMERCHANDISE ►► https://bit.ly/3c2jDEn\n\n// MY BOOKS\nPrivilege Escalation Techniques ►► https://amzn.to/3ylCl33\nDocker Security Essentials (FREE) ►► https://bit.ly/3pDcFuA\n\n// SUPPORT THE CHANNEL\nNordVPN Affiliate Link (73% Off) ►► https://bit.ly/3DEPbu5\nGet $100 In Free Linode Credit ►► https://bit.ly/3yagvix\n\n// CYBERTALK PODCAST \nSpotify ►► https://spoti.fi/3lP65jv\nApple Podcasts ►► https://apple.co/3GsIPQo\n\n// WE VALUE YOUR FEEDBACK\nWe hope you enjoyed the video and found value in the content. We value your feedback, If you have any questions or suggestions feel free to post them in the comments section or contact us directly via our social platforms.\n\n// THANK YOU!\nThanks for watching!\nБлагодарю за просмотр!\nKiitos katsomisesta\nDanke fürs Zuschauen!\n感谢您观看\nMerci d'avoir regardé\nObrigado por assistir\nدیکھنے کے لیے شکریہ\nदेखने के लिए धन्यवाद\nGrazie per la visione\nGracias por ver\nشكرا للمشاهدة\n\n-----------------------------------------------------------------------------------\n#pentesting #cybersecurity #hacker",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Q1wQuHw5JKI",
        "title": "The SECRET to Embedding Metasploit Payloads in VBA Macros",
        "publishedAt": "1 year ago",
        "durationSeconds": 930,
        "views": 7704,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this episode of the Offensive VBA series, we explore how to integrate PowerShell payloads and stagers into custom VBA macros for initial access. Specifically, we’ll demonstrate how to repurpose and format PowerShell stagers generated by Msfvenom and PowerShell-Empire to execute a reverse shell.\n\nThis video will teach you how to format and embed HTA-based PowerShell payloads inside a VBA macro.\n\n// Adversary Emulation Labs\nNew to CYBER RANGES? Register here: https://bit.ly/40dRMsb\nCYBER RANGES Adversary Emulation Labs (Free): https://bit.ly/4amBPEU\n\n🎥 Have an idea for a video? make your submission here: https://forms.gle/VDwwMsuudzQfT9VM6\n\n// MORE RESOURCES\nHACKERSPLOIT BLOG  ►► https://bit.ly/3qjvSjK\nHACKERSPLOIT FORUM  ►► https://bit.ly/39r2kcY\nHACKERSPLOIT ACADEMY ►► https://bit.ly/39CuORr\nCYBER RANGES (LABS) ►► https://app.cyberranges.com\n\n// SOCIAL NETWORKS\nTWITTER ►► https://bit.ly/3sNKXfq\nINSTAGRAM ►► https://bit.ly/3sP1Syh\nLINKEDIN ►► https://bit.ly/360qwlN\nPATREON ►► https://bit.ly/365iDLK\nMERCHANDISE ►► https://bit.ly/3c2jDEn\n\n// MY BOOKS\nPrivilege Escalation Techniques ►► https://amzn.to/3ylCl33\nDocker Security Essentials (FREE) ►► https://bit.ly/3pDcFuA\n\n// SUPPORT THE CHANNEL\nNordVPN Affiliate Link (73% Off) ►► https://bit.ly/3DEPbu5\nGet $100 In Free Linode Credit ►► https://bit.ly/3yagvix\n\n// CYBERTALK PODCAST \nSpotify ►► https://spoti.fi/3lP65jv\nApple Podcasts ►► https://apple.co/3GsIPQo\n\n// WE VALUE YOUR FEEDBACK\nWe hope you enjoyed the video and found value in the content. We value your feedback, If you have any questions or suggestions feel free to post them in the comments section or contact us directly via our social platforms.\n\n// THANK YOU!\nThanks for watching!\nБлагодарю за просмотр!\nKiitos katsomisesta\nDanke fürs Zuschauen!\n感谢您观看\nMerci d'avoir regardé\nObrigado por assistir\nدیکھنے کے لیے شکریہ\nदेखने के लिए धन्यवाद\nGrazie per la visione\nGracias por ver\nشكرا للمشاهدة\n\n-----------------------------------------------------------------------------------\n#pentesting #cybersecurity #hacker",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0W3Z3Br56XM",
        "title": "Offensive VBA 0x4 - Reverse Shell Macro with Powercat",
        "publishedAt": "1 year ago",
        "durationSeconds": 713,
        "views": 6781,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this episode of the Offensive VBA series, we dive into one of the most powerful techniques for red teamers—creating a reverse shell VBA macro using Powercat. This technique enables stealthy command execution and remote access through malicious macro-enabled Office documents.\n\nIn this video, you will learn how to build a reverse shell VBA Macro that leverages Powercat allowing you to stealthily execute remote commands in-memory using PowerShell.\n\nPowercat: https://github.com/besimorhino/powercat\n\n// Adversary Emulation Labs\nNew to CYBER RANGES? Register here: https://bit.ly/40dRMsb\nCYBER RANGES Adversary Emulation Labs (Free): https://bit.ly/4amBPEU\n\n🎥 Have an idea for a video? make your submission here: https://forms.gle/VDwwMsuudzQfT9VM6\n\n// MORE RESOURCES\nHACKERSPLOIT BLOG  ►► https://bit.ly/3qjvSjK\nHACKERSPLOIT FORUM  ►► https://bit.ly/39r2kcY\nHACKERSPLOIT ACADEMY ►► https://bit.ly/39CuORr\nCYBER RANGES (LABS) ►► https://app.cyberranges.com\n\n// SOCIAL NETWORKS\nTWITTER ►► https://bit.ly/3sNKXfq\nINSTAGRAM ►► https://bit.ly/3sP1Syh\nLINKEDIN ►► https://bit.ly/360qwlN\nPATREON ►► https://bit.ly/365iDLK\nMERCHANDISE ►► https://bit.ly/3c2jDEn\n\n// MY BOOKS\nPrivilege Escalation Techniques ►► https://amzn.to/3ylCl33\nDocker Security Essentials (FREE) ►► https://bit.ly/3pDcFuA\n\n// SUPPORT THE CHANNEL\nNordVPN Affiliate Link (73% Off) ►► https://bit.ly/3DEPbu5\nGet $100 In Free Linode Credit ►► https://bit.ly/3yagvix\n\n// CYBERTALK PODCAST \nSpotify ►► https://spoti.fi/3lP65jv\nApple Podcasts ►► https://apple.co/3GsIPQo\n\n// WE VALUE YOUR FEEDBACK\nWe hope you enjoyed the video and found value in the content. We value your feedback, If you have any questions or suggestions feel free to post them in the comments section or contact us directly via our social platforms.\n\n// THANK YOU!\nThanks for watching!\nБлагодарю за просмотр!\nKiitos katsomisesta\nDanke fürs Zuschauen!\n感谢您观看\nMerci d'avoir regardé\nObrigado por assistir\nدیکھنے کے لیے شکریہ\nदेखने के लिए धन्यवाद\nGrazie per la visione\nGracias por ver\nشكرا للمشاهدة\n\n-----------------------------------------------------------------------------------\n#pentesting #cybersecurity #hacker",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ot3053UxJOc",
        "title": "Offensive VBA 0x3 - Developing PowerShell Droppers",
        "publishedAt": "1 year ago",
        "durationSeconds": 3320,
        "views": 4980,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this episode of the Offensive VBA series, we take VBA macros to the next level by developing PowerShell droppers designed for red team operations. Learn how to craft stealthy and effective VBA scripts that deliver and execute PowerShell payloads seamlessly.\n\nHere’s what we’ll cover: Writing VBA macros to execute PowerShell scripts, executing payloads directly in memory for stealth, leveraging environment variables to identify system paths dynamically, and techniques to remove traces of macro execution for stealthier operations\n\n\n// Adversary Emulation Labs\nNew to CYBER RANGES? Register here: https://bit.ly/40dRMsb\nCYBER RANGES Adversary Emulation Labs (Free): https://bit.ly/4amBPEU\n\n🎥 Have an idea for a video? make your submission here: https://forms.gle/VDwwMsuudzQfT9VM6\n\n// MORE RESOURCES\nHACKERSPLOIT BLOG  ►► https://bit.ly/3qjvSjK\nHACKERSPLOIT FORUM  ►► https://bit.ly/39r2kcY\nHACKERSPLOIT ACADEMY ►► https://bit.ly/39CuORr\nCYBER RANGES (LABS) ►► https://app.cyberranges.com\n\n// SOCIAL NETWORKS\nTWITTER ►► https://bit.ly/3sNKXfq\nINSTAGRAM ►► https://bit.ly/3sP1Syh\nLINKEDIN ►► https://bit.ly/360qwlN\nPATREON ►► https://bit.ly/365iDLK\nMERCHANDISE ►► https://bit.ly/3c2jDEn\n\n// MY BOOKS\nPrivilege Escalation Techniques ►► https://amzn.to/3ylCl33\nDocker Security Essentials (FREE) ►► https://bit.ly/3pDcFuA\n\n// SUPPORT THE CHANNEL\nNordVPN Affiliate Link (73% Off) ►► https://bit.ly/3DEPbu5\nGet $100 In Free Linode Credit ►► https://bit.ly/3yagvix\n\n// CYBERTALK PODCAST \nSpotify ►► https://spoti.fi/3lP65jv\nApple Podcasts ►► https://apple.co/3GsIPQo\n\n// WE VALUE YOUR FEEDBACK\nWe hope you enjoyed the video and found value in the content. We value your feedback, If you have any questions or suggestions feel free to post them in the comments section or contact us directly via our social platforms.\n\n// THANK YOU!\nThanks for watching!\nБлагодарю за просмотр!\nKiitos katsomisesta\nDanke fürs Zuschauen!\n感谢您观看\nMerci d'avoir regardé\nObrigado por assistir\nدیکھنے کے لیے شکریہ\nदेखने के लिए धन्यवाद\nGrazie per la visione\nGracias por ver\nشكرا للمشاهدة\n\n-----------------------------------------------------------------------------------\n#pentesting #cybersecurity #hacker",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ogbrNZ3SCRY",
        "title": "Offensive VBA 0x2 - Program & Command Execution",
        "publishedAt": "1 year ago",
        "durationSeconds": 2729,
        "views": 4037,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Welcome to the second episode of the Offensive VBA series, where we explore how to execute programs and system commands using VBA macros—essential skills for red teamers looking to leverage VBA for initial access and automation.\n\nIn this video, you will learn how to use the Shell function to run external programs and commands and leverage the WScript.Shell object for enhanced control over command execution. You will also learn how to use the Shell Window Style options to ensure stealth during execution.\n\n// Adversary Emulation Labs\nNew to CYBER RANGES? Register here: https://bit.ly/40dRMsb\nCYBER RANGES Adversary Emulation Labs (Free): https://bit.ly/4amBPEU\n\n🎥 Have an idea for a video? make your submission here: https://forms.gle/VDwwMsuudzQfT9VM6\n\n// MORE RESOURCES\nHACKERSPLOIT BLOG  ►► https://bit.ly/3qjvSjK\nHACKERSPLOIT FORUM  ►► https://bit.ly/39r2kcY\nHACKERSPLOIT ACADEMY ►► https://bit.ly/39CuORr\nCYBER RANGES (LABS) ►► https://app.cyberranges.com\n\n// SOCIAL NETWORKS\nTWITTER ►► https://bit.ly/3sNKXfq\nINSTAGRAM ►► https://bit.ly/3sP1Syh\nLINKEDIN ►► https://bit.ly/360qwlN\nPATREON ►► https://bit.ly/365iDLK\nMERCHANDISE ►► https://bit.ly/3c2jDEn\n\n// MY BOOKS\nPrivilege Escalation Techniques ►► https://amzn.to/3ylCl33\nDocker Security Essentials (FREE) ►► https://bit.ly/3pDcFuA\n\n// SUPPORT THE CHANNEL\nNordVPN Affiliate Link (73% Off) ►► https://bit.ly/3DEPbu5\nGet $100 In Free Linode Credit ►► https://bit.ly/3yagvix\n\n// CYBERTALK PODCAST \nSpotify ►► https://spoti.fi/3lP65jv\nApple Podcasts ►► https://apple.co/3GsIPQo\n\n// WE VALUE YOUR FEEDBACK\nWe hope you enjoyed the video and found value in the content. We value your feedback, If you have any questions or suggestions feel free to post them in the comments section or contact us directly via our social platforms.\n\n// THANK YOU!\nThanks for watching!\nБлагодарю за просмотр!\nKiitos katsomisesta\nDanke fürs Zuschauen!\n感谢您观看\nMerci d'avoir regardé\nObrigado por assistir\nدیکھنے کے لیے شکریہ\nदेखने के लिए धन्यवाद\nGrazie per la visione\nGracias por ver\nشكرا للمشاهدة\n\n-----------------------------------------------------------------------------------\n#pentesting #cybersecurity #hacker",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jGy7_NusjuQ",
        "title": "Offensive VBA 0x1 - Your First Macro",
        "publishedAt": "1 year ago",
        "durationSeconds": 2608,
        "views": 7921,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Welcome to the first episode of the Offensive VBA series, where we equip red teamers with the skills to leverage VBA for initial access and offensive operations. This video introduces you to Visual Basic for Applications (VBA)—a powerful scripting language integrated into Microsoft Office.\n\nHere’s what we’ll cover: What is VBA?: An overview of how VBA works and integrates with MS Office, A walkthrough of the Integrated Development Environment (IDE) and its features, and How to create and run a basic macro.\n\nCore Concepts:\nSubroutines, Functions, and their calls.\nVariable declaration, data types, and scope.\nUser input/output with MsgBox and control statements.\n\n// Adversary Emulation Labs\nNew to CYBER RANGES? Register here: https://bit.ly/40dRMsb\nCYBER RANGES Adversary Emulation Labs (Free): https://bit.ly/4amBPEU\n\n🎥 Have an idea for a video? make your submission here: https://forms.gle/VDwwMsuudzQfT9VM6\n\n// MORE RESOURCES\nHACKERSPLOIT BLOG  ►► https://bit.ly/3qjvSjK\nHACKERSPLOIT FORUM  ►► https://bit.ly/39r2kcY\nHACKERSPLOIT ACADEMY ►► https://bit.ly/39CuORr\nCYBER RANGES (LABS) ►► https://app.cyberranges.com\n\n// SOCIAL NETWORKS\nTWITTER ►► https://bit.ly/3sNKXfq\nINSTAGRAM ►► https://bit.ly/3sP1Syh\nLINKEDIN ►► https://bit.ly/360qwlN\nPATREON ►► https://bit.ly/365iDLK\nMERCHANDISE ►► https://bit.ly/3c2jDEn\n\n// MY BOOKS\nPrivilege Escalation Techniques ►► https://amzn.to/3ylCl33\nDocker Security Essentials (FREE) ►► https://bit.ly/3pDcFuA\n\n// SUPPORT THE CHANNEL\nNordVPN Affiliate Link (73% Off) ►► https://bit.ly/3DEPbu5\nGet $100 In Free Linode Credit ►► https://bit.ly/3yagvix\n\n// CYBERTALK PODCAST \nSpotify ►► https://spoti.fi/3lP65jv\nApple Podcasts ►► https://apple.co/3GsIPQo\n\n// WE VALUE YOUR FEEDBACK\nWe hope you enjoyed the video and found value in the content. We value your feedback, If you have any questions or suggestions feel free to post them in the comments section or contact us directly via our social platforms.\n\n// THANK YOU!\nThanks for watching!\nБлагодарю за просмотр!\nKiitos katsomisesta\nDanke fürs Zuschauen!\n感谢您观看\nMerci d'avoir regardé\nObrigado por assistir\nدیکھنے کے لیے شکریہ\nदेखने के लिए धन्यवाद\nGrazie per la visione\nGracias por ver\nشكرا للمشاهدة\n\n-----------------------------------------------------------------------------------\n#pentesting #cybersecurity #hacker",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hUBRnh5dzrI",
        "title": "Emulating FIN6 - Gaining Initial Access (Office Word Macro)",
        "publishedAt": "1 year ago",
        "durationSeconds": 1939,
        "views": 6518,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Welcome to the next installment in our adversary emulation series! This video focuses on emulating initial access via a spear-phishing attachment—specifically, a malicious Word document with an embedded macro, just like FIN6 might use.\n\n🚨 Next Up: If you want to manually develop your own VBA macros for initial access, don’t worry—we’ve got you covered in the next video, where we’ll dive deeper into crafting custom macros for red team operations.\n\n🎥 Practical Labs: This video uses the CYBER RANGES platform to simulate a realistic attack environment. Try it out and follow along!\n\n// Adversary Emulation Labs\nNew to CYBER RANGES? Register here: https://bit.ly/40dRMsb\nCYBER RANGES Adversary Emulation Labs (Free): https://bit.ly/4amBPEU\nThe lab used in this video: https://app.cyberranges.com/scenario/...\n\n🔗 Video Resources & References\nCTID Adversary Emulation Library: https://github.com/center-for-threat-...\n\n🎥 Have an idea for a video? make your submission here: https://forms.gle/VDwwMsuudzQfT9VM6\n\n// MORE RESOURCES\nHACKERSPLOIT BLOG  ►► https://bit.ly/3qjvSjK\nHACKERSPLOIT FORUM  ►► https://bit.ly/39r2kcY\nHACKERSPLOIT ACADEMY ►► https://bit.ly/39CuORr\nCYBER RANGES (LABS) ►► https://app.cyberranges.com\n\n// SOCIAL NETWORKS\nTWITTER ►► https://bit.ly/3sNKXfq\nINSTAGRAM ►► https://bit.ly/3sP1Syh\nLINKEDIN ►► https://bit.ly/360qwlN\nPATREON ►► https://bit.ly/365iDLK\nMERCHANDISE ►► https://bit.ly/3c2jDEn\n\n// MY BOOKS\nPrivilege Escalation Techniques ►► https://amzn.to/3ylCl33\nDocker Security Essentials (FREE) ►► https://bit.ly/3pDcFuA\n\n// SUPPORT THE CHANNEL\nNordVPN Affiliate Link (73% Off) ►► https://bit.ly/3DEPbu5\nGet $100 In Free Linode Credit ►► https://bit.ly/3yagvix\n\n// CYBERTALK PODCAST \nSpotify ►► https://spoti.fi/3lP65jv\nApple Podcasts ►► https://apple.co/3GsIPQo\n\n// WE VALUE YOUR FEEDBACK\nWe hope you enjoyed the video and found value in the content. We value your feedback, If you have any questions or suggestions feel free to post them in the comments section or contact us directly via our social platforms.\n\n// THANK YOU!\nThanks for watching!\nБлагодарю за просмотр!\nKiitos katsomisesta\nDanke fürs Zuschauen!\n感谢您观看\nMerci d'avoir regardé\nObrigado por assistir\nدیکھنے کے لیے شکریہ\nदेखने के लिए धन्यवाद\nGrazie per la visione\nGracias por ver\nشكرا للمشاهدة\n\n-----------------------------------------------------------------------------------\n#pentesting #cybersecurity #hacker",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qEfk44G4zFM",
        "title": "FIN6 Adversary Emulation Plan (TTPs & Tooling)",
        "publishedAt": "1 year ago",
        "durationSeconds": 1084,
        "views": 5492,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Step into the world of adversary emulation with this in-depth video on the FIN6 Emulation Plan. Learn how to use the Center for Threat-Informed Defense (CTID) Adversary Emulation Library to...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1N49x1EWw7s",
        "title": "Developing An Adversary Emulation Plan",
        "publishedAt": "1 year ago",
        "durationSeconds": 1779,
        "views": 5180,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Creating an adversary emulation plan is a critical process for red teamers and cybersecurity professionals aiming to improve their organization's threat detection and response capabilities. In this video, we break down the entire process starting with how to select a threat actor relevant to your industry or geolocation, finding and leveraging Cyber Threat Intelligence (CTI) to gather insights on the adversary, and mapping the adversary’s TTPs using the MITRE ATT&CK framework.\n\n🔗 Video Resources & References\nExplore the comprehensive APT Groups and Operations Directory to find details on APT groups by region, their TTPs, and campaigns: https://apt.threattracking.com\nAPTnotes: https://github.com/kbandla/APTnotes\nAPT & CyberCriminal Campaign Collection: https://github.com/CyberMonitor/APT_C...\n\n// MORE RESOURCES\nHACKERSPLOIT BLOG  ►► https://bit.ly/3qjvSjK\nHACKERSPLOIT FORUM  ►► https://bit.ly/39r2kcY\nHACKERSPLOIT ACADEMY ►► https://bit.ly/39CuORr\nCYBER RANGES (LABS) ►► https://app.cyberranges.com\n\n// SOCIAL NETWORKS\nTWITTER ►► https://bit.ly/3sNKXfq\nINSTAGRAM ►► https://bit.ly/3sP1Syh\nLINKEDIN ►► https://bit.ly/360qwlN\nPATREON ►► https://bit.ly/365iDLK\nMERCHANDISE ►► https://bit.ly/3c2jDEn\n\n// MY BOOKS\nPrivilege Escalation Techniques ►► https://amzn.to/3ylCl33\nDocker Security Essentials (FREE) ►► https://bit.ly/3pDcFuA\n\n// SUPPORT THE CHANNEL\nNordVPN Affiliate Link (73% Off) ►► https://bit.ly/3DEPbu5\nGet $100 In Free Linode Credit ►► https://bit.ly/3yagvix\n\n// CYBERTALK PODCAST \nSpotify ►► https://spoti.fi/3lP65jv\nApple Podcasts ►► https://apple.co/3GsIPQo\n\n// WE VALUE YOUR FEEDBACK\nWe hope you enjoyed the video and found value in the content. We value your feedback, If you have any questions or suggestions feel free to post them in the comments section or contact us directly via our social platforms.\n\n// THANK YOU!\nThanks for watching!\nБлагодарю за просмотр!\nKiitos katsomisesta\nDanke fürs Zuschauen!\n感谢您观看\nMerci d'avoir regardé\nObrigado por assistir\nدیکھنے کے لیے شکریہ\nदेखने के लिए धन्यवाद\nGrazie per la visione\nGracias por ver\nشكرا للمشاهدة\n\n-----------------------------------------------------------------------------------\n#pentesting #cybersecurity #hacker",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CwSG5sa0Nao",
        "title": "Introduction To Advanced Persistent Threats (APTs)",
        "publishedAt": "1 year ago",
        "durationSeconds": 1754,
        "views": 13335,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This informative video is designed to give you a comprehensive understanding of Advanced Persistent Threats (APTs). In this video, you will learn what APTs are, how they differ from traditional...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CUMhiSdOSkY",
        "title": "Introduction To Adversary Emulation",
        "publishedAt": "1 year ago",
        "durationSeconds": 1445,
        "views": 9338,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This video introduces you to Adversary Emulation and its role in Red Team operations. Furthermore, this video also explains the differences between Adversary Emulation and Simulation. Adversary...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Ra2altDvPYI",
        "title": "Mastering Persistence: Using an Apache2 Rootkit for Stealth and Defense Evasion",
        "publishedAt": "1 year ago",
        "durationSeconds": 3080,
        "views": 7124,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, I demonstrate the process of establishing persistence and evading defenses on Linux through the use of an Apache2 rootkit.\n\nThe lab used in this video can be accessed for free...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "usDt-s2sACI",
        "title": "Planning Red Team Operations | Scope, ROE & Reporting",
        "publishedAt": "1 year ago",
        "durationSeconds": 2779,
        "views": 22010,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Hey guys, HackerSploit here back again with another video. This video outlines the process of planning and orchestrating Red Team operations.\nThis video also outlines various Red Team resources,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hN_r3JW6xsY",
        "title": "Mapping APT TTPs With MITRE ATT&CK Navigator",
        "publishedAt": "1 year ago",
        "durationSeconds": 2394,
        "views": 29010,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Hey guys, HackerSploit here back again with another video. This video will introduce you to the MITRE ATT&CK Navigator and will illustrate how it can be operationalized for planning and orchestrati...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LCec9K0aAkM",
        "title": "Introduction To The MITRE ATT&CK Framework",
        "publishedAt": "1 year ago",
        "durationSeconds": 2148,
        "views": 47971,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Hey guys, HackerSploit here back again with another video. This video will introduce you to the MITRE ATT&CK framework and will illustrate how it can be operationalized for Red Team and Blue...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UafxorrS3mQ",
        "title": "Red Team Frameworks & Methodologies",
        "publishedAt": "1 year ago",
        "durationSeconds": 1104,
        "views": 24674,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Hey guys, HackerSploit here back again with another video. This video will introduce you to the various industry-standard frameworks and methodologies used by Red Teamers to plan and orchestrate...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rHxYZwMz-DY",
        "title": "Introduction To Red Teaming",
        "publishedAt": "1 year ago",
        "durationSeconds": 2906,
        "views": 95280,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Hey guys, HackerSploit here back again with another video. This video will introduce you to red teaming, and explain its origins and adoption in offensive cybersecurity. You will also learn...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fwXRVeIjs-w",
        "title": "Pentesting Diaries 0x1 - SQL Injection 101",
        "publishedAt": "1 year ago",
        "durationSeconds": 4801,
        "views": 49368,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Hey guys, HackerSploit here back again with another video, Welcome to the all-new pentesting diaries series. Pentesting Diaries is a weekly video series, where I will be exploring various pentestin...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "s1Hl9_stdqk",
        "title": "HackerSploit Channel Update 2024",
        "publishedAt": "1 year ago",
        "durationSeconds": 870,
        "views": 17968,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Hey guys, HackerSploit here back again with another video. Just wanted to provide you with an update on where I have been and what the content plan is for the channel. Lots of exciting content...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "oI9aaBpJvoA",
        "title": "3 Year Cybersecurity Career Roadmap",
        "publishedAt": "3 years ago",
        "durationSeconds": 3272,
        "views": 170041,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, I outline a concise 3-year Cybersecurity career roadmap designed for students or professionals looking to get started with a career in Cybersecurity in 2023 and beyond.\n\nSlides:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GT-ClZAi6rE",
        "title": "Linux Red Team Defense Evasion Techniques - Hiding Linux Processes",
        "publishedAt": "3 years ago",
        "durationSeconds": 1189,
        "views": 23054,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, I explore the process of evading defenses on Linux by hiding Linux processes with libprocesshider.\n\nDefense Evasion consists of techniques that adversaries use to avoid detection...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tNJs8CFj_B8",
        "title": "Linux Red Team Persistence Techniques - SSH Keys, Web Shells & Cron Jobs",
        "publishedAt": "3 years ago",
        "durationSeconds": 3262,
        "views": 25884,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, I explore the process of establishing persistence on Linux via SSH keys, local accounts, web shells, and Cron Jobs.\n\nPersistence consists of techniques that adversaries use to...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6PrC4z4tPB0",
        "title": "ChatGPT For Cybersecurity",
        "publishedAt": "3 years ago",
        "durationSeconds": 2403,
        "views": 486610,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, I go over the process of how to use ChatGPT and cover various examples of how to use ChatGPT for Cybersecurity.\n\nChatGPT is an AI-driven chatbot launched by OpenAI in November...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "w2rElXYV2Fs",
        "title": "Linux Red Team Privilege Escalation Techniques - Kernel Exploits & SUDO Permissions",
        "publishedAt": "3 years ago",
        "durationSeconds": 2442,
        "views": 41624,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, I explore the process of elevating privileges on Linux by leveraging kernel exploits, local accounts, and misconfigured SUDO permissions.\n\nPrivilege Escalation consists of techniques...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MsxlsGAJ97c",
        "title": "LastPass Data Breach - Password Security 101",
        "publishedAt": "3 years ago",
        "durationSeconds": 3979,
        "views": 45394,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this episode of CyberTalk, I discuss the latest LastPass data breach (December 2022) and outline a failsafe password management policy for you, your family, and or your business.\n\nThe following...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QGkmlsvjMYI",
        "title": "Windows Red Team Lateral Movement Techniques - PsExec & RDP",
        "publishedAt": "3 years ago",
        "durationSeconds": 1487,
        "views": 40582,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, I will be exploring the process of performing lateral movement on Windows by leveraging PsExec and RDP.\n\nLateral Movement consists of techniques that adversaries use to enter...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vPTbWnCZ0sg",
        "title": "Windows Red Team Privilege Escalation Techniques - Bypassing UAC & Kernel Exploits",
        "publishedAt": "3 years ago",
        "durationSeconds": 2725,
        "views": 29270,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, I will be exploring the process of privilege escalation on Windows by leveraging various privilege escalation techniques.\n\nPrivilege Escalation consists of techniques that adversarie...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6xexyQwG7SY",
        "title": "Windows Red Team - Dynamic Shellcode Injection & PowerShell Obfuscation",
        "publishedAt": "3 years ago",
        "durationSeconds": 2214,
        "views": 33998,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, I will be exploring the process of dynamically injecting Shellcode into portable executables and PowerShell obfuscation for the purpose of defense evasion on Windows.\n\nDefense...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "BnkhIpfc1aU",
        "title": "Updates & Content Schedule - Q4 2022 - Q2 2023",
        "publishedAt": "3 years ago",
        "durationSeconds": 578,
        "views": 8655,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This video outlines the latest updates from the HackerSploit team and goes over the content development plan for Q4 2022 - Q2 2023.\n\n//CERTIFICATIONS\nCertified Exploitation & Post-Exploitation...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "bit.ly",
        "amzn.to"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "hackersploit.academy",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "hackersploit",
        "share": 0.57,
        "evidenceVideoIds": [
          "SbZ7JUII-SQ",
          "Iwxmscx3XXc",
          "Q1wQuHw5JKI",
          "0W3Z3Br56XM",
          "ot3053UxJOc"
        ]
      },
      {
        "label": "red",
        "share": 0.57,
        "evidenceVideoIds": [
          "0W3Z3Br56XM",
          "ot3053UxJOc",
          "ogbrNZ3SCRY",
          "jGy7_NusjuQ",
          "hUBRnh5dzrI"
        ]
      },
      {
        "label": "techniques",
        "share": 0.47,
        "evidenceVideoIds": [
          "SbZ7JUII-SQ",
          "Iwxmscx3XXc",
          "Q1wQuHw5JKI",
          "0W3Z3Br56XM",
          "ot3053UxJOc"
        ]
      },
      {
        "label": "team",
        "share": 0.43,
        "evidenceVideoIds": [
          "ot3053UxJOc",
          "hUBRnh5dzrI",
          "CUMhiSdOSkY",
          "usDt-s2sACI",
          "LCec9K0aAkM"
        ]
      },
      {
        "label": "cybersecurity",
        "share": 0.4,
        "evidenceVideoIds": [
          "SbZ7JUII-SQ",
          "Iwxmscx3XXc",
          "Q1wQuHw5JKI",
          "0W3Z3Br56XM",
          "ot3053UxJOc"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 32,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "HackerSploit — 1.0M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 32,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.78,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "5076105a7542ae31c0b45ead871599d7a32d44f58a277457714d37367022b845",
      "inputsHash": "973ae03556d81018b908d20204c098c468f82b77986ec4bf1ca22887c0749310",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:30.213Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "1831631bca3235ddcee91b0a9ad6832e68e5876fc9a96ef966951040ff595564",
    "channelId": "UC2D6eRvCeMtcF5OGHf1-trw",
    "channelHandle": "@CodeWithChris",
    "channelName": "CodeWithChris",
    "channelUrl": "https://www.youtube.com/@CodeWithChris",
    "description": "Welcome to the largest dedicated iOS tutorial channel on YouTube! Learn how to make an app with Swift, SwiftUI and Xcode. With over 17 million video views and 7 years of teaching online, let me help you turn your app idea into a reality! We answer every single comment so don't hesitate to leave your question and either myself or someone from my team will get back to you!",
    "joinDate": null,
    "location": null,
    "subscribers": 627000,
    "totalVideos": 706,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/K4zGlf7TceeCNLGxZAWr9MePQdfQ97wfQRa_8AxXTNaqh3S3_h87i-2pMebcavkZMYcCIcASQQ=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "cwc.to",
        "url": "https://cwc.to/getstarted"
      }
    ],
    "recentVideos": [
      {
        "videoId": "fHO0mWKM6Gg",
        "title": "Learn Swift for Beginners 2026 - Lesson 12 - Arrays",
        "publishedAt": "8 days ago",
        "durationSeconds": 520,
        "views": 506,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn what arrays are and how to use them in Swift! 🧑‍💻\n\nResources:\n📚 Full guide: \nhttps://codewithchris.com/learn-swift...\n\nIn this lesson, you'll get a clear introduction to Swift arrays — one of the most essential data structures in programming. We'll cover everything from creating arrays, accessing values by index, understanding zero-based indexing, and working with data types.\n\n\nTimestamps:\n0:00 Introduction & lesson overview\n0:45 Creating variables — the problem with many values\n1:11 Introducing arrays — multiple values in one variable\n1:51 Accessing array values by index\n2:21 Zero-based indexing explained\n2:59 \"Index out of range\" error explained\n3:30 Arrays are like lists — adding & removing items\n3:49 Data types and type inference with arrays\n4:10 Array data type syntax ([String], [Int])\n4:34 Array of integers example\n4:58 When you must specify the data type (empty arrays)\n5:22 Why you'd create an empty array\n5:40 Alternative syntax for empty arrays\n5:52 Another way to declare an empty integer array\n6:19 Variables vs. constants with arrays\n7:33 Printing first, last, and count\n8:32 Wrapping up\n\nWhat you'll learn:\n\nWhat arrays are and why they're useful\nHow to create an array in Swift\nAccessing elements using index numbers\nZero-based indexing (and avoiding \"index out of range\" errors)\nArray data types ([String], [Int])\nCreating empty arrays and when to specify the type\nVariables vs. constants with arrays\n\n📚 This is part of the Learn Swift series - a beginner-friendly course teaching you iOS app development from the ground up using Swift and Xcode.\n   • Learn Swift for Beginners 2026 Course  \n\n👇 Drop your favorite movies in the comments!\n\n#Swift #LearnSwift #iOSDevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YDtVZnC_2zU",
        "title": "Learn Swift for Beginners 2026 - Lesson 8 - Logical Operators",
        "publishedAt": "12 days ago",
        "durationSeconds": 465,
        "views": 471,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to use logical operators in Swift, including AND (&&), OR (||), and NOT (!), to write more powerful conditional statements in your iOS apps.\n\nResources:\n📚 Full guide: \nhttps://codewithchris.com/learn-swift...\n\nIn this lesson, you'll learn how to chain multiple conditions into a single if statement, use parentheses to group logic, and combine operators to handle real-world scenarios like a theme park ride checker.\n\nWhat you'll learn:\n\nAND (&&): both conditions must be true\nOR (||): either condition can be true\nNOT (!): flips a boolean from true to false (or vice versa)\nHow to combine multiple logical operators with parentheses\nHow to write an if/else statement with complex conditions\n\nTimestamps:\n0:00 Intro to Logical Operators\n0:20 Chaining Multiple Conditions\n1:26 OR Operator Example\n2:14 NOT Operator (!)\n2:35 Flipping True/False with !\n2:55 AND (&&), OR (||), NOT (!) Overview\n3:01 How to Type the Pipe Character\n3:17 Combining Multiple Operators\n3:47 Complex Example with Parentheses\n5:06 Theme Park Challenge\n5:39 Challenge Solution\n7:29 AI Side Panel Tips\n\nThis is Lesson 8 of the Learn Swift series. If you're just getting started, go back to the beginning of the playlist to follow along from scratch.\n\nLearnSwift #SwiftProgramming #iOSDevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lsUdai6nf5A",
        "title": "Learn Swift for Beginners 2026 - Lesson 11 - For Loops with Ranges",
        "publishedAt": "12 days ago",
        "durationSeconds": 461,
        "views": 432,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this lesson of the Learn Swift series, you'll learn how to use for loops with ranges — one of the most essential tools for writing clean, repeatable code in Swift.\n\nResources:\n📚 Full guide: \nhttps://codewithchris.com/learn-swift...\n\nTimestamps:\n0:00 Introduction\n0:20 Why use a for loop?\n0:45 Writing your first for loop\n1:32 Adding code inside the loop\n1:58 Inclusive ranges explained\n2:42 Using the loop variable (and underscore)\n3:39 Stride: counting by custom steps\n4:49 Challenge: multiplication table\n5:57 Bonus: stride with even multiples\n7:12 Wrap up & AI prompts\n\nYou'll learn:\n✅ What a for loop is and why it's useful\n✅ How to write a for loop using closed ranges and half-open ranges\n✅ How to use the loop variable i — or ignore it with an underscore\n✅ How to use stride to count by custom steps, including counting down\n✅ A hands-on challenge: building a multiplication table\n\nWhether you're brand new to coding or just starting out with Swift, this lesson breaks it all down step by step.\n\n👉 Learn Swift playlist:    • Learn Swift for Beginners 2026 Course  \n\n#LearnSwift #SwiftProgramming #iOSDevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-QrtdLcQoew",
        "title": "Learn Swift for Beginners 2026 - Lesson 10 - Ternary Operator",
        "publishedAt": "13 days ago",
        "durationSeconds": 449,
        "views": 417,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Master the Ternary Operator in Swift: The shorthand way to write if statements in just one line of code!\n\nResources:\n📚 Full guide: \nhttps://codewithchris.com/learn-swift...\n\nTimestamps:\n0:00 Introduction\n0:21 Example overview\n1:11 Ternary vs if statement\n1:33 Breaking down the syntax\n2:57 How it works (recap)\n3:23 Common use cases\n3:54 String interpolation example\n4:56 Nesting (not recommended)\n5:19 Challenge introduction\n5:42 Challenge walkthrough\n6:55 Wrap-up\n7:02 AI practice prompts\n7:25 Outro\n\nIn this lesson from the Learn Swift series, you'll learn:\n\nWhat the ternary operator is and how it compares to a standard if statement\nHow to read and write the condition ? true result : false result syntax\nReal-world use cases like greeting messages and string interpolation\nWhy nesting ternary operators is possible but not recommended\nA hands-on challenge: build a pass/fail checker in just 3 lines of code\nWhether you're just getting started with Swift or leveling up your skills, this lesson will make the ternary operator click.\n\n📚 Part of the Learn Swift series playlist. Designed for beginners who want to build a solid foundation in Swift programming:    • Learn Swift for Beginners 2026 Course  \n\nSwift #LearnSwift #iOSDevelopment #CodeWithChris",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LWqMRAx05RU",
        "title": "Learn Swift for Beginners 2026 - Lesson 9 - Switch Statements",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 588,
        "views": 443,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Swift tutorial, you'll learn how to use switch statements in Swift, one of the most powerful tools for writing clean, readable code when handling multiple conditions.\n\nResources:\n📚 Full guide: \nhttps://codewithchris.com/learn-swift...\n\nNASA website for gravity values:\nhttps://solarsystem.nasa.gov/planet-c...\n\n🕐 Timestamps\n0:00 Introduction & what is a switch statement\n0:26 Switch vs. if/else — when to use each\n1:03 Switch statement syntax walkthrough\n1:50 Handling multiple values with commas\n3:16 The \"exhaustive\" requirement & default case\n4:30 Other switch features (ranges, wear clause)\n5:28 Challenge overview — planet gravity\n6:13 Looking up gravity values on NASA's site\n6:48 Coding the challenge in Xcode\n9:23 Going deeper with AI prompts\n\n🚀 New to Swift? This lesson is part of a beginner-friendly Swift course. Start from Lesson 1 if you're just getting started! Here's the playlist:    • Learn Swift for Beginners 2026 Course  \n\n#LearnSwift #SwiftProgramming  #SwiftTutorial",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OGQvW-sQVoY",
        "title": "Learn Swift for Beginners 2026 - Lesson 7 - If, Else If, Else",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 670,
        "views": 646,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Learn Swift tutorial, you'll learn how to use if statements, else if, and else to make decisions in your code. This is one of the most important concepts when you learn Swift — writing logic that responds to true or false conditions.\n\nResources:\n📚 Full guide: \nhttps://codewithchris.com/learn-swift...\n\nWhat you'll learn:\n\nHow if, else if, and else work together in Swift\nWhy only the first true branch gets executed\nDifferent forms of if statements (if only, if/else, if/else if/else)\nHow to write nested if statements\nXcode's auto-indent shortcut (Control + I)\nA hands-on challenge: build a temperature checker\nWhether you're just getting started or brushing up on the basics, this lesson makes Swift conditionals easy to understand with clear examples and a coding challenge to test your skills.\n\nTimestamps:\n0:00 Introduction & Recap of Comparison Operators\n0:40 Making Decisions with True/False Results\n1:01 Intro to if, else if, else Keywords\n2:00 Reading Output, Skipping False Branches\n2:10 else if Branches Explained\n3:06 Key Behavior: First True Branch Wins\n4:03 Different Forms of if Statements\n5:27 if, else if, and else Together\n5:59 Nested if Statements\n6:23 Xcode Auto-Indent Tip\n7:23 Challenge: Temperature if Statement\n8:10 Hint: Work from Coldest to Hottest\n8:23 Live Coding the Challenge\n11:05 See You in the Next Lesson\n\n#SwiftProgramming #SwiftTutorial #LearnToCode",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "27zajydTlV8",
        "title": "Learn Swift for Beginners 2026 - Lesson 6 - Comparison Operators",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 384,
        "views": 493,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn Swift in minutes! In this lesson, you'll master comparison operators in Swift — one of the most essential tools for writing code that makes decisions.\n\nResources:\n📚 Full guide: \nhttps://codewithchris.com/learn-swift...\n\nYou'll learn how to use comparison operators to compare values, understand why Swift uses a double equal sign instead of a single one, and practice with a real-world challenge: building a password strength checker using .count and Boolean constants.\n\nBy the end of this lesson, you'll know how to write Swift expressions that evaluate to true or false — the foundation of all logic in your apps.\n\nWhat you'll learn:\n\nHow comparison operators work in Swift\nThe difference between = (assignment) and == (equal to)\nHow to compare Strings and Integers\nHow to use .count to measure String length\nHow to store Boolean results in constants\nString interpolation practice\n\nChapters:\n0:00 Introduction & Chapter 1 Recap\n0:18 Writing Smarter Code / Comparison Operators Overview\n0:46 Code Example: Drinking Age Setup\n1:22 Greater Than or Equal To\n1:48 Equal To (==) vs Assignment (=)\n2:22 Less Than and Less Than or Equal To\n2:49 All Comparison Operators Overview\n3:16 Challenge Introduction\n3:33 Challenge: Password Length\n4:12 Using .count Property\n4:48 is Strong Enough Boolean\n5:36 String Interpolation Practice\n5:54 Going Deeper / Additional Examples\n6:12 Lesson Wrap-Up\n\nLearn Swift from scratch with this beginner-friendly series. Each lesson builds on the last, with hands-on challenges to help you write real Swift code faster.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Yt1RBhPAyMk",
        "title": "Learn Swift for Beginners 2026 - Lesson 5 - String Interpolation",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 369,
        "views": 676,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this lesson, you'll learn Swift string interpolation — one of the most useful and beginner-friendly features in the Swift programming language.\n\nResources:\n📚 Full guide: \nhttps://codewithchris.com/learn-swift...\n\nInstead of using commas to combine variables with text in a print statement, string interpolation lets you embed variables and expressions directly inside a string using backslash and parentheses \\(). It works with all data types: Strings, Integers, Doubles, and Booleans.\n\nTimestamps:\n0:00 Introduction\n0:24 Printing variables with comma (old way)\n0:54 String interpolation with backslash and parentheses\n1:31 Seeing it work in the output\n1:55 Using expressions and different data types\n2:43 Math with different types (integer vs double)\n3:10 Lesson summary and common mistake (forward slash)\n3:37 Challenge overview\n4:07 Challenge walkthrough\n4:33 Printing the welcome message\n\nBy the end of this lesson, you'll know how to:\nUse \\() to insert variables into strings\nEvaluate expressions inside string interpolation\nWork with multiple data types in a single string\nAvoid common mistakes like using a forward slash instead of backslash\n\nPlus, there's a hands-on challenge where you'll build a welcome message using four different variables to practice what you've learned.\n\nWhether you're just starting to learn Swift or brushing up on the basics, this lesson will give you a solid foundation for working with strings in Swift.\n\nLearnSwift #SwiftProgramming #iOSDevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0GlpzpUJVcM",
        "title": "Learn Swift for Beginners - Lesson 4 - Data Types",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 507,
        "views": 766,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this Swift tutorial, you'll learn about the four most important data types in Swift: String, Int, Double, and Bool. Understanding data types is a foundational skill when you learn Swift, and this lesson breaks it all down in a beginner-friendly way.\n\nResources:\n📚 Full guide: \nhttps://codewithchris.com/learn-swift...\n\nHere's what we cover:\n\nWhat data types are and why they matter\nStrings (text), Integers, Doubles, and Booleans with real examples\nType annotations vs. type inference (and when to use each)\nWhy Swift is a type safe language and how that protects your code\nA hands-on challenge to reinforce everything you learned\nWhether you're brand new to coding or just starting your Swift tutorial journey, this lesson will give you a solid understanding of how Swift handles data.\n\n0:00 Introduction to Data Types\n1:03 Numbers (Integer, Double, Boolean)\n1:54 Type Annotations and Type Inference\n3:31 Type Safety in Swift\n4:20 Type Conversion Overview\n5:02 Challenge Overview\n5:51 Challenge Walkthrough\n\n#LearnSwift #SwiftTutorial #iOSDevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "B-MZOUBtmUQ",
        "title": "Learn Swift for Beginners 2026 - Lesson 3 - Variables and Constants",
        "publishedAt": "1 month ago",
        "durationSeconds": 776,
        "views": 1219,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ready to learn Swift from scratch? In this Swift tutorial, you'll master one of the most fundamental concepts in the Swift programming language: variables and constants.\n\nResources:\n📚 Full guide: \nhttps://codewithchris.com/learn-swift...\n\nBy the end of this lesson, you'll know:\n\nWhat variables are and how to use the var keyword in Swift\nWhat constants are and when to use the let keyword\nHow camel casing works in Swift naming conventions\nHow to increment and decrement values using += and -=\nWhen to choose var vs let, and why you should default to constants\n\nWhether you're a complete beginner or brushing up on Swift basics, this Swift tutorial walks you through everything with easy-to-follow analogies and hands-on coding challenges.\n\n🔔 Subscribe to keep learning Swift step by step.\n\n0:00 - Introduction – Variables & Constants Overview\n0:21 - Why Variables Matter in Real Apps\n0:40 - The Cardboard Box Analogy\n1:05 - Creating Variables in Swift (var keyword)\n5:28 - Live Coding Demo Recap\n5:37 - Naming Variables & Camel Casing\n6:31 - Constants in Swift (let keyword)\n7:43 - var vs let - Which Should You Use?\n8:38 - Challenge: Build a Points Tracker\n11:33 - Going Deeper with AI Prompts\n12:50 - Wrap Up\n\n#swiftprogramming  #learnswift #swifttutorial",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4UngKMf0T84",
        "title": "Learn Swift for Beginners 2026 - Lesson 2 - Print Output",
        "publishedAt": "1 month ago",
        "durationSeconds": 471,
        "views": 1428,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn Swift with no experience. In this lesson, we dive deeper into Swift's print statement — one of the most powerful tools for debugging your apps. \n\nLearn how to print text, numbers, and...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "H3kgN0TuLVc",
        "title": "Learn Swift for Beginners 2026 - Lesson 1 - Intro to Swift",
        "publishedAt": "1 month ago",
        "durationSeconds": 504,
        "views": 3994,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ready to learn Swift from scratch? This Swift tutorial is Lesson 1 of a complete series designed for absolute beginners with no prior coding experience required.\n\nResources:\n📚 Full guide:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "p3C9d6IHb1k",
        "title": "This AI Agent Coded My Entire App Unsupervised (OpenClaw + iOS)",
        "publishedAt": "2 months ago",
        "durationSeconds": 979,
        "views": 3811,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Use OpenClaw Safely. Learn more:  https://bit.ly/3PkJcpD\n\nOpen Claw is the controversial AI agent that's taking over the internet—and for good reason. It can control your entire computer,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "oRc4lLmvHyE",
        "title": "How to Make an App (Xcode 26) FULL TUTORIAL",
        "publishedAt": "5 months ago",
        "durationSeconds": 9228,
        "views": 56462,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Confidently learn how to make an app (no coding experience required). Used in classrooms and Apple stores, these videos are designed for beginners in mind to teach the fundamental skills for...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "olxOUGYxTRw",
        "title": "War Card Game - Implementing Deal, Score, Win Conditions (Day 8)",
        "publishedAt": "5 months ago",
        "durationSeconds": 1351,
        "views": 1736,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In the final lesson of our eight-day beginner series, we complete the war card game app! Learn how to randomize card values, calculate the winner, update the user interface, and deploy the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8bCmJYv0Sj4",
        "title": "Which AI Codes Best? Gemini 3 Pro, Opus 4.5 and Composer 1 Tested!",
        "publishedAt": "5 months ago",
        "durationSeconds": 771,
        "views": 7358,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Zapier MCP - Get Started → https://bit.ly/3Y0Nm7j\nIn this video, we put Google's new AI model Gemini 3 and Antigravity coding editor to the test by comparing it against the flagship...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TWP1piU1wpA",
        "title": "War Card Game - Adding SwiftUI Buttons  (Day 7)",
        "publishedAt": "5 months ago",
        "durationSeconds": 1411,
        "views": 1687,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this lesson, you will learn how to apply SwiftUI variables and functions to the War card game. We start by converting an image of a button into a functional SwiftUI button and explore how...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "p4cwTv4iZhk",
        "title": "Swift Tutorial - Functions  (Day 6)",
        "publishedAt": "5 months ago",
        "durationSeconds": 366,
        "views": 1635,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this lesson, we build on the previous knowledge of Swift variables and introduce you to Swift functions. \n\nWe'll explore how functions group code statements to make our code more organized...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "aK2RU-Htg_s",
        "title": "Swift Tutorial - Variables  (Day 5)",
        "publishedAt": "6 months ago",
        "durationSeconds": 1006,
        "views": 2911,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, you'll start learning the Swift Programming Language so that you can start some basic coding!\n\nSpecial Offer for my training programs:\nhttps://cwc.to/intro-offer\n\nMore info about...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nq4QKqwNueQ",
        "title": "War Card Game Xcode 26  (Day 4)",
        "publishedAt": "6 months ago",
        "durationSeconds": 1004,
        "views": 4546,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, we take the SwiftUI and Xcode skills from the previous lessons to build your first app user interface!\n\nSpecial Offer for my training programs:\nhttps://cwc.to/intro-offer\n\nMore...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zS3VuuCQod4",
        "title": "SwiftUI Tutorial Xcode 26 (Day 3)",
        "publishedAt": "6 months ago",
        "durationSeconds": 2447,
        "views": 11661,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to use SwiftUI views, view containers and view modifiers to construct an app user interface. This lesson focuses on the foundations of building user interfaces in Xcode using SwiftUI....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fnWdIkKiViE",
        "title": "Zapier vs Make Review (Comparing AI, MCP, Pricing, Workflows)",
        "publishedAt": "6 months ago",
        "durationSeconds": 862,
        "views": 2172,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Get Started → https://bit.ly/3IpMBkf\n\nWe put Zapier and Make head to head to determine which tool is better for connecting your apps and automating workflows. Join us as we dive into...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bwXAe4YqXaE",
        "title": "Xcode 26 Tutorial for Beginners (Day 2)",
        "publishedAt": "7 months ago",
        "durationSeconds": 1385,
        "views": 23559,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to use Xcode for your first iOS app project in this step by step tutorial! This tutorial will show you where to get Xcode, how to create your first iOS project, what all the files...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8_zse1sy80I",
        "title": "Zapier MCP Tutorial: The Missing Link That Lets AI Control Your Apps",
        "publishedAt": "7 months ago",
        "durationSeconds": 491,
        "views": 5072,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Get Started → https://bit.ly/42hiCSb\n\nMaximize Your Productivity with Zapier MCP and AI Tools!\n\nDiscover the power of Zapier MCP in connecting your AI tools like Claude to automate and...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RReN3QpUSDg",
        "title": "I Love This New Vibe Coding Workflow",
        "publishedAt": "7 months ago",
        "durationSeconds": 1118,
        "views": 5116,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Get Started → https://bit.ly/4nSQ2Pi\n\nIn this video, learn how to enhance your iOS development workflow using Cursor, GitHub, and Zapier MCP.  From creating issues automatically to updating...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MzUTDrSucZ8",
        "title": "How to Make an App with Xcode 26 (Day 1)",
        "publishedAt": "7 months ago",
        "durationSeconds": 382,
        "views": 14079,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Confidently learn how to make an app (no coding experience required). Used in classrooms and Apple stores, these videos are designed for beginners in mind to teach the fundamental skills for...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "D8ui7pRq4Zg",
        "title": "What Is Zapier? How It Works (Step by Step)",
        "publishedAt": "7 months ago",
        "durationSeconds": 896,
        "views": 19048,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Get Started → https://bit.ly/4nTGPq7\n\nLearn how to use Zapier to automate workflows, save time, and make tasks easier without coding. \n\nTimestamps:\n00:00 Introduction to Zapier\n00:41...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EwQgLYvLxiw",
        "title": "GitHub Made Simple (Full Tutorial)",
        "publishedAt": "7 months ago",
        "durationSeconds": 2105,
        "views": 3499,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn GitHub Basics: Never Lose Your Project Again!\n\nIn this video, you'll learn the fundamentals of source control using GitHub, perfect for beginners and those without coding experience....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0vzYWyHmcY8",
        "title": "GitHub Branches Tutorial (Beginner Friendly)",
        "publishedAt": "7 months ago",
        "durationSeconds": 957,
        "views": 15310,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this GitHub tutorial, I’ll show you how to use branches so you can safely experiment with new features without breaking your main project.\n\nIf you’ve watched my GitHub basics tutorial...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "v5gnvDUWqFM",
        "title": "GitHub Tutorial for Beginners (2025)",
        "publishedAt": "8 months ago",
        "durationSeconds": 1194,
        "views": 43655,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to use GitHub Desktop even if you’ve never coded before.  \nIn this beginner-friendly GitHub tutorial, I’ll walk you step-by-step through setting up your free GitHub account, installin...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 12,
      "uploadsLast90d": 13,
      "uploadCadenceWeekly": 1.01,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 646,
      "viewsPerVideoP90Last90d": 1428,
      "viewVelocityTrend": "rising"
    },
    "performanceBaseline": {
      "p50Views": 646,
      "p90Views": 1428,
      "p99Views": 3811,
      "outperformingVideosLast90d": 3
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "bit.ly"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "cwc.to",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "learn",
        "share": 0.77,
        "evidenceVideoIds": [
          "fHO0mWKM6Gg",
          "YDtVZnC_2zU",
          "lsUdai6nf5A",
          "-QrtdLcQoew",
          "LWqMRAx05RU"
        ]
      },
      {
        "label": "https",
        "share": 0.6,
        "evidenceVideoIds": [
          "fHO0mWKM6Gg",
          "YDtVZnC_2zU",
          "lsUdai6nf5A",
          "-QrtdLcQoew",
          "LWqMRAx05RU"
        ]
      },
      {
        "label": "beginners",
        "share": 0.57,
        "evidenceVideoIds": [
          "fHO0mWKM6Gg",
          "YDtVZnC_2zU",
          "lsUdai6nf5A",
          "-QrtdLcQoew",
          "LWqMRAx05RU"
        ]
      },
      {
        "label": "lesson",
        "share": 0.53,
        "evidenceVideoIds": [
          "fHO0mWKM6Gg",
          "YDtVZnC_2zU",
          "lsUdai6nf5A",
          "-QrtdLcQoew",
          "LWqMRAx05RU"
        ]
      },
      {
        "label": "swift",
        "share": 0.47,
        "evidenceVideoIds": [
          "fHO0mWKM6Gg",
          "YDtVZnC_2zU",
          "lsUdai6nf5A",
          "-QrtdLcQoew",
          "LWqMRAx05RU"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Thursday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "moderate",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 42,
      "reason": "growth rising last 90d",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.85
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "rising 90d view velocity. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "CodeWithChris — 0.6M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 42,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.68,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 2,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 2
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.02
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.02,
      "gap": 0.92,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "1831631bca3235ddcee91b0a9ad6832e68e5876fc9a96ef966951040ff595564",
      "inputsHash": "315f60542ab17397e0123e449ed8f729eb93ac7bf3c19d66149238f0e4071630",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-rising",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:31.704Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "fef3d4a99395d60324d2d1d903b0ad179c27d01cf5dafdbf746130e0d5869494",
    "channelId": "UCBRxDSTfr2aJVODDh4WG_7g",
    "channelHandle": "@francescociulla",
    "channelName": "Francesco Ciulla",
    "channelUrl": "https://www.youtube.com/@francescociulla",
    "description": "Welcome to my channel! If you're interested in learning Rust, web development, DevOps, or AI for developers, you're in the right place. I mainly focus on Rust, helping you build faster, safer software. Expect Rust tutorials, scalable DevOps and web architectures, AI tools for coding, interviews on my podcast, and livestream coding sessions. Subscribe to improve your skills and join the community!",
    "joinDate": null,
    "location": null,
    "subscribers": 343000,
    "totalVideos": 199,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/sdqpI0nZcVOVZKEobNUKh-NOMfR-BpR_UxXbiCVUsUuDrZWwsw676dU-Dr_Uod_UANB2YJzp=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "francescociulla.com",
        "url": "https://francescociulla.com"
      },
      {
        "platform": "linkedin",
        "url": "https://www.linkedin.com/in/francesco-ciulla-roma/"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/FrancescoCiull4"
      }
    ],
    "recentVideos": [
      {
        "videoId": "QjSVSV6CUtE",
        "title": "5 Underrated Rust Features That Make Your Code Cleaner",
        "publishedAt": "5 days ago",
        "durationSeconds": 160,
        "views": 1070,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "YouTube description:\n   • Learn the Rust programming language - Cour...  \n\nIn this video, I share 5 underrated Rust features that can make your code cleaner, safer, and more idiomatic: block expressions, the dbg! macro, struct update syntax, match guards, and todo!.\n\nEveryone talks about the borrow checker and memory safety, but these small Rust quality-of-life features are what really improve your day-to-day coding experience. Whether you are learning Rust or already writing Rust regularly, these features will help you write cleaner and more expressive code.\n\nWhich one is your favorite? Let me know in the comments.\n#rustlang #programming #coding",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "baFV0ODJbRI",
        "title": "Don’t Trust AI-Generated Code Until You Watch This - Docker can help you",
        "publishedAt": "8 days ago",
        "durationSeconds": 962,
        "views": 467,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "AI can generate code fast, but can you actually trust it?\n\nIn this episode, I’m joined by Docker Captains Kristiyan Velkov, Pradumna Saraf, Siri Varma, and Utkarsh Chauhan to discuss AI-generated code, developer fundamentals, security risks, Docker, containers, MCP, agents, and the mistakes developers are making with AI tools.\n\nWe talk about why AI coding is powerful, why blindly accepting generated code is dangerous, and how developers can use AI safely without losing their core skills.\n\nGuests:\nKristiyan Velkov\nLinkedIn:   / kristiyanvelkov  \n\nPradumna Saraf\nLinkedIn:   / pradumnasaraf  \n\nSiri Varma\nLinkedIn:   / sirivarma  \n\nUtkarsh Chauhan\nLinkedIn:   / utkarsh-chauhan-a10248262  \n\nTopics:\nAI-generated code\nDocker and containers\nSecure development workflows\nMCP servers and AI agents\nDeveloper fundamentals\nCommon AI coding mistakes\n\n#AI #Docker #Developers #Programming #DevOps #SoftwareDevelopment #AICoding #containership \n\n0:00 Introduction - guests' introduction\n3:20 How do you use Docker and AI - What's a good way to use AI?\n10:05 Mistakes you see people making while using AI",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Xd5KW6WSLJw",
        "title": "Docker, AI and the future of developers - with Per Kroogslund",
        "publishedAt": "13 days ago",
        "durationSeconds": 874,
        "views": 265,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, we discuss the current state of developers, Docker, and AI with Per Kroogslund, Senior Director at ‪@DockerInc‬ \n\nLive panel at MWC Barcelona\n   • Will AI Replace Developers? The Real Truth...  \n\nGuest: Per Kroogslund \n  / per-ploug-krogslund   \n\nDocker official Blog:\nhttps://www.docker.com/blog/\n\nDocker YouTube Channel\n   / dockerrun  \n\n0:00 is AI really replacing developers?\n2:00 Docker AI and the future of development\n5:22 Creating an MCP server using Docker, prompt injections\n7:00 What happened at Docker during the last year? The Best small LLM model, Qwen. Docker Agent\n10:05 What is a skill a developer should have? Social Media are not the real life. \n12:35 More Docker updates: Sandboxes, Docker Hardened images, Docker engine and Docker runtimes\n\n#docker #devops #ai #developers #programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JHkarhWMTII",
        "title": "Why Rust is Replacing JavaScript for Full Stack Web Apps in 2026",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 182,
        "views": 9045,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Feeling overwhelmed by JavaScript's chaotic environment, crashes, and endless node modules? Looking ahead to 2026, building a full-stack web app with Rust could be a great choice. We're excited about exploring Rust web frameworks as an alternative to Node and React.\n\nFor the backend, Actix Web is known for its incredible speed and can handle millions of requests, while Axum offers a stable and safe environment thanks to its robust type system. On the frontend, we're making a shift from JavaScript to WebAssembly with Leptos, which delivers quick, reactive interfaces without the virtual DOM overhead. SQLx helps maintain database integrity with compile-time checks.\n\nAlthough compile times are a bit longer than JavaScript, creating this resilient and efficient tech stack feels like a promising path forward. Check out the starter template below and get started on your build!\n\nRelated Videos:\nIn-depth talk about Rust and web development:    • Is Rust a good alternative to frameworks l...  \nRust fullstack application    • Rust Fullstack Web Application: Wasm, Yew,...  \n\n🔥 Extended Rust Training (3.5 Hours): 👉   • Learn the Rust programming language - Cour...  \n🐇 The Rabbit Hole: Learn Rust with this long free course:    • Rust Installation, Hello World, Hello Carg...  \n📙 Rust Book: https://mybook.to/YJI6DI\nALL THE LINKS HERE: https://francescociulla.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Nua3FCYTL0w",
        "title": "Running 100 Services for $5 a Month: Why Rust Wins in 2026",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 175,
        "views": 1848,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I am not crazy, of course I use AI to generate code. But when we talk about production environments where money and maintenance are on the line, we have to understand what the hell is going on. In this part of my talk at Sapienza, I discuss the real reason companies are switching to Rust: it saves them actual money.\n\nI share my experience with DigitalOcean droplets where I can run 100 services for just $5 a month. This is not just theory or hype. This is a real, measurable improvement in how we build systems. We also dive into the risks of letting AI generate everything without human oversight and why your Saturday night side projects are very different from professional production software.\n\nIn this video, I talk about:\nWhy companies choose Rust to save money rather than just for the hype\nThe reality of AI hallucinations when generating complex code\nRunning over 100 Rust services on a single $5 droplet\nThe difference between side projects and code that needs long term maintenance\nWhy experts are still relevant despite the rise of LLMs\nKeeping control over the systems we build and why maintenance matters\n\nIf you want to understand how to combine AI efficiency with professional reliability in 2026, this conversation is for you.\n\n🔗 Links:\nSapienza Futura → https://sapienzafutura.it/\nInstagram Sapienza Futura →   / sapienzafutura  \nAll my links → https://francescociulla.com\nBuy my Rust Book 📙 → https://mybook.to/YJI6DI\nAre you using Rust to save on infrastructure costs, or are you still experimenting? Let me know in the comments.\n\n#RustLang #AI #SoftwareEngineering #CloudComputing #FrancescoCiulla #Programming2026 #TechEconomics #DigitalOcean #ComputerScience",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_EnrMzTxzVU",
        "title": "The AI Sweet Spot: How to Use LLMs Without Losing Your Skills",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 201,
        "views": 245,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "There is a big debate right now between programmers who refuse to use AI and those who rely on it for everything. In my opinion, we simply do not have the time to wait around and see what happens in five years. We need to embrace this evolution now. It is not just about having a new IDE or a better tool, it is a complete shift in how we create systems and write code.\n\nIn this clip from my chat at Sapienza University, I explain why I have changed my mind about specialization. I used to advocate for being an expert in just one field, but now I believe we need to be both vertical and horizontal. We have to be strong in our core skills while understanding how to use Gemini, Grock, and other models to our advantage.\n\nIn this video, I discuss:\nWhy ignoring AI out of fear is a huge mistake for your career\nHow to use LLMs for everything from programming to exam preparation\nThe importance of using university, books, and AI together rather than choosing one\nMy shift from deep specialization to a more balanced \"vertical and horizontal\" approach\nWhy this era reminds me of when the internet first came out\nUsing AI to summarize books, generate slides, and test your knowledge\n\nWe are living through a massive evolution. It might feel exhausting, but it is also a fascinating time to be a developer. Don't be the person who says \"the internet is bad\" thirty years too late.\n\n🔗 Links:\nSapienza Futura → https://sapienzafutura.it/\nInstagram Sapienza Futura →   / sapienzafutura  \nAll my links → https://francescociulla.com\nBuy my Rust Book 📙 → https://mybook.to/YJI6DI\n\nHow are you balancing AI with your traditional learning? Let me know in the comments.\n\n#AI #Programming #LLMs #ComputerScience #FrancescoCiulla #TechTrends #SoftwareEngineering #FutureOfWork",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "T0JGUnSqoZU",
        "title": "How to Build a Tech Presence Without Burning Out",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 222,
        "views": 251,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I remember when the internet was full of developers writing blogs about what they were learning. Today, things feel different, but the core principle remains the same! \n\nYour presence in the community should always start with what you are actually learning and who you really are, not how you want to appear.\n\nIn this clip from my talk at Sapienza, I explain why I am a huge fan of sustainability. Many people try to push too hard on social media and end up burning out. I prefer a slower pace that actually lasts. I also share my perspective as an interviewer and what I look for when I check a candidate's GitHub profile.\n\nIn this video, I discuss:\n\nWhy branding should follow your passions like TypeScript or local communities\nThe reality of working in Developer Relations (DevRel)\nWhy a nice GitHub profile with pinned repositories is a game changer\nMy experience hiring developers based on their public projects\nHow sharing your journey helps you even if your English isn't perfect\n\nShowing what you know, whether it is an MCP server or a React project, is the best way to open doors in this industry.\n\n🔗 Links:\nSapienza Futura → https://sapienzafutura.it/\nInstagram Sapienza Futura →   / sapienzafutura  \n\nAll my links → https://francescociulla.com\nBuy my Rust Book 📙 → https://mybook.to/YJI6DI\n\nDo you find it hard to balance learning with being active in the community? Let's talk about it in the comments.\n\n#TechCommunity #PersonalBranding #SoftwareEngineering #GitHub #DevRel #FrancescoCiulla #TechCareers #WebDevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gGRJpwyCAio",
        "title": "Build an MCP Server using Rust and Docker - AI and the Model Context Protocol",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 1834,
        "views": 1083,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Rust for AI: Build an MCP Server with Docker (Model Context Protocol)\n📙 Rust Book: https://mybook.to/YJI6DI\n\nModel Context Protocol (MCP) — the new open standard from Anthropic that works like \"USB-C for AI\".\n\nIn this hands-on tutorial, we solve a real developer pain point:\nHow can AI tools like Claude safely read your local files (e.g. production crash logs) without exposing your entire machine?\n\nWe build a complete MCP Server from scratch in Rust, then containerize it with Docker for maximum security and portability. Perfect for Rust developers who want to bring powerful AI agents into their local workflow safely.\n\nWhat you'll learn:\nWhat MCP is and how it works (Handshake → Tools List → Tool Call)\nBuilding a JSON-RPC 2.0 MCP server in Rust using Tokio\nSecurely containerizing the server with a multi-stage Docker build\nConnecting the MCP server to Claude Desktop / Cline\nLive demo: Let Claude analyze a real production crash log in real time\n\nOfficial MCP Documentation: https://modelcontextprotocol.io/docs/...\nGitHub Repository: https://github.com/FrancescoXX/mcp-se...\nTimestamps:\n\n0:00 Rust for AI - Introduction\n2:33 Introduction to MCP (Model Context Protocol)\n6:51 Project setup & first version\n9:05 Handshake & tools-list\n13:20 Tool execution (tools-call)\n18:40 Dockerizing the MCP Server\n22:26 Integrating with Claude Desktop\n28:00 Takeaways & Conclusion\n\n🔥 Extended Rust Training (3.5 Hours):    • Learn the Rust programming language - Cour...  \n🐇 The Rabbit Hole - Full Free Rust Course:    • Rust Installation, Hello World, Hello Carg...  \nAll links: https://francescociulla.com\n\n#Rust #RustForAI #MCP #ModelContextProtocol #Docker #Claude #Anthropic #AI #RustProgramming #Programming #AIServer #RustTutorial #ClaudeAI #LocalAI #DevTools",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5QhdrMfU5lE",
        "title": "Why Rust is Replacing My Favorite Languages in 2026",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 265,
        "views": 1542,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I share my personal journey with Rust and why I decided to dive deep into The Rust programming language, eventually even writing a book about it! \n\nAfter spending time in developer relations and focusing on community events, I realized I needed a technology that would keep my coding skills sharp while allowing me to create meaningful content.\n\nI talk about the unique way Rust handles memory management, offering a powerful alternative to both the manual allocation in C++ and the garbage collection found in languages like Python or JavaScript.\n\nYou will hear about one of my favorite features: the Rust compiler. Unlike other languages where error messages can be a \"long back trace of red,\" Rust provides explicit, helpful feedback that actually makes you a better coder.\n\nI also share my experience using Rust for backend development, where I’ve seen production web servers run on as little as 4 megabytes of RAM.\n\nFinally, I explore how AI is changing the developer experience, making it easier to choose high performance languages without the traditional overhead.\n\n🔗 Links:\nSapienza Futura → https://sapienzafutura.it/\nInstagram Sapienza Futura →   / sapienzafutura  \nAll Francesco Ciulla’s links → https://francescociulla.com\nBuy my Rust Book 📙 → https://mybook.to/YJI6DI",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WmGv-lZgr7M",
        "title": "Build a Real World Full Stack App with Rust (Axum, SQLx, Leptos)",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 3226,
        "views": 5205,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ready to deploy your Rust applications the easy way? Try Zerops today and get your full-stack project live in minutes: https://zerops.io/ \n\nCollaboration with ‪@rustify-rs‬ \n\nIn this collaboration with Maxwells (maintainer of Rust UI), we are building a complete Twitter clone entirely in Rust. We cover everything from the database to the browser, proving that Rust is an incredible choice for full-stack web development. All the code is completely open-source and available on GitHub.\n\nhttps://github.com/rust-ui/ui\n\nI handle the back-end part of the application using Axum, SQLx, and PostgreSQL to build fast and reliable APIs. Max takes over for the front-end, building a highly reactive interface using Leptos and components from Rust UI. We wrap everything up by deploying the finished project to the cloud using Zerops.\n\nWhat you will learn in this video:\nSetting up an Axum web server and connecting it to a PostgreSQL database\nWriting SQLx migrations for users, tweets, and follow relationships\nBuilding a reactive client-side interface with Leptos and server functions\nIntegrating the front-end and back-end into a single cohesive application\nDeploying the final production build to the cloud seamlessly\n\nGitHub: https://github.com/max-wells/rust-twi...\n\n00:00: Build Backend with Docker\n13:10: Fullstack template presentation\n21:16: Integrate Francesco's BE with Leptos\n31:53: Build frontend with Leptos and Rust UI \n46:05: Deploy with Zerops\n#rust #programming #zerops",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SJP3T2XCtCc",
        "title": "The Hardest Skill in Tech: Learning What to Ignore",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 137,
        "views": 228,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If you feel overwhelmed by the constant stream of new LLMs, databases, and frameworks, you are not alone. In this clip from our conversation at Sapienza University, Francesco Ciulla explains...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "U0Lo5ASA1mk",
        "title": "I Built an AI Dockerfile Explainer Running on NVIDIA H100 GPU with Rust",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 781,
        "views": 3515,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get $350 FREE DigitalOcean Credits (first 50 only)! \n\nUse code **FRAN128** and sign up here:  \nhttps://cloud.digitalocean.com/registrations/new?utm_source=youtube&utm_medium=sponsorships&utm_campai...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_I_ZOZ218TM",
        "title": "Is Computer Science Dead in 2026?",
        "publishedAt": "1 month ago",
        "durationSeconds": 191,
        "views": 250,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Is Computer Science really dead in 2026? With LLMs and AI everywhere, everyone keeps saying the field is over… but is that the truth?\n\nIn this honest fireside chat at @SapienzaRoma  University...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "X5OiZuMx8Qo",
        "title": "Docker and Laravel - Optimize PHP with Docker",
        "publishedAt": "1 month ago",
        "durationSeconds": 1176,
        "views": 314,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Tired of the classic \"it works on my machine\" excuse? In this talk, we explore how to level up your PHP and  ⁨@LaravelPHP⁩   workflow using  ⁨@DockerInc⁩    \n\nThe goal is simple: sleep...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LsZr3tBA0JY",
        "title": "Inside GDC 2026: Crazy Games and My Huge Meta Announcement!",
        "publishedAt": "1 month ago",
        "durationSeconds": 615,
        "views": 316,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Meta GDC 2026 in San Francisco was an absolute blast! \n\nI took a direct flight to get there and managed to snap that cool picture with my hands raised on the very first day. The whole trip...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Bmo8yBdis2w",
        "title": "Rust vs The World: Why Senior Devs Struggle with the \"New\" Language",
        "publishedAt": "1 month ago",
        "durationSeconds": 378,
        "views": 746,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Amazing Interview with Giorgio Basile, for Bacarotech, during the last GDG Roma Citta' - Video in Italian with English subs\n\nLinks and Resources:\n\nBacaroTech\nLinkedIn: https://www.linkedin.com/comp...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "48VT0P9Jh5o",
        "title": "Stop using Over-Complicated Cloud. Zerops 3.0 is here",
        "publishedAt": "1 month ago",
        "durationSeconds": 1486,
        "views": 706,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀 TRY ZEROPS (FREE) @zeropsio \nDeploy your first project in less than 5 minutes: https://zerops.io/\n\n📖 ZEROPS RESOURCES\n* Website: https://zerops.io/\n* Full Article: https://zerops.io/article...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "A1DZuMNZTfo",
        "title": "Rust Roadmap 2026: How to Learn Rust Fast (Step-by-Step)",
        "publishedAt": "1 month ago",
        "durationSeconds": 200,
        "views": 4693,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How to learn the Rust Programming Language in 2026\n\nRelated Videos:\nIn-depth talk about Rust and web development: https://youtu.be/usYYJSUsfjg\n\nRust fullstack application https://www.youtube.com/wa...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Zt7_qgTTVDk",
        "title": "The Future of Rust: 15 Top Engineers Share What’s Next (RustConf 2025)",
        "publishedAt": "1 month ago",
        "durationSeconds": 702,
        "views": 2221,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "RustConf 2025: Capturing the Energy 🦀\nThis video is a fast-paced journey through the heart of RustConf 2025!\n\n🍁 RUSTCONF 2026 — COMING SOON!\nJoin us in Montréal, Canada, for the next...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3_a1j58xQ3k",
        "title": "Will AI Replace Developers? The Real Truth from MWC Barcelona",
        "publishedAt": "1 month ago",
        "durationSeconds": 1979,
        "views": 700,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "AI isn’t coming for your job, but the person who knows how to use it definitely is. \n\nSead Ahmetović, CEO of @_wearedevs  (Moderator) – https://www.wearedevelopers.com/\n\nPer Ploug Krogslund,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "BvfETILFJCw",
        "title": "Is My Rust Book Actually Bad? Reacting to @JetBrainsTV",
        "publishedAt": "2 months ago",
        "durationSeconds": 793,
        "views": 3521,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I'm reacting to the Rust book review by Vitaly Bragilevsky (@JetBrainsTV ). Check out his thoughts on \"The Rust Programming Handbook\" and my take on his feedback.\n\n📙 Get this Rust Book:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "F0mnlcS0Amg",
        "title": "No, Rust is NOT really hard to learn, compared to Python, JavaScript, GO, and C++",
        "publishedAt": "2 months ago",
        "durationSeconds": 1654,
        "views": 3285,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "📙 Rust Book: https://mybook.to/YJI6DI\nIs Rust actually hard to learn, compared to Python, JavaScript, and C++? Or is it just telling you the truth about your code?\n\nThis is a talk I gave...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CdVO7oDoAGk",
        "title": "Rust Axum in 2026: Is it actually better than Go, Python  and Node?",
        "publishedAt": "2 months ago",
        "durationSeconds": 161,
        "views": 9042,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Is Rust web development ready to replace Next.js, Laravel, or Django in 2026? We dive into why the Axum and SQLx stack is becoming the \"boring\" but profitable choice for high-performance web...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "24mL8eVYNl4",
        "title": "Is Rust Really Hard to Learn, compared to Python, JavaScript and C++?",
        "publishedAt": "2 months ago",
        "durationSeconds": 1995,
        "views": 3281,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Is Rust actually hard to learn, compared to Python, JavaScript and C++? Or is it just telling you the truth about your code?\n\nIn this talk, I break down the \"Rust is impossible\" myth by comparing...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cVnRGZaMLXQ",
        "title": "My Experience at Laracon India 2026 🇮🇳",
        "publishedAt": "2 months ago",
        "durationSeconds": 391,
        "views": 434,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "My Experience at Laracon India 2026 🇮🇳 | Docker, PHP, & The Best Community!\n\nThanks to Docker for sponsoring this 🐳\n\nWhat an incredible journey! In this vlog, I’m taking you with...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8yXGYLgJ_do",
        "title": "The Future of Rust: Vision Doc, AI & Symposium.dev (feat. Jack Huey)",
        "publishedAt": "2 months ago",
        "durationSeconds": 1720,
        "views": 889,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I sit down with Jack Huey, Rust Project Lead and Member of the Rust Foundation Board, to discuss the roadmap for the next 10 years of the language.\n\nWe dive deep into the newly released \"Rust...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xmtRCBX0yT0",
        "title": "AI vs Developers: Will AI Really Replace Software Engineers in 2026?",
        "publishedAt": "3 months ago",
        "durationSeconds": 168,
        "views": 1940,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Is AI replacing developers? The honest truth about the future of software engineering.\n\nWill AI replace developers in 2026? Is coding dead, or is it just evolving? We’ll see, but which skills...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SHvE8B9NYdg",
        "title": "Building a Serverless API with Rust and AWS Lambda",
        "publishedAt": "3 months ago",
        "durationSeconds": 927,
        "views": 1236,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🔥 Get 35% OFF \"Crafting Lambda Functions in Rust\"! I managed to get an exclusive discount for you! While there is a 25% discount currently active, you can use my link to get 35% off the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ncFIqIOUaPQ",
        "title": "Stop Studying Rust, Start Coding: 9 Practical Examples",
        "publishedAt": "3 months ago",
        "durationSeconds": 756,
        "views": 2178,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Are you curious about Rust, but are you allergic to theory? This video is for you because I collected 9 rust examples, just code, to give you a look into this programming language. \n\nFull video...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nlxxMBXT0nA",
        "title": "Stop Using C++ for AI Toys? Why Echokit Uses Rust",
        "publishedAt": "3 months ago",
        "durationSeconds": 1558,
        "views": 1407,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to build full-stack AI agents using Rust and Docker with Echokit. In this episode, Michael Yuan and Marco Franzon join Francesco Ciulla to discuss the challenges of embedded AI, why...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 20,
      "uploadsLast90d": 30,
      "uploadCadenceWeekly": 2.33,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 1083,
      "viewsPerVideoP90Last90d": 4693,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 1083,
      "p90Views": 4693,
      "p99Views": 9042,
      "outperformingVideosLast90d": 4
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 1,
      "sponsorBrandsDetected": [
        "Docker"
      ],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 3,
      "lastSponsoredVideoDate": "2026-03-15",
      "detectionDetail": [
        {
          "brand": "Docker",
          "videoId": "cVnRGZaMLXQ",
          "confidence": 0.7,
          "evidence": "description: Thanks to Docker for sponsoring",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:33.114Z"
        }
      ]
    },
    "sponsorshipMaturity": {
      "tier": "occasional",
      "evidence": {
        "sponsoredVideoCountLast90d": 1,
        "uniqueSponsorBrandsLast90d": 1,
        "firstSponsoredVideoDate": "2026-05-14"
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "web-services",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:web development"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "francescociulla.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": true,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "rust",
        "share": 0.67,
        "evidenceVideoIds": [
          "QjSVSV6CUtE",
          "JHkarhWMTII",
          "Nua3FCYTL0w",
          "_EnrMzTxzVU",
          "T0JGUnSqoZU"
        ]
      },
      {
        "label": "https",
        "share": 0.47,
        "evidenceVideoIds": [
          "Xd5KW6WSLJw",
          "JHkarhWMTII",
          "Nua3FCYTL0w",
          "_EnrMzTxzVU",
          "T0JGUnSqoZU"
        ]
      },
      {
        "label": "com",
        "share": 0.4,
        "evidenceVideoIds": [
          "Xd5KW6WSLJw",
          "JHkarhWMTII",
          "Nua3FCYTL0w",
          "_EnrMzTxzVU",
          "T0JGUnSqoZU"
        ]
      },
      {
        "label": "programming",
        "share": 0.37,
        "evidenceVideoIds": [
          "QjSVSV6CUtE",
          "baFV0ODJbRI",
          "Xd5KW6WSLJw",
          "JHkarhWMTII",
          "_EnrMzTxzVU"
        ]
      },
      {
        "label": "code",
        "share": 0.3,
        "evidenceVideoIds": [
          "QjSVSV6CUtE",
          "baFV0ODJbRI",
          "Nua3FCYTL0w",
          "_EnrMzTxzVU",
          "WmGv-lZgr7M"
        ]
      },
      {
        "label": "web development",
        "share": 0.13,
        "evidenceVideoIds": [
          "JHkarhWMTII",
          "WmGv-lZgr7M",
          "A1DZuMNZTfo",
          "CdVO7oDoAGk"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Thursday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "B",
      "rationale": "content pillars match high-value sponsor categories, consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "occasional"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 41,
      "reason": "fits web-services",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.5
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.35
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.6,
      "level": "medium",
      "coldStart": false
    },
    "whyThisMatters": "fits web-services. Channel is in the active outreach window.",
    "whyNow": "Last sponsored video 60 days ago — within typical sponsorship-decision lookback for similar creators.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Francesco Ciulla — 0.3M subs, B-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 41,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.69,
      "urgency": 0,
      "noiseRisk": 0.4
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "occasional sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:occasional",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": true,
      "requiresEnrichment": true,
      "priorityQueue": "medium"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "web-services",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "B-tier readiness — nurture or enrich before outreach.",
      "appliedRules": [
        "lastSponsored<90d"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "late",
      "reason": "Last sponsored video 60 days ago; past typical 14-30d decision-cycle for similar creators.",
      "decayRisk": 0.7
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 52,
      "reasons": [
        "Active sponsor history within last 90d (1 videos)"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "fef3d4a99395d60324d2d1d903b0ad179c27d01cf5dafdbf746130e0d5869494",
      "inputsHash": "99ad65dd05847c3805d58b2493567104259adcdf34afe0cd6bbd411e97c7df00",
      "rulesApplied": [
        "sponsorship-history-occasional",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:32.421Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "7f88c83c6ea5e827ec8aec0c83a967ca699fad261042ee981ceb92cf6d13bab2",
    "channelId": "UCbTw29mcP12YlTt1EpUaVJw",
    "channelHandle": "@seanallen",
    "channelName": "Sean Allen",
    "channelUrl": "https://www.youtube.com/@seanallen",
    "description": "Learn Swift & SwiftUI with my in-depth courses:\nhttps://seanallen.teachable.com/?website=YT%20About",
    "joinDate": null,
    "location": null,
    "subscribers": 171000,
    "totalVideos": 528,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/wujHpEJt-XOr1fjzQW0-f9ko4eCFnlXqjhM5ecMtDzMi-3ezCor-UQ9OsydWOp_Z9dy5DdyX_Q=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "seanallen.teachable.com",
        "url": "https://seanallen.teachable.com/?website=YT%20About"
      },
      {
        "platform": "twitter",
        "url": "https://x.com/seanallen_dev"
      }
    ],
    "recentVideos": [
      {
        "videoId": "OwdUGlrhZg4",
        "title": "Automatic App Store Uploads w/ Bitrise and CI/CD",
        "publishedAt": "1 month ago",
        "durationSeconds": 918,
        "views": 2931,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Bitrise - https://bit.ly/4cvQlwu\n\nIn this video I show you an example workflow to build your app, run your tests, and upload to Test Flight automatically. To do this we use Bitrise and Continuous Integration & Delivery. I'll explain the benefits of CI/CD and you'll get to see it in action from merging a pull request into the main branch to a Test Flight build showing up on my phone.\n\nEraser: Cleaner for Xcode -\nhttps://apps.apple.com/us/app/eraser-...\n\nMy Source Code:\nhttps://seanallen.teachable.com/p/sou...\n\nNeed help with something specific? Book a call with me:\nhttps://seanallen.teachable.com/p/call\n\nX (Twitter):\nSean Allen -   / seanallen_dev  \n\nMy Formula 1 App:\nhttps://apps.apple.com/app/formula-wi...\n\nMy Roast App:\nhttps://apps.apple.com/app/roast-app-...\n\nMy iOS Dev Product Recommendations (Affiliate Links):\n\nEasy App Store Screenshots:\nhttps://appscreens.com/?via=8d5841\n\nMark Moeyken’s SwiftUI Books:\nhttps://www.bigmountainstudio.com/a/f...\n\nAntoine Van Der Lee - Going Indie Course:\nhttps://courses.avanderlee.com/p/from...\n\nPaul Hudson's Hacking With Swift:\nhttps://gumroad.com/a/762098803\n\nRocketSim - Enhance Your Xcode Simulator:\nhttps://gumroad.com/a/51797971/ftvbh\n\nTimestamps:\n0:00 - CI/CD with Bitrise\n1:58 - Continuous Integration Workflow\n3:28 - Workflow on Bitrise\n6:32 - Automated Build & Test Example\n9:25 - Continuous Delivery & Auto Upload to Test Flight\n13:48 - Agentic Workflow Idea\n\n\n\n\n\n\n#swift #swiftui #iosdevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "VU-NiioUpxg",
        "title": "iOS Agent Skills, App Store Connect CLI, Foundation Models Tokens & More",
        "publishedAt": "1 month ago",
        "durationSeconds": 830,
        "views": 12113,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out WinWinKit - https://winwinkit.com\n🔗 Swift News Link Repo - https://github.com/SAllen0400/swift-news\nMy Swift & SwiftUI Courses - https://seanallen.teachable.com/\nSwift News Newsletter - https://swiftnews.kit.com/newsletter\n\nIn this episode of Swift News I keep you up to date on the latest in greatest in the world of iOS development, Swift and SwiftUI. I discuss the following topics:\n\nApp Store Connect CLI\niOS Agent Skills\nSwift Concurrency Learning Roadmap\nFoundation Models Token Tracking\nAI Workflow Context Switching\n\nEraser: Cleaner for Xcode -\nhttps://apps.apple.com/us/app/eraser-...\n\nMy Source Code:\nhttps://seanallen.teachable.com/p/sou...\n\nNeed help with something specific? Book a call with me:\nhttps://seanallen.teachable.com/p/call\n\nX (Twitter):\nSean Allen -   / seanallen_dev  \n\nMy Formula 1 App:\nhttps://apps.apple.com/app/formula-wi...\n\nMy Roast App:\nhttps://apps.apple.com/app/roast-app-...\n\nMy iOS Dev Product Recommendations (Affiliate Links):\n\nEasy App Store Screenshots:\nhttps://appscreens.com/?via=8d5841\n\nMark Moeyken’s SwiftUI Books:\nhttps://www.bigmountainstudio.com/a/f...\n\nAntoine Van Der Lee - Going Indie Course:\nhttps://courses.avanderlee.com/p/from...\n\nPaul Hudson's Hacking With Swift:\nhttps://gumroad.com/a/762098803\n\nRocketSim - Enhance Your Xcode Simulator:\nhttps://gumroad.com/a/51797971/ftvbh\n\nTimestamps:\n0:00 - App Store Connect CLI\n2:28 - WinWinKit\n3:57 - iOS Agent Skills\n6:31 - Swift Concurrency Learning Roadmap\n8:46 - Foundation Models Token Tracking\n10:56 - AI Workflow Context Switching\n\n#swift #swiftui #iosdevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_80oGwJQIjs",
        "title": "Xcode Agentic Coding, AI Anxiety, iOS 26 Adoption, Micro-Interactions",
        "publishedAt": "3 months ago",
        "durationSeconds": 517,
        "views": 21291,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Eraser: Cleaner for Xcode -\nhttps://apps.apple.com/us/app/eraser-...\n\nMy Swift & SwiftUI Courses - https://seanallen.teachable.com/\nSwift News Newsletter - https://swiftnews.kit.com/newsletter\n🔗 Swift News Link Repo - https://github.com/SAllen0400/swift-news\n\nIn this episode of Swift News I keep you up to date on the latest in greatest in the world of iOS development, Swift and SwiftUI. I discuss the following topics:\n\nXcode 26.3 Agentic Coding Feature\niOS 26 Adoption\nAI Anxiety\nCraft of iOS Dev\nSmall details to make your app great\n\nMy Source Code:\nhttps://seanallen.teachable.com/p/sou...\n\nNeed help with something specific? Book a call with me:\nhttps://seanallen.teachable.com/p/call\n\nX (Twitter):\nSean Allen -   / seanallen_dev  \n\nMy Formula 1 App:\nhttps://apps.apple.com/app/formula-wi...\n\nMy Roast App:\nhttps://apps.apple.com/app/roast-app-...\n\nMy iOS Dev Product Recommendations (Affiliate Links):\n\nEasy App Store Screenshots:\nhttps://appscreens.com/?via=8d5841\n\nMark Moeyken’s SwiftUI Books:\nhttps://www.bigmountainstudio.com/a/f...\n\nAntoine Van Der Lee - Going Indie Course:\nhttps://courses.avanderlee.com/p/from...\n\nPaul Hudson's Hacking With Swift:\nhttps://gumroad.com/a/762098803\n\nRocketSim - Enhance Your Xcode Simulator:\nhttps://gumroad.com/a/51797971/ftvbh\n\nTimestamps:\n0:00 - Xcode Agentic Coding\n2:29 - Eraser: Cleaner for Xcode\n3:03 - iOS 26 Adoption\n3:42 - AI Anxiety\n5:48 - Craft Differentiator\n7:37 - Little Details\n\n#swift #swiftui #iosdevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "C0wu_dAQqAk",
        "title": "The Most Satisfying iOS 26 Design Feature - Concentricity",
        "publishedAt": "4 months ago",
        "durationSeconds": 478,
        "views": 10664,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "My Swift & SwiftUI Courses - https://seanallen.teachable.com/?vide...\n\nIn this video I show you how to use the ConcentrictRectangle API in SwiftUI so you can make the corner radius of your views cohesive and looking great. I show you how to use the minimum parameter and isUniform to ensure things are looking good. I also show you how to use concentricity on an image using clip shape.\n\nMy Source Code:\nhttps://seanallen.teachable.com/p/sou...\n\nBook a call with me:\nhttps://seanallen.teachable.com/p/cal...\n\nX (Twitter):\nSean Allen -   / seanallen_dev  \n\nMy Formula 1 App:\nhttps://apps.apple.com/app/formula-wi...\n\nMy Roast App:\nhttps://apps.apple.com/app/roast-app-...\n\nMy iOS Dev Product Recommendations (Affiliate Links):\n\nEasy App Store Screenshots:\nhttps://appscreens.com/?via=8d5841\n\nMark Moeyken’s SwiftUI Books:\nhttps://www.bigmountainstudio.com/a/f...\n\nAntoine Van Der Lee - Going Indie Course:\nhttps://courses.avanderlee.com/p/from...\n\nPaul Hudson's Hacking With Swift:\nhttps://gumroad.com/a/762098803\n\nRocketSim - Enhance Your Xcode Simulator:\nhttps://gumroad.com/a/51797971/ftvbh\n\nTimestamps:\n0:00 - What is Concentricity?\n0:57 - Stater Project Overview\n2:00 - ContainerShape modifier\n2:53 - ConcentrictRectangle, minimum, isUniform\n5:01 - Clip shape concentricity on an image\n6:29 - Concentricity in a sheet\n\n#swift #swiftui #iosdevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4c_1Tebf3PM",
        "title": "Bleeding Edge AI Work, What's New in Swift, Concurrency, Apple Ads",
        "publishedAt": "4 months ago",
        "durationSeconds": 798,
        "views": 8525,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "My Swift & SwiftUI Courses - https://seanallen.teachable.com/?vide...\nSwift News Newsletter - https://swiftnews.kit.com/newsletter\n🔗 Swift News Link Repo - https://github.com/SAllen0400/swift-news\n\nIn this episode of Swift News I keep you up to date on the latest in greatest in the world of iOS development, Swift and SwiftUI. I discuss the following topics:\n\nBleeding Edge AI Work\nWhat's New in Swift - December 2025\nF***king Approachable Swift Concurrency\nSwift Concurrency Migration\nNew Apple Ads Placement\n\nMy Source Code:\nhttps://seanallen.teachable.com/p/sou...\n\nNeed help with something specific? Book a call with me:\nhttps://seanallen.teachable.com/p/cal...\n\nX (Twitter):\nSean Allen -   / seanallen_dev  \n\nMy Formula 1 App:\nhttps://apps.apple.com/app/formula-wi...\n\nMy Roast App:\nhttps://apps.apple.com/app/roast-app-...\n\nMy iOS Dev Product Recommendations (Affiliate Links):\n\nEasy App Store Screenshots:\nhttps://appscreens.com/?via=8d5841\n\nMark Moeyken’s SwiftUI Books:\nhttps://www.bigmountainstudio.com/a/f...\n\nAntoine Van Der Lee - Going Indie Course:\nhttps://courses.avanderlee.com/p/from...\n\nPaul Hudson's Hacking With Swift:\nhttps://gumroad.com/a/762098803\n\nRocketSim - Enhance Your Xcode Simulator:\nhttps://gumroad.com/a/51797971/ftvbh\n\nTimestamps:\n0:00 - Bleeding Edge AI Work\n6:08 - What's New in Swift\n7:57 - F***king Approachable Swift Concurrency\n11:40 - New Apple Ads Placement\n\n#swift #swiftui #iosdevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-7YHPpqaVFY",
        "title": "How to Create App Store Screenshots - Fast & Easy",
        "publishedAt": "4 months ago",
        "durationSeconds": 752,
        "views": 31682,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out AppScreens at https://appscreens.com/?via=8d5841\n\nIn this video I show how you can create great looking App Store screenshots fast and easy, even if you're not a designer. With AppScreens you can choose from a pre-designed template, make any customizations you like, localize them, and upload them to the App Store with one click. AppScreens is a tool that saves you SO much time and effort when it comes to creating and uploading your App Store screenshots.\n\nMy deeper video on how to use App Screens:\n   • My New Way To Create App Store Screenshots  \n\nLearn more Swift & SwiftUI with me:\nhttps://seanallen.teachable.com/?vide...\n\nMy Source Code:\nhttps://seanallen.teachable.com/p/sou...\n\nX (Twitter):\nSean Allen - https://x.com/seanallen_dev\n\nBook and learning recommendations that help out the channel if you decide to purchase (Affiliate Links):\n\nAntoine Van Der Lee - Going Indie Course:\nhttps://courses.avanderlee.com/p/from...\n\nMark Moeyken’s SwiftUI Books:\nhttps://www.bigmountainstudio.com/a/f...\n\nPaul Hudson's Hacking With Swift:\nhttps://gumroad.com/a/762098803\n\nRocketSim - Enhance Your Xcode Simulator:\nhttps://gumroad.com/a/51797971/ftvbh\n\nTimestamps:\n0:00 - Oh, I need screenshots\n0:59 - Screenshot requirements\n2:23 - How to take app screenshots on the simulator\n3:25 - Create screenshots with AppScreens\n4:59 - Select a pre-designed template\n6:01 - Screenshot localization options\n6:43 - Importing your screenshots\n7:55 - Customizing the design\n10:17 - One-click upload to App Store\n\n#swift #swiftui #iosdevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EIsrS4bvWPQ",
        "title": "The Year SwiftUI Died, Liquid Glass, Swift Student Challenge, Indie Dev Life",
        "publishedAt": "4 months ago",
        "durationSeconds": 707,
        "views": 26828,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "My Swift & SwiftUI Courses - https://seanallen.teachable.com/?vide...\nSwift News Newsletter - https://swiftnews.kit.com/newsletter\n🔗 Swift News Link Repo - https://github.com/SAllen0400/swift-news\n\nIn this episode of Swift News I keep you up to date on the latest in greatest in the world of iOS development, Swift and SwiftUI. I discuss the following topics:\n\n2025: The Year SwiftUI Died\nLiquid Glass design tips\nOptimize your app's performance\nSwift Student Challenge\nChallenges of indie dev life\n100 indie app tips\n\nMy Source Code:\nhttps://seanallen.teachable.com/p/sou...\n\nNeed help with something specific? Book a call with me:\nhttps://seanallen.teachable.com/p/cal...\n\nX (Twitter):\nSean Allen -   / seanallen_dev  \n\nMy Formula 1 App:\nhttps://apps.apple.com/app/formula-wi...\n\nMy Roast App:\nhttps://apps.apple.com/app/roast-app-...\n\nMy iOS Dev Product Recommendations (Affiliate Links):\n\nEasy App Store Screenshots:\nhttps://appscreens.com/?via=8d5841\n\nMark Moeyken’s SwiftUI Books:\nhttps://www.bigmountainstudio.com/a/f...\n\nAntoine Van Der Lee - Going Indie Course:\nhttps://courses.avanderlee.com/p/from...\n\nPaul Hudson's Hacking With Swift:\nhttps://gumroad.com/a/762098803\n\nRocketSim - Enhance Your Xcode Simulator:\nhttps://gumroad.com/a/51797971/ftvbh\n\nTimestamps:\n0:00 - The Year SwiftUI Died\n3:39 - Liquid Glass design tips\n4:30 - Optimize app performance\n5:36 - Swift Student Challenge\n6:20 - Challenges of indie dev life\n10:05 - 100 indie app tips\n\n#swift #swiftui #iosdevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YCRvVfDGQuY",
        "title": "Swift SDK for Android, Shipaton Winners, Foundation Models, Scroll Performance & More.",
        "publishedAt": "5 months ago",
        "durationSeconds": 834,
        "views": 8963,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "My Swift & SwiftUI Courses - https://seanallen.teachable.com/?vide...\nSwift News Newsletter - https://swiftnews.kit.com/newsletter\n🔗 Swift News Link Repo - https://github.com/SAllen0400/swift-news\n\nIn this episode of Swift News I keep you up to date on the latest in greatest in the world of iOS development, Swift and SwiftUI. I discuss the following topics:\n\nSwift SDK for Android\nRevenueCat Shipaton winners\nApp Growth Annual Conference videos\nSwiftUI scroll performance\nFoundation Models Q&A\niPhone 17 screen sizes\nSwiftUI Text concatenation deprecation\n\nMy Source Code:\nhttps://seanallen.teachable.com/p/sou...\n\nNeed help with something specific? Book a call with me:\nhttps://seanallen.teachable.com/p/cal...\n\nX (Twitter):\nSean Allen -   / seanallen_dev  \n\nMy Formula 1 App:\nhttps://apps.apple.com/app/formula-wi...\n\nMy Roast App:\nhttps://apps.apple.com/app/roast-app-...\n\nMy iOS Dev Product Recommendations (Affiliate Links):\n\nEasy App Store Screenshots:\nhttps://appscreens.com/?via=8d5841\n\nMark Moeyken’s SwiftUI Books:\nhttps://www.bigmountainstudio.com/a/f...\n\nAntoine Van Der Lee - Going Indie Course:\nhttps://courses.avanderlee.com/p/from...\n\nPaul Hudson's Hacking With Swift:\nhttps://gumroad.com/a/762098803\n\nRocketSim - Enhance Your Xcode Simulator:\nhttps://gumroad.com/a/51797971/ftvbh\n\nTimestamps:\n0:00 - Swift SDK for Android\n2:31 - Shipaton winners\n3:51 - App Growth Annual Videos\n4:23 - SwiftUI Scroll Performance\n8:37 - Foundation Models Q&A\n11:01 - iPhone 17 screen sizes\n11:48 - SwiftUI Text concatenation deprecation\n\n#swift #swiftui #iosdevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KIbPHB6FIlo",
        "title": "Swift 6.2, New Era of Swift, Foundation Models, Dark Side of iOS Dev & More.",
        "publishedAt": "7 months ago",
        "durationSeconds": 1241,
        "views": 25655,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "My Swift & SwiftUI Courses - https://seanallen.teachable.com/?vide...\nSwift News Newsletter - https://swiftnews.kit.com/newsletter\n🔗 Swift News Link Repo - https://github.com/SAllen0400/swift-news\n\nIn this episode of Swift News I keep you up to date on the latest in greatest in the world of iOS development, Swift and SwiftUI. I discuss the following topics:\n\nWhat's new in Swift 6.2\nA new era of iOS Dev\nThe dark side of iOS Dev\nFoundation Models\n5 years of Widgetsmith story\n\nMy Source Code:\nhttps://seanallen.teachable.com/p/sou...\n\nNeed help with something specific? Book a call with me:\nhttps://seanallen.teachable.com/p/cal...\n\nX (Twitter):\nSean Allen -   / seanallen_dev  \n\nMy Formula 1 App:\nhttps://apps.apple.com/app/formula-wi...\n\nMy Roast App:\nhttps://apps.apple.com/app/roast-app-...\n\nMy iOS Dev Product Recommendations (Affiliate Links):\n\nEasy App Store Screenshots:\nhttps://appscreens.com/?via=8d5841\n\nMark Moeyken’s SwiftUI Books:\nhttps://www.bigmountainstudio.com/a/f...\n\nAntoine Van Der Lee - Going Indie Course:\nhttps://courses.avanderlee.com/p/from...\n\nPaul Hudson's Hacking With Swift:\nhttps://gumroad.com/a/762098803\n\nRocketSim - Enhance Your Xcode Simulator:\nhttps://gumroad.com/a/51797971/ftvbh\n\nTimestamps:\n0:00 - Swift News\n0:48 - What's New in Swift 6.2\n5:17 - New Era of iOS Dev\n9:52 - Dark Side of iOS Dev\n15:51 - Foundation Models\n17:35 - 5 years of Widgetsmith story\n\n#swift #swiftui #iosdevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "74QSJDdGY3o",
        "title": "The Secret to Doubling App Store Conversions in iOS 26",
        "publishedAt": "8 months ago",
        "durationSeconds": 500,
        "views": 6964,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Easy App Store Screenshots w/ Appscreens - https://appscreens.com/?via=SA\n\nApple just dropped a huge update at WWDC 2025: Custom Product Pages can now show up in organic App Store search. That means when someone searches for “learn Spanish” or “collage maker,” you can show a product page with screenshots tailored to that keyword. This is a massive win for conversions and ASO (App Store Optimization).\n\nIn this video I’ll walk through how to set them up in App Store Connect, what the current limitations are, and give you a few strategies for making the most of them. If you’ve got an indie app, this is something you need to implement ASAP to increase downloads and revenue.\n\nMy Source Code:\nhttps://seanallen.teachable.com/p/sou...\n\nX (Twitter):\nSean Allen -   / seanallen_dev  \n\nMy Formula 1 App:\nhttps://apps.apple.com/app/formula-wi...\n\nMy Roast App:\nhttps://apps.apple.com/app/roast-app-...\n\nMy iOS Dev Product Recommendations (Affiliate Links):\n\nMark Moeyken’s SwiftUI Books:\nhttps://www.bigmountainstudio.com/a/f...\n\nAntoine Van Der Lee - Going Indie Course:\nhttps://courses.avanderlee.com/p/from...\n\nPaul Hudson's Hacking With Swift:\nhttps://gumroad.com/a/762098803\n\nRocketSim - Enhance Your Xcode Simulator:\nhttps://gumroad.com/a/51797971/ftvbh\n\nTimestamps:\n0:00 - Improve Organic Search Conversions\n1:19 - How to set up Custom Product Pages\n2:43 - Direct Link to Custom Product Page\n3:15 - Connecting Keywords\n4:58 - The Bare Minimum\n5:35 - Limitation\n6:55 - Create Specific Screenshots\n\n#swift #swiftui #iosdevelopment",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7EcWzb_Xa10",
        "title": "How to Choose the RIGHT Indie App to Build",
        "publishedAt": "8 months ago",
        "durationSeconds": 470,
        "views": 5996,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Picking the right indie app idea can save you a lot of wasted time and frustration. In this video I’m sharing lessons I’ve learned from years of trial and error so you don’t have to repeat...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rDmHKZGNYYE",
        "title": "Remember UIKit?, Coding Agent Addiction, Server Side Swift, Menu & More",
        "publishedAt": "8 months ago",
        "durationSeconds": 945,
        "views": 10217,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Swift News Newsletter - https://swiftnews.kit.com/newsletter\n🔗 Swift News Link Repo - https://github.com/SAllen0400/swift-news\nMy Swift & SwiftUI Courses - https://seanallen.teachable.com/?video...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jqrSYc93OE0",
        "title": "I Acquired an App Making $800/month. Here's How it Went.",
        "publishedAt": "9 months ago",
        "durationSeconds": 810,
        "views": 35314,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go to https://squarespace.com/seanallen to save 10% off your first purchase of a website or domain using code SEANALLEN.\n\nI just acquired an app that makes $800 per month. It's my first acquisition...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bUj9PpuPX0o",
        "title": "Forget MVVM, Lower Churn, Chart Design, Vibe Coding, Foundation Models & More",
        "publishedAt": "9 months ago",
        "durationSeconds": 1175,
        "views": 21133,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go to https://squarespace.com/seanallen to save 10% off your first purchase of a website or domain using code SEANALLEN. \n\nSwift News Newsletter - https://swiftnews.kit.com/newsletter\n🔗...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "aF2qt5WfprM",
        "title": "Liquid Glass - 5 Things You MUST Know Before Implementing",
        "publishedAt": "9 months ago",
        "durationSeconds": 567,
        "views": 69958,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go to https://squarespace.com/seanallen to save 10% off your first purchase of a website or domain using code SEANALLEN.\n\nApple announced Liquid Glass at WWDC 2025 and all iOS devs are going...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "z-mP0hAGNbY",
        "title": "Why App Store Screenshots Are a HUGE Deal Now",
        "publishedAt": "9 months ago",
        "durationSeconds": 431,
        "views": 14023,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Easy App Store Screenshots w/ Appscreens - https://appscreens.com/?via=SA\n\nIn June of 2025, iOS developers started noticing major changes in how their app was ranking for keywords. They saw...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gonUvejvaFo",
        "title": "Web vs In-App Purchase, Liquid Glass, Micro-Interactions, AsyncStream, Dynamic Type, and more.",
        "publishedAt": "9 months ago",
        "durationSeconds": 1146,
        "views": 7449,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go to https://squarespace.com/seanallen to save 10% off your first purchase of a website or domain using code SEANALLEN. \n\nSwift News Newsletter - https://swiftnews.kit.com/newsletter\nMy Swift...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bGIWSlnHWBw",
        "title": "Swift on Android, SwiftUI in iOS 26, Foundation Model, Ship-a-ton, & More",
        "publishedAt": "10 months ago",
        "durationSeconds": 884,
        "views": 19962,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "My F1 Widget App - https://apps.apple.com/app/formula-widgets-push-push/id6744127751\n\nSwift News Newsletter - https://swiftnews.kit.com/newsletter\nMy Swift & SwiftUI Courses - https://seanallen.tea...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UyOh9XINM4Q",
        "title": "Must Watch WWDC 2025 Developer Sessions",
        "publishedAt": "10 months ago",
        "durationSeconds": 597,
        "views": 9534,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go to https://squarespace.com/seanallen to save 10% off your first purchase of a website or domain using code SEANALLEN. \n\nEvery year at WWDC, Apple releases over 100 video sessions diving...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "14ZpgTJ5I0Q",
        "title": "Swift News: WWDC 2025, AI Costs, ASO Changes, Liquid Glass & More.",
        "publishedAt": "10 months ago",
        "durationSeconds": 530,
        "views": 17312,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Swift News Newsletter - https://swiftnews.kit.com/newsletter\nMy Swift & SwiftUI Courses - https://seanallen.teachable.com/?video=14ZpgTJ5I0Q\n\n🔗 Swift News Link Repo - https://github.com/SAllen04...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "e4s37VcWCj0",
        "title": "Why SwiftUI's Built-In Font is OP 🔥",
        "publishedAt": "11 months ago",
        "durationSeconds": 327,
        "views": 7324,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go to https://squarespace.com/seanallen to save 10% off your first purchase of a website or domain using code SEANALLEN. \n\nIn this video I'm going to show you how powerful and flexible SwiftUI's...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6OolMedYsG0",
        "title": "Swift: Dead Simple Formatting (Dates, Numbers, Currency, Measurement, Time)",
        "publishedAt": "11 months ago",
        "durationSeconds": 591,
        "views": 7218,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go to https://squarespace.com/seanallen to save 10% off your first purchase of a website or domain using code SEANALLEN. \n\nIn this video I show you the power of the FormatStyle API as well...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "749cMjWM54k",
        "title": "My New Way To Create App Store Screenshots",
        "publishedAt": "11 months ago",
        "durationSeconds": 1184,
        "views": 31428,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out AppScreens at https://appscreens.com/?via=SA\n\nMaking App Store screenshots can be one of the most annoying parts of shipping an app. I had this giant Sketch file with layers everywhere,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DWQA6bEILes",
        "title": "Stop Rebuilding UI with Play to Xcode",
        "publishedAt": "1 year ago",
        "durationSeconds": 988,
        "views": 11473,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out Play to Xcode - https://createwithplay.com/\nUse code: SEAN25 to get 25% off Play's Pro plan for 3 months. Pro plan gives you access to unlimited projects, Play to Xcode, advanced...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "BYYi42WNlxI",
        "title": "The App Store Just Got Cracked Open",
        "publishedAt": "1 year ago",
        "durationSeconds": 647,
        "views": 16999,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The App Store just changed. Developers in the U.S. can now have an external link to a checkout flow on the web when buying in app purchases or subscriptions. This allows them to bypass the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "oJDu0dKa0PU",
        "title": "Stop Creating Custom Colors in SwiftUI",
        "publishedAt": "1 year ago",
        "durationSeconds": 582,
        "views": 13804,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go to https://squarespace.com/seanallen to save 10% off your first purchase of a website or domain using code SEANALLEN. \n\nIn today's video I tell you why you should try to use SwiftUI's built...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GFjOuH2Utt4",
        "title": "SwiftUI - Glowing Button Animation",
        "publishedAt": "1 year ago",
        "durationSeconds": 543,
        "views": 7615,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go to https://squarespace.com/seanallen to save 10% off your first purchase of a website or domain using code SEANALLEN. \n\nIn this video I'll show you how to make your buttons (or any other...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pnAT-PJrV5E",
        "title": "visionOS Godot Support, Career Advice, TextRenderer, App Store Upload, and More",
        "publishedAt": "1 year ago",
        "durationSeconds": 554,
        "views": 5222,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Swift News Newsletter - https://swiftnews.kit.com/newsletter\nMy Swift & SwiftUI Courses - https://seanallen.teachable.com/?video=pnAT-PJrV5E\n\n🔗 Swift News Link Repo - https://github.com/SAllen04...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "FsVbZftrPTQ",
        "title": "Swift Reduce, Are MVP's Dead?, Apple Ads, App Security and More.",
        "publishedAt": "1 year ago",
        "durationSeconds": 704,
        "views": 10842,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Swift News Newsletter - https://swiftnews.kit.com/newsletter\nMy Swift & SwiftUI Courses - https://seanallen.teachable.com/?video=FsVbZftrPTQ\n\n🔗 Swift News Link Repo - https://github.com/SAllen04...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cWeTwNahX_M",
        "title": "AI Code Editors, WWDC Wishlist, SwiftUI State, Indie App Dev",
        "publishedAt": "1 year ago",
        "durationSeconds": 711,
        "views": 8483,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Swift News Newsletter - https://swiftnews.kit.com/newsletter\nMy Swift & SwiftUI Courses - https://seanallen.teachable.com/?video=cWeTwNahX_M\n\n🔗 Swift News Link Repo - https://github.com/SAllen04...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 2,
      "uploadsLast90d": 3,
      "uploadCadenceWeekly": 0.23,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 12113,
      "viewsPerVideoP90Last90d": 12113,
      "viewVelocityTrend": "stable"
    },
    "performanceBaseline": {
      "p50Views": 12113,
      "p90Views": 12113,
      "p99Views": 12113,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "bit.ly",
        "squarespace.com"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "seanallen.teachable.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.93,
        "evidenceVideoIds": [
          "OwdUGlrhZg4",
          "VU-NiioUpxg",
          "_80oGwJQIjs",
          "C0wu_dAQqAk",
          "4c_1Tebf3PM"
        ]
      },
      {
        "label": "com",
        "share": 0.93,
        "evidenceVideoIds": [
          "OwdUGlrhZg4",
          "VU-NiioUpxg",
          "_80oGwJQIjs",
          "C0wu_dAQqAk",
          "4c_1Tebf3PM"
        ]
      },
      {
        "label": "seanallen",
        "share": 0.83,
        "evidenceVideoIds": [
          "OwdUGlrhZg4",
          "VU-NiioUpxg",
          "_80oGwJQIjs",
          "C0wu_dAQqAk",
          "4c_1Tebf3PM"
        ]
      },
      {
        "label": "code",
        "share": 0.7,
        "evidenceVideoIds": [
          "OwdUGlrhZg4",
          "VU-NiioUpxg",
          "_80oGwJQIjs",
          "C0wu_dAQqAk",
          "4c_1Tebf3PM"
        ]
      },
      {
        "label": "app",
        "share": 0.67,
        "evidenceVideoIds": [
          "OwdUGlrhZg4",
          "VU-NiioUpxg",
          "_80oGwJQIjs",
          "C0wu_dAQqAk",
          "4c_1Tebf3PM"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 36,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.55
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Sean Allen — 0.2M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 36,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.74,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mid-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mid"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mid-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mid",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "5-12%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mid-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "7f88c83c6ea5e827ec8aec0c83a967ca699fad261042ee981ceb92cf6d13bab2",
      "inputsHash": "544df6b5fde793f4d79f92234c8f14f0cce989d4b6e393be0d9f8a8c5fdcc395",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-stable",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:32.680Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "2c9b00212577fb138c7d5732fc41eb9564640728006844d8545e31d93a449cf7",
    "channelId": "UC0e3QhIYukixgh5VVpKHH9Q",
    "channelHandle": "@CodeBullet",
    "channelName": "Code Bullet",
    "channelUrl": "https://www.youtube.com/@CodeBullet",
    "description": "Just an idiot with a computer science degree trying his best.",
    "joinDate": null,
    "location": null,
    "subscribers": 3450000,
    "totalVideos": 92,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/8mXAVK4tU5IMVS92Loq7DYMyqqByTuTsJebkKky-Fv1Os8Gzxw6YlpHCSie0lWNeDaFwH5p7wQ=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "patreon.com",
        "url": "https://www.patreon.com/CodeBullet"
      },
      {
        "platform": "facebook",
        "url": "https://www.facebook.com/profile.php?id=61563899073893"
      },
      {
        "platform": "tiktok",
        "url": "https://www.tiktok.com/@realcodebullet"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/realcodebullet"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/code_bullet"
      },
      {
        "platform": "twitch",
        "url": "https://www.twitch.tv/the_big_cb"
      },
      {
        "platform": "thebigcb.com",
        "url": "http://theBigCb.com"
      }
    ],
    "recentVideos": [
      {
        "videoId": "iPqkxKao6Bk",
        "title": "Can I remake those SH*TTY mobile games in 1 HOUR? ...again",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 1166,
        "views": 2025281,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click this link https://boot.dev/?promo=CODEBULLET and use my code CODEBULLET to get 25% off your first payment for boot.dev.\n\nTwitter:   / code_bullet  \nPatreon:   / codebullet  \nDiscord:   / discord  \n\nArt created by @Dachi.art   / dachi.art  \n\nPro Enthu by Anders Baldwin is licensed under a Creative Commons Attribution 4.0 license. https://creativecommons.org/licenses/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0EVEzVz1iTY",
        "title": "A.I. Learns To Play HAPPY WHEELS",
        "publishedAt": "2 months ago",
        "durationSeconds": 1180,
        "views": 2957271,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out http://hostinger.com/codebullet to setup a VPS and use code CODEBULLET to get 10% off your plan\n\n🎵 Copyrighted music licensed from Lickd. https://lickd.co\n\nBlinding Lights by The Weeknd, https://t.lickd.co/l/BmgBV4Jzg89\n\nTwitter:   / code_bullet  \nPatreon:   / codebullet  \nDiscord:   / discord  \n\nArt created by @Dachi.art   / dachi.art",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kWFOeEB1qcI",
        "title": "I Paid 5 Game Developers $1,000 to Make the Same Game.",
        "publishedAt": "4 months ago",
        "durationSeconds": 1472,
        "views": 1827421,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click this link https://boot.dev/?promo=CODEBULLET and use my code CODEBULLET  to get 25% off your first payment for boot.dev.\n\nDevelopers --------------------------------------------------------------\nGame 1\nDev: Fabian @neoxdev\nFiverr Link - https://pro.fiverr.com/freelancers/ne...\n\nGame 2:\nDev: Saba Danelia @steader29 \nFiverr Link: https://pro.fiverr.com/freelancers/st... \nLinkedIn:   / sabadanelia  \n\nGame 3\nDev: Jake Baker @jakeba\nFiverr Link - https://pro.fiverr.com/freelancers/ja...\n\nGame 4\nDev - Nikolaos P @gametutorr\nFiverr Link - N/A (he’s no longer got an account )\n\nGame 5\nDev - Kirill @kirillsherbaev2\nFiverr Link - https://pro.fiverr.com/freelancers/ki...\n\n------------------------------------------------------------------------------------------------------------------------------------------------\nPlay all the games on my patreon:   / codebullet  \n\nArt created by @Dachi.art   / dachi.art",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "oLF_mxPfL0I",
        "title": "I Made the Same Game in 10 Mins vs 1 Hour vs 10 Hours",
        "publishedAt": "7 months ago",
        "durationSeconds": 1488,
        "views": 1286049,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Play World of Warships for FREE here: https://wo.ws/CodeBulletYT and use code XVOYAGE to get 20 days of Premium Account, Japanese Tier III cruiser Tenryū, Port slot, and a Commander. Applicable to new users only. \nThanks to World of Warships for the Sponsor. \n\nThanks to Mart for the colab: ‪@martincitopants‬ \nCharacter animations and art by Dachi:    / @dachi_art  \n\nTwitter:   / code_bullet  \nPatreon:   / codebullet  \nDiscord:   / discord",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2YdPIB7wVFk",
        "title": "Snake But Eating Deletes A Random System 32 File",
        "publishedAt": "8 months ago",
        "durationSeconds": 1079,
        "views": 3437787,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Click this link https://boot.dev/?promo=CODEBULLET and use my code  CODEBULLET  to get 25% off your first payment for boot.dev.\n\nCharacter animations and art by Dachi:    / @dachi_art  \n\nTwitter:   / code_bullet  \nPatreon:   / codebullet  \nDiscord:   / discord  \n\nArt created by @Dachi.art   / dachi.art",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ehAStJmx_Fo",
        "title": "Using A.I. to DESTROY Minesweeper",
        "publishedAt": "11 months ago",
        "durationSeconds": 990,
        "views": 5153510,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🕹️ Get a browser that’s literally better at everything: https://operagx.gg/CodeBullet4  Sponsored by Opera GX!\n\n\nDrink Gamersupps, its better than coffee: https://gamersupps.gg/Codebullet \nUSE CODE: CODEBULLET to get free shipping\n\nTwitter:   / code_bullet  \nPatreon:   / codebullet  \nDiscord:   / discord  \n\nArt created by @Dachi.art   / dachi.art",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wesICmc48UE",
        "title": "Can I Create Guitar Hero With Just My Guitar",
        "publishedAt": "1 year ago",
        "durationSeconds": 2106,
        "views": 1752114,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Head to https://brilliant.org/CodeBullet/ to start your free 30-day trial, and get 20% off an annual premium subscription.\n\nBUY GAMER SUPPS  https://gamersupps.gg/Codebullet \nUSE CODE: CODEBULLET to get 10% off\n\nTwitter:   / code_bullet  \nPatreon:   / codebullet  \nDiscord:   / discord  \n\nArt created by @Dachi.art   / dachi.art",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bt8BwJs2JWI",
        "title": "Can I remake those SH*TTY mobile games in 1 HOUR?",
        "publishedAt": "1 year ago",
        "durationSeconds": 1393,
        "views": 5885516,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Head to https://brilliant.org/CodeBullet/ to start your free 30-day trial, and get 20% off an annual premium subscription.\n\nBUY GAMER SUPPS  https://gamersupps.gg/Codebullet \nUSE CODE: CODEBULLET to get 10% off\nTwitter:   / code_bullet  \nPatreon:   / codebullet  \nDiscord:   / discord  \n\nArt created by @Dachi.art   / dachi.art",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "I7vOcJcCSso",
        "title": "I remade Pikmin in 24 hours.",
        "publishedAt": "1 year ago",
        "durationSeconds": 1501,
        "views": 1704748,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Head to https://brilliant.org/CodeBullet/ to start your free 30-day trial, and get 20% off an annual premium subscription.\n\nPatreon:   / codebullet  \nFacebook: https://www.facebook.com/profile.php?...\nSnapchat: https://www.snapchat.com/add/codebull...\n\nTwitter:   / code_bullet  \nDiscord:   / discord  \n\nArt created by @Dachi.art   / dachi.art",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sWZJ6kRNw4g",
        "title": "Making Flappy Bird But Everything is its own WINDOW",
        "publishedAt": "1 year ago",
        "durationSeconds": 606,
        "views": 1317647,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🕹 Get a browser that’s literally better at everything: https://operagx.gg/CodeBullet3  Sponsored by Opera GX!\nMerch: https://codebulletshop.com\nPatreon:   / codebullet  \nTwitter:   / code_bullet  \nDiscord:   / discord  \n\nArt created by @Dachi.art   / dachi.art",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "djIufZ7Fyms",
        "title": "I made FLAPPY BIRD in DUMB programs",
        "publishedAt": "2 years ago",
        "durationSeconds": 1175,
        "views": 2764136,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Head to https://brilliant.org/CodeBullet/ to start your free 30-day trial, and get 20% off an annual premium subscription.\n\nOpen Sauce applications: https://opensauce.com/exhibit-application...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tn_SdPx3nyE",
        "title": "I made a BEYBLADE BATTLE ROYALE for my patrons",
        "publishedAt": "2 years ago",
        "durationSeconds": 610,
        "views": 1002863,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "join the fight https://www.patreon.com/CodeBullet\nok ty\n\nTwitter: https://twitter.com/code_bullet\nDiscord: https://discord.gg/UZDMYx5\nArt created by @Dachi.art https://www.instagram.com/dachi.art",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QbwgQSwMSGM",
        "title": "AI Learns to Play SUIKA GAME",
        "publishedAt": "2 years ago",
        "durationSeconds": 826,
        "views": 5199944,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Head to https://brilliant.org/CodeBullet/ to start your free 30-day trial, and the first 200 people get 20% off an annual premium subscription.\n\nTwitter: https://twitter.com/code_bullet\nPatreon:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JPv5FWCYdXc",
        "title": "FUNNIEST moments From AI RICK and MORTY",
        "publishedAt": "2 years ago",
        "durationSeconds": 2794,
        "views": 810494,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Head to https://brilliant.org/CodeBullet/ to start your free 30-day trial, and the first 200 people get 20% off an annual premium subscription.\n\nTwitter: https://twitter.com/code_bullet\nPatreon:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "g39AagVW0s0",
        "title": "How I made AI Generated Rick and Morty Episodes",
        "publishedAt": "2 years ago",
        "durationSeconds": 1362,
        "views": 1946716,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🕹 Get a browser that’s literally better at everything: https://operagx.gg/CodeBullet2  Sponsored by Opera GX!\nCheck out the live stream: @codebulletsdayoff582 \n\nUnity chatgpt tutorial:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZpsJkhk9uBM",
        "title": "Do_Not_Upload.mp4",
        "publishedAt": "2 years ago",
        "durationSeconds": 14,
        "views": 2302327,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "oops\n\n\n\n\n\n\n\n\n\nthanks for 3M",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XzJ2qK5DX18",
        "title": "DESTROYING Guitar Hero with an AUTOCLICKER",
        "publishedAt": "2 years ago",
        "durationSeconds": 866,
        "views": 2202786,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get PayPal Honey for FREE today ▸ https://joinhoney.com/codebullet\nHoney finds coupons with one click. Thanks to Honey for sponsoring!\n\nMERCH ▸ https://www.codebulletshop.com\n\nTwitter:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "a7mNUTslJNA",
        "title": "I Turned PACMAN into a VR HORROR GAME",
        "publishedAt": "2 years ago",
        "durationSeconds": 1213,
        "views": 2924931,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Head to https://brilliant.org/CodeBullet/ to start your free 30-day trial, and the first 200 people get 20% off an annual premium subscription.\ncheck out my second channel @codebulletsdayoff582...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ovIykchkW5I",
        "title": "DESTROYING Donkey Kong with AI (Deep Reinforcement Learning)",
        "publishedAt": "3 years ago",
        "durationSeconds": 1786,
        "views": 5167853,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Go to https://brilliant.org/CodeBullet/ to get a 30-day free trial + the first 200 people will get 20% off their annual subscription.\n\nSecond Channel: https://www.youtube.com/@codebulletsdayoff582...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9amJuvb3grU",
        "title": "AI learns to WALK 3D (Part 2)",
        "publishedAt": "3 years ago",
        "durationSeconds": 1568,
        "views": 2483297,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get an Exclusive NordVPN deal here: https://nordvpn.com/CodeBullet It's risk-free with Nord's 30-day money-back guarantee!\nWATCH PART 1: https://youtu.be/qvpXpCvkqbc\n\n\nTwitter: https://twitter.com/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qvpXpCvkqbc",
        "title": "AI Learns to WALK 3D",
        "publishedAt": "3 years ago",
        "durationSeconds": 1219,
        "views": 2902246,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🕹 Download for FREE: https://operagx.gg/Code-Bullet  Join the millions of gamers optimizing their setup with the Opera GX browser. Sponsored by Opera GX!\nWATCH PART 2: https://www.youtube.com/wa...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DmQ4Dqxs0HI",
        "title": "AI Learns to play JUMP KING",
        "publishedAt": "4 years ago",
        "durationSeconds": 1632,
        "views": 8994208,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get Exclusive NordVPN deal here ➼ https://nordvpn.com/codebullet \nIt's risk-free with Nord's 30-day money-back guarantee!\n\nPlease support the official game on steam, its pretty dope: https://stor...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ldaescGA1dY",
        "title": "Creating an A.I. to DESTROY Clicker Heroes",
        "publishedAt": "4 years ago",
        "durationSeconds": 1460,
        "views": 5647902,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "AI vs a clicker game, how hard could it be??\nyo, im back \ni forget what im supposed to write here.\n\n\nTwitter: https://twitter.com/code_bullet\nPatreon: https://www.patreon.com/CodeBullet\nDiscord:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kzEHFuVeYS4",
        "title": "Best of Code Bullet 2021",
        "publishedAt": "4 years ago",
        "durationSeconds": 4,
        "views": 1243929,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Wow what great memories \n\nnew vid soon",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "D5xX6nRWDko",
        "title": "A.I. Learns to FLY",
        "publishedAt": "5 years ago",
        "durationSeconds": 1667,
        "views": 4471069,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Video Sponsored by Ridge Wallet: https://www.ridge.com/CODEBULLET10\nUse Code “CODEBULLET10 ” for 10% off your order\n\nCheck out my merch: https://www.codebulletshop.com\n\nTwitch: https://www.twit...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XRVA5PMSKKE",
        "title": "Creating the PERFECT Connect 4 A.I.",
        "publishedAt": "5 years ago",
        "durationSeconds": 900,
        "views": 4993054,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Using AI to crush nerds Connect 4, because people play connect 4 online apparently. Huge thanks to KiwiCo for sponsoring this video.\nCheck out https://www.KiwiCo.com/CodeBullet for 50% off...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "os4DcbpL0Nc",
        "title": "Using A.I. to DOMINATE NERDS in TETRIS",
        "publishedAt": "5 years ago",
        "durationSeconds": 1876,
        "views": 8031023,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I created an AI which can play Tetris at 50 moves per second, now lets use it to play against other people. Huge thanks to Brilliant.org for supporting this channel, check them out here: https://ww...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QOJfyp0KMmM",
        "title": "I Created An A.I. to DESTROY Tetris",
        "publishedAt": "5 years ago",
        "durationSeconds": 1045,
        "views": 4046837,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ahh yeah its tetris, you might have heard of it. Tetris is a game which i am making, i have made it, thats what the video is, god what a terrible description. I create an AI to beat the world...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "62IheUGZQLU",
        "title": "A.I. Learns to Run (Creature Creator)",
        "publishedAt": "6 years ago",
        "durationSeconds": 998,
        "views": 5330715,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Have a go yourself http://www.thebigcb.com/projects/CreatureCreator (FYI it will take a while to load because i suck at websites)\n\nAlso don't use my website on mobile because it don't be workin....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tjQIO1rqTBE",
        "title": "I Created a PERFECT SNAKE A.I.",
        "publishedAt": "6 years ago",
        "durationSeconds": 1444,
        "views": 11943373,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I used math, science and tears to create a snake AI which always wins (sometimes).\nMassive thanks to brilliant.org for supporting this episode, check them out here: https://www.brilliant.org/CodeBu...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 1,
      "uploadsLast90d": 2,
      "uploadCadenceWeekly": 0.16,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 2025281,
      "viewsPerVideoP90Last90d": 2025281,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 2025281,
      "p90Views": 2025281,
      "p99Views": 2025281,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [
        "Opera GX",
        "Honey",
        "Ridge Wallet",
        "KiwiCo",
        "KiwiCo for sponsoring this video",
        "Brilliant"
      ],
      "affiliateLinkHosts": [
        "brilliant.org"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": "2025-06-18",
      "detectionDetail": [
        {
          "brand": "Opera GX",
          "videoId": "ehAStJmx_Fo",
          "confidence": 0.7,
          "evidence": "description: Sponsored by Opera GX",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:34.128Z"
        },
        {
          "brand": "Opera GX",
          "videoId": "sWZJ6kRNw4g",
          "confidence": 0.7,
          "evidence": "description: Sponsored by Opera GX",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:34.128Z"
        },
        {
          "brand": "Opera GX",
          "videoId": "g39AagVW0s0",
          "confidence": 0.7,
          "evidence": "description: Sponsored by Opera GX",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:34.129Z"
        },
        {
          "brand": "Honey",
          "videoId": "XzJ2qK5DX18",
          "confidence": 0.7,
          "evidence": "description: Thanks to Honey for sponsoring",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:34.129Z"
        },
        {
          "brand": "Opera GX",
          "videoId": "qvpXpCvkqbc",
          "confidence": 0.7,
          "evidence": "description: Sponsored by Opera GX",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:34.129Z"
        },
        {
          "brand": "Ridge Wallet",
          "videoId": "D5xX6nRWDko",
          "confidence": 0.7,
          "evidence": "description: Sponsored by Ridge Wallet",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:34.129Z"
        },
        {
          "brand": "KiwiCo",
          "videoId": "XRVA5PMSKKE",
          "confidence": 0.7,
          "evidence": "description: thanks to KiwiCo for sponsoring",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:34.129Z"
        },
        {
          "brand": "KiwiCo for sponsoring this video",
          "videoId": "XRVA5PMSKKE",
          "confidence": 0.7,
          "evidence": "description: Huge thanks to KiwiCo for sponsoring this video.",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:34.129Z"
        },
        {
          "brand": "Brilliant",
          "videoId": "os4DcbpL0Nc",
          "confidence": 0.95,
          "evidence": "description: Huge thanks to Brilliant.org for supporting this channe",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:34.129Z"
        }
      ]
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 6,
        "firstSponsoredVideoDate": "2026-05-14"
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "lifestyle-cpg",
          "confidence": 0.25,
          "evidence": [
            "historical-sponsor:Ridge Wallet"
          ]
        },
        {
          "category": "education",
          "confidence": 0.25,
          "evidence": [
            "historical-sponsor:Brilliant"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "patreon.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.87,
        "evidenceVideoIds": [
          "iPqkxKao6Bk",
          "0EVEzVz1iTY",
          "kWFOeEB1qcI",
          "oLF_mxPfL0I",
          "2YdPIB7wVFk"
        ]
      },
      {
        "label": "codebullet",
        "share": 0.7,
        "evidenceVideoIds": [
          "iPqkxKao6Bk",
          "0EVEzVz1iTY",
          "kWFOeEB1qcI",
          "oLF_mxPfL0I",
          "2YdPIB7wVFk"
        ]
      },
      {
        "label": "get",
        "share": 0.63,
        "evidenceVideoIds": [
          "iPqkxKao6Bk",
          "0EVEzVz1iTY",
          "kWFOeEB1qcI",
          "oLF_mxPfL0I",
          "2YdPIB7wVFk"
        ]
      },
      {
        "label": "com",
        "share": 0.57,
        "evidenceVideoIds": [
          "0EVEzVz1iTY",
          "kWFOeEB1qcI",
          "I7vOcJcCSso",
          "sWZJ6kRNw4g",
          "djIufZ7Fyms"
        ]
      },
      {
        "label": "twitter",
        "share": 0.5,
        "evidenceVideoIds": [
          "iPqkxKao6Bk",
          "0EVEzVz1iTY",
          "oLF_mxPfL0I",
          "2YdPIB7wVFk",
          "ehAStJmx_Fo"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Tuesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "content pillars match high-value sponsor categories, strong views-per-subscriber ratio.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "strong",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 31,
      "reason": "fits lifestyle-cpg",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.45
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.6,
      "level": "medium",
      "coldStart": false
    },
    "whyThisMatters": "fits lifestyle-cpg. Channel is in the active outreach window.",
    "whyNow": "Last sponsored video 330 days ago — within typical sponsorship-decision lookback for similar creators.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Code Bullet — 3.5M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 31,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.79,
      "urgency": 0,
      "noiseRisk": 0.4
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "lifestyle-cpg",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "late",
      "reason": "Last sponsored video 330 days ago; past typical 14-30d decision-cycle for similar creators.",
      "decayRisk": 0.9
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "2c9b00212577fb138c7d5732fc41eb9564640728006844d8545e31d93a449cf7",
      "inputsHash": "79995fcd1e325096d1b3cd60199b16f2bb14e6ff4ea33b20c7dc1d227725c531",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:33.304Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "3966606fe7daaf519216b6705efa28e529e413f177f26c219c6be6ce44ea3cdb",
    "channelId": "UCJbPGzawDH1njbqV-D5HqKw",
    "channelHandle": "@thenewboston",
    "channelName": "thenewboston",
    "channelUrl": "https://www.youtube.com/@thenewboston",
    "description": "Tons of sweet computer related tutorials and some other awesome videos too!",
    "joinDate": null,
    "location": null,
    "subscribers": 2660000,
    "totalVideos": 4400,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_luVhNF6yTdaq1SHoMmVoBAYcvUZkOBsXfEnuwcGf-G4y8=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "thenewboston.net",
        "url": "https://thenewboston.net/"
      },
      {
        "platform": "github",
        "url": "https://github.com/thenewboston-developers"
      }
    ],
    "recentVideos": [
      {
        "videoId": "FeG-T7f0ouo",
        "title": "Bonsai - 3 - Planting the Seeds",
        "publishedAt": "2 months ago",
        "durationSeconds": 1368,
        "views": 2403,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "62jGg1vx8Sw",
        "title": "Bonsai - 2 - The Seed",
        "publishedAt": "2 months ago",
        "durationSeconds": 649,
        "views": 4224,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-sgRQBg8VsA",
        "title": "Bonsai - 1 - Camera Test",
        "publishedAt": "2 months ago",
        "durationSeconds": 200,
        "views": 5003,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OB1qs56g0VA",
        "title": "The Singularity - Tutorial 1 - Architecture",
        "publishedAt": "1 year ago",
        "durationSeconds": 1553,
        "views": 46414,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "C2_nVCUegKw",
        "title": "Prompt Engineering for Beginners - Tutorial 19 - Building Your Own ChatGPT (part 2)",
        "publishedAt": "1 year ago",
        "durationSeconds": 446,
        "views": 10545,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Reujw-HcTps",
        "title": "Prompt Engineering for Beginners - Tutorial 18 - Building Your Own ChatGPT (part 1)",
        "publishedAt": "1 year ago",
        "durationSeconds": 1873,
        "views": 9815,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Hb3v7zcu6UY",
        "title": "LLM Application Development - Tutorial 5 - Long Term Memory",
        "publishedAt": "2 years ago",
        "durationSeconds": 1000,
        "views": 8258,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1xmaUjeCjjc",
        "title": "LLM Application Development - Tutorial 4 - Routing",
        "publishedAt": "2 years ago",
        "durationSeconds": 600,
        "views": 4747,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QGORdKKzEkY",
        "title": "LLM Application Development - Tutorial 3 - RAG",
        "publishedAt": "2 years ago",
        "durationSeconds": 1736,
        "views": 5028,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "goW1ssfTQzU",
        "title": "LLM Application Development - Tutorial 2 - Evaluations",
        "publishedAt": "2 years ago",
        "durationSeconds": 1328,
        "views": 4426,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "u4LMdo-2EP4",
        "title": "LLM Application Development - Tutorial 1 - Introduction",
        "publishedAt": "2 years ago",
        "durationSeconds": 1036,
        "views": 21326,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_7zmngXU3vE",
        "title": "Prompt Engineering for Beginners - Tutorial 17 - Anthropic Claude 3",
        "publishedAt": "2 years ago",
        "durationSeconds": 866,
        "views": 15983,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "t8QuD3s9GsI",
        "title": "Prompt Engineering for Beginners - Tutorial 16 - Anthropic",
        "publishedAt": "2 years ago",
        "durationSeconds": 507,
        "views": 36964,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8hW-OjwpwMk",
        "title": "Prompt Engineering for Beginners - Tutorial 15 - Evaluation Pipeline",
        "publishedAt": "2 years ago",
        "durationSeconds": 613,
        "views": 26955,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jSVVsD3H7zs",
        "title": "Prompt Engineering for Beginners - Tutorial 14 - Creating Prompt Templates",
        "publishedAt": "2 years ago",
        "durationSeconds": 771,
        "views": 8717,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "g14Rkur1SCw",
        "title": "Prompt Engineering for Beginners - Tutorial 13 - Embeddings",
        "publishedAt": "2 years ago",
        "durationSeconds": 629,
        "views": 28565,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ROCEdC_lN9Y",
        "title": "Prompt Engineering for Beginners - Tutorial 12 - Large Text Summarizer",
        "publishedAt": "2 years ago",
        "durationSeconds": 1012,
        "views": 67176,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2BPDwDoiw3E",
        "title": "Prompt Engineering for Beginners - Tutorial 11 - Image Variation",
        "publishedAt": "2 years ago",
        "durationSeconds": 253,
        "views": 25381,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LMtUAg6K2_E",
        "title": "Prompt Engineering for Beginners - Tutorial 10 - Image Generation",
        "publishedAt": "2 years ago",
        "durationSeconds": 425,
        "views": 38427,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "He4V-qn188k",
        "title": "Prompt Engineering for Beginners - Tutorial 9 - Scoring",
        "publishedAt": "2 years ago",
        "durationSeconds": 451,
        "views": 25436,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jnXoWCJIlUQ",
        "title": "Prompt Engineering for Beginners - Tutorial 8 - Prompt Templates",
        "publishedAt": "2 years ago",
        "durationSeconds": 1252,
        "views": 15897,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZVllQ9BEt2U",
        "title": "Prompt Engineering for Beginners - Tutorial 7 - New OpenAI Updates",
        "publishedAt": "2 years ago",
        "durationSeconds": 290,
        "views": 8894,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "B5usn2_XQVE",
        "title": "Prompt Engineering for Beginners - Tutorial 6 - PromptLayer",
        "publishedAt": "2 years ago",
        "durationSeconds": 665,
        "views": 26376,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zgnFyw19neg",
        "title": "Prompt Engineering for Beginners - Tutorial 5 - Function Calling",
        "publishedAt": "2 years ago",
        "durationSeconds": 1325,
        "views": 39974,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mzliUdPTKxc",
        "title": "Prompt Engineering for Beginners - Tutorial 4 - Creating a Code Review Assistant",
        "publishedAt": "2 years ago",
        "durationSeconds": 546,
        "views": 25869,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4fW5AI7UGS4",
        "title": "Prompt Engineering for Beginners - Tutorial 3 - Having a Continuous Conversation",
        "publishedAt": "2 years ago",
        "durationSeconds": 507,
        "views": 32194,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Lk2cefL1dyw",
        "title": "Prompt Engineering for Beginners - Tutorial 2 - Accepting User Input with Granny",
        "publishedAt": "2 years ago",
        "durationSeconds": 925,
        "views": 32172,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GrX4WfT5FI4",
        "title": "Prompt Engineering for Beginners - Tutorial 1 - Introduction to OpenAI API",
        "publishedAt": "2 years ago",
        "durationSeconds": 1544,
        "views": 160430,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6jkmjiuJHfI",
        "title": "Creating a Social Network with ChatGPT",
        "publishedAt": "2 years ago",
        "durationSeconds": 5651,
        "views": 11622,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MPVEKQmG3HE",
        "title": "Python and React - Live Coding 15 - Boring Empty States",
        "publishedAt": "2 years ago",
        "durationSeconds": 4361,
        "views": 4028,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://thenewboston.net/",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 3,
      "uploadCadenceWeekly": 0.23,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 4224,
      "viewsPerVideoP90Last90d": 4224,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": 4224,
      "p90Views": 4224,
      "p99Views": 4224,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "thenewboston.net",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 1,
        "evidenceVideoIds": [
          "FeG-T7f0ouo",
          "62jGg1vx8Sw",
          "-sgRQBg8VsA",
          "OB1qs56g0VA",
          "C2_nVCUegKw"
        ]
      },
      {
        "label": "thenewboston",
        "share": 1,
        "evidenceVideoIds": [
          "FeG-T7f0ouo",
          "62jGg1vx8Sw",
          "-sgRQBg8VsA",
          "OB1qs56g0VA",
          "C2_nVCUegKw"
        ]
      },
      {
        "label": "net",
        "share": 1,
        "evidenceVideoIds": [
          "FeG-T7f0ouo",
          "62jGg1vx8Sw",
          "-sgRQBg8VsA",
          "OB1qs56g0VA",
          "C2_nVCUegKw"
        ]
      },
      {
        "label": "prompt",
        "share": 0.63,
        "evidenceVideoIds": [
          "C2_nVCUegKw",
          "Reujw-HcTps",
          "_7zmngXU3vE",
          "t8QuD3s9GsI",
          "8hW-OjwpwMk"
        ]
      },
      {
        "label": "engineering",
        "share": 0.63,
        "evidenceVideoIds": [
          "C2_nVCUegKw",
          "Reujw-HcTps",
          "_7zmngXU3vE",
          "t8QuD3s9GsI",
          "8hW-OjwpwMk"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Tuesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 32,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "thenewboston — 2.7M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 32,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.78,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "3966606fe7daaf519216b6705efa28e529e413f177f26c219c6be6ce44ea3cdb",
      "inputsHash": "5837a6447ca0b2ccb385a654d516f09413b9e0a72c1409d1269857867140ec84",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:34.815Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "5a9770b65a1a7b55acec42e7a3cd669bd4d568c9739d4383d1daabf1b133cd7b",
    "channelId": "UClb90NQQcskPUGDIXsQEz5Q",
    "channelHandle": "@developedbyed",
    "channelName": "developedbyed",
    "channelUrl": "https://www.youtube.com/@developedbyed",
    "description": "Hello my gorgeous friends on the internet, welcome to DevelopedByEd, your go-to channel for learning how to code, design, and become more creative in the tech world!\n\nI’m Ed, a self-taught full stack engineer and designer from Romania, and I've been teaching code since 2018. I make learning fun and simple, covering topics such as web development, web design, UI/UX, game development, tech-related news, 3D modelling, and more!\n\nWhether you're a beginner or an experienced developer, I have coding courses and tutorials suitable for any level. I specialize in front-end, full-stack, and design, and I'm dedicated to sharing my knowledge and expertise with you! \n\nAnd the best part? You can use any of the amazing projects you see in my tutorials or courses in your portfolios!\n\nSo, if you want to kickstart your tech career, head over to https://developedbyed.com and find affordable courses that will take you to the next level! 💻",
    "joinDate": null,
    "location": null,
    "subscribers": 937000,
    "totalVideos": 345,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/fwO10Ay61s_CaO2UweJGalew89tUD3X65vA4Uj2UN9wbgg2MJM5591khoyrUir8FpYrBD0crsw=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "twitter",
        "url": "https://twitter.com/developedbyed/"
      },
      {
        "platform": "github",
        "url": "https://www.github.com/developedbyed/"
      },
      {
        "platform": "developedbyed.com",
        "url": "https://developedbyed.com"
      }
    ],
    "recentVideos": [
      {
        "videoId": "Iv3AIF-71RM",
        "title": "Hermes Agent - The Openclaw Killer?",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 1094,
        "views": 4659,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "1 click deploy hermes agent on Hostinger:\nhttps://hostinger.com/edhermes\n10% coupon code: EDHERMES\n\n\n🛴 Follow me on:\nTwitch:   / developedbyed  \nTwitter:   / developedbyed  \nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eywyu9FrEgI",
        "title": "Comfy UI Crash Course For Beginners",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 1818,
        "views": 4542,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If you're building a SaaS, course platform, or any kind of product, you'll eventually need emails, automation, and user communication.\n\nyou can use Brevo:\nhttps://get.brevo.com/hxkj9l\n\nUse code ED50 for 50% off your first 3 months.\n\n🛴 Follow me on:\nTwitch:   / developedbyed  \nTwitter:   / developedbyed  \nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MJr0wU7wnwk",
        "title": "Ranking the best Image Formats",
        "publishedAt": "1 month ago",
        "durationSeconds": 1129,
        "views": 3578,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 To learn for free on Brilliant for a full 30 days, go to https://brilliant.org/developedbyed, scan the QR code onscreen, or click on the link in the description. Brilliant’s also given our viewers 20% off an annual Premium subscription, which gives you unlimited daily access to everything on Brilliant. \n\n🛴 Follow me on:\nTwitch:   / developedbyed  \nTwitter:   / developedbyed  \nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "V8XK2bzjJEQ",
        "title": "Does GPT 5.4 beat Claude Opus 4.6?",
        "publishedAt": "2 months ago",
        "durationSeconds": 833,
        "views": 17002,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Create awesome ascii animations for your react apps\nhttps://asciigen.art/\n\n🛴 Follow me on:\nTwitch:   / developedbyed  \nTwitter:   / developedbyed  \nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "H1OT55eR10s",
        "title": "I am making a rogue like typing game...",
        "publishedAt": "2 months ago",
        "durationSeconds": 594,
        "views": 3468,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Create awesome ascii animations for your react apps\nhttps://asciigen.art/\n\n🛴 Follow me on:\nTwitch:   / developedbyed  \nTwitter:   / developedbyed  \nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lkHqRgSntbo",
        "title": "OPENCLAW Full Tutorial From Scratch | Set up, Security & Use Cases",
        "publishedAt": "2 months ago",
        "durationSeconds": 2353,
        "views": 8799,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "1 Click deploy  openclaw on hostinger \n10% coupon code: DEVELOPEDBYED\nLink: https://hostinger.com/developedbyed\n\n🛴 Follow me on:\nTwitch:   / developedbyed  \nTwitter:   / developedbyed  \nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RAS8BzNSDOM",
        "title": "Gemini 3.1 PRO - this is sad to see...",
        "publishedAt": "2 months ago",
        "durationSeconds": 1024,
        "views": 7207,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://asciigen.art\nAdd awesome ASCII animations to your react apps.\n\n🛴 Follow me on:\nTwitch:   / developedbyed  \nTwitter:   / developedbyed  \nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9OdaGG1Zf-4",
        "title": "Launch a Real-Time AI Video Generation SaaS in 24 Hours",
        "publishedAt": "2 months ago",
        "durationSeconds": 1341,
        "views": 4593,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If you're building a SaaS, Chargebee helps you handle subscriptions, pricing experiments, and recurring revenue without the headache.\nCheck them out here → https://www.chargebee.com/?utm_source...\n\n\nCode for the realtime-video\nhttps://github.com/developedbyed/real...\n\n🛴 Follow me on:\nTwitch:   / developedbyed  \nTwitter:   / developedbyed  \nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CLiCn-YIZ9M",
        "title": "AI Coding Is here to stay",
        "publishedAt": "2 months ago",
        "durationSeconds": 686,
        "views": 7919,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Introducing https://asciigen.art\n\nDrop-in React component\nCLI tool to convert videos to ASCII\nGrowing animation library\nPrivate Discord for support\n\n🛴 Follow me on:\nTwitch:   / developedbyed  \nTwitter:   / developedbyed  \nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "R9TvhWy4RdM",
        "title": "My favourite animation tool is FINALLY HERE",
        "publishedAt": "3 months ago",
        "durationSeconds": 524,
        "views": 9403,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Introducing https://asciigen.art\n\nAdd mesmerizing ASCII art animations to any website.\n\nDrop-in React component\nCLI tool to convert videos to ASCII\nGrowing animation library\nPrivate Discord for support\n\n🛴 Follow me on:\nTwitch:   / developedbyed  \nTwitter:   / developedbyed  \nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qsQHJxkJtUc",
        "title": "AI is cooking us well done",
        "publishedAt": "3 months ago",
        "durationSeconds": 625,
        "views": 9397,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SRiqPni6tMM",
        "title": "Which LLM is best at Chess?",
        "publishedAt": "3 months ago",
        "durationSeconds": 1101,
        "views": 2850,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "👉 To learn for free on Brilliant for a full 30 days, go to https://brilliant.org/developedbyed, scan the QR code onscreen, or click on the link in the description. Brilliant’s also given...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "V6tEKPDdmn8",
        "title": "AI is destroying the web",
        "publishedAt": "4 months ago",
        "durationSeconds": 481,
        "views": 37499,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Thank you tailwind https://tailwindcss.com/\n\nFollow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbyed/\n...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QxZCjhyq5Ak",
        "title": "Build Your Own UI Library Course | React BaseUI",
        "publishedAt": "4 months ago",
        "durationSeconds": 14487,
        "views": 18264,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "c7LY9Um2el4",
        "title": "The only productivity app I kept...",
        "publishedAt": "4 months ago",
        "durationSeconds": 824,
        "views": 5536,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🧠 Try Notion Agent for free at https://ntn.so/developedbyed\n\n🛴 Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kiMy0zNMS7E",
        "title": "Peak Windows Web Development",
        "publishedAt": "4 months ago",
        "durationSeconds": 736,
        "views": 7733,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🛴 Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KvbH6-kCHCY",
        "title": "5 Typescript tips you NEED to know",
        "publishedAt": "4 months ago",
        "durationSeconds": 1126,
        "views": 10247,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🛴 Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jOMXfiJgAg0",
        "title": "Arch Linux...time to say goodbye?",
        "publishedAt": "4 months ago",
        "durationSeconds": 854,
        "views": 27645,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🛴 Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CuIh9uzNG_8",
        "title": "Nano Banana Pro can do what??",
        "publishedAt": "5 months ago",
        "durationSeconds": 1156,
        "views": 4770,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Join brilliant.org/developedbyed for 20% off the premium annual subscription for unlimited daily access to all the courses.\n\n🛴 Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "OCC3UmLDJbw",
        "title": "Avoid these web animations please...",
        "publishedAt": "5 months ago",
        "durationSeconds": 689,
        "views": 9375,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🛴 Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TP2zKmKqe1A",
        "title": "I Tested Gemini 3 Pro (it did really well)",
        "publishedAt": "5 months ago",
        "durationSeconds": 963,
        "views": 19143,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🛴 Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "so9FUv0lA8s",
        "title": "Javascript \"gotchas\" you need to know",
        "publishedAt": "5 months ago",
        "durationSeconds": 1251,
        "views": 4493,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Sign up for Modal - https://modal.plug.dev/R7wSnBs\n\n🛴 Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbye...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2TryYQIuUqI",
        "title": "AI Fatigue is real",
        "publishedAt": "6 months ago",
        "durationSeconds": 772,
        "views": 39126,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🛴 Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4bTTjo5sGvw",
        "title": "My Brain Hurts, thanks Brilliant",
        "publishedAt": "6 months ago",
        "durationSeconds": 1198,
        "views": 3159,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://brilliant.org/Brilliantdevelopedbyed/\nWant to level up your problem-solving and coding intuition?  \nCheck out Brilliant — and get 20% off your annual Premium subscription.\n\n🛴 Follow...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ergGc3pYZHw",
        "title": "How Does Javascript Even Work?",
        "publishedAt": "6 months ago",
        "durationSeconds": 2018,
        "views": 6956,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbyed/\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Lea9frgParA",
        "title": "6 Database Concepts Your Should Know",
        "publishedAt": "7 months ago",
        "durationSeconds": 870,
        "views": 11319,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out Supabase and multigres here: https://supabase.plug.dev/EL90TKU\n\nIn this video, I break down some of the most important database concepts you’ll actually use as a developer, things...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "NPMi-3uf_ig",
        "title": "Is this the end for Adobe?",
        "publishedAt": "7 months ago",
        "durationSeconds": 666,
        "views": 14176,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "https://brilliant.org/developedbyed/\nWant to level up your problem-solving and coding intuition?  \nCheck out Brilliant — and get 20% off your annual Premium subscription.\n\n🛴 Follow me...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4mgxvcSbwz0",
        "title": "Lazygit in a nutshell",
        "publishedAt": "8 months ago",
        "durationSeconds": 501,
        "views": 10426,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Follow me on:\nTwitch: https://www.twitch.tv/developedbyed\nTwitter: https://twitter.com/developedbyed\nGithub: https://github.com/developedbyed\n\n#programming",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "BfihkcMjDGU",
        "title": "Ranking The Most Popular Terminals",
        "publishedAt": "8 months ago",
        "durationSeconds": 640,
        "views": 15730,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "1. Alacritty\nAlacritty is a fast, GPU-accelerated terminal emulator designed for simplicity and performance. It focuses on speed and efficiency, making it ideal for users who prioritize responsiven...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QpMoy5dcvbs",
        "title": "My Top 10 Favourite Arch Linux Apps",
        "publishedAt": "8 months ago",
        "durationSeconds": 680,
        "views": 17496,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Walker – A fast application launcher and command runner for Linux.\nhttps://github.com/abenz1267/walker\n\nbtop – A modern resource monitor with a beautiful terminal UI showing CPU, memory,...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 3,
      "uploadsLast90d": 12,
      "uploadCadenceWeekly": 0.93,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 4659,
      "viewsPerVideoP90Last90d": 9397,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 4659,
      "p90Views": 9397,
      "p99Views": 9403,
      "outperformingVideosLast90d": 3
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "brilliant.org"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "github.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.97,
        "evidenceVideoIds": [
          "Iv3AIF-71RM",
          "eywyu9FrEgI",
          "MJr0wU7wnwk",
          "V8XK2bzjJEQ",
          "H1OT55eR10s"
        ]
      },
      {
        "label": "follow",
        "share": 0.87,
        "evidenceVideoIds": [
          "Iv3AIF-71RM",
          "eywyu9FrEgI",
          "MJr0wU7wnwk",
          "V8XK2bzjJEQ",
          "H1OT55eR10s"
        ]
      },
      {
        "label": "developedbyed",
        "share": 0.87,
        "evidenceVideoIds": [
          "Iv3AIF-71RM",
          "eywyu9FrEgI",
          "MJr0wU7wnwk",
          "V8XK2bzjJEQ",
          "H1OT55eR10s"
        ]
      },
      {
        "label": "com",
        "share": 0.8,
        "evidenceVideoIds": [
          "Iv3AIF-71RM",
          "eywyu9FrEgI",
          "MJr0wU7wnwk",
          "V8XK2bzjJEQ",
          "H1OT55eR10s"
        ]
      },
      {
        "label": "twitch",
        "share": 0.8,
        "evidenceVideoIds": [
          "Iv3AIF-71RM",
          "eywyu9FrEgI",
          "MJr0wU7wnwk",
          "V8XK2bzjJEQ",
          "H1OT55eR10s"
        ]
      },
      {
        "label": "productivity apps",
        "share": 0.03,
        "evidenceVideoIds": [
          "c7LY9Um2el4"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "moderate",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 29,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "developedbyed — 0.9M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 29,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.81,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "5a9770b65a1a7b55acec42e7a3cd669bd4d568c9739d4383d1daabf1b133cd7b",
      "inputsHash": "70872f4de5b84de5959e0bfc8bc64806333d9db4d98dad457000116222464820",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:35.242Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "3ce7758ac8d231d0e57caa28c76ca4831dc810260ada885e13b2e3e37de96ddf",
    "channelId": "UC5CMtpogD_P3mOoeiDHD5eQ",
    "channelHandle": "@codecademy",
    "channelName": "Codecademy",
    "channelUrl": "https://www.youtube.com/@codecademy",
    "description": "Codecademy by Skillsoft helps you learn the latest tech skills to build the career you want. Since pioneering online coding education in 2011, we’ve helped over 50 million learners switch, start, and advance their careers, develop new passions, create new projects, and gain a new lease on life.\n\nThis channel lets us share those inspiring stories from our amazing community. And while hands-on learning is the most important part of the Codecademy process, we still like to upload the occasional how-to video here and there. \n\nFind a course that fits your goals and start learning for free at Codecademy.com.",
    "joinDate": null,
    "location": null,
    "subscribers": 337000,
    "totalVideos": 343,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/OoIfYjblzMBPeV3kAHvaOYNgQmvJeVUB9q14pRuAhawNFRppUstvr_inYiBzdVB6EuWhK4li=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "bit.ly",
        "url": "https://bit.ly/3XmeL3K"
      },
      {
        "platform": "bit.ly",
        "url": "https://bit.ly/41BlyZQ"
      }
    ],
    "recentVideos": [
      {
        "videoId": "CVBwBeWkh4E",
        "title": "Job Search Tips: Using Handshake to Get Recruiter Attention",
        "publishedAt": "5 months ago",
        "durationSeconds": 3316,
        "views": 1402,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How to Use Handshake to Land Your Next Job in 2025 💼\n\nLearn how to make the most of ‪@HandshakeCareers‬, a job search platform available to Codecademy Pro members. In this session, the Handshake team walks through practical strategies for building a profile that gets recruiter attention and finding opportunities that match your skills.\n\nYou'll learn:\n💼 How to optimize your Handshake profile for recruiters\n💼 Search strategies to find roles that align with your tech skills\n💼 Ways to showcase your Codecademy projects effectively\n💼 Filter techniques to uncover the right opportunities faster\n💼 Tips for standing out to employers in a competitive market\n\nWhether you're actively job searching or planning your next career move, this session gives you actionable steps to use Handshake strategically.\n\nNote: Handshake access is included with Codecademy Pro membership.\nStart learning with Codecademy Pro: https://www.codecademy.com/pricing?ut...\nExplore career paths: https://www.codecademy.com/catalog?ut...\nCheck out upcoming Codecademy events: https://www.codecademy.com/events?utm...\n\n- - - - \nJoin the millions learning the latest in tech with Codecademy.\nDevelop tech skills: https://www.codecademy.com/?utm_sourc...\nCheck out our full course catalog: https://www.codecademy.com/catalog?ut...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WNTPAFUQZx8",
        "title": "From AI Bootcamp to Production: Building a Real AI Agent",
        "publishedAt": "5 months ago",
        "durationSeconds": 3333,
        "views": 729,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How to Build AI Agents: From Bootcamp to Real-World Applications 🤖\n\nWatch AI Engineer Ben Newell break down his journey from Codecademy's AI Agents Bootcamp to building production AI solutions — including a Clinical AI Navigator and ImprvHealth, a live AI-powered fitness coaching app on the App Store.\n\nIn this session, you'll learn:\n🤖 How to go from AI beginner to building real products\n🤖 Practical lessons from completing an AI agents bootcamp\n🤖 What it takes to launch an AI-powered app (spoiler: persistence. Ben faced 9 rejections)\n🤖 How to apply AI agents to solve real-world problems in healthcare and fitness\n🤖 Tips for bridging engineering, product strategy, and AI implementation\n\nWhether you're exploring AI for the first time or looking to build your own AI-powered projects, Ben's experience will give you actionable insights on turning concepts into working applications.\n\nAbout Ben Newell:\nBen is an AI engineer and Technical Program Manager at iFIT with 14+ years spanning healthcare analytics, SaaS, and AI product development. He's the founder of ImprvHealth and has led full-stack AI builds from concept to launch.\n\nStart learning AI: https://www.codecademy.com/catalog/su...\nExplore our Intro to AI Agents course: https://www.codecademy.com/learn/intr...\nCheck out upcoming Codecademy events: https://www.codecademy.com/events?utm...\n\n- - - - \nJoin the millions learning the latest in tech with Codecademy.\nDevelop tech skills: https://www.codecademy.com/?utm_sourc...\nCheck out our full course catalog: https://www.codecademy.com/catalog?ut...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "KiV2D7RaQ48",
        "title": "Git Tutorial for Beginners | Part 4: Merge, Rebase & Commit Mastery",
        "publishedAt": "5 months ago",
        "durationSeconds": 3834,
        "views": 725,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Welcome to Part 4 of our Git & GitHub workshop series!\n\nIn this session, Club Captain Nick Edwards takes you deeper into advanced Git techniques, building on what you learned in Part 3. Learn how to manage commit history and optimize your workflow for smoother collaboration.\n\n🔧 What You’ll Learn:\n• How to modify commit history: merge strategies, rebase, and squash commits\n• How to stash changes and efficiently clean up your repo\n• Best practices for writing clear commit messages, using short-lived branches, and managing Pull Requests\n\nWhether you’re improving your Git skills or looking to refine your workflow, this session will give you the confidence to handle version control with ease.\n\n📌 Watch Part 1 here:     • Git Tutorial for Beginners | Part 1: Setup...  \n📌 Watch Part 2 here:    • Git Tutorial for Beginners | Part 2: Colla...  \n📌 Watch Part 3 here:    • Git Tutorial for Beginners | Part 3: Rebas...  \n\nLearn Git on Codecademy: https://www.codecademy.com/learn/lear...\nCheck out our upcoming events: https://community.codecademy.com/c/ev...\n\n#AdvancedGit #GitRebase #GitBestPractices #GitHub #VersionControl #GitTutorial #GitForBeginners #CodingWorkflow\n\n- - - - \nJoin the millions learning the latest in tech with Codecademy.\nDevelop tech skills: https://www.codecademy.com/?utm_sourc...\nCheck out our full course catalog: https://www.codecademy.com/catalog?ut...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "85JVKjW-uG0",
        "title": "Deploy your Vibe Coding Projects for Free | Using Vercel & Netlify",
        "publishedAt": "7 months ago",
        "durationSeconds": 480,
        "views": 1727,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to deploy your Vibe Coding projects online for FREE!\n\nIn this tutorial, we'll show you how to take any AI-generated project from GitHub and deploy it live using both Vercel and Netlify.\n\nWhat You'll Learn:\n· Deploy Vibe Coding projects from GitHub to live websites\n· Vercel deployment walkthrough with automatic detection\n· Netlify deployment process and configuration\n· Compare Vercel vs Netlify for your AI-generated apps\n· Automatic redeployment setup for future updates\n· Real example using a Lovable-generated to-do app\n\nPerfect for anyone doing Vibe Coding who wants to share their AI-generated projects with the world! Both platforms offer generous free tiers and work seamlessly with modern frameworks.\n\n🔗 Example project: https://github.com/mamtawardhani/Todo...\n🛠️ Tools: GitHub, Vercel, Netlify, Vibe Coding\n\nLearn Vibe Coding with Codecademy: https://www.codecademy.com/learn/intr...\n\n#VibeCoding #Deployment #Vercel #Netlify #AIGenerated #Codecademy\n\n- - - - \nJoin the millions learning the latest in tech with Codecademy.\nDevelop tech skills: https://www.codecademy.com/?utm_sourc...\nCheck out our full course catalog: https://www.codecademy.com/catalog?ut...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xAZs0QDRQBQ",
        "title": "How to Use Flutter Widgets (A Beginner’s Guide)",
        "publishedAt": "7 months ago",
        "durationSeconds": 1163,
        "views": 1247,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn Flutter widgets from scratch!\n\nIn this comprehensive tutorial, we break down the fundamental building blocks of Flutter development.\n\nWhat You'll Learn:\n· What are Flutter widgets and why they matter\n· Stateless vs Stateful widgets explained with examples\n· Essential widgets: Scaffold, AppBar, Container, Text\n· Row and Column layout widgets\n· Image and Icon widgets for visual elements\n\nFollow along with VS Code examples and build your first responsive Flutter layouts!\n\nReady to start your Flutter journey? This tutorial covers everything you need to know about widgets to build amazing mobile apps.\n\nLearn Flutter on Codecademy: https://www.codecademy.com/learn/intr...\nFlutter Widgets for Developers: https://www.codecademy.com/article/fl...\n\n#Flutter #FlutterDevelopment #MobileDevelopment #Codecademy\n\n- - - - \nJoin the millions learning the latest in tech with Codecademy.\nDevelop tech skills: https://www.codecademy.com/?utm_sourc...\nCheck out our full course catalog: https://www.codecademy.com/catalog?ut...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "khJT7_Qd_ks",
        "title": "How to Use ChatGPT Agents | A Complete Guide with Examples",
        "publishedAt": "8 months ago",
        "durationSeconds": 529,
        "views": 2593,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Discover the power of ChatGPT Agents!\n\nIn this tutorial, we'll show you 3 real-world workflows that demonstrate how AI agents can automate hours of work.\n\nWhat You'll Learn:\n· What are AI agents and how they differ from regular chatbots\n· 3 memory, tool integration, and reasoning capabilities\n· Reddit Research Agent: Market intelligence on demand\n· Customer Support Agent: Automate repetitive inquiries\n· Content Strategy Agent: 30-day social media plans in minutes\n· Exact prompts and step-by-step demonstrations\n\n💡 These aren't just demos - these are real workflows you can implement today to save 10-15 hours per week!\n\nPerfect for business owners, marketers, and anyone looking to automate repetitive tasks with AI.\n\nLearn how to build AI agents with Codecademy: https://www.codecademy.com/learn/lear...\n\n#ChatGPT #AIAgents #Automation #Productivity #Codecademy\n\n- - - - \nJoin the millions learning the latest in tech with Codecademy.\nDevelop tech skills: https://www.codecademy.com/?utm_sourc...\nCheck out our full course catalog: https://www.codecademy.com/catalog?ut...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "apsLed-iWQM",
        "title": "Building Smart Chatbots with Rasa AI and Ollama LLaMA3 | Complete Guide",
        "publishedAt": "8 months ago",
        "durationSeconds": 699,
        "views": 2860,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to create powerful, intelligent chatbots using Rasa AI framework and Ollama's LLaMA3 model - completely free and running locally on your machine! This comprehensive tutorial covers everything from setup to deployment, perfect for developers who want to build advanced conversational AI without expensive API costs.\n\nWhat You'll Learn:\n• Setting up Rasa AI framework and Ollama locally\n• Installing and configuring LLaMA3 model\n• Creating NLU training data and intents\n• Building custom actions with Python\n• Connecting Rasa to Ollama for intelligent responses\n• Training and testing your chatbot\n• Debugging and visualizing conversation flows\n• Best practices for chatbot development\n\nWhy Rasa + Ollama: This powerful combination gives you complete control over your chatbot while leveraging state-of-the-art language models locally. No API costs, no data privacy concerns, and unlimited customization possibilities!\n\nContinue learning:\nBuild chatbots with Python: https://www.codecademy.com/learn/path...\nLearn generative AI for everyone: https://www.codecademy.com/learn/path...\n\n- - - - \nJoin the millions learning the latest in tech with Codecademy.\nDevelop tech skills: https://www.codecademy.com/?utm_sourc...\nCheck out our full course catalog: https://www.codecademy.com/catalog?ut...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6vM2b_BPut8",
        "title": "Build a Portfolio Website with Lovable AI | No Coding Required",
        "publishedAt": "9 months ago",
        "durationSeconds": 349,
        "views": 2669,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this tutorial, we'll show you how to create a professional portfolio website using Lovable AI without writing a single line of code! Perfect for designers, developers, freelancers, or anyone who wants to showcase their work online but doesn't have coding experience.\n\n‪@lovable‬ combines the power of artificial intelligence with intuitive design tools, letting you create professional websites or apps that would normally require coding skills. Build responsive, beautiful portfolios that showcase your work perfectly!\n\nWhat You'll Learn:\n• Getting started with Lovable AI platform\n• Creating your first portfolio project from scratch\n• Designing professional layouts with AI assistance\n• Adding your projects, skills, and experience\n• Customizing colors, fonts, and styling without code\n\nContinue learning:\nIntro to Generative AI: https://www.codecademy.com/learn/intr...\nLearn Visual Design: https://www.codecademy.com/learn/lear...\nHow to Build a Software Developer Portfolio (& Why You Need One): https://www.codecademy.com/resources/...\n\n- - - - \nJoin the millions learning the latest in tech with Codecademy.\nDevelop tech skills: https://www.codecademy.com/?utm_sourc...\nCheck out our full course catalog: https://www.codecademy.com/catalog?ut...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "NybrrBEs-HQ",
        "title": "How to Create Customer Support Chatbot Using Hugging Face | Full Guide",
        "publishedAt": "9 months ago",
        "durationSeconds": 615,
        "views": 4305,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this tutorial, we'll walk you through building powerful customer service chatbots using Hugging Face - which is completely free and open source! Whether you're a business owner looking to automate support or a developer wanting to learn AI chatbot development, this step-by-step guide has you covered.\n\n‪@HuggingFace‬ offers state-of-the-art language models that can understand context, handle complex customer queries, and provide human-like responses. Best of all, it's free to get started and doesn't require expensive API subscriptions!\n\nWhat You'll Learn:\n• Setting up your Hugging Face development environment\n• Choosing the right pre-trained models for customer service\n• Building conversational AI that understands customer queries\n• Training your chatbot on custom support scenarios\n• Implementing natural language processing for better responses\n• Deploying your chatbot for real-world use\n\nContinue learning:\nIntroduction to HuggingFace: https://www.codecademy.com/learn/intr...\nIntroduction to AI Transformers: https://www.codecademy.com/learn/intr...\n6 In-Demand AI Skills and How to Learn Them: https://www.codecademy.com/resources/...\n\n- - - - \nJoin the millions learning the latest in tech with Codecademy.\nDevelop tech skills: https://www.codecademy.com/?utm_sourc...\nCheck out our full course catalog: https://www.codecademy.com/catalog?ut...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8srE3eWkqpg",
        "title": "How to use Figma Make | AI Tool that Designs for You | Complete Tutorial",
        "publishedAt": "9 months ago",
        "durationSeconds": 847,
        "views": 10444,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this tutorial, we'll show you exactly how to use Figma Make, the new AI tool by Figma that creates stunning UI designs in minutes. Whether you're a beginner or experienced designer, this step-by-step guide will help you master Figma's AI-powered design assistant.\n\nWhat is Figma Make?\n‪@Figma‬ Make uses AI to instantly generate professional UI designs based on simple text prompts. No more starting from blank canvases or struggling with design block - just describe what you want, and watch the AI create it for you!\n\nWhat You'll Learn:\n• How to set up and access Figma Make\n• Creating your first AI-generated design\n• Customizing AI outputs to match your vision\n• Best practices for prompting the AI effectively\n• Tips for refining and editing AI-generated designs\n• How to export and use your designs in projects\n\nContinue learning:\nIntroduction to Figma and UI/UX: https://www.codecademy.com/learn/intr...\nBecome a UX Designer: https://www.codecademy.com/learn/path...\nHow to get started with UI/UX: https://www.codecademy.com/resources/...\n\n- - - - \nJoin the millions learning the latest in tech with Codecademy.\nDevelop tech skills: https://www.codecademy.com/?utm_sourc...\nCheck out our full course catalog: https://www.codecademy.com/catalog?ut...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "_DngjE9_onI",
        "title": "Luddite in the Workplace | Bean Counter",
        "publishedAt": "9 months ago",
        "durationSeconds": 31,
        "views": 606,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Coworkers with outdated skills slowing you down? With interactive lessons, video-based courses, and live virtual bootcamps, Codecademy makes it easy to learn the tech skills everyone needs...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kd33ydEtDvc",
        "title": "Git Tutorial for Beginners | Part 3: Rebase, Stashing & Git Best Practices",
        "publishedAt": "9 months ago",
        "durationSeconds": 3620,
        "views": 1323,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Welcome to Part 3 of our Git & GitHub workshop series!\n\nIn this session, Club Captain Nick Edwards dives into advanced Git techniques to help you rewrite commit history, clean up your workflow,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "eyTd5OMo_Cs",
        "title": "What Happens When Code Meets Infinity? | Math, Logic & Computer Science",
        "publishedAt": "10 months ago",
        "durationSeconds": 2354,
        "views": 459,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "What happens when computer science meets infinity? ♾️💻\n\nIn this live session hosted by The Tech Bros, we’ll explore how concepts like infinite loops, paradoxes, and unbounded data...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Q4HRD3dDWnM",
        "title": "Luddite in the Workplace | Doomscroll",
        "publishedAt": "10 months ago",
        "durationSeconds": 31,
        "views": 6862,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Coworkers with outdated skills slowing you down? With interactive lessons, video-based courses, and live virtual bootcamps, Codecademy makes it easy to learn the tech skills everyone needs...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PE4U01gI1Zs",
        "title": "Use GenAI in Your Data Workflow | Build Smarter Workflows with Agentic AI",
        "publishedAt": "10 months ago",
        "durationSeconds": 3540,
        "views": 1536,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this beginner-friendly webinar hosted by @KNIMETV and Codecademy, learn how you can bring the power of Generative AI into your data projects — without heavy coding. We'll explore how visual...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kncm4zTK8Ys",
        "title": "UX Designer Career Path Overview | What to Learn to Become a UX Designer",
        "publishedAt": "10 months ago",
        "durationSeconds": 3474,
        "views": 1279,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want to kickstart your career as a UX designer? 🚀\n\nJoin us for an in-depth walkthrough of Codecademy’s UX Designer career path, perfect for beginners! Learn what skills you'll develop,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PVOX5mxdsOE",
        "title": "How Alex Hjert Went from Customer Support to Software Engineer at Squarespace",
        "publishedAt": "11 months ago",
        "durationSeconds": 2764,
        "views": 884,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ready to make a career pivot into tech?\n\nIn this candid conversation, Alex Hjert, a longtime Software Engineer at Squarespace, shares her journey from customer support to building backend infrastru...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QyLdDxvG0a8",
        "title": "Using Your Admin Dashboard | Codecademy Teams",
        "publishedAt": "1 year ago",
        "durationSeconds": 87,
        "views": 663,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We’re walking through your Codecademy Teams admin dashboard. See how the updated experience makes it easier to quickly find and assign content, gain real-time insights on team progress, visualize...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YffOADIBP3A",
        "title": "The Learner Dashboard | Codecademy Teams",
        "publishedAt": "1 year ago",
        "durationSeconds": 58,
        "views": 405,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, you’ll learn how to use our improved content search to quickly find, compare, and assign courses and paths that are relevant to your team’s unique goals.\n\nAbout Codecademy...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lpbU-QW0l0Q",
        "title": "From Marketing to Cybersecurity: Jimmy’s Career Change Story + AMA",
        "publishedAt": "1 year ago",
        "durationSeconds": 2774,
        "views": 970,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Thinking about switching careers into cybersecurity but don’t know where to start? In this recorded session, Jimmy Sorto shares his journey from 8 years in marketing to landing a role as...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "h4c8QJgiWgo",
        "title": "Beginner AI Workshop: Learn & Code a Simple AI System",
        "publishedAt": "1 year ago",
        "durationSeconds": 4476,
        "views": 2497,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Hosted by The Tech Bros, this beginner-friendly AI workshop covers everything you need to start coding with artificial intelligence. You'll learn the fundamentals and build your very first...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "FMtvY8jHnfk",
        "title": "How to Become a Front-End or Full-Stack Engineer | AMA Recording",
        "publishedAt": "1 year ago",
        "durationSeconds": 2567,
        "views": 1695,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Missed our live AMA? Watch the full recording of our Ask Me Anything: Navigating the Full-Stack & Front-End Engineer career path with SWE Bobby Velasco!\n\nBobby, a Senior Software Engineer,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fPWXVVEHYaU",
        "title": "From No Experience to Data Engineer: Career & Resume Tips with Santiago Caraballo",
        "publishedAt": "1 year ago",
        "durationSeconds": 4716,
        "views": 1188,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "We’re thrilled to welcome Santiago Caraballo, a Data Engineer from Gualeguaychú, Argentina, to host a career growth and resume review workshop for our community!\n\nSantiago’s journey is...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "M-5bI1cu6xs",
        "title": "Tea Cozy Code-Along: Build a Website with HTML, CSS & Flexbox! (Part 2)",
        "publishedAt": "1 year ago",
        "durationSeconds": 3174,
        "views": 1216,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Join us for an interactive code-along with Codecademy Code Crew Captain, Kailie, as we tackle the Tea Cozy off-platform project from Codecademy’s Front-End Engineer career path! \n\nThis project...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zIu-CGQNO6I",
        "title": "Close Skill Gaps & Empower Your Team with Codecademy Teams | Walkthrough & Features",
        "publishedAt": "1 year ago",
        "durationSeconds": 1169,
        "views": 801,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "65% of IT decision-makers report skill gaps in their teams (per Skillsoft's 2024 IT Skills & Salary Report). Stay ahead with Codecademy Teams — the all-in-one learning solution designed to...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Fv6q9nm6Y10",
        "title": "Tea Cozy Code-Along: Build a Website with HTML, CSS & Flexbox (Part 1)",
        "publishedAt": "1 year ago",
        "durationSeconds": 3506,
        "views": 1792,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Join us for an interactive code-along with Codecademy Code Crew Captain, Kailie, as we tackle the Tea Cozy off-platform project from Codecademy’s Front-End Engineer career path! \n\nThis project...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "leXWPmIPwV8",
        "title": "Swift Macros Code-Along: Learn to Build & Use Macros in Swift!",
        "publishedAt": "1 year ago",
        "durationSeconds": 3576,
        "views": 661,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Join Mobile Developer Omar for an engaging code-along session on Swift Macros! This interactive workshop will give you hands-on experience as you explore what macros are, the different types...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JpRu0Vjlhbw",
        "title": "Cybersecurity Q&A: Behind the Scenes with Codecademy’s Expert",
        "publishedAt": "1 year ago",
        "durationSeconds": 2944,
        "views": 702,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, Sarai Fernandez, Codecademy's Cybersecurity Domain Manager, will offer a deep dive into our cybersecurity curriculum. \n\nShe'll share her journey and insights into the course...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tXpVgGKgtrY",
        "title": "Ace Your Tech Interview: Codecademy’s Interview Simulator Demo",
        "publishedAt": "1 year ago",
        "durationSeconds": 2639,
        "views": 661,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Take your tech career to the next level with tailored interview practice using Codecademy's Interview Simulator! Led by Melanie Williams, Product and Instructional Design at Codecademy, this...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5chxeUmZLvg",
        "title": "Transform Your Learning Experience with Codecademy’s AI Assistant",
        "publishedAt": "1 year ago",
        "durationSeconds": 2977,
        "views": 1043,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Join Joe Holmes, Codecademy Curriculum Developer specializing in Machine Learning and AI, and Kat Minor, Codecademy Product Designer, as they showcase how Codecademy’s AI learning assistant...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "education",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:codecademy"
          ]
        },
        {
          "category": "ai-saas",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:AI assistants"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "bit.ly",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "codecademy",
        "share": 0.73,
        "evidenceVideoIds": [
          "CVBwBeWkh4E",
          "WNTPAFUQZx8",
          "KiV2D7RaQ48",
          "85JVKjW-uG0",
          "xAZs0QDRQBQ"
        ]
      },
      {
        "label": "tech",
        "share": 0.53,
        "evidenceVideoIds": [
          "CVBwBeWkh4E",
          "WNTPAFUQZx8",
          "KiV2D7RaQ48",
          "85JVKjW-uG0",
          "xAZs0QDRQBQ"
        ]
      },
      {
        "label": "join",
        "share": 0.5,
        "evidenceVideoIds": [
          "CVBwBeWkh4E",
          "WNTPAFUQZx8",
          "KiV2D7RaQ48",
          "85JVKjW-uG0",
          "xAZs0QDRQBQ"
        ]
      },
      {
        "label": "skills",
        "share": 0.47,
        "evidenceVideoIds": [
          "CVBwBeWkh4E",
          "WNTPAFUQZx8",
          "KiV2D7RaQ48",
          "85JVKjW-uG0",
          "xAZs0QDRQBQ"
        ]
      },
      {
        "label": "AI assistants",
        "share": 0.03,
        "evidenceVideoIds": [
          "5chxeUmZLvg"
        ]
      },
      {
        "label": "machine learning",
        "share": 0.03,
        "evidenceVideoIds": [
          "5chxeUmZLvg"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 33,
      "reason": "fits education",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.35
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "fits education. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Codecademy — 0.3M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 33,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.77,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "education",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "3ce7758ac8d231d0e57caa28c76ca4831dc810260ada885e13b2e3e37de96ddf",
      "inputsHash": "b663191fa7d7dc27b684e7c24658a217f8249f14ed3df0caaf7acc97b40ffcb5",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:36.240Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "skipped",
    "eventId": "29a1fec2f22326909b2012c404c592d445b2c2c77b7ea6c95ced93f95d7d78a1",
    "channelHandle": "@alexhyett",
    "channelId": "UCQYsF8LcZaDstMW1qFCcjaQ",
    "subscribers": 2,
    "skipReason": {
      "source": "quality-gate",
      "rules": [
        "minSubscribers<50000"
      ],
      "message": "Channel filtered out by quality gate: minSubscribers<50000. No PPE event charged."
    },
    "summary": "Skipped @alexhyett — failed gate: minSubscribers<50000.",
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:37.564Z"
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "98a9fd56134c085739aec7b6bf49b3a3c00ad64351cc0c9e276011b5e7e6d2df",
    "channelId": "UC8butISFwT-Wl7EV0hUK0BQ",
    "channelHandle": "@freecodecamp",
    "channelName": "freeCodeCamp.org",
    "channelUrl": "https://www.youtube.com/@freecodecamp",
    "description": "Learn math, programming, and computer science for free. A 501(c)(3) tax-exempt charity. We also run a free learning interactive platform at freecodecamp.org",
    "joinDate": null,
    "location": null,
    "subscribers": 11600000,
    "totalVideos": 2200,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_lGRc-05M2OoE1ejQdxeFhyP7OkJg9h4Y-7CK_5je3QqFI=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "donate.freecodecamp.org",
        "url": "https://donate.freecodecamp.org"
      },
      {
        "platform": "scrimba.com",
        "url": "https://scrimba.com/fcc"
      }
    ],
    "recentVideos": [
      {
        "videoId": "gh2_PhgZGsM",
        "title": "Claude Code for Beginners Tutorial",
        "publishedAt": "10 hours ago",
        "durationSeconds": 16068,
        "views": 29287,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn all about Claude Code. This is the ultimate guide to turning Anthropic’s Claude into a seamless part of your development workflow. Whether you're scaffolding a brand-new project or navigating a complex, multi-file codebase, this is how you code faster without sacrificing quality.\n\n🔗 IMPORTANT LINKS\n🔬 Practice with Hands-On Labs: https://kode.wiki/claude-code\n🎓 Get the Full Course here: https://kode.wiki/claude-code-course\n\n❤️ Support for this channel comes from our friends at Scrimba – the coding platform that's reinvented interactive learning: https://scrimba.com/freecodecamp\n\n⭐️ Contents ⭐️\n0:00:00 Introduction\n0:00:30 Prerequisites and Initial Setup\n0:09:25 Start your first session\n0:23:58 Understanding Codebases with Claude\n0:32:21 Installing Claude on Ubuntu Virtual Machines\n\n0:49:34 Building a project from scratch\n0:49:34 Getting project ready for public release\n0:56:49 Creating Unit Tests for our Project\n1:03:20 Autonomous Task Completion\n1:17:11 Environment and Configuration Management\n\n1:30:17 Managing Long Sessions Effectively\n2:07:52 Writing Effective Development Prompts\n2:23:39 Multi-file Project Navigation\n2:32:10 Working with APIs and External Services\n\n2:46:16 Initial Project Analysis\n2:56:24 Design Pattern Implementation Review\n3:05:50 SOLID Principles Evaluation\n3:24:04 Error Handling & Resilience Audit\n3:36:04 Exception Flow Analysis\n3:52:12 Resilience & Fault Tolerance\n3:53:09 Code Quality Metrics & Standards\n4:02:17 Code Duplication Detection\n4:12:14 Naming Conventions & Readability\n4:19:23 Test Coverage & Quality Analysis\n\n🎉 Thanks to our Champion and Sponsor supporters:\n👾 @omerhattapoglu1158\n👾 @goddardtan\n👾 @akihayashi6629\n👾 @kikilogsin\n👾 @anthonycampbell2148\n👾 @tobymiller7790\n👾 @rajibdassharma497\n👾 @CloudVirtualizationEnthusiast\n👾 @adilsoncarlosvianacarlos\n👾 @martinmacchia1564\n👾 @ulisesmoralez4160\n👾 @_Oscar_\n👾 @jedi-or-sith2728\n👾 @justinhual1290\n\n--\n\nLearn to code for free and get a developer job: https://www.freecodecamp.org\n\nRead hundreds of articles on programming: https://freecodecamp.org/news",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "HNVaYYxmwLU",
        "title": "Open Models Coding Essentials – Running LLMs Locally and in the Cloud Course",
        "publishedAt": "6 days ago",
        "durationSeconds": 8248,
        "views": 33341,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to work with a wide range of open large language models (LLMs) such as Gemma, Kimmy, and GLM across various local and cloud-based environments. This comprehensive guide by Andrew Brown explores how to use coding harnesses like Claude Code and Pi Agent to build real-world agentic workflows while benchmarking model performance and hardware requirements.\n\nMore course resources: https://www.exampro.co/exp-openmodel-...\n\n✏️ Course created by ‪@ExamProChannel‬ \n\n⭐️ Chapters ⭐️\n00:00 Introduction\n\nFoundations of Open Coding Systems\n00:01:17  Exploration of Coding Harnesses and Open Models\n00:09:19  Open Models Selection\n00:13:21  Coding Harness Selection\n\nLocal Models and Ollama Setup\n00:19:57  Install Ollama Serve Model\n00:35:58  ClaudeCode Gemma4 Local\n00:55:51  Codex Gemma GPT OSS Part 1\n01:01:25  Codex Gemma GPT OSS Part 2\n\nCloud Models and Coding Agents\n01:17:16  Claude Code Gemma4 Cloud\n01:27:22  Claude Code Kimi 2 5\n01:33:33  Claude Code GLM 5\n01:36:36  Claude Code MiniMax 2 7\n01:41:49  Claude Code Qwen 3 5\n01:46:06  Pi Coding Agent Ollama Cloud\n02:03:04  Droid CLI Ollama Cloud\n02:10:54  Open Code Ollama\n\n❤️ Support for this channel comes from our friends at Scrimba – the coding platform that's reinvented interactive learning: https://scrimba.com/freecodecamp\n\n🎉 Thanks to our Champion and Sponsor supporters:\n👾 @omerhattapoglu1158\n👾 @goddardtan\n👾 @akihayashi6629\n👾 @kikilogsin\n👾 @anthonycampbell2148\n👾 @tobymiller7790\n👾 @rajibdassharma497\n👾 @CloudVirtualizationEnthusiast\n👾 @adilsoncarlosvianacarlos\n👾 @martinmacchia1564\n👾 @ulisesmoralez4160\n👾 @_Oscar_\n👾 @jedi-or-sith2728\n👾 @justinhual1290\n\n--\n\nLearn to code for free and get a developer job: https://www.freecodecamp.org\n\nRead hundreds of articles on programming: https://freecodecamp.org/news",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jzOy07fw2vY",
        "title": "JavaScript Event Loop & Asynchronous Programming",
        "publishedAt": "8 days ago",
        "durationSeconds": 2783,
        "views": 25714,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Master the JavaScript Event Loop. This video uses detailed animations and diagrams to show you exactly how JavaScript manages asynchronous tasks while remaining single-threaded.\n\nCourse from ‪@FrontendDevs1991‬ \n\n❤️ Support for this channel comes from our friends at Scrimba – the coding platform that's reinvented interactive learning: https://scrimba.com/freecodecamp\n\n⭐️ Contents ⭐️\n– 00:00 Introduction to the JavaScript Event Loop  \n– 01:33 Components of the Browser Runtime (Engine, Stack, APIs, and Queues)  \n– 02:13 Understanding the Call Stack and Synchronous Execution  \n– 04:33 The Limitations of the Call Stack  \n– 06:46 Introduction to Web APIs: JavaScript's Superpowers  \n– 10:02 How JavaScript Handles Delays (setTimeout Example)  \n– 14:21 The Role of the Task Queue (Callback Queue)  \n– 16:34 The Event Loop: Connecting the Queue to the Stack  \n– 19:00 Example: Geolocation API and User Permissions  \n– 22:26 Example: DOM Events and Event Listeners  \n– 27:23 Promises, Fetch, and the Microtask Queue  \n– 34:54 Handling Long-Running Synchronous Tasks  \n– 38:35 What Goes into the Microtask Queue? (Promises, Async/Await)  \n– 41:05 Starvation of Functions in the Callback Queue  \n– 44:59 Visualizing Internals in the Browser  \n– 45:38 Conclusion and Final Summary\n\n🎉 Thanks to our Champion and Sponsor supporters:\n👾 @omerhattapoglu1158\n👾 @goddardtan\n👾 @akihayashi6629\n👾 @kikilogsin\n👾 @anthonycampbell2148\n👾 @tobymiller7790\n👾 @rajibdassharma497\n👾 @CloudVirtualizationEnthusiast\n👾 @adilsoncarlosvianacarlos\n👾 @martinmacchia1564\n👾 @ulisesmoralez4160\n👾 @_Oscar_\n👾 @jedi-or-sith2728\n👾 @justinhual1290\n\n--\n\nLearn to code for free and get a developer job: https://www.freecodecamp.org\n\nRead hundreds of articles on programming: https://freecodecamp.org/news",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GmtOxMl39Tc",
        "title": "Stanford's youngest instructor on InfoSec, AI, catching cheaters - Rachel Fernandez [Podcast #217]",
        "publishedAt": "12 days ago",
        "durationSeconds": 4719,
        "views": 11732,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today Quincy Larson interviews Rachel An Fernandez. She's a computer science student at Stanford and the youngest instructor at the entire university. She recently helped organize TreeHacks, Stanford's annual hackathon, which narrowed 15,000 applicants down to just 1,000 participants. They built projects over a single weekend and competed for a million dollars in prizes.\n\nRachel grew up in Westminster, a small California town with a largely Mexican and Vietnamese population. 70% of students at her high school had family incomes so low that qualified for free school lunches. And Rachel was the first student from there to get into Stanford in years.\n\nWe talk about:\nThe state of computer science education in 2026\nHer thoughts on C++, a language she teaches at Stanford, and its continued importance\nAnd her tips for how devs should use AI tools without \"deskilling\" themselves\n\nSupport for this podcast comes from the 10,113 kind folks who donate to our charity each month. Join them and support our mission at https://donate.freecodecamp.org\n\nGet a freeCodeCamp tshirt for $20 with free shipping anywhere in the US: https://shop.freecodecamp.org\n\nLinks from our discussion:\nRachel on LinkedIn:   / rachel-fernandez28  \nfreeCodeCamp book on AI Assisted Coding that Quincy mentions: https://www.freecodecamp.org/news/how...\n\n1. freeCodeCamp just published an automation for beginners course. You'll learn how to automate your routine daily tasks by piping together triggers and actions. By the end of the course, you'll have your own Model Context Protocol server that can share info between your productivity apps and your agents. (4 hour YouTube course): https://www.freecodecamp.org/news/rec...\n\n2. freeCodeCamp also published a full-length handbook on data quality. You'll learn the most common ways that bad data enters a system, and how to prevent them. You'll get exposure to the different layers where data validation needs to happen: front end, back end, database, business logic, and data ingestion. The handbook will also walk you through testing strategies to keep bad data out of your projects. (full-length handbook): https://www.freecodecamp.org/news/dat...\n\n3. AI Governance may sound like something only managers need to worry about. But in practice, it's us developers who have to actually build the responsible AI systems. You can bookmark this new freeCodeCamp handbook and code along with four hands-on Python projects: a model card generator, a bias detection pipeline, an audit trail logger, and a human-in-the-loop escalation system. (full length handbook): https://www.freecodecamp.org/news/the...\n\n4. Today's song of the week is Danza Marilù by French disco band L'Impératrice. This 2024 banger features a heavily syncopated bass line that I think you'll love. The singer subtly alternates between French and Italian. And the music video is unique and all good vibes as well.    • L'Impératrice — Danza Marilù (feat. Fabian...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wApaJjvNZFs",
        "title": "Inside Stanford's Elite Student Hackathon (Full Documentary on TreeHacks 2026)",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 6143,
        "views": 107390,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This documentary will introduce you to the high-energy environment of Tree Hacks 2026, Stanford's annual student hackathon, where 1,000 elite hackers selected from 15,000 applicants gather at the Palo Alto campus to compete for $500,000 in prizes.\n\nQuincy Larson interviews various teams to showcase diverse creations ranging from mind-controlled robotic arms and automated chemistry labs to AI-powered medical assistants for senior care and anarchy servers for AI agents.\n\nTree Hacks 2026 took place in February 2026 at Stanford University in Palo Alto, CA.\n\nLearn more about Tree Hacks: https://www.treehacks.com/\n\n❤️ Support for this channel comes from our friends at Scrimba – the coding platform that's reinvented interactive learning: https://scrimba.com/freecodecamp\n\n⭐️ Chapters ⭐️\n0:00 Intro\n1:10 Welcome to Tree Hacks 2026\n2:05 Participants Share Hackathon Journeys\n5:01 AI-Assisted Benchmarking Platform\n6:00 Quantum Computing and Hackathon Prep\n7:00 Camera-Based AI Image Projects\n8:31 Mentoring and Hackathon Insights\n11:00 Local AI Video Editing Tool\n12:30 Iris: Unified AI for Apple Devices\n14:00 Drug Repurposing with AI Agents\n15:31 Team Planning and Project Strategy\n17:01 Crowdsourced Robotics Training\n18:00 AI Jazz Chord Progression Tool\n19:03 VR Classroom Using World Models\n20:01 Team Dynamics and Social Impact\n22:31 Mentors Reflect on Student Innovation\n25:00 AI Solutions for Food Banks and Trash\n26:30 Aphasia Communication Aid Development\n28:30 Game Design and AI Collaboration\n30:00 Social Connection Game Concept\n31:00 AI Moderation Tool for Educators\n32:30 AI Onboarding Solution for Companies\n33:33 Robotic Enforcement for Bicycle Safety\n34:02 Magnetic Assistive Smart Table\n34:30 Tree Hacks Logistics and Food Team\n35:30 Organ Transport Monitoring System\n36:01 Last-Minute Hardware and Robotics Ideas\n37:30 Mind-Controlled Browser Automation\n38:32 Robot Fight Club Showdown\n39:01 Voice AI Platform for Nurses\n41:00 AI Agents Battle in Minecraft Server\n42:30 Sleep Analytics with Multimodal Sensors\n44:00 Zoom AI Companion for Learning\n45:30 Hackathon Prediction Market Platform\n47:00 AI Tutor Using Zoom SDK\n48:30 AI Chemistry Lab Automation\n50:00 AI-Generated Board Games Platform\n51:30 Teamwork and Stress Management\n52:00 AI Tools Bridging Healthcare Gaps\n54:00 Personalized AI Medical Research Videos\n55:31 AI Dating Agent with Cloning Tech\n57:00 Mind-Controlled Robotic Feeding Arm\n58:31 Smart Glasses for Instant Shopping\n59:01 Voice Assistant for Elderly Patients\n1:01:00 Long-Running Autonomous Coding Agents\n1:02:00 Browser Accessibility for Visually Impaired\n1:03:30 Calhacks Winner's Elderly AI Caretaker\n1:05:31 AI-Powered Hiring Assistant Tool\n1:07:00 AI Jazz Chord Recognition Explained\n1:08:31 AI Frontline Emergency Response System\n1:10:30 Satellite Collision Prediction and Defense\n1:13:00 Scratch-Inspired Machine Learning Lessons\n1:14:30 3D Scene Generation from Photos\n1:16:30 AI-Powered Workflow Generation from Video\n1:17:31 Teeth Grinding Sleep Diagnosis Device\n1:19:01 Predicting Muscle Fatigue in Real Time\n1:21:01 Hackathon Experience and Lessons Learned\n1:22:00 Tree Hacks Judging Criteria Revealed\n1:23:30 Organizing the Largest Student Hackathon\n1:26:00 Everyday Objects as AI Musical Instruments\n1:27:30 Food Waste Detection at Stanford Dining\n1:28:01 AI Prompts for Organic Friendmaking\n1:29:00 Edge-Deployable Finance AI Framework\n1:29:30 Group Chat Assistant for Event Planning\n1:30:31 Medical Equipment Repair Platform\n1:32:00 Vision-Language Agent for Cell Microscopy\n1:33:00 Highly Maneuverable Fixed-Wing Drone\n1:33:30 Unified AI Agent Across Multiple Devices\n1:34:00 Quiet Study Spot Finder with Bluetooth\n1:34:30 Mind-Controlled Robot Using EEG Signals\n1:35:30 Math Models Created by Large Language Models\n1:36:00 Autonomous AI Gardening System\n1:37:01 VR Surgery with AI-Controlled Robotic Arms\n1:38:00 Music Generation from Brainwaves\n1:39:00 Mobile Agent Controlling Smartphone Actions\n1:39:30 Underwater Gesture-Controlled Research Robot\n1:40:30 Smart Walker for Elderly Mobility Support\n1:41:31 Reflecting on Tree Hacks 2026 Experience\n\n🎉 Thanks to our Champion and Sponsor supporters:\n👾 @omerhattapoglu1158\n👾 @goddardtan\n👾 @akihayashi6629\n👾 @kikilogsin\n👾 @anthonycampbell2148\n👾 @tobymiller7790\n👾 @rajibdassharma497\n👾 @CloudVirtualizationEnthusiast\n👾 @adilsoncarlosvianacarlos\n👾 @martinmacchia1564\n👾 @ulisesmoralez4160\n👾 @_Oscar_\n👾 @jedi-or-sith2728\n👾 @justinhual1290\n\n--\n\nLearn to code for free and get a developer job: https://www.freecodecamp.org\n\nRead hundreds of articles on programming: https://freecodecamp.org/news",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4m9j6hlbf4g",
        "title": "IT Fundamentals Course – Hardware, Cloud, DevOps, Networking, Security, Databases, DNS, Git, Linux",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 46931,
        "views": 151554,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This course provides a solid foundation to start building your technical skills and understanding of modern IT concepts.\n\nMore courses from Eissa Abousherif:\nhttps://www.udemy.com/user/dolfined/\n\n❤️ Support for this channel comes from our friends at Scrimba – the coding platform that's reinvented interactive learning: https://scrimba.com/freecodecamp\n\nContents\n00:00 IT Basics & Certifications (A+, Net+, CCNA)\n05:04 IT Roles: DevOps, SRE, & Platform Engineering\n07:58 Hardware: CPU, RAM, SSD, & NICs\n17:13 Software: OS, GUI vs. CLI, & Application Types\n24:21 Windows vs. Linux & Open Source\n32:00 Servers: Virtualization, Hypervisors, & Type 1 vs. 2\n50:31 AWS Account Setup & EC2 VM Launch\n1:07:37 Cloud: Data Centers, CapEx vs. OpEx, & Benefits\n1:27:03 Service Models (IaaS, PaaS, SaaS) & Cloud Deployment\n1:36:56 Choosing Providers: AWS, Azure, & GCP\n1:41:05 Networking: LAN, WAN, CAN, & Traffic Flows\n1:52:45 Devices: Hubs, Switches, VLANs, & Routers\n2:05:40 Cabling (UTP vs. Fiber) & Data Center Networks (DCN)\n2:17:01 Wireless (WLAN) & How the Internet Connects\n2:24:05 IP Addressing: IPv4 vs. IPv6 & Binary Math\n3:14:05 Network Portions, Subnet Masks, & CIDR Notation\n3:41:53 IP Classes & Subnetting (Pizza Analogy)\n4:10:18 Public vs. Private IPs, NAT, & IANA Hierarchy\n4:49:05 Routing: Route Tables, BGP, & Default Routes\n5:16:11 IP Packet Anatomy: Headers vs. Payload\n5:21:30 VPC: AWS Regions, AZs, & Virtual Data Centers\n5:37:16 Lab: Creating a Custom VPC & Internet Gateway\n6:11:22 Public vs. Private Subnets & NAT Configuration\n6:40:41 Models: OSI 7-Layer Reference & Encapsulation\n6:54:16 TCP vs. UDP & Common Port Allocations\n7:11:13 Protocols: ICMP (Ping), SSH, & HTTP/HTTPS\n7:44:00 Security: Firewalls, Zoning, & DMZ Architectures\n8:00:23 Security Groups (Stateful) vs. NACLs (Stateless)\n8:14:13 Services: DNS, Monitoring, Alerting, & Logging\n8:33:01 Databases: Relational, NoSQL, & SQL Queries\n8:47:11 Tools: Linux Skills, Bash Scripting, & Python\n9:07:42 Design: Professional Architecture Diagram Masterclass\n13:00:50 Course Summary & Next Steps",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XKOR4h3CrwE",
        "title": "Gemini CLI Essentials – Full Course",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 13780,
        "views": 37239,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to use the Gemini CLI for agentic coding.\n\nCreated by ‪@ExamProChannel‬ \n\nCourse info: https://www.exampro.co/exp-gemini-cli-01\n\n❤️ Support for this channel comes from our friends at Scrimba – the coding platform that's reinvented interactive learning: https://scrimba.com/freecodecampGemini Fundamentals\n\n⭐️ Contents ⭐️\n00:01:09  Introduction\n00:07:56  Gemini CLI\n00:10:04  Gemini Models\n00:11:17  Gemini Models Follow Along\n00:13:36  Gemini API Key\n00:17:03  Context Window Size\n\nSetup and Authentication\n00:18:47  Install and Auth Gemini CLI\n00:20:24  Gemini CLI Install\n00:34:39  API Key Follow Along\n\nContext, Sessions, and Execution\n00:41:16  Memory Management\n00:42:25  GEMINI Markdown File\n00:43:58  Gemini Markdown File and Memory Part 1\n00:50:29  Gemini Markdown File and Memory Part 2\n01:07:20  Compress and Clear Follow Along\n01:18:55  Chat Management and Rewind Command\n01:20:33  Chat Management Commands Follow Along\n01:29:39  Rewind Command Follow Along\n01:34:41  Plan Mode Follow Along\n01:38:39  Settings File\n01:39:46  Settings File Follow Along\n01:44:30  Policy Files\n01:46:01  Policy Follow Along\n02:03:34  System Prompt Overrides\n02:04:34  System Prompt Override Follow Along\n02:10:16  Gemini Ignore Files\n02:11:14  Gemini Ignore Follow Along\n02:14:08  Permissions and Trusted Folders\n02:15:15  Permissions and Trusted Folders Follow Along\n02:19:30  Sandboxes\n02:21:03  Sandbox Mode Follow Along\n02:27:57  Yolo Command\n02:28:39  Headless Mode\n02:29:08  Headless Mode Follow Along\n\nIntegration, Skills, and Automation\n02:31:58  Extensions Marketplace\n02:32:36  Extensions Marketplace and Using a Skill\n02:41:00  Agent Skills\n02:43:18  Agent Skills Follow Along\n02:49:50  MCP Follow Along\n03:02:02  Google GenAI SDK Follow Along\n03:11:33  ADK Follow Along\n03:24:47  Custom Subagent\n03:36:22  GitHub Actions Follow Along\n\nUI & Misc\n03:47:02  Themes\n03:47:21  Themes Follow Along\n03:48:00  Footer\n03:48:58  Footer Follow Along",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tLsoelNl3To",
        "title": "Sliding Window Algorithm for Tech Interviews - Full Course",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 6407,
        "views": 26758,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn the Sliding Window algorithm for tech interview prep. \n\n✏️ This course was developed by Alvin Zablan, check out his channel:    / alvintheprogrammer  \n\n🔗 Learn more algorithms in Alvin’s complete beginner-friendly DSA course: https://structy.net\n\n❤️ Try interactive Algorithms courses we love, right in your browser: https://scrimba.com/freeCodeCamp-Algo... (Made possible by a grant from our friends at Scrimba)\n\n📖 Course Contents 📖\n0:00:00 Intro\n0:01:46 Max Subarray Sum Size K (https://learn.structy.net/klv)\n0:26:16 Max Subarray Product Size K (https://learn.structy.net/o6f)\n0:38:04 Subarray Target Sum Size K (https://learn.structy.net/f6n)\n0:44:53 Has Substring Anagram (https://learn.structy.net/1jh)\n0:55:44 Count Substring Anagrams (https://learn.structy.net/d0r)\n1:08:46 Find Subarray Sum (https://learn.structy.net/hpe)\n1:21:42 Longest Subarray Sum (https://learn.structy.net/vx4)\n1:35:52 Longest Unique Substring (https://learn.structy.net/vcg)\n\n🎉 Thanks to our Champion and Sponsor supporters:\n👾 @omerhattapoglu1158\n👾 @goddardtan\n👾 @akihayashi6629\n👾 @kikilogsin\n👾 @anthonycampbell2148\n👾 @tobymiller7790\n👾 @rajibdassharma497\n👾 @CloudVirtualizationEnthusiast\n👾 @adilsoncarlosvianacarlos\n👾 @martinmacchia1564\n👾 @ulisesmoralez4160\n👾 @_Oscar_\n👾 @jedi-or-sith2728\n👾 @justinhual1290\n\n--\n\nLearn to code for free and get a developer job: https://www.freecodecamp.org\n\nRead hundreds of articles on programming: https://freecodecamp.org/news",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ozWrlHQGuvI",
        "title": "3D Web Development with Blender and Three.js – Create a Cozy Café Portfolio",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 19468,
        "views": 42362,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Take your creative web development to the next level by building an interactive 3D cozy cafe portfolio from scratch using Blender and Three.js. This course covers professional workflows, covering everything from subdivision modeling and texture painting to implementing a robust singleton architecture in your code.\n\nLive link: https://alpha-chads-cozy-cafes.vercel...\nCode, credits, Blender file etc.: https://github.com/andrewwoan/alpha-c...\n\nCourse created by ‪@andrewwoan‬ \nIf you got any questions feel free to reach out anytime:   / discord  \n\nChapters:\n0:00:00 Introduction\n0:01:37 Github Repo, Credits, Blender Source Files etc.\n0:01:43 Prerequisites\n0:02:34 Intro to subdivision (SubD) modeling\n0:03:19 (Optional) Analyzing online 3D models for modeling patterns\n0:04:59 (Optional) Introduction to emotional design and Idea generation\n0:09:55 Modeling café\n0:29:12 Modeling floor sign\n0:30:45 Modeling stools\n0:38:00 Adding details and frames to café\n0:41:37 Modeling pots\n0:45:35 Adding initial materials, lighting and modeling more details\n0:48:46 Modeling plants and flowers\n0:54:55 Modeling shelf\n0:56:49 Modeling food rack\n0:58:53 Modeling food shield\n1:02:16 Modeling donut with sprinkles\n1:04:14 Modeling cake with strawberries\n1:05:47 Modeling loaf of bread and bread slice\n1:08:37 Modeling cake slice\n1:09:31 Modeling bagel from donut\n1:10:32 Modeling baguette\n1:12:27 Modeling round bun\n1:13:18 Intro to texture painting and UV unwrapping\n1:21:10 Adding outline with inverted hull method\n1:23:32 Using AI (Claude) to generate python scripts/add-ons to add outlines\n1:24:55 Changing background color without impacting lighting\n1:25:43 Modeling mug\n1:27:03 Solidify outline tip\n1:29:05 Modeling and texture painting capybara\n1:40:58 (Optional) MAKE IT PLAYFUL - idea generation\n1:42:00 Epic pivot point trick\n1:43:20 Details detail details\n1:44:35 Outline issue and fix - delete extra faces\n1:44:45 (Optional) Fast run through of basic models\n1:45:27 Adding thickness to café \n1:48:26 Fixing random color on donut's sprinkles\n1:50:42 (Optional) Creating a second scene\n1:52:01 B-key - snapping tip for modeling\n1:52:49 Holding ALT to change more than one modifier at a time\n1:52:59 Modeling glasses\n1:57:20 Snapping tips\n1:57:56 Bevel and solidify modifier issue resolved by switching to a different mode\n1:58:19 Modeling stylized character\n2:01:56 (Optional) Unwrapping stylized character properly\n2:05:45 Prepare image assets\n2:08:04 (Optional) Introduction to Diffuse/Emission baking NOT combined/light baking\n2:23:06 Creating a path\n2:25:26 (Optional) Talking about infinite looping plan I did not end up doing\n2:27:15 Prepare for export, delete faces, join objects, fix origin points, fix normals, etc.\n2:29:55 Fixing path issue\n2:32:08 Exporting\n2:33:24 Compression and optimization\n2:37:29 (Optional) Node.js and Vite.js overview\n2:38:44 Starting coding\n2:39:17 Code architecture and singleton design pattern\n2:42:13 Implementing singleton design pattern\n3:00:32 Async/Await WebGPU renderer (fix: remove the extra renderer call of this.init())\n3:02:35 Continuing singleton design pattern\n3:04:57 Loading models\n3:16:55 Fixing EXR issue\n3:17:15 Default camera location\n3:18:32 (Optional) Creating more scene decorations\n3:22:38 Fixing shadow camera issues\n3:24:07 Making two separate environments\n3:25:12 Set up lil-gui controls with AI\n3:26:58 Set up empties in Blender and lights with AI\n3:28:39 (Optional) AI Blender script to convert everything to emission\n3:29:09 (Optional) AI Blender script to remove all outlines\n3:30:08 Adding SVG icons and logos\n3:31:40 Overview of new models I added \n3:32:35 Adding scroll and swipe controls\n4:08:57 Renaming objects in Blender for trail animation and raycaster\n4:10:24 Animated trails based on progress value\n4:24:03 Raycaster and click/touch events\n4:54:36 Working with mobile/touch devices\n4:59:39 Creating preloader/loading screen\n5:06:14 (Optional) Deploying with Git/GitHub/Vercel\n5:08:00 Raycaster bug fix\n5:09:01 A look at refactoring and code smells\n5:10:31 Day and night toggle and TSL shaders for lights\n5:15:35 Advice on Blender and three.js animations\n5:16:55 Howler.js for audio\n5:17:07 Transfonter to convert fonts to woff/woff2\n5:17:40 RealFaviconGenerator for favicons\n5:18:14 Scene switching slider with scissoring OR TSL and render targets\n5:20:01 Loading image textures update\n5:20:53 Coding review and tips\n5:22:25 Next steps and resources for your creative journey!!!\n5:24:17 (Optional) Take care!!\n\nCorrection:\n2:59:43 Remove the extra init in the constructor of Renderer.js\n\n❤️ Support for this channel comes from our friends at Scrimba – the coding platform that's reinvented interactive learning: https://scrimba.com/freecodecamp",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-leIp449qXA",
        "title": "Automate Your Life in 4 hours – Agent and Automation Zapier Course",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 14457,
        "views": 50847,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Create a free Zapier account and follow along: https://bit.ly/4tJ2WCh\n\nThis course will teach you how to automate repetitive tasks using Zapier for automation and agentic AI capabilities. This comprehensive course covers everything from basic triggers and actions to advanced AI agents and Model Context Protocol (MCP) servers.\n\nCourse developed by ‪@codingwithestefania‬ \n\n⭐️ Contents ⭐️\n0:00:00 Introduction\n0:03:48 Welcome to the world of automation\n0:05:49 Creating your Zapier account\n0:06:56 Basic concepts\n0:13:03 First steps + Quick tour \n0:18:07 Zaps: UI and trigger\n0:32:46 Setting up the action\n0:50:33 Built-in tools\n1:03:54 Managing folders\n1:09:07 Creating Zaps with Copilot\n1:29:22 Zapier Tables\n2:02:23 More field options\n2:09:42 Zapier Forms\n2:20:49 AI Agents\n2:41:42 Zapier Canvas\n2:56:14 Chatbots\n3:18:04 Zapier MCP: Google Calendar & Visual Studio Code\n3:29:24 Zapier MCP: GitHub & Visual Studio Code\n3:42:47 Zapier MCP: GitHub & Gemini CLI\n3:50:53 More built-in tools\n3:54:11 Zap history\n3:59:26 Final thoughts\n\n🏗️ Thanks to Zapier for providing a grant to make this course possible.\n\n🎉 Thanks to our Champion and Sponsor supporters:\n👾 @omerhattapoglu1158\n👾 @goddardtan\n👾 @akihayashi6629\n👾 @kikilogsin\n👾 @anthonycampbell2148\n👾 @tobymiller7790\n👾 @rajibdassharma497\n👾 @CloudVirtualizationEnthusiast\n👾 @adilsoncarlosvianacarlos\n👾 @martinmacchia1564\n👾 @ulisesmoralez4160\n👾 @_Oscar_\n👾 @jedi-or-sith2728\n👾 @justinhual1290\n\n--\n\nLearn to code for free and get a developer job: https://www.freecodecamp.org\n\nRead hundreds of articles on programming: https://freecodecamp.org/news",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pxMUG3gcoik",
        "title": "How to friction-max your learning with software engineer Jessica Rose [Podcast #216]",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 3169,
        "views": 14335,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today Quincy Larson interviews Jessica Rose. She's a dev and teacher who's worked on open data projects at Mozilla and lots of open source projects.\n\nWe talk about:\n- How the whole world is...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "C842vFY5kRo",
        "title": "System Design Course – APIs, Databases, Caching, CDNs, Load Balancing & Production Infra",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 7522,
        "views": 272518,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Level up your system design skills! This course progresses from foundational concepts to production-ready systems, covering databases, scaling, and load balancing. Learn practical techniques...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "u-Jl7bzab8A",
        "title": "Codex Essentials – AI Assisted Agentic Development Course",
        "publishedAt": "4 weeks ago",
        "durationSeconds": 16497,
        "views": 38043,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to use Codex to accelerate real-world coding workflows and developer productivity.\n\nCreated by @ExamProChannel \n\nCourse info: https://www.exampro.co/exp-codex-01\n\n❤️ Support for...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Tb6oaEkxtp8",
        "title": "How to learn programming and CS in the AI hype era – interview with prof Mark Mahoney [Podcast #215]",
        "publishedAt": "1 month ago",
        "durationSeconds": 4566,
        "views": 29317,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today Quincy Larson interviews Mark Mahoney. He worked as a dev before becoming a computer science professor. He's taught computer science for 23 years at Carthage College, a 180-year-old US...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SqQUQHdYWyc",
        "title": "CUDA Programming for NVIDIA H100s – Comprehensive Course",
        "publishedAt": "1 month ago",
        "durationSeconds": 88705,
        "views": 66483,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn CUDA programming for NVIDIA Hopper GPUs. You will learn to build efficient WGMMA pipelines and leverage Cutlass optimizations to perform the massive matrix multiplications that power...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "k-yDYgc8AmU",
        "title": "Learn Drone Programming with Python – Tutorial",
        "publishedAt": "1 month ago",
        "durationSeconds": 6461,
        "views": 136064,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn drone programming using Python and the high-fidelity Pyimverse simulator. The course is designed to take you from the fundamentals of 3D movement to deploying advanced computer vision...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ajIss2t5FxM",
        "title": "Lessons from 15,031 hours of coding live on Twitch with Chris Griffing [Podcast #214]",
        "publishedAt": "1 month ago",
        "durationSeconds": 4725,
        "views": 14339,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today Quincy Larson interviews Chris Griffing is a software engineer and prolific streamer of live coding on Twitch. He spent 10 years as a \"snowboard bum\" doing odd jobs at ski resorts to...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wYx9Q6dcJCw",
        "title": "SaaS Marketing for Developers – Automate Sales Tasks with AI",
        "publishedAt": "1 month ago",
        "durationSeconds": 2377,
        "views": 38460,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If you're a software engineer or SaaS founder who loves writing code but dreads the marketing and sales grind, this video is for you. Simon Severino, the CEO of Strategy Sprints, will show...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wlpBCazAY9Q",
        "title": "AI-Assisted Coding Tutorial – OpenClaw, GitHub Copilot, Claude Code, CodeRabbit, Gemini CLI",
        "publishedAt": "1 month ago",
        "durationSeconds": 5126,
        "views": 160973,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to use AI tools to become more productive as a developer.\n\nYou will master AI pair programming and agentic terminal workflows using top-tier tools like GitHub Copilot, Anthropic's...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tZef2ZzbyuQ",
        "title": "What happens when the model CAN'T fix it? Interview w/ software engineer Landon Gray [Podcast #213]",
        "publishedAt": "1 month ago",
        "durationSeconds": 5561,
        "views": 10967,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today Quincy Larson interviews Landon Gray. He's a software engineer who worked at agencies for years. Then he taught himself AI assisted software development. And now he's helping other devs...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tchN4xa4pfg",
        "title": "AI Foundations for Absolute Beginners",
        "publishedAt": "1 month ago",
        "durationSeconds": 3156,
        "views": 69895,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn the basics of artificial intelligence. This course is for absolute beginners. \n\nThis course was created by learnaianywhere.org and released to support the goals of National AI Literacy...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "R8h_gpSpEVU",
        "title": "Deploying AI Models with Hugging Face – Hands-On Course",
        "publishedAt": "1 month ago",
        "durationSeconds": 24794,
        "views": 43844,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This tutorial is a comprehensive, end-to-end guide to the Hugging Face ecosystem, showing how modern AI moves from research ideas to real, deployed systems.\n\nRather than focusing on a single...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "brLhhkUqcn4",
        "title": "Claude Code Essentials",
        "publishedAt": "1 month ago",
        "durationSeconds": 44410,
        "views": 371596,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to use Claude Code to build real-world agentic coding workflows.\n\nCourse developed by @ExamProChannel \n\nAdditional resources: https://www.exampro.co/exp-claudecode-01\n\n❤️ Try...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uJrh9GHrC38",
        "title": "The world still needs people who care - CodePen founder Chris Coyier interview [Podcast #212]",
        "publishedAt": "1 month ago",
        "durationSeconds": 4725,
        "views": 16150,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today Quincy Larson interviews Chris Coyier. He's a front-end developer and co-founder of CodePen and the CSS Tricks blog. He has also recorded more than 700 podcasts about software engineering....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jydYq7oAtD8",
        "title": "Software Testing Course – Playwright, E2E, and AI Agents",
        "publishedAt": "1 month ago",
        "durationSeconds": 3811,
        "views": 71909,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn the essentials of software testing, from fundamental concepts like the testing pyramid to hands-on automation using Playwright. You will explore real-world case studies of software failures...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "BiA08jfr4RU",
        "title": "19 Web Dev Projects – HTML, CSS, JavaScript Tutorial",
        "publishedAt": "1 month ago",
        "durationSeconds": 43219,
        "views": 109595,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Improve your web development skills by building 19 different projects. In this course, you will use HTML, CSS, and JavaScript to make all sorts of web sites.\n\nCourse created by @codesistency...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WTw6NZDZ5mQ",
        "title": "Build an E-Commerce Web App with Paystack, NextJS, Supabase",
        "publishedAt": "1 month ago",
        "durationSeconds": 27059,
        "views": 32543,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to build a full-stack e-commerce application using the powerful combination of Next.js, Supabase, and Zustand. Paystack is a seamless payment gateway for businesses to accept online...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IRcL5as-RaE",
        "title": "How to Land Freelance Clients with Small Business Whisperer Luke Ciciliano [Podcast #211]",
        "publishedAt": "2 months ago",
        "durationSeconds": 6450,
        "views": 14707,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today Quincy Larson interviews Luke Ciciliano. He's a front-end developer who runs Modern Website Design, a software consultancy that builds solutions for small to medium sized businesses....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uHNOqKdqQas",
        "title": "CI/CD in Production with Jenkins – Complete DevOps Course",
        "publishedAt": "2 months ago",
        "durationSeconds": 63249,
        "views": 67238,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Welcome to this comprehensive CI/CD course designed to take you from foundational concepts to production-grade implementations. Using Jenkins as the automation server, you will work through...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CcrC5zSv1iA",
        "title": "LLM Fine-Tuning Course – From Supervised FT to RLHF, LoRA, and Multimodal",
        "publishedAt": "2 months ago",
        "durationSeconds": 42986,
        "views": 64000,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to tailor massive models to specific tasks with this comprehensive, deep dive into the modern LLM ecosystem. You will progress from the core foundations of supervised fine-tuning...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 27,
      "uploadsLast90d": 30,
      "uploadCadenceWeekly": 2.33,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 38460,
      "viewsPerVideoP90Last90d": 151554,
      "viewVelocityTrend": "rising"
    },
    "performanceBaseline": {
      "p50Views": 38460,
      "p90Views": 151554,
      "p99Views": 272518,
      "outperformingVideosLast90d": 4
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "bit.ly"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "web-services",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:web development"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "donate.freecodecamp.org",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "course",
        "share": 0.67,
        "evidenceVideoIds": [
          "gh2_PhgZGsM",
          "HNVaYYxmwLU",
          "jzOy07fw2vY",
          "GmtOxMl39Tc",
          "4m9j6hlbf4g"
        ]
      },
      {
        "label": "https",
        "share": 0.4,
        "evidenceVideoIds": [
          "gh2_PhgZGsM",
          "HNVaYYxmwLU",
          "jzOy07fw2vY",
          "GmtOxMl39Tc",
          "wApaJjvNZFs"
        ]
      },
      {
        "label": "coding",
        "share": 0.4,
        "evidenceVideoIds": [
          "gh2_PhgZGsM",
          "HNVaYYxmwLU",
          "jzOy07fw2vY",
          "GmtOxMl39Tc",
          "wApaJjvNZFs"
        ]
      },
      {
        "label": "code",
        "share": 0.37,
        "evidenceVideoIds": [
          "gh2_PhgZGsM",
          "HNVaYYxmwLU",
          "jzOy07fw2vY",
          "GmtOxMl39Tc",
          "wApaJjvNZFs"
        ]
      },
      {
        "label": "web development",
        "share": 0.07,
        "evidenceVideoIds": [
          "ozWrlHQGuvI",
          "BiA08jfr4RU"
        ]
      },
      {
        "label": "productivity apps",
        "share": 0.03,
        "evidenceVideoIds": [
          "GmtOxMl39Tc"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Tuesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "content pillars match high-value sponsor categories, consistent upload cadence.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "strong",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 42,
      "reason": "growth rising last 90d x fits web-services",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.85
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.35
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "rising 90d view velocity + fits web-services. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "freeCodeCamp.org — 11.6M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 42,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.68,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "web-services",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "98a9fd56134c085739aec7b6bf49b3a3c00ad64351cc0c9e276011b5e7e6d2df",
      "inputsHash": "26abc14a64267f97a0cfb6e257709c54d6ca58c7c4f5ad0bbca6154eb4d57c23",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-rising",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:37.693Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "9351f4880371c00a67d3ae677917167b98b6e8217fdc11a9d5426377f38d8a52",
    "channelId": "UCpOIUW62tnJTtpWFABxWZ8g",
    "channelHandle": "@codecourse",
    "channelName": "Codecourse",
    "channelUrl": "https://www.youtube.com/@codecourse",
    "description": "We create the most practical screencasts for developers.",
    "joinDate": null,
    "location": null,
    "subscribers": 337000,
    "totalVideos": 1400,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_mvK5q638M9vaJmrOY6nBSOrZReBQikxM5de5Gc3ZoiGUI=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "codecourse.com",
        "url": "https://codecourse.com"
      },
      {
        "platform": "twitter",
        "url": "https://x.com/teamcodecourse"
      }
    ],
    "recentVideos": [
      {
        "videoId": "b7M3TJcJ3Ac",
        "title": "User Notifications Preferences Setup",
        "publishedAt": "5 days ago",
        "durationSeconds": 511,
        "views": 432,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4Szon2JsOJs",
        "title": "Scaffolding Chatrooms",
        "publishedAt": "12 days ago",
        "durationSeconds": 372,
        "views": 380,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fVXpW0IHV38",
        "title": "Tweaking Redirects",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 706,
        "views": 370,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "R9MCCdd5yZA",
        "title": "Handling a Failed Batch",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 295,
        "views": 317,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-zSTRTRCZxc",
        "title": "Generating a Token in Middleware",
        "publishedAt": "1 month ago",
        "durationSeconds": 308,
        "views": 584,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JYGOUMEW8UE",
        "title": "Client to Client Whispering",
        "publishedAt": "1 month ago",
        "durationSeconds": 485,
        "views": 804,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hthn2oT7lWE",
        "title": "Job Batching Progress with Laravel",
        "publishedAt": "1 month ago",
        "durationSeconds": 321,
        "views": 948,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "570_dWgBhZY",
        "title": "New in Inertia: Partial Reloads are now Async",
        "publishedAt": "1 month ago",
        "durationSeconds": 361,
        "views": 506,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TcVvBPSqEkM",
        "title": "Testing Mention Syncing",
        "publishedAt": "2 months ago",
        "durationSeconds": 524,
        "views": 525,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "For a more in depth lesson check out the full course here:\n\nhttps://codecourse.com/courses/larave...\n\nJoin the Conversations on:\n\nX:\nhttps://x.com/teamcodecourse \n\nBluesky:\nhttps://bsky.app/profile/codecourse.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "obsE39Tw-SQ",
        "title": "Caching Authenticated Users in Laravel",
        "publishedAt": "2 months ago",
        "durationSeconds": 756,
        "views": 947,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "MsF6J5z74Gs",
        "title": "New in Laravel: HasOneThrough gets ofMany support",
        "publishedAt": "1 year ago",
        "durationSeconds": 377,
        "views": 1647,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6nW_dhiXZJQ",
        "title": "New in Laravel: ddBody test method",
        "publishedAt": "1 year ago",
        "durationSeconds": 437,
        "views": 855,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "L8MetrwAxdE",
        "title": "Quick and Easy Livewire Modals",
        "publishedAt": "1 year ago",
        "durationSeconds": 817,
        "views": 4185,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4Lv_3iJ7-y4",
        "title": "Add These to Every New Laravel Project",
        "publishedAt": "1 year ago",
        "durationSeconds": 1286,
        "views": 10895,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gK2XdDc4WjA",
        "title": "How to Update the Laravel Installer",
        "publishedAt": "1 year ago",
        "durationSeconds": 202,
        "views": 1892,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "T3yzkD4uVsQ",
        "title": "New in Laravel: Asserting only specific validation errors",
        "publishedAt": "1 year ago",
        "durationSeconds": 193,
        "views": 721,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "H-EC0vbie1c",
        "title": "How to Install Breeze on Laravel 12",
        "publishedAt": "1 year ago",
        "durationSeconds": 148,
        "views": 6617,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YFKp4npC1hU",
        "title": "New in Laravel: The withAttributes relationship method",
        "publishedAt": "1 year ago",
        "durationSeconds": 261,
        "views": 1281,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5dAx8909zSw",
        "title": "New in Laravel: Eloquent Relative Date Helpers",
        "publishedAt": "1 year ago",
        "durationSeconds": 414,
        "views": 845,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "d7FGqwV4oSA",
        "title": "New in Laravel: Preventing destructive rollback command",
        "publishedAt": "1 year ago",
        "durationSeconds": 190,
        "views": 617,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "k2T7h9_dMxE",
        "title": "New in Laravel: Eloquent incrementOrCreate",
        "publishedAt": "1 year ago",
        "durationSeconds": 448,
        "views": 661,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "BvGz9anu_Zc",
        "title": "New in Laravel: Pipelines Receive a finally() Method",
        "publishedAt": "1 year ago",
        "durationSeconds": 267,
        "views": 851,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xdN0Cfy0Ck0",
        "title": "New in Laravel: Fluent Email Validation Rule",
        "publishedAt": "1 year ago",
        "durationSeconds": 205,
        "views": 908,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ycWmTQK2EBY",
        "title": "Caching Authenticated Users in Laravel",
        "publishedAt": "1 year ago",
        "durationSeconds": 756,
        "views": 3002,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RT__kV2nw7g",
        "title": "Using HasManyThrough with a Pivot Table in Laravel",
        "publishedAt": "1 year ago",
        "durationSeconds": 325,
        "views": 1291,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse\n\nHow do we set up a HasManyThrough relationship...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "v0LDir01ajw",
        "title": "New in Laravel: URI Parsing and Mutation",
        "publishedAt": "1 year ago",
        "durationSeconds": 802,
        "views": 936,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pWmV3RdCKJE",
        "title": "New in Laravel: Accessing request data fluently",
        "publishedAt": "1 year ago",
        "durationSeconds": 454,
        "views": 2613,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LkeXBKRhLIA",
        "title": "New in Laravel: Spelling ordinals as words",
        "publishedAt": "1 year ago",
        "durationSeconds": 211,
        "views": 586,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nORv5WQYnnI",
        "title": "New in Laravel: Conditional trait added to routes",
        "publishedAt": "1 year ago",
        "durationSeconds": 395,
        "views": 751,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1VfjPgM8M8Y",
        "title": "New in Inertia: Partial Reloads are now Async",
        "publishedAt": "1 year ago",
        "durationSeconds": 361,
        "views": 1433,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Want more? Explore the library at https://codecourse.com\n\nOfficial site\nhttps://www.codecourse.com\n\nTwitter\nhttps://twitter.com/teamcodecourse",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 8,
      "uploadsLast90d": 10,
      "uploadCadenceWeekly": 0.78,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 506,
      "viewsPerVideoP90Last90d": 947,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 506,
      "p90Views": 947,
      "p99Views": 947,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "codecourse.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 1,
        "evidenceVideoIds": [
          "b7M3TJcJ3Ac",
          "4Szon2JsOJs",
          "fVXpW0IHV38",
          "R9MCCdd5yZA",
          "-zSTRTRCZxc"
        ]
      },
      {
        "label": "codecourse",
        "share": 1,
        "evidenceVideoIds": [
          "b7M3TJcJ3Ac",
          "4Szon2JsOJs",
          "fVXpW0IHV38",
          "R9MCCdd5yZA",
          "-zSTRTRCZxc"
        ]
      },
      {
        "label": "com",
        "share": 1,
        "evidenceVideoIds": [
          "b7M3TJcJ3Ac",
          "4Szon2JsOJs",
          "fVXpW0IHV38",
          "R9MCCdd5yZA",
          "-zSTRTRCZxc"
        ]
      },
      {
        "label": "teamcodecourse",
        "share": 1,
        "evidenceVideoIds": [
          "b7M3TJcJ3Ac",
          "4Szon2JsOJs",
          "fVXpW0IHV38",
          "R9MCCdd5yZA",
          "-zSTRTRCZxc"
        ]
      },
      {
        "label": "want",
        "share": 0.97,
        "evidenceVideoIds": [
          "b7M3TJcJ3Ac",
          "4Szon2JsOJs",
          "fVXpW0IHV38",
          "R9MCCdd5yZA",
          "-zSTRTRCZxc"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 29,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Codecourse — 0.3M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 29,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.81,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "9351f4880371c00a67d3ae677917167b98b6e8217fdc11a9d5426377f38d8a52",
      "inputsHash": "12f4f4f4c9194c70e5ea43e663e200708ec5ce2acee826b684983c1ed5815d9b",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:39.553Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "skipped",
    "eventId": "dfc483db0f29fe7585a4557d9122bfcaf76441ae1c822fc822959555e767e0a4",
    "channelHandle": "@leveluptuts5438",
    "channelId": "UCV2W8dN6Y2-Rarx7vrDe-TA",
    "subscribers": 45,
    "skipReason": {
      "source": "quality-gate",
      "rules": [
        "minSubscribers<50000"
      ],
      "message": "Channel filtered out by quality gate: minSubscribers<50000. No PPE event charged."
    },
    "summary": "Skipped @leveluptuts5438 — failed gate: minSubscribers<50000.",
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:39.804Z"
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "f30b8ad2c8a432e6c7c20465d001f6de84e235dcd8733300eda3844e27039752",
    "channelId": "UCTZRcDjjkVajGL6wd76UnGg",
    "channelHandle": "@DennisIvy",
    "channelName": "Dennis Ivy",
    "channelUrl": "https://www.youtube.com/@DennisIvy",
    "description": "Sharing what I know about Full Stack Web development with the primary focus being Python, Django & Javascript at the time. I will be creating Project based tutorials for these Languages/Frameworks/Libraries along with sharing my personal experience.",
    "joinDate": null,
    "location": null,
    "subscribers": 224000,
    "totalVideos": 185,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_lG_SmL2Lu2Y6RK47pciKeQ_h3KbNANRuicbm-imxKYl5c=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "twitter",
        "url": "https://twitter.com/dennisivy11"
      },
      {
        "platform": "dennisivy.com",
        "url": "http://www.dennisivy.com/"
      }
    ],
    "recentVideos": [
      {
        "videoId": "x6U5jG1WpU0",
        "title": "Russian hackers targeted my Django website",
        "publishedAt": "1 year ago",
        "durationSeconds": 893,
        "views": 26846,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How Russian hackers nearly got my Django-based business.\n\nFind me on: \n- Linkedin: https://www.linkedin.com/in/dennis-ivanov/\n- X/Twitter: https://twitter.com/dennisivy11\n\nReddit thread: https://ww...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zEmMRDFjSuQ",
        "title": "Why is it hard to hire Django developers?",
        "publishedAt": "1 year ago",
        "durationSeconds": 992,
        "views": 54395,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "There are plenty of \"Django developers\", so why is it so hard to find them for hire? Here's my take.\n\nFind me on: \nLinkedin:   / dennis-ivanov  \nX/Twitter:   / dennisivy11  \n\nReddit thread:   / why_is_it_so_hard_to_find_django_developers  \n4",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Q6R8WEsD5Rk",
        "title": "HTMX saved template engines",
        "publishedAt": "1 year ago",
        "durationSeconds": 951,
        "views": 10947,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Article: https://dennisivy.com/htmx-and-template-engines\n\nFind me on: \n- Linkedin: https://www.linkedin.com/in/dennis-ivanov/\n- X/Twitter: https://twitter.com/dennisivy11",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ynmyyzjkFsQ",
        "title": "Django developers love HTMX",
        "publishedAt": "1 year ago",
        "durationSeconds": 775,
        "views": 17502,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This is why Django developers love using HTMX.\n\nFind me on: \n- Linkedin: https://www.linkedin.com/in/dennis-ivanov/\n- X/Twitter: https://twitter.com/dennisivy11\n\nReddit thread: https://www.reddit.c...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "D_SShzOoQ5s",
        "title": "I tried HTMX, again...",
        "publishedAt": "1 year ago",
        "durationSeconds": 541,
        "views": 32338,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "What is HTMX? Well, in this video I do a deep dive into my experience with HTMX and give my thoughts.\n\nFind me on: \n- Linkedin: https://www.linkedin.com/in/dennis-ivanov/\n- X/Twitter: https://twitt...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "n-a0BLhi0rs",
        "title": "Django 5.0 Just Made Forms Even Better",
        "publishedAt": "1 year ago",
        "durationSeconds": 204,
        "views": 29488,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Django 5.0 Introduces a new way to render form elements, let’s take a look. \n\nCheck out my Python Django course: https://dub.sh/Django5\n\nSource: https://docs.djangoproject.com/en/5.0...\n\nFind me on Twitter:   / dennisivy11  \n\nFind me on LinkedIn:   / dennis-ivanov",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ORog5kwPd_E",
        "title": "Watch This Before Using Django With MongoDB",
        "publishedAt": "3 years ago",
        "durationSeconds": 558,
        "views": 50575,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Using Django with MongoDB is not like connecting to any other relational database, you must proceed with caution. \n\nCheck out my Python Django course: https://dub.sh/74cUn7B\n\nRead full article here:   / read-this-before-using-mongodb-with-django  \n\nFollow me on twitter:   / dennisivy11",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-3BN-JMLE0A",
        "title": "Easily Convert Django Function Based Views To Class Based Views",
        "publishedAt": "3 years ago",
        "durationSeconds": 718,
        "views": 34456,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A quick tutorial on converting function based views to class based views with Django.\n\nCheck out my Python Django course: https://dub.sh/fveSpaB\n\nFull Article: https://dev.to/dennisivy11/easily-con...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zumDjHWM5Qc",
        "title": "6 Django Template Tag's You Should Use",
        "publishedAt": "3 years ago",
        "durationSeconds": 383,
        "views": 14296,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Reviewing 6 template tag's that you should try if using the Django template engine.\n\nCheck out my Python Django course: https://dub.sh/oDdII8W\n\nFull Article: https://dev.to/vijaysoni007/my-favori...\n\nFollow me on twitter:",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "HEV1PWycOuQ",
        "title": "Easiest Way To Connect Django To A Postgres Database",
        "publishedAt": "3 years ago",
        "durationSeconds": 448,
        "views": 127668,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ridiculously fast deployment and connection to a Postgres database using ‪@railwayapp‬.\n\nCheck out my Python Django course: https://dub.sh/JNH6EeA\n\nArticle that goes with video: https://dev.to/dennisivy11/easiest-dj...\n\nFollow me on twitter:\n\nTimestamps:\n\n00:00 - Introduction\n1:30 - Setup Django app\n3:10 - Modify DATABASES connection\n3:35 - Create Postgres DB on Railway\n6:35 - Create django super user",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mkQSMCqW-Xo",
        "title": "Django Skills Roadmap To Getting A Job",
        "publishedAt": "3 years ago",
        "durationSeconds": 1051,
        "views": 76446,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Read the full article here: https://dennisivy.com/django-skills-roadmap\n\nCheck out my Python Django course: https://dub.sh/udcslP3\n\nFollow me on twitter: https://twitter.com/dennisivy11",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2k8NleFjG7I",
        "title": "The New Way To Create Protected Routes With React Router V6",
        "publishedAt": "3 years ago",
        "durationSeconds": 559,
        "views": 179126,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Updated version of how to create protected routes in react router v6.\n\nCheck out the article that goes with this: https://medium.com/@dennisivy/2c4bbaf7bc1c\n\nSource code: https://github.com/divanov...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8I2axE6j204",
        "title": "How Does WebRTC Work? | Crash Course",
        "publishedAt": "4 years ago",
        "durationSeconds": 4242,
        "views": 76488,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "WebRTC introduction and complete project based tutorial. Build a small peer to peer video chat application with signaling.\n\nCheck out the related blog post that goes with this video here: https://m...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "o59yj6TPaWs",
        "title": "CSS Flexbox Oversimplified",
        "publishedAt": "4 years ago",
        "durationSeconds": 295,
        "views": 9737,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Making sense of CSS flexbox in under 5 minutes.\n\nFollow me on twitter for more personalized content:\nhttps://twitter.com/dennisivy11",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cJveiktaOSQ",
        "title": "Django REST Framework Oversimplified",
        "publishedAt": "4 years ago",
        "durationSeconds": 583,
        "views": 449094,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "An oversimplified project and explanation while building and API with the Django REST Framework using Django 4.0.\n\nCheck out my Python Django course: https://dub.sh/YAh8UJf\n\nFollow me on twitter...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cw8-KFVXpTE",
        "title": "Django Channels & WebSockets Oversimplified",
        "publishedAt": "4 years ago",
        "durationSeconds": 995,
        "views": 177180,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "An over simplified real time chat application using Django channels and websockets.\n\nCheck out my Python Django course: https://dub.sh/tukI9mp\n\nSource code: https://github.com/divanov11/django-chan...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Oxnz8Us1QAQ",
        "title": "Django Video Chat Website With Controls",
        "publishedAt": "4 years ago",
        "durationSeconds": 9381,
        "views": 131839,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build a video calling website with Django and the Agora Video Web SDK. This project will include the following features: Group and peer to peer video calling, full controls such as muting your...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "FDDdAsUcJ-4",
        "title": "Django Oversimplified",
        "publishedAt": "4 years ago",
        "durationSeconds": 188,
        "views": 88608,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out my Python Django course: https://dub.sh/aVz4TfP",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "HX6AM_1-jNM",
        "title": "Build A Group Video Chat App In 15 Minutes",
        "publishedAt": "4 years ago",
        "durationSeconds": 1105,
        "views": 123106,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build a video calling website using plain HTML, CSS & JavaScript along with the Agora video SDK. Instead of using WebRTC we will use the agora SDK which adds a layer and an easy to use SDK...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "s2skans2dP4",
        "title": "React JS Explained In 10 Minutes",
        "publishedAt": "4 years ago",
        "durationSeconds": 600,
        "views": 777077,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A list of the core concepts every React developer should have a solid grasp on.\n\nReact Course: https://dennisivy.teachable.com/p/react-notes-app-crash-course\n\nDjango + React Ecommerce Website:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0sMtoedWaf0",
        "title": "Python Django Explained In 8 Minutes",
        "publishedAt": "4 years ago",
        "durationSeconds": 491,
        "views": 455467,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A list of the 15 most important concepts every Django developer should have a solid grasp on.\n\nDjango Courses:\nDjango Complete Course: https://dub.sh/jFQoWxT\n\nDjango + React Ecommerce Website:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ftP7zYdmt8o",
        "title": "Is Link Building Most Important In SEO?",
        "publishedAt": "4 years ago",
        "durationSeconds": 7707,
        "views": 2746,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Recorded conversation of our talk on twitter spaces 10/20/2021\n\nIf you want to catch the next twitter spaces meeting be sure to follow me on twitter: https://twitter.com/dennisivy11\n\nTime Stamps...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hbvnsse4xGI",
        "title": "Refreshing Tokens With Fetch | Custom Interceptor",
        "publishedAt": "4 years ago",
        "durationSeconds": 2391,
        "views": 20255,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Refresh JSON Web Tokens by building a custom wrapper around fetch calls in order to update tokens before OR after responses\n\nSource Code: https://github.com/divanov11/refresh-token-fetchwrapper...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DYNI6m_JNY4",
        "title": "Coolest  Three.js Portfolio Website!",
        "publishedAt": "4 years ago",
        "durationSeconds": 382,
        "views": 29784,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I just had to share this Three.JS (3js) website by Bruno Simon! Check out Bruno on twitter and give the website a test.\n\nWebsite: https://bruno-simon.com/\n\nTwitter: https://twitter.com/bruno_simon/",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "16-1mTdGBoM",
        "title": "Refreshing Tokens With Axios Interceptors",
        "publishedAt": "4 years ago",
        "durationSeconds": 2395,
        "views": 107521,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Implementing JWT access and refresh token authentication with Django & React using axios interceptor method. This video is a continuation of my last project that can be found here: https://youtu.be...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xjMP0hspNLE",
        "title": "Authentication & Refreshing Tokens Implementation",
        "publishedAt": "4 years ago",
        "durationSeconds": 7793,
        "views": 260174,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Implementing JWT access and refresh token authentication with Django & React using the timed interval method.\n\nCheck out my Python Django course: https://dub.sh/rlKmDgY\n\nSource Code: https://github...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LE68tbguGPc",
        "title": "When a Client Wont Tell You Their Budget",
        "publishedAt": "4 years ago",
        "durationSeconds": 327,
        "views": 7583,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "What do you do when  customer wont tell you their budget?\n\nFind the original twitter post here: https://twitter.com/natmiletic/status/1445380350545305604",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "yAbnoYfV99g",
        "title": "Why & When I Use React JS",
        "publishedAt": "4 years ago",
        "durationSeconds": 542,
        "views": 117945,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "React JS is not always my go to choice. In this video I explain why its a great tool for everyone to learn but also when I chose to avoid it.\n\nCheck out my React Crash course on Udemy: https://www....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kOBFiuJh5K8",
        "title": "Django 2021 Course Session #4 | Static Files & Theme Installation",
        "publishedAt": "4 years ago",
        "durationSeconds": 5563,
        "views": 22841,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Recording from the 4rth session of our Django course/Bootcamp students meeting.\n\nIf you want to be a part of these classes and course you can join by enrolling in the course on Udemy or my...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nBiNPlgKoBI",
        "title": "Django 2021 Course Session #3 | Models Forms & CRUD",
        "publishedAt": "4 years ago",
        "durationSeconds": 2713,
        "views": 19930,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Recording from the third session of our Django course/Bootcamp students meeting.\n\nIf you want to be a part of these classes and course you can join by enrolling in the course on Udemy or my...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "dennisivy.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.83,
        "evidenceVideoIds": [
          "x6U5jG1WpU0",
          "Q6R8WEsD5Rk",
          "ynmyyzjkFsQ",
          "D_SShzOoQ5s",
          "n-a0BLhi0rs"
        ]
      },
      {
        "label": "django",
        "share": 0.63,
        "evidenceVideoIds": [
          "x6U5jG1WpU0",
          "zEmMRDFjSuQ",
          "ynmyyzjkFsQ",
          "n-a0BLhi0rs",
          "ORog5kwPd_E"
        ]
      },
      {
        "label": "course",
        "share": 0.53,
        "evidenceVideoIds": [
          "n-a0BLhi0rs",
          "ORog5kwPd_E",
          "-3BN-JMLE0A",
          "zumDjHWM5Qc",
          "HEV1PWycOuQ"
        ]
      },
      {
        "label": "twitter",
        "share": 0.5,
        "evidenceVideoIds": [
          "x6U5jG1WpU0",
          "zEmMRDFjSuQ",
          "Q6R8WEsD5Rk",
          "ynmyyzjkFsQ",
          "D_SShzOoQ5s"
        ]
      },
      {
        "label": "com",
        "share": 0.47,
        "evidenceVideoIds": [
          "x6U5jG1WpU0",
          "Q6R8WEsD5Rk",
          "ynmyyzjkFsQ",
          "D_SShzOoQ5s",
          "n-a0BLhi0rs"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Sunday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "D",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 32,
      "reason": "tier D composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier D — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 30,
    "failureType": null,
    "summary": "Dennis Ivy — 0.2M subs, D-tier sponsorship readiness, low contactability, respond within 30 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 32,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.78,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mid-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mid"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mid-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "none"
    },
    "benchmarkRange": {
      "creatorTier": "mid",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "5-12%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mid-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "ignore",
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": {
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "gaps": [
        "tier:D",
        "contactability:low"
      ]
    },
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "f30b8ad2c8a432e6c7c20465d001f6de84e235dcd8733300eda3844e27039752",
      "inputsHash": "02cacb7eac45fab7e8d736f71f06454bd3a2cb6d10c6581c2dcba9a9bc0e4495",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:41.092Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "946ea04dcc1d2e6c8c141f797fcc1d9f36a5cdeb3def36480944c1de6c4364a9",
    "channelId": "UCVTlvUkGslCV_h-nSAId8Sw",
    "channelHandle": "@learncodeacademy",
    "channelName": "LearnCode.academy",
    "channelUrl": "https://www.youtube.com/@learncodeacademy",
    "description": "100% FREE Web Development tutorials, web site design tutorials and more.\n\nIncluding, but not limited to:\nHTML, CSS, JavaScript, CSS Layouts, Responsive Design, React.js, Node.js, Angular.js, Docker, Dev Ops, Server Administration, Deployment Strategies.",
    "joinDate": null,
    "location": null,
    "subscribers": 773000,
    "totalVideos": 168,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_kHwJ7t29TcNfW5Owu6qxxqDDzKWUSSO7mQTmiHFFZf8w=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "twitter",
        "url": "https://twitter.com/learncodeacad"
      }
    ],
    "recentVideos": [
      {
        "videoId": "oTVFno-IZVc",
        "title": "Build Wordle in 20min with React.js!",
        "publishedAt": "4 years ago",
        "durationSeconds": 1365,
        "views": 33697,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Using the right React.js stack makes a world of difference in web development! In this video, we'll use Next.js, React.js, Tailwind CSS, and MobX to build Wordle from start to finish in right around 20min. (ok, mildly deceptive, 20min edited...it took me an hour to build it)\n\nView the source code here: https://github.com/learncodeacademy/w...\n\nNext.js allows us to build a web app immediately with no bootstrapping.\nTailwind CSS allows us to add styles to our page with no configuration and quick, modular results.\nMobX gives us a simple way to define our data in a store fashion and keep it separate from our view layer.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "p8Za5MtyVdg",
        "title": "How to code in 30min - FOR ABSOLUTE BEGINNERS",
        "publishedAt": "4 years ago",
        "durationSeconds": 1623,
        "views": 65415,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn coding fundamentals in mere minutes! This video will teach you about the three main components that nearly all computer programming shares: variables, flow control (a.k.a. control flow), and functions.  And we'll do it in Javascript - the world's most popular programming language.\n\nThis Javascript tutorial will combine es6 variables, flow control statements, and functions to teach any beginner how to code and how to program with a computer language.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TwanFw93TUQ",
        "title": "How to code in 2022 - From zero to career-level",
        "publishedAt": "4 years ago",
        "durationSeconds": 1366,
        "views": 50002,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Wanna code - and get paid for it? Here's the roadmap! This video gives you the complete checklist of everything you need to know to go from absolute beginner to hired-professional in Web Development. Web Development is about learning html, css, & javascript and building web applications with those technologies.\n\nView the checklist here https://www.learncode.academy/webdev",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "oU5ar0dmQEY",
        "title": "Tailwind CSS - why CSS utility classes save so much time",
        "publishedAt": "4 years ago",
        "durationSeconds": 1015,
        "views": 17710,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "CSS utility classes are AMAZING.  They save incredible amounts of time when both building and maintaining frontend code - ESPECIALLY in React/Vue/etc JS frameworks.  Tailwind is a great CSS utility class framework that makes CSS fun again.\n\nTailwind.css provides you with thousands of utility classes for nearly anything you would normally write CSS for in your HTML, CSS, & Javascript web development.  These classes allow you to write style right in the markup and never have to worry about managing stylesheets.\n\nUtility classes really shine when you use them in javascript frameworks like React.js, Vue.js, etc.  It allows you to copy/paste your component HTML and move it around freely with CSS always \"just working\".",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Azb5lNbbFqo",
        "title": "Manage React state like a boss with MobX Local Observables",
        "publishedAt": "4 years ago",
        "durationSeconds": 916,
        "views": 7798,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "MobX Local Observables are the ticket to happy state management, fast development speed, easy testing, and nearly all the benefits you'd get from using a state management solution like Redux ...without all the nasty ceremony and slowdowns that come from developing with Redux.\n\nThis React.js + MobX tutorial covers how to use MobX with React to make your React web development fast and simple, easy to reason about as new coders join the project, and easy to test for app stabililty.\n\nReact.js state management can be quite a pain, so getting it right - especially at the beginning of a project - is key.  I encourage any developers to default to MobX local observables for their state management with React.js\n\n~-~~-~~~-~~-~\nAlso watch: \"Tailwind CSS - why CSS utility classes save so much time\" \n   • Tailwind CSS - why CSS utility classes sav...  \n~-~~-~~~-~~-~",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "T3iLrmO8TmY",
        "title": "Next.js + React.js tutorial - YOU REALLY should be using Next.js",
        "publishedAt": "4 years ago",
        "durationSeconds": 885,
        "views": 28093,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Next.js should be your go-to for any React.js work these days.  If you're using Create React App...STOP! You're missing out on the joys of Next.js.\n\nThis tutorial covers Next.js for building React.js apps, websites, blogs.  Almost web development you do with React will benefit from Next.js.\nNext.js is perfect for building an SPA (single page app) with React.\nNext.js is an amazing SSG (static site generator).\nNext.js is a great node.js server for your frontend UI.\n...there's almost nothing Next.js isn't great for.\n\n~-~~-~~~-~~-~\nAlso watch: \"Tailwind CSS - why CSS utility classes save so much time\" \n   • Tailwind CSS - why CSS utility classes sav...  \n~-~~-~~~-~~-~",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SBB1YtwODT0",
        "title": "Web Development in 2020 - A complete roadmap",
        "publishedAt": "6 years ago",
        "durationSeconds": 1878,
        "views": 478060,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "EVERYTHING you need to learn Web Dev or keep your skills current in 2020!  This curated list covers beginning web development all the way through advanced development.\nView this roadmap here: https://coggle.it/diagram/XfeRbWj7xy3...\n\n1:06 basic frontend\n3:50 recommended deployment platforms\n5:15 no matter what route you take next\n7:27 advanced frontend\n18:40 backend\n25:27 devops\n\nIf you take my recommendation, you'll take this track:\nlearn basic frontend\nlearn command line, SSH, and GitHub\nlearn Parcel, SASS, React, and Webpack\nmove to fullstack/backend and learn node.js, postgres, redis, go\nmove to devops and learn docker, terraform, circleCI, digitalocean, aws\n\nThat right there, folks, gives you an AMAZING skillset!\n\nHopefully you find this web development tutorial, web dev roadmap, whatever you want to call it extremely helpful in learning web development in 2020.  I know these little pieces of web dev information surrounding javascript, databases, etc all took years to stumble across for me personally.\n\n~-~~-~~~-~~-~\nAlso watch: \"Tailwind CSS - why CSS utility classes save so much time\" \n   • Tailwind CSS - why CSS utility classes sav...  \n~-~~-~~~-~~-~",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "v38H67xWfOI",
        "title": "Ultimate Hacking Keyboard UHK60 - Mechanical Keyboard Review",
        "publishedAt": "6 years ago",
        "durationSeconds": 609,
        "views": 32780,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "My honest, unpaid review of https://UltimateHackingKeyboard.com/ - a split-or-not mechanical keyboard that I recently got my hands on!\n\nThe Ultimate Hacking Keyboard UHK60 from https://UltimateHackingKeyboard.com/ is a 60% mechanical keyboard with a bunch of extra options and cool features that set it apart.\n\nIt has layers as you would expect from a 60% mechanical keyboard allowing you to do everything you need to do from the home row.  2 buttons below the space bar also allow for easy switching of layers without making dedicated keys for it.  Also included are tenting pegs for split keyboard tenting.  Lastly, wooden palm rests are included as an option on this mechanical keyboard.\n\nThis mechanical keyboard review is unbiased, hasn't been paid for, and, most importantly is made on the basis of using this keyboard for over a month straight.  This mechanical keyboard has kailh brown keyswitches and blank keycaps.\n\n~-~~-~~~-~~-~\nAlso watch: \"Tailwind CSS - why CSS utility classes save so much time\" \n   • Tailwind CSS - why CSS utility classes sav...  \n~-~~-~~~-~~-~",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4C4zqhXwCKs",
        "title": "ArangoDB Tutorial - Databases every developer should know about",
        "publishedAt": "6 years ago",
        "durationSeconds": 1382,
        "views": 60393,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "ArangoDB (https://www.arangodb.com/) is a SUPER COOL database that every developer should at least be familiar with.  ArangoDB is muti-model, so you can use it as a document DB, a key/value store, or a graph DB all at the same time.\n\nArangoDB has a TON of flexibility and features, ranging from GeoJSON, search views (arangosearch), the ability to add node.js microservices, and, best of all, a really nice query language.\n\n~-~~-~~~-~~-~\nAlso watch: \"Tailwind CSS - why CSS utility classes save so much time\" \n   • Tailwind CSS - why CSS utility classes sav...  \n~-~~-~~~-~~-~",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tcBRvjYw5xQ",
        "title": "CSS Units - Which ones to use and which to stop using! - HTML CSS Tutorial",
        "publishedAt": "6 years ago",
        "durationSeconds": 1248,
        "views": 28008,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Don't guess, know when to use px, %, rm vs em, fr, ch, vw, vh and more...CSS gives you a LOT of options and each is there for a purpose.\n\nSPECIAL THANKS to   / chaddonohue   for peer reviewing this content!\n\nIn this tutorial, we'll cover all the CSS units, and, most importantly, which ones to use (and which NOT to use) for which situations.\n\nIn web development, css units are often confusing as there are just many options.  And, many css units - like px vs em vs rem, all seem to get the job done at times.  But some are simply better than others and there are very good reasons why.\n\n~-~~-~~~-~~-~\nAlso watch: \"Tailwind CSS - why CSS utility classes save so much time\" \n   • Tailwind CSS - why CSS utility classes sav...  \n~-~~-~~~-~~-~",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5iUB31h2Hzs",
        "title": "How To Make A Website From HTML & CSS - FAST, CHEAP, EASY",
        "publishedAt": "6 years ago",
        "durationSeconds": 585,
        "views": 290569,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In under 10mins, turn your HTML and CSS into a website!\n\nDomain Registration: iwantmyname.com https://bit.ly/2DFNal0\nThe hosting plan I recommend: https://partners.hostgator.com/qo7dq\nHostGator...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fgOO9YUFlGI",
        "title": "Responsive Design Tutorial - Tips for making web sites look great on any device",
        "publishedAt": "7 years ago",
        "durationSeconds": 1082,
        "views": 281718,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "There are a few \"gotchas\" to responsive design, and once you know them, the rest all makes sense.\nPlay with the code!!!\nhttps://codepen.io/anon/pen/oVNBEX?editors=1100\n\nView the full course!!!...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7cwRaTqR4k0",
        "title": "HTML & CSS Tutorial - Ways to code images...and how to do it well",
        "publishedAt": "7 years ago",
        "durationSeconds": 1345,
        "views": 413904,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Here's how to properly code images into your webpages without making them fuzzy on hi-res devices like the latest iPhone.\n\nPlay with the code!!!\nhttps://codepen.io/anon/pen/wOvgde?editors=1100...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "rqrh5d__uoI",
        "title": "MOST AMAZING ERGODOX YET! - ERGODOX EZ GLOW REVIEW w/ Kailh Copper keyswitches",
        "publishedAt": "7 years ago",
        "durationSeconds": 539,
        "views": 30941,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "My absolute favorite keyboard got an upgrade!  I'm unboxing the latest ergonomic mechanical keyboard from Ergodox EZ and it GLOWS!\n\nIt's here: http://ergodox-ez.com\n\nThe Ergodox EZ keyboard...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dcCCOiQ1ZuM",
        "title": "CSS SELECTORS MADE EASY - HTML CSS Tutorial for Beginners",
        "publishedAt": "7 years ago",
        "durationSeconds": 680,
        "views": 344712,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "You won't get far in web dev without understanding CSS selectors, and they aren't hard at all!\n\nPlay with the code! https://codepen.io/anon/pen/BGeKVM\n\nView the whole Web Development Tutorials...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "iXSSHlOe47s",
        "title": "HTML CSS TUTORIAL FOR BEGINNERS - multiple pages",
        "publishedAt": "7 years ago",
        "durationSeconds": 549,
        "views": 714077,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Setting up multiple pages in HTML + CSS is easy, there are just a few gotchas to be careful of! VIEW THE CODE: https://next.plnkr.co/edit/PKoGCHFcccpCoIIx\n\nYou'll start by creating multiple...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QYEHwW4bzG4",
        "title": "Flexispot Standing Desk Review - And Why You Need a Sit Stand Desk!",
        "publishedAt": "7 years ago",
        "durationSeconds": 432,
        "views": 8328,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Standing Desks are AWESOME, and a must-use for developers or anyone working at a computer all day.  I've been using a stand up desk for 4 years and finally got my hands on a Flexispot E5 http://bit...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "aRMIdKRYg6c",
        "title": "Build an HTML + CSS Layout with Flexbox in just a few lines of code",
        "publishedAt": "7 years ago",
        "durationSeconds": 424,
        "views": 529329,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build a Flexbox grid layout in just a couple lines of code!  Getting good with HTML + CSS Layouts gets you very far, very fast with web development.\n\nWatch this full course!: https://www.youtube.co...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dMK_3lH1YPo",
        "title": "EASY! Hand-code an HTML + CSS layout",
        "publishedAt": "7 years ago",
        "durationSeconds": 684,
        "views": 589508,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "With a handful of tags and a little CSS, you can build a layout completely from scratch!  \n\nView the Whole Series: https://www.youtube.com/watch?v=gQojMIhELvM&list=PLoYCgNOIyGABDU532eesybur5HPBVfC1...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "J35jug1uHzE",
        "title": "HTML CSS Tutorial for Beginners - Web Development Tutorials For Beginners",
        "publishedAt": "7 years ago",
        "durationSeconds": 423,
        "views": 587955,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This video makes how CSS works easy to understand...it's just styles added to your page.  You can do a lot with them, but at the end of the day, there's very little you have to know about CSS...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RjHflb-QgVc",
        "title": "HTML Tutorial for Beginners",
        "publishedAt": "7 years ago",
        "durationSeconds": 718,
        "views": 744043,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn HTML FAST from a professional developer.  This course will get you into the career of web development.  You'll learn HTML, CSS, & Javascript using modern tools so you won't be embarrassed...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gQojMIhELvM",
        "title": "Web Development Tutorial For Beginners - how to make a website",
        "publishedAt": "7 years ago",
        "durationSeconds": 324,
        "views": 1503356,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn Web Dev the way professionals do! This FULL course covers it all.  We'll learn HTML, CSS, Javascript and the workspace/computer setup that professionals use.\n\nIMPORTANT! If you ONLY want...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "b-6BeS-22yw",
        "title": "Parcel ...the Webpack KILLER?!",
        "publishedAt": "7 years ago",
        "durationSeconds": 426,
        "views": 34158,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Parcel is AWESOME.  And in many, MANY cases, you don't need to haggle with Webpack anymore, which to some developers is a dream come true, because messing with a build system is one of the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XdErOpUzupY",
        "title": "TensorFlow JS Tutorial - Build a neural network with TensorFlow for Beginners",
        "publishedAt": "7 years ago",
        "durationSeconds": 620,
        "views": 45998,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In just a few lines of code, we can build and train a neural network with Google's Tensorflow.js.  Birthed by Google engineers, TensorFlow is an amazing machine learning library with a great...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GvQwE2OhL8I",
        "title": "Neural Networks Explained - Machine Learning Tutorial for Beginners",
        "publishedAt": "7 years ago",
        "durationSeconds": 727,
        "views": 499028,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If you know nothing about how a neural network works, this is the video for you!  I've worked for weeks to find ways to explain this in a way that is easy to understand for beginners.\n\n\nPast...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9ZsyQZouOQ8",
        "title": "Neural Networks Explained Pt 2 - Machine Learning Tutorial for Beginners",
        "publishedAt": "7 years ago",
        "durationSeconds": 482,
        "views": 40397,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This video builds on the last video and shows an actual neural network training with logs of the biases, weights, and math used along the way.\n\nGist of this console output:\nhttps://gist.github.com/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lvzekeBQsSo",
        "title": "Machine Learning Tutorial - Making a recommendation engine IN THE BROWSER",
        "publishedAt": "8 years ago",
        "durationSeconds": 517,
        "views": 39091,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In part 2 of our machine learning crash course, we'll make a recommendation engine in the browser.\nHere's the code! \nhttps://codepen.io/willrstern/pen/WzZqpd\n\nWe will make a recommendation...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9Hz3P1VgLz4",
        "title": "Machine Learning Tutorial for Beginners - USING JAVASCRIPT!",
        "publishedAt": "8 years ago",
        "durationSeconds": 713,
        "views": 137450,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In a few lines of code, we can tackle real browser or server challenges with machine learning and neural networks!  Here's the source code:\nhttps://codepen.io/anon/pen/NYRRQm?editors=1111\n...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "gVXcqO9A1vo",
        "title": "Web Development 2018 - The Must-Know Tech",
        "publishedAt": "8 years ago",
        "durationSeconds": 1484,
        "views": 251610,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "A complete roadmap to being a successful web dev in 2018!\nThe mindmap with all of the links: http://bit.ly/2p63dS9\nNode.js course!: https://gumroad.com/l/iqGFt\nJump to a section:\n- Basic Front...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "mS9-fTrgjrA",
        "title": "Vue Tutorial #9 - Scaling Vue.js Data with Stores",
        "publishedAt": "8 years ago",
        "durationSeconds": 381,
        "views": 28274,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "GET THE SOURCE CODE: https://github.com/learncodeacademy/vue-tutorials\n\nKnowing how to scale Vue data is essential, and easily done with Vue.js stores.\n\nVue.js is one of the top 3 Javascript...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "bit.ly"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "web-services",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:web development"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": null,
      "additionalContacts": []
    },
    "contactability": {
      "tier": "none",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": false,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Not reachable through public business channels. No published business email and no external website detected."
    },
    "topicPillars": [
      {
        "label": "css",
        "share": 0.6,
        "evidenceVideoIds": [
          "oTVFno-IZVc",
          "TwanFw93TUQ",
          "oU5ar0dmQEY",
          "Azb5lNbbFqo",
          "T3iLrmO8TmY"
        ]
      },
      {
        "label": "https",
        "share": 0.57,
        "evidenceVideoIds": [
          "oTVFno-IZVc",
          "TwanFw93TUQ",
          "SBB1YtwODT0",
          "v38H67xWfOI",
          "4C4zqhXwCKs"
        ]
      },
      {
        "label": "code",
        "share": 0.47,
        "evidenceVideoIds": [
          "oTVFno-IZVc",
          "p8Za5MtyVdg",
          "TwanFw93TUQ",
          "oU5ar0dmQEY",
          "fgOO9YUFlGI"
        ]
      },
      {
        "label": "web development",
        "share": 0.43,
        "evidenceVideoIds": [
          "oTVFno-IZVc",
          "TwanFw93TUQ",
          "oU5ar0dmQEY",
          "Azb5lNbbFqo",
          "T3iLrmO8TmY"
        ]
      },
      {
        "label": "machine learning",
        "share": 0.17,
        "evidenceVideoIds": [
          "XdErOpUzupY",
          "GvQwE2OhL8I",
          "9ZsyQZouOQ8",
          "lvzekeBQsSo",
          "9Hz3P1VgLz4"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Thursday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "D",
      "rationale": "content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 27,
      "reason": "fits web-services",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.05
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.35
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "fits web-services. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 30,
    "failureType": null,
    "summary": "LearnCode.academy — 0.8M subs, D-tier sponsorship readiness, none contactability, respond within 30 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 27,
      "readyForOutreach": false,
      "blockers": [
        "contactability:none — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.83,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 2,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 2
      }
    },
    "channelStrategy": {
      "primary": "enrichment",
      "secondary": "linkedin",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [],
      "missedOpportunities": [
        "no-external-website-detected",
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.02
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.02,
      "gap": 0.92,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "unknown",
      "score": 0,
      "factors": [],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "none"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "web-services",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "ignore",
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": {
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "gaps": [
        "tier:D",
        "contactability:none"
      ]
    },
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "946ea04dcc1d2e6c8c141f797fcc1d9f36a5cdeb3def36480944c1de6c4364a9",
      "inputsHash": "faac00960f147c5e0914c5ec7e3b01a81fccbbc55ad7076041586139690f8038",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:41.928Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "skipped",
    "eventId": "8ba187d8745754e466e329fb932cd23e90bee836f64ecee6998dde6d2473a74d",
    "channelHandle": "@Webdevaddict",
    "channelId": "UCusxSE09rH2SvG1sh23Tu2w",
    "subscribers": 19,
    "skipReason": {
      "source": "quality-gate",
      "rules": [
        "minSubscribers<50000"
      ],
      "message": "Channel filtered out by quality gate: minSubscribers<50000. No PPE event charged."
    },
    "summary": "Skipped @Webdevaddict — failed gate: minSubscribers<50000.",
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:44.940Z"
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "error",
    "eventId": "996b4fcd2f44f2c769e755e888dca241a41b28f46a87d2d71a965b3272671955",
    "channelHandle": "@simonsdevtutorials",
    "channelId": null,
    "failureType": "not_found",
    "message": "ytInitialData not found",
    "error": true,
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:45.753Z"
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "5afb90866c5709e0691f26f765b00b541c15bf2bab900ca0aa3550d2a01087dd",
    "channelId": "UCO1cgjhGzsSYb1rsB4bFe4Q",
    "channelHandle": "@funfunfunction",
    "channelName": "Fun Fun Function",
    "channelUrl": "https://www.youtube.com/@funfunfunction",
    "description": "I’m Mattias Petter Johansson, mpj for short. I’ve been a full-time programmer for over twenty (!) years. Among others, I've worked for Spotify, Parity.io, Blackberry, Absolut Vodka, and Mindler.",
    "joinDate": null,
    "location": null,
    "subscribers": 259000,
    "totalVideos": 284,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/YdlVzZBhsD70bAUkUc3O9HTOJilrtUyPkZvoLE0XN2PgE7If1ICjxniO4KBvVdNbW27wZ4fYab8=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "fff.dev",
        "url": "https://fff.dev"
      },
      {
        "platform": "bsky.app",
        "url": "https://bsky.app/profile/mpj.fff.dev"
      }
    ],
    "recentVideos": [
      {
        "videoId": "6Vn1TWyOsYo",
        "title": "d3.interpolate (Number) | Dirty D3 - Episode 4",
        "publishedAt": "11 months ago",
        "durationSeconds": 732,
        "views": 3443,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this episode of Dirty D3, MPJ dives deeper into the world of interpolation by exploring d3.interpolate and d3.interpolateNumber - the function that powers much of D3's ability to smoothly transition between numerical values.\n\nSource code & Full transcript: https://src.fff.dev/f3d3d4/s01/e04\n\nBuilding on Episode 3's introduction to interpolation concepts, we explore:\n• Creating and using number interpolators with practical examples\n• The relationship between interpolators and D3 scales\n• The mysterious \"t-value\" parameter (and why mathematicians are feral)\n• How d3.interpolate connects to d3.scaleLinear\n• A real-world application using train commute times between Stockholm, Uppsala, and Upplands Väsby\n• The mind-blowing revelation about time dilation in... Swedish suburbs?\n\nThis episode bridges the gap between the abstract concept of interpolation and concrete D3 mechanics, showing how interpolation functions as the engine behind D3's powerful scaling capabilities.\n\n📚 RESOURCES:\nSource code & Full transcript: https://src.fff.dev/f3d3d4/s01/e04\nD3.js Documentation: https://d3js.org/getting-started\nD3 Interpolate Docs: https://d3js.org/d3-interpolate/value\nD3 Scale Linear: https://d3js.org/d3-scale/linear\n\n👉 Follow along with our journey into the heart of D3.js as we continue to unravel the library's core concepts one rabbithole at a time!\n\n#D3js #DataVisualization #JavaScript #WebDevelopment #DataScience #datavisualization #dataviz #d3js #dataanalytics",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LOaqG--VWas",
        "title": "What is interpolation, really? | Dirty D3 - Episode 3",
        "publishedAt": "11 months ago",
        "durationSeconds": 794,
        "views": 2440,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Join MPJ in this episode of Dirty D3 as we dive into interpolation - a fundamental concept in data visualization that your brain does naturally every day without you even realizing it!\n\nSource code & Full transcript: https://src.fff.dev/f3d3d4/s01/e03\n\nIn this episode:\n• Quick recap of our d3.scaleLinear exploration from the previous episode\n• Finding d3.interpolate in the D3.js documentation\n• Understanding what interpolation really means\n• Real-world example using a train journey between Stockholm and Uppsala (10:22)\n• Interactive demonstrations and visual examples\n\nTime codes: \n02:15 Discovering d3.interpolate in the documentation\n04:31 First look at the interpolate example code\n07:37 What is interpolation? The fundamentals\n08:46 Ball catching example - visual demonstration \n10:22 Train journey example (Stockholm to Uppsala)\n11:34 Finding the midpoint through interpolation\n\nWhether you're a D3.js beginner or looking to deepen your understanding of data visualization fundamentals, this episode breaks down complex concepts into digestible, fun explorations.\n\n\"Between any two points on a curve lies an infinity of others. The art isn't in seeing the points - it's in choosing which infinities to skip.\" - Benoît Mandelbrot\n\n📚 RESOURCES:\nD3.js Documentation: https://d3js.org/getting-started\nD3 Interpolate Docs: https://d3js.org/d3-interpolate/value\n\n👉 Next episode: d3.interpolateNumber - where we'll go even deeper into numeric interpolation!\n\n#D3js #DataVisualization #JavaScript #WebDevelopment #DataScience #Interpolation",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LEOSWYlQyVw",
        "title": "From Physics to AI: Building a 200ms Coding Assistant | ft. Guy Gur-Ari, co-founder of Augment Code",
        "publishedAt": "1 year ago",
        "durationSeconds": 2051,
        "views": 2761,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛 Augment Code signup link: https://fff.dev/augment\n\nSocials: \nhttps://bsky.app/profile/mpj.fff.dev\nhttps://bsky.app/profile/augmentcode.com\nhttps://x.com/guygr\nhttps://x.com/augmentcode\n\nJoin MPJ for an in-depth conversation with Guy Gur-Ari, co-founder of Augment Code and former Google AI researcher. Guy shares how his fascinating journey from theoretical physics to AI led him to build one of the fastest coding assistants in the industry, achieving 200ms response times while maintaining full codebase awareness.\n\n⏰ Quick jump\n00:00 - Cold opener with Guy Gur-Ari quote on hallucination problems \n01:07 - What makes Augment different: Full codebase context\n02:01 - For engineering leaders evaluating coding assistants\n02:32 - Introduction to Guy Gur-Ari (PhD, ex-Google, Augment co-founder)\n04:28 - Understanding how Augment handles large codebases\n06:11 - The technical challenges of building a fast code assistant\n09:19 - How Augment achieves 200-300ms response times\n14:33 - Guy Gur-Ari's journey from physics to machine learning\n16:35 - Working at the IAS (Institute for Advanced Study)\n19:20 - The Google years: From physics to AI research\n21:41 - The impact of GPT-3 on AI development\n24:40 - Why reasoning capabilities matter in AI\n27:41 - The importance of direct user feedback\n31:23 - Why Augment chose usage-based pricing over seat-based\n33:28 - How have generative models changed your workflow?\n\nWe dive into the technical challenges of building AI that truly understands complex codebases, explore why current AI coding tools often fall short, and discuss how Augment's unique approach to developer tooling emerged from years of machine learning research at Google.\nGuy explains how his background in physics influenced his perspective on AI development, including his time at the prestigious Institute for Advanced Study (where Einstein once worked). \n\nWe also explore the impact of GPT-3 on the field and why reasoning capabilities are crucial for the future of AI coding assistants.\n\nWhether you're a developer interested in AI tooling, an engineering leader evaluating coding assistants, or just curious about the intersection of physics and artificial intelligence, this conversation offers unique insights into the future of software development.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "aAP3m0PyGrY",
        "title": "Line Plots are Plot Lines | A data visualization spoken word cover of funfun.email #12)",
        "publishedAt": "1 year ago",
        "durationSeconds": 360,
        "views": 1744,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛💌This video is a spoken word spinoff inspired by issue #12 of https://funfun.email, a weekly chronicle by MPJ that is vaguely about data, do subscribe if you like it. \n\nIt is common for us to be touched by stories. Rarely are we touched by digits. But digits can be turned to line plots and line plots can express a plot line. \n\nHave you ever attended a spellbinding budget meeting? I have. It was at a meditation center board meeting. I have been in many budget meetings in my life and they are usually dominated by tables of numbers, profit and loss statements, revenue at the end of this quarter or that, and I also expect the audience to covertly simulate not zoning out.\n\nThis meeting was different. The treasurer enthralled the audience. I could Iconoclastically eschewing tables of digits and instead presented the metrics as time series, plotted on a line, line plots, plot lines, telling the story of how donations flowed to the center every year, more in the summers, and how liquidity increased after the summer due to a loan taken, and how that liquidity was spent buying materials for the construction of a new meditation hall. Line plots can captivate!\n\nTo survive and thrive, we must collaborate, and to collaborate we need truth and clarity. But our world suffers a deficiency of quality truth. Instead of speaking data, we shout pluralities of anecdotes. An anecdote is one point told as a story, and thus anecdotes enjoy the privilege, the prerogative, the endowment of story. So anecdotes ascended to authority dominating data dubiously, disproportionately. How could a nuanced neutral numerical narrative possibly compete with fiery fables of feasting cats and dogs?\n\nThe digital revolution is new. We only needed to start digit-izing when we invented pottery, merely 12,000 years ago. In contrast, we've had stories for millions of years. Stories are primeval, primordial, visceral, natural.\n\nPottery may be new technology, but lines are not. Developmental psychology studies show that young children understand time or progression when they are presented with a timeline or a path of dots. Why is that? Perhaps lines even predate stories. One can imagine communication, prior to spoken language, our ancestors pointing and drawing lines in the sand, to plan hunting, making maps.\n\nLine plot or plot line, both come from the old English plot, meaning a small piece of land and by the 16th century, the age of Shakespeare, the word evolved to describe a plan or scheme, a mapping of events in a narrative guiding audiences through a structured sequence.\n\nWhen we plot a story or a time series, we are mapping meaning onto time or space, showing relationships and progressions. Just as land plots are markers of territory, story plots chart emotional landscapes. Each plot point is a landmark in the journey across the terrain, whether that terrain is land, the psyche, server uptime or a budget.\n\nWe turn numbers into lines, digits into paths, snapshots into flowing time, plotting lines so that we also viscerally understand, not merely our System 2.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5RU15VWNwXo",
        "title": "d3.scaleLinear | Dirty D3 - Episode 2",
        "publishedAt": "1 year ago",
        "durationSeconds": 720,
        "views": 3829,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💌 Sign up for https://funfun.email to learn more about our D3 and data visualization plans!\n💛 Dirty D3 won't be the most pedagogical series, or the most succinct, the cleanest, and certainly not the shortest, the most elegant or terse.\n\nBut what Dirty D3 will be is the weirdest, most vulnerable, most energetic, and—most importantly—the most sequential take on learning D3.js. Course-ish.\n\nThere’s no \"one\" right sequence to learn all the bajillion hojillion components of D3, but let’s face it, too much choice is just plain awful. So Dirty D3 will impose some order on the chaos. This is the way we’ll learn it—step by messy step. And since we’ve chosen this path, it’s officially the right way.\n\nThrough 2025 you’ll learn a little (or a lot) more about data visualization, D3.js, time scales, charts, and all the magic that makes those projects come to life. By the end of 2027, we’ll either be world-renowned data visualization experts or known for having created the weirdest, most absurd course on the matter. We welcome all developers, young and old, new and experienced, fluent or just dappling in JavaScript and other languages. 💛",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dfVdFC4EGj8",
        "title": "D3.js is not what you think | Dirty D3 - Episode 1",
        "publishedAt": "1 year ago",
        "durationSeconds": 535,
        "views": 15023,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💌 Sign up for https://funfun.email to learn more about our D3 and data visualization plans!\n💛 Dirty D3 won't be the most pedagogical series, or the most succinct, the cleanest, and certainly not the shortest, the most elegant or terse.\n\nBut what Dirty D3 will be is the weirdest, most vulnerable, most energetic, and—most importantly—the most sequential take on learning D3.js. Course-ish.\n\nThere’s no \"one\" right sequence to learn all the bajillion hojillion components of D3, but let’s face it, too much choice is just plain awful. So Dirty D3 will impose some order on the chaos. This is the way we’ll learn it—step by messy step. And since we’ve chosen this path, it’s officially the right way.\n\nThrough 2025 you’ll learn a little (or a lot) more about data visualization, D3.js, time scales, charts, and all the magic that makes those projects come to life. By the end of 2027, we’ll either be world-renowned data visualization experts or known for having created the weirdest, most absurd course on the matter. We welcome all developers, young and old, new and experienced, fluent or just dappling in JavaScript and other languages. 💛",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fA40FgHVnyI",
        "title": "Untutorial: Recreating Hans Rosling's famous data visualization using Observable Framework",
        "publishedAt": "1 year ago",
        "durationSeconds": 2227,
        "views": 8260,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛 Our sponsor Codecrafters is offering 40% off when you sign up at https://fff.dev/codecrafters\nIf you want to build complex projects and elevate your coding skills, Codecrafters let's you recreate Git, SQLite, Redis and more from scratch. P.S. Those with corporate L&D budgets can get reimbursed.\nAnd💌 Sign up for https://funfun.email\n\n⏰ Quick jump\n00:01 A Data Visualization Journey\n00:48 The Health and Wealth of Nations\n01:21 Hans Rosling\n02:35 Interactivity\n03:12 Our Ambition\n04:04 Observable Framework\n05:02 Observable Plot\n05:35 The UnTutorial Format\n08:00 Prerequisites\n08:14 Command Line Interface (CLI) Basics\n08:23 JavaScript Basics\n08:32 Node.js & Npm Basics\n08:53 Static Web Site Publishing\n09:05 Adding Comfort - Git, Static-Site Generators, Server-Side Rendering (SSR) Frameworks\n11:20 Your Mission\n11:27 Challenge 1 (of 3): Initialize Observable Framework\n12:18 Observable Classic\n13:06 Interactive Data Notebooks\n15:37 Observable 2.0\n17:05 Objective 1 (of 3): Initialize Observable Framework\n18:12 Challenge 2 (of 3): Mine and Display Raw Data\n18:50 Bonus Challenge 2.5 - Gapminder\n19:17 Working with Data\n20:26 Objective 2 (of 3): Mine and Display Raw Data\n21:30 CodeCrafters  - Learn by Building! & 40% off!\n22:30 Build the Unbuildable\n25:35 Challenge 3 (of 3): Scatter Plot the Data of your home country\n25:56 What is a Plot?\n26:29 Plot vs Graph\n27:32 Thinking in Points\n30:40 What to Plot with?\n33:40 Objective 3 (of 3): Scatter Plot the Data of your home country\n34:04 Achieving the Impossible",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "7mlZUS8szbQ",
        "title": "Telling Stories With Typescript",
        "publishedAt": "1 year ago",
        "durationSeconds": 1277,
        "views": 18396,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛 Two ways to show your love:\nOur sponsor Codecrafters is offering 40% off when you sign up at https://fff.dev/codecrafters\nIf you want to build complex projects and elevate your coding skills, Codecrafters let's you recreate Git, SQLite, Redis and more from scratch. P.S. Those with corporate L&D budgets can get reimbursed.\nAnd💌 Sign up for https://funfun.email\n\nSubtitles in Portuguese, French & Russian! Legendas em Português. Sous-titres en français. Субтитры на русском.\n\n00:00 Update (yes, more videos are coming)\n04:00 Coding videos \n05:09 Visualizations & animations\n08:33 Feeling useless\n10:03 What programming is about\n12:33 Defying gravity\n14:04 Creating with Typescript \n16:46 Identifying the identifiers\n18:44 Recreate Git, SQLite, Redis and more from scratch\n20:51 🙏\n\nAnálise de dados Visualização de dados Ciência de dados Inteligência artificial Engenharia de dados Automação\nAnalytique de données Visualisation des données Science des données Intelligence artificielle Ingénierie des données Automatisation\nАнализ данных Визуализация данных Наука о данных Искусственный интеллект Инженерия данных Автоматизация",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UVqBBPlZrRw",
        "title": "Fun Fun Function Returns: Dawn of the Data Developer (and funfun.email)",
        "publishedAt": "1 year ago",
        "durationSeconds": 1477,
        "views": 66262,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛 Two ways to send your love:\n💌 Sign up for https://funfun.email\n☕ Buy MPJ a cup of coffee: https://buymeacoffee.com/funfunfunction\nSubtitles in Portuguese, Spanish, French, Ukrainian & Indonesian!\n\n00:00 I'm back!\n00:50 The new direction of Fun Fun Function\n01:30 Why would anyone listen to this guy?\n03:27 Core theme #1: Data\n05:06 Dawn of the Data Developer\n05:54 Core theme #2: Welcoming near-developers\n08:36 It's all about good datasets\n12:43 A shortage of quality truth\n14:27 Rescue & clean data + the data extraction ferret army\n14:44 Becoming analysts & 💚Python\n16:49 Why statistics is amazingly cool\n18:08 Data visualization & 🧡D3.js\n19:05 Data pipelines & automation: bringing in near-developers \n20:28 (Un)artificial Intelligence\n21:06 Neurology: your stomach is smarter than your cat\n22:43 Outro: love & funfun.email\n\n\n\nAnálise de dados Visualização de dados Ciência de dados Inteligência artificial Engenharia de dados Automação\nAnalytique de données Visualisation des données Science des données Intelligence artificielle Ingénierie des données Automatisation\nAnálisis de datos Visualización de datos Ciencia de datos Inteligencia artificial Ingeniería de datos Automatización\nAnalisis data Visualisasi data Ilmu data Kecerdasan buatan Rekayasa data Otomatisasi\nАналіз даних Візуалізація даних Наука про дані Штучний інтелект Інженерія даних Автоматизація",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IfHWE36B1go",
        "title": "Goodbye Fun Fun Function (and the importance of mental health)",
        "publishedAt": "5 years ago",
        "durationSeconds": 877,
        "views": 243644,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛 Goodbye live stream on 13th July Monday 7AM PT\nWatch on   / funfunfunction  \n\n💛 Mindler job page\nhttps://bit.ly/mindler-fff\n\n💛Statistics on suicide and mental health cited are from The Happiness Trap book (  / the-happiness-trap  ) and from The Gift and power of Emotional Courage talk (   • The gift and power of emotional courage | ...  )\n\n💛 funfun.chat\nhttp://funfun.chat\n\n💛 mpj on Twitter\n  / mpjme  \n\n💛 David on Twitter\n  / chhib",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bJWWbql0QIQ",
        "title": "The amazing history of programming with Olga Stern - Fun Fun Function",
        "publishedAt": "5 years ago",
        "durationSeconds": 912,
        "views": 15245,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛 Olga Stern's Instagram\nhttps://instagram.com/olgatron_\n\n💛 Comic about Ada Lovelace by Kate Beaton\nhttp://www.harkavagrant.com/index.php?id=298\n\n💛 Jacquard's Loom machine\nhttps://www.yout...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DlAYr_tcANg",
        "title": "Resuming work on a project after a break",
        "publishedAt": "5 years ago",
        "durationSeconds": 759,
        "views": 7483,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛 Remote.work (Episode sponsor)\nFind the most exciting remote jobs. Remote.work are the #1 destination to find and list incredible remote jobs. Use this link to let them know that you came...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zcmm5jTU_IA",
        "title": "Killer remote presentations",
        "publishedAt": "5 years ago",
        "durationSeconds": 511,
        "views": 4860,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛 Remote.work (Episode sponsor)\nFind the most exciting remote jobs. Remote.work are the #1 destination to find and list incredible remote jobs. Use this link to let them know that you came...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jklFPt7FmM8",
        "title": "How to ACTUALLY SHIP side projects?",
        "publishedAt": "5 years ago",
        "durationSeconds": 1399,
        "views": 11793,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛Join us in the *self-care* channel on funfun.chat! Direct link to channel: https://discord.gg/uHVf8xS\n\n⏰ Quick jump\n00:01 How do you start a project?\n02:40 Showing off sketches of the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RK6qkF8POOg",
        "title": "Beating burnout like you beat a computer game",
        "publishedAt": "6 years ago",
        "durationSeconds": 488,
        "views": 6863,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛 Educative (Episode sponsor)\nUse link for 10% off: https://educative.io/FunFunFunction\nEducative.io helps you learn in-demand tech skills faster. Text-based courses with embedded coding...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QW9LT-JxfgI",
        "title": "How remote work is making software teams more autonomous",
        "publishedAt": "6 years ago",
        "durationSeconds": 1185,
        "views": 4315,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛 Educative (Episode sponsor)\nUse link for 10% off: https://educative.io/FunFunFunction\nEducative.io helps you learn in-demand tech skills faster. Text-based courses with embedded coding...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JdCC5THzJRI",
        "title": "How to get into FLOW as a developer?",
        "publishedAt": "6 years ago",
        "durationSeconds": 622,
        "views": 8121,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛Join us in the *self-care* channel on funfun.chat! Direct link to channel: https://discord.gg/uHVf8xS\n\n💛 Oskar Henrikson on Twitter\nhttps://twitter.com/PsykologenOskar\n\n💛 Watch the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Ri8hqLdXQrY",
        "title": "Working contracts in software development teams",
        "publishedAt": "6 years ago",
        "durationSeconds": 394,
        "views": 5470,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛 Educative (Episode sponsor)\nUse link for 10% off: https://educative.io/FunFunFunction\nEducative.io helps you learn in-demand tech skills faster. Text-based courses with embedded coding...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sDC4CQqdlgU",
        "title": "Our Discord has launched: funfun.chat!",
        "publishedAt": "6 years ago",
        "durationSeconds": 178,
        "views": 3713,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛Join our Fun Fun Family in our Discord at http://funfun.chat",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lPizRKmPViU",
        "title": "Get your workplace featured on Fun Fun Function",
        "publishedAt": "6 years ago",
        "durationSeconds": 619,
        "views": 5362,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "⭐️Contact us here if you are interested in Reverse Interview:\nhttp://reverseinterview.funfunfunction.com\n\nReverse Interview: Job ads in live stream form on Fun Fun Function, interviewing...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6To3Rt4w3ys",
        "title": "Clever tricks to improve video conference communication",
        "publishedAt": "6 years ago",
        "durationSeconds": 600,
        "views": 6046,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛 Follow on Twitch and support by becoming a Subscriber\nWe record the show live Mondays 7 AM PT\nhttps://twitch.tv/funfunfunction\n\n💛 Fun Fun Forum\nPrivate discussion forum with other viewers...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "BPHLz0lQ6Fg",
        "title": "Run Prettier in CI, NOT as an editor plugin",
        "publishedAt": "6 years ago",
        "durationSeconds": 227,
        "views": 11059,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛 Follow on Twitch and support by becoming a Subscriber\nWe record the show live Mondays 7 AM PT\nhttps://twitch.tv/funfunfunction\n\n💛 Fun Fun Forum\nPrivate discussion forum with other viewers...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IeR8Z19Mebg",
        "title": "Bus factor, pair programming and Visual Studio Code Live Share with David Khourshid",
        "publishedAt": "6 years ago",
        "durationSeconds": 450,
        "views": 4603,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛 Educative (Episode sponsor)\nUse link for 10% off: https://educative.io/FunFunFunction\nEducative.io helps you learn in-demand tech skills faster. Text-based courses with embedded coding...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tbcKz-LeG-Y",
        "title": "How do I become a lead engineer? Answers from pro tech career advisors (Part 1)",
        "publishedAt": "6 years ago",
        "durationSeconds": 2227,
        "views": 5330,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛 Seen by Indeed (Episode sponsor)\nhttps://beseen.com/funfunfunction\nThis week we are sponsored by Seen by Indeed - a job matching platform specifically built for tech, heavily focused on...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "E1mvRp82QSA",
        "title": "How important is it to know all frameworks? Advice from pro tech career advisors (Part 2)",
        "publishedAt": "6 years ago",
        "durationSeconds": 1985,
        "views": 3768,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛 Seen by Indeed (Episode sponsor)\nhttps://beseen.com/funfunfunction\nThis week we are sponsored by Seen by Indeed - a job matching platform specifically built for tech, heavily focused on...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sWwuL6o366A",
        "title": "How to move from junior to senior developer? Professional tech career advisors guidance!",
        "publishedAt": "6 years ago",
        "durationSeconds": 1934,
        "views": 16118,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛 Seen by Indeed (Episode sponsor)\nhttps://beseen.com/funfunfunction\nThis week we are sponsored by Seen by Indeed - a job matching platform specifically built for tech, heavily focused on...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uRfQJJArZEg",
        "title": "XState: Let's pair program state machines and state charts with David Khourshid",
        "publishedAt": "6 years ago",
        "durationSeconds": 3547,
        "views": 23119,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛 Brilliant (Episode sponsor)\nInteractive courses on computer science.\nUse link to get 20% off annual subscription: https://brilliant.org/fff \n\n💛 Code from the episode\nhttps://gist.github.com...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hMMpRR84k-8",
        "title": "Refactoring emotions",
        "publishedAt": "6 years ago",
        "durationSeconds": 854,
        "views": 13267,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "📝 Episode notes\nIn this episode I talk about some challenges I've been facing when working with my own emotions and mental state, especially regarding suppression and avoidance of emotions...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-UX74Oe72zU",
        "title": "Let’s pair program gravity simulation (using JavaScript and p5.js, with Dan Shiffman)",
        "publishedAt": "6 years ago",
        "durationSeconds": 3378,
        "views": 14301,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛 Brilliant (Episode sponsor)\nInteractive courses on computer science.\nUse link to get 20% off annual subscription: https://brilliant.org/fff \n\n💛Code from the episode\nhttps://gist.github.com/...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CZO3AxdkgqM",
        "title": "Using reduce to code filter and map in vanilla JavaScript",
        "publishedAt": "6 years ago",
        "durationSeconds": 2208,
        "views": 9928,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "💛 Educative.io (Episode sponsor)\nUse link for 10% off: https://educative.io/FunFunFunction\nEducative.io helps you learn in-demand tech skills faster. Text-based courses with embedded coding...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [
        "Seen by Indeed - a job matching platform"
      ],
      "affiliateLinkHosts": [
        "bit.ly",
        "brilliant.org"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": "2020-05-15",
      "detectionDetail": [
        {
          "brand": "Seen by Indeed - a job matching platform",
          "videoId": "tbcKz-LeG-Y",
          "confidence": 0.7,
          "evidence": "description: sponsored by Seen by Indeed - a job matching platform",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:47.216Z"
        },
        {
          "brand": "Seen by Indeed - a job matching platform",
          "videoId": "E1mvRp82QSA",
          "confidence": 0.7,
          "evidence": "description: sponsored by Seen by Indeed - a job matching platform",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:47.216Z"
        },
        {
          "brand": "Seen by Indeed - a job matching platform",
          "videoId": "sWwuL6o366A",
          "confidence": 0.7,
          "evidence": "description: sponsored by Seen by Indeed - a job matching platform",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:47.216Z"
        }
      ]
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 1,
        "firstSponsoredVideoDate": "2026-05-14"
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "fff.dev",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.83,
        "evidenceVideoIds": [
          "6Vn1TWyOsYo",
          "LOaqG--VWas",
          "LEOSWYlQyVw",
          "aAP3m0PyGrY",
          "5RU15VWNwXo"
        ]
      },
      {
        "label": "sponsor",
        "share": 0.47,
        "evidenceVideoIds": [
          "fA40FgHVnyI",
          "7mlZUS8szbQ",
          "DlAYr_tcANg",
          "zcmm5jTU_IA",
          "RK6qkF8POOg"
        ]
      },
      {
        "label": "funfunfunction",
        "share": 0.43,
        "evidenceVideoIds": [
          "UVqBBPlZrRw",
          "IfHWE36B1go",
          "RK6qkF8POOg",
          "QW9LT-JxfgI",
          "Ri8hqLdXQrY"
        ]
      },
      {
        "label": "link",
        "share": 0.4,
        "evidenceVideoIds": [
          "LEOSWYlQyVw",
          "DlAYr_tcANg",
          "zcmm5jTU_IA",
          "jklFPt7FmM8",
          "RK6qkF8POOg"
        ]
      },
      {
        "label": "com",
        "share": 0.33,
        "evidenceVideoIds": [
          "LEOSWYlQyVw",
          "UVqBBPlZrRw",
          "bJWWbql0QIQ",
          "JdCC5THzJRI",
          "lPizRKmPViU"
        ]
      },
      {
        "label": "machine learning",
        "share": 0.03,
        "evidenceVideoIds": [
          "LEOSWYlQyVw"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Friday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 32,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.6,
      "level": "medium",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "Last sponsored video 2190 days ago — within typical sponsorship-decision lookback for similar creators.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Fun Fun Function — 0.3M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 32,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.78,
      "urgency": 0,
      "noiseRisk": 0.4
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "late",
      "reason": "Last sponsored video 2190 days ago; past typical 14-30d decision-cycle for similar creators.",
      "decayRisk": 0.9
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "5afb90866c5709e0691f26f765b00b541c15bf2bab900ca0aa3550d2a01087dd",
      "inputsHash": "95661341aafd726b3d84e023cdab684e827d5ced44076871330f17f23184a115",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:46.475Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "error",
    "eventId": "e3b2760be44f31b145b715001bf3e4425a720bd2f6f4fc6e5b809e6a3e30f302",
    "channelHandle": "@CodingMash",
    "channelId": null,
    "failureType": "not_found",
    "message": "ytInitialData not found",
    "error": true,
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:47.990Z"
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "dc3d5f34dbd6f7b0ca1cd17f62597264ed335e0b21b3bdb7d2500d9831d638c3",
    "channelId": "UCWI-ohtRu8eEeDj93hmUsUQ",
    "channelHandle": "@CodingWithLewis",
    "channelName": "Coding with Lewis",
    "channelUrl": "https://www.youtube.com/@CodingWithLewis",
    "description": "My name is Lewis. I am on a mission to inspire developers and tech enthusiasts. 🧑‍💻\n\nProfessionally coding since 2016!\n\nBusiness: sydney@lewismenelaws.com",
    "joinDate": null,
    "location": null,
    "subscribers": 741000,
    "totalVideos": 777,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/CsruQ_I1lU51KzpO58FHQIpzuQneCdmJOOLsmy_usGKQANxgnJ-cK6kNylwQYhY0LYwVrp3EHQ=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "twitter",
        "url": "https://twitter.com/LewisMenelaws"
      },
      {
        "platform": "instagram",
        "url": "https://instagram.com/lewismenelaws"
      },
      {
        "platform": "github",
        "url": "https://github.com/elebumm"
      }
    ],
    "recentVideos": [
      {
        "videoId": "lSVgeMoXJTs",
        "title": "The Code Inside Everything (That Gets Zero Credit)",
        "publishedAt": "13 days ago",
        "durationSeconds": 1746,
        "views": 217515,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Over a trillion SQLite databases are running right now, on every phone, every browser, every plane. The most-used software in human history. Three people maintain it. They don't accept outside code.\n\nThis is the story of how SQLite was created and how it became the most popular software in the world. \n\nFull interview with Richard:    • Creator of SQLite on Turso, AI, and 26 Yea...  \n\n🔗 Links:\nMY 12K+ DISCORD 💬   / discord  \n\nCONNECT WITH ME ON SOCIAL\n📸 Instagram:   / lewismenelaws  \n🎚TikTok:  / lewismenelaws  \n🐣 Twitter:   / lewismenelaws  \nMy gear 💻 https://liinks.co/lewismenelaws\n\n⏱️ Chapters:\n0:00 The most-used software you've never heard of\n0:40 The Navy ship that broke Informix\n3:38 The database that's just a file\n5:36 Motorola, AOL, and a feature that didn't work\n8:12 Symbian, the bus factor, and the consortium\n10:48 The Google prototype that became Android\n12:17 Tested like flight software (DO-178B)\n15:23 The fortress: why nobody can contribute\n17:26 A prayer where the license should be\n20:24 Megalin and the cracks in the wall\n22:42 Turso, the fork, and the Rust rewrite\n26:00 Free as in puppies\n27:36 Three people, a trillion databases",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sEQ1ecQq0HI",
        "title": "What a Billion Database Rows Look Like in Real Life",
        "publishedAt": "2 weeks ago",
        "durationSeconds": 570,
        "views": 8338,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Supabase: https://supabase.plug.dev/ycAHRKC\n\nWhat if you could take every row in a database and make it physical? I stacked paper until it reached the Eiffel Tower and then I ran the numbers on Spotify, Uber, and Facebook.\n\n🔗 Links:\nMY 12K+ DISCORD 💬   / discord  \n\nCONNECT WITH ME ON SOCIAL\n📸 Instagram:   / lewismenelaws  \n🎚TikTok:  / lewismenelaws  \n🐣 Twitter:   / lewismenelaws  \nMy gear 💻 https://liinks.co/lewismenelaws\n\n⏱️ Chapters:\n0:00 If a database was physical, how big would it be?\n0:45 1,000 rows vs 10,000 rows on paper\n2:15 100,000 rows (VFX saves my life)\n3:32 Joins, indexes, and how Postgres stays fast\n4:44 100 million rows = the Eiffel Tower\n5:30 Sponsor: Supabase\n6:15 A billion rows, and what real companies actually handle\n8:14 Why this scale is completely insane",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "JJZQr2AuEI0",
        "title": "GitHub's Code Was Breaking Every 8 Hours. Here's Why.",
        "publishedAt": "2 months ago",
        "durationSeconds": 1092,
        "views": 47215,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Qodo for free: https://dub.sh/cwl-qodo\n\n8 hours. That's how long engineers waited to ship a single feature. If one thing went wrong, everyone started over. The system they built to speed things up was actually making everything worse.\n\nThis is the story of how GitHub went from a broken deployment pipeline to shipping 2,500+ pull requests a day and how a script written by one developer in 2001 inspired the solution that powers open source today.\n\nIn memory of Peter Miller (1960–2014), whose work on Aegis helped lay the foundation for modern merge queues.\n\nSources: \nWill Smyth from GitHub: https://github.blog/engineering/engin...\ngraydon2 \"not rocket science\": https://graydon2.dreamwidth.org/1597....\nGraphite: https://graphite.com/blog/bors-google... \n\n---\nMY 12K+ DISCORD 💬   / discord  \n\nCONNECT WITH ME ON SOCIAL\n📸 Instagram:   / lewismenelaws  \n🎚TikTok:  / lewismenelaws  \n🐣 Twitter:   / lewismenelaws  \nMy gear 💻 https://liinks.co/lewismenelaws\n---\n\nTIMESTAMPS\n0:00 - The Problem\n0:41 - How GitHub Started\n3:50 - The Old System: Trains\n6:15 - The Not Rocket Science Rule\n9:36 - The Change They Needed\n10:45 - Qodo (Sponsor)\n11:49 - The Merge Queue Solution\n14:15 - Rolling It Out to 1,000 Engineers\n15:30 - The Results\n16:21 - What I Learned\n17:28 - Credits",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Pq3205RoOsI",
        "title": "This $50 AI Command Center Runs My Life",
        "publishedAt": "3 months ago",
        "durationSeconds": 851,
        "views": 85335,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Use code: CODINGWITHLEWIS to get 10% off with Hostinger: https://www.hostinger.com/codingwithl...\n\nI built a custom cyberdeck powered by OpenClaw — an open source AI agent that runs my life.\n\nThis project includes dual LCD displays, a 16x2 character LCD, a rotary encoder, and a Raspberry Pi all packed into a 3D printed cyberpunk-style case. The AI handles my emails, calendar, tasks, and more — all from this little terminal on my desk.\n\nOpen Source REPO: https://github.com/CodingWithLewis/Op...\n3D model: https://makerworld.com/en/models/2415...\n\n🔧 BUILD DETAILS:\n4\" ILI9488 display (main feed + Molty character)\n2.8\" ILI9341 touchscreen (command buttons)\n16x2 I2C LCD (status ticker)\nRotary encoder for navigation\nRaspberry Pi 4\nCustom 3D printed case with metallic finish\n\n---\nMY 12K+ DISCORD 💬   / discord  \n\nCONNECT WITH ME ON SOCIAL\n📸 Instagram:   / lewismenelaws  \n\n🎚TikTok:  / lewismenelaws  \n\n🐣 Twitter:   / lewismenelaws  \n\nMy gear 💻 https://liinks.co/lewismenelaws\n---\n\n\n\nTIMESTAMPS\n0:00 - Intro\n0:26 - What is OpenClaw?\n1:23 - The Concept\n1:47 - The Hardware\n3:08 - Setting Up OpenClaw (Hostinger)\n4:36 - Wiring the Displays\n5:54 - Building the UI\n8:08 - Designing the Case\n9:04 - 3D Printing\n9:27 - Finishing (Paint & Metal Look)\n10:48 - Soldering\n11:26 - Assembly\n12:16 - Live Demo\n13:29 - Outro",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "jBpQiv-ZlVM",
        "title": "I Gave Claude a Body",
        "publishedAt": "3 months ago",
        "durationSeconds": 910,
        "views": 209741,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Claude free: http://clau.de/codingwithlewis\n\nI gave Claude AI a body — a Raspberry Pi, a camera, and an RC car — then sent it into the frozen wilderness to explore completely on its own. No remote control. No pre-programmed paths. Just an AI making real-time decisions about where to go and what to look at.\n\nWhat started as a hardware project I had no business attempting turned into something I didn't expect. After weeks of soldering, debugging ESC controllers, and building a custom command center from my desk, I watched this little crab-topped car find genuine wonder in frozen leaves and snowy trails.\n\nSponsored by Anthropic @claudeai\n\n---\nMY 12K+ DISCORD 💬   / discord  \n\nCONNECT WITH ME ON SOCIAL\n📸 Instagram:   / lewismenelaws  \n\n🎚TikTok:  / lewismenelaws  \n\n🐣 Twitter:   / lewismenelaws  \n\nMy gear 💻 https://liinks.co/lewismenelaws\n---\n\n\n⚙️ THE BUILD:\nRaspberry Pi 5 running Claude Code\n4G HAT for remote SSH access\n16MP wide angle camera with servo mount for left/right vision\nPCA9685 servo driver for steering control\nCustom ESC bypass for motor control\nApple Depth Pro for depth estimation\nMCP server handling steering commands\nCustom \"Journey Grid\" system — 6 images stitched together so Claude understands what happens between decisions\n3D printed Claude Crab mount\n\n\n\nCHAPTERS:\n0:00 - Hook\n0:27 - Why Give AI a Body?\n1:17 - The RC Car Rabbit Hole\n2:11 - Unboxing the $1100 Car\n2:43 - The Parts List\n3:12 - Wiring Everything Up\n4:00 - Connecting the Servo\n4:18 - Claude Code Setup\n4:49 - Sub-Agent Tip\n5:16 - Steering Works!\n5:20 - The Motor Problem\n5:46 - Building the MCP Server\n6:18 - First MVP Ready\n7:06 - First Wilderness Test\n8:25 - Three Concerns\n8:53 - Fixing the ESC\n9:35 - It Finally Works\n9:51 - Building the Command Center\n10:18 - Adding Vision Movement\n10:45 - Depth Estimation\n11:10 - The Journey Grid Solution\n11:45 - Realizing the Chaos\n12:22 - Indoor Test Run\n13:03 - Reflection\n13:17 - The Final Wilderness Run\n14:01 - What Claude Taught Me\n15:02 - The Ending",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "QsTYFsmCL5E",
        "title": "Atom: The Editor That Accidentally Built Its Own Killer",
        "publishedAt": "5 months ago",
        "durationSeconds": 1279,
        "views": 295036,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In 2015, Atom 1.0 launched as a revolutionary free, open-source code editor built entirely on web technologies. It was the first of its kind—a hackable editor that anyone could customize using HTML, CSS, and JavaScript.\n\nBut buried deep in its codebase was something that would change software development forever and ultimately destroy Atom itself...\n\nWhat started as a simple way to get Atom running on desktop became Electron, a framework now powering some of the most widely used applications on the planet: Slack, Discord, Microsoft Teams, Figma, Notion, and ironically, the very editor that killed Atom... Visual Studio Code.\n\nThis is the story of how a passion project accidentally created a billion-dollar framework, got acquired by its biggest competitor, and died so that its code could live on in everything.\n\nBy: ‪@CodingWithLewis‬ & ‪@cocoasulphur‬ \n\n---\nMY 12K+ DISCORD 💬   / discord  \n\nCONNECT WITH ME ON SOCIAL\n📸 Instagram:   / lewismenelaws  \n\n🎚TikTok:  / lewismenelaws  \n\n🐣 Twitter:   / lewismenelaws  \n\nMy gear 💻 https://liinks.co/lewismenelaws\n---\n\nTIMESTAMPS\n0:00 - Intro\n0:37 - The Bar That Started GitHub\n2:01 - Chris's Dream: A Hackable Editor\n4:25 - The Birth of Atom Shell\n6:22 - \"It Was Just Built to Build Atom\"\n6:30 - The Learn to Code Boom\n7:06 - Atom's Perfect Timing\n8:13 - The Open Source Controversy\n9:52 - Why Atom Shell Was Revolutionary\n11:47 - Electron Is Born\n12:07 - Electron's Fatal Flaw\n13:16 - Microsoft Enters the Chat\n17:04 - The $7.5 Billion Acquisition\n18:23 - A Broken Promise\n19:07 - Atom's Death\n20:05 - The Ghost in Every Cursor",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "udr6CLFERE4",
        "title": "I Only Used the Terminal for 7 Days Straight",
        "publishedAt": "5 months ago",
        "durationSeconds": 1076,
        "views": 47100,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out the BenQ Halo 2 Screenbar: https://benqurl.biz/4iRpOeM\n\nI lived in the Linux terminal for an entire week — no GUI, no apps, just text. After 25 years of staring at screens, Chrome crashed and I saw the chaos of my digital life. I decided to strip my computer down to the absolute basics.\n\nFor 7 days, I replaced my entire workflow with text-based tools—email, notes, task management, even Discord. Here's what I learned about modern technology, Linux, and my relationship with computers.\n\n---\nMY 12K+ DISCORD 💬   / discord  \n\nCONNECT WITH ME ON SOCIAL\n📸 Instagram:   / lewismenelaws  \n\n🎚TikTok:  / lewismenelaws  \n\n🐣 Twitter:   / lewismenelaws  \n\nMy gear 💻 https://liinks.co/lewismenelaws\n---\n\nTIMESTAMPS\n0:00 Intro\n0:16 Why I Did This\n1:01 The Hardware\n1:36 Choosing Linux\n2:12 Installation\n2:59 The Blank Canvas\n3:25 Setting Up Xorg + i3\n4:00 Terminal Emulators (Alacritty)\n5:12 Config Files & Aliases\n5:56 BenQ Screenbar Halo 2\n6:55 The Daily Software Stack\n7:17 Web Browsing (Firefox + Vimium)\n7:59 Email (Neomutt)\n10:32 Note Taking (Neovim)\n13:09 Task Management (Taskwarrior)\n15:09 Other Tools (Discord, Slack)\n15:51 How It Changed Me\n17:30 Outro\n\n#LightMeetsInsight and #BenQScreenBar",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "cjoYPSbzHV0",
        "title": "I Gave This Fish $10,000 to Trade Stocks",
        "publishedAt": "5 months ago",
        "durationSeconds": 880,
        "views": 9079,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Modal: https://modal.plug.dev/mdgDsWp\n\nI spent $10,000 letting fish trade stocks in real-time using computer vision and YOLO object detection. \n\nStarted with birds (lost money), switched to fish, built a democracy voting system, and the results shocked me. Fish collectively made better trading decisions than random chance, pulling 4% profit and nearly matching the S&P 500 with test data… but can it perform in the real world?\n\n---\nMY 12K+  DISCORD 💬\n  / discord  \n\nCONNECT WITH ME ON SOCIAL\n📸 Instagram: \n  / lewismenelaws  \n\n🎚TikTok: \n  / lewismenelaws  \n\n🐣 Twitter: \n  / lewismenelaws  \n\nMy gear 💻\nhttps://liinks.co/lewismenelaws\n---",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "RU_ZcKzFdG0",
        "title": "Don’t Use Python Without These 8 Tools",
        "publishedAt": "6 months ago",
        "durationSeconds": 771,
        "views": 25976,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build MCP Servers with Arcade: https://arcade.dev.plug.dev/L307NcA\n\nPython 3.14 is here. Before you write a single line of code, check out these tools that have made Python an incredible tool to develop with.\n\nThese are the 8 essential tools that every modern Python developer should be using in 2025. From lightning-fast package managers to intelligent type checkers, this is your new Python toolkit.\n\n---\nMY 12K+  DISCORD 💬\n  / discord  \n\nCONNECT WITH ME ON SOCIAL\n📸 Instagram: \n  / lewismenelaws  \n\n🎚TikTok: \n  / lewismenelaws  \n\n🐣 Twitter: \n  / lewismenelaws  \n\nMy gear 💻\nhttps://liinks.co/lewismenelaws\n---\n\nTIMESTAMPS\n0:00 Intro\n0:12 uv package manager (and more)\n2:21 Ruff (linter and formatter)\n3:49 Arcade.dev (MCP Servers)\n5:02 Type Checkers (couple options)\n7:32 PyTest\n9:05 Pydantic\n10:17 Extra 1\n10:57 Extra 2\n11:33 Extra 3 (wow!)\n12:11 Python in 2026",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wBOW86q1Vlo",
        "title": "The Most Downvoted Stack Overflow Posts of All Time",
        "publishedAt": "6 months ago",
        "durationSeconds": 553,
        "views": 196444,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "I dramatized the most downvoted posts in Stack Overflow history, and they're absolutely ridiculous.\n\nFrom someone suggesting to click \"Send\" 100,000 times, to telling people to just change their Windows settings, to epic edit wars over greetings - these posts show what NOT to do on Stack Overflow.\n\nAll dialogue is taken directly from actual Stack Overflow posts and comments.\n\nVOICES:\nVoice A - me lol\nVoice B -  ⁨‪@cocoasulphur‬ \nVoice C-  ‪@dreamsofcode‬ \nVoice D -  ⁨‪@SamMeechWard‬ \nVoice E -  ⁨‪@AZisk‬ \nVoice F -  ⁨‪@FaceDevStuff‬ \nVoice G -  ‪@cody_codes_youtube‬ \n\n---\nMY 12K+  DISCORD 💬\n  / discord  \n\nCONNECT WITH ME ON SOCIAL\n📸 Instagram: \n  / lewismenelaws  \n\n🎚TikTok: \n  / lewismenelaws  \n\n🐣 Twitter: \n  / lewismenelaws  \n\nMy gear 💻\nhttps://liinks.co/lewismenelaws\n---\n\nTIMESTAMPS\n0:00 How to Send 100,000 Emails Weekly?\n1:13 JavaScript Performance?\n2:56 How to remove one style element with Regex?\n4:55 How to change an elements class with JavaScript?\n5:30 SecurityError\n6:25 Clear a terminal screen for real?\n7:13 Changing the color of the title bar in WinForm?\n8:54 The Voices and Outro",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "07YLWTDdStg",
        "title": "9 AI Models Built the Same Game (Results Were Unexpected)",
        "publishedAt": "6 months ago",
        "durationSeconds": 553,
        "views": 27128,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn more about Windows AI Foundry: https://aka.ms/WindowsAIFoundry\nGet started with Foundry Local! https://aka.ms/Git/FoundryLocal\nWindows ML is now generally available! https://aka.ms/WinML_GA...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EkadHKoGriE",
        "title": "Human Developer vs AI Agent (Actual Test)",
        "publishedAt": "7 months ago",
        "durationSeconds": 584,
        "views": 12758,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try out Replit Agent 3: https://dub.sh/0V9qw89\n\nI competed against an AI Agent to build the exact same app. A dev portfolio generator. Same features, same tech stack, same 2-hour window. Here's...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fGmww9ifU4k",
        "title": "Programming on a Smartphone for 7 Days... Actually Works?",
        "publishedAt": "7 months ago",
        "durationSeconds": 613,
        "views": 51673,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Checkout Qualcomm AI Hub to optimize AI Models for your device: https://aihub.qualcomm.com/\n\nCan you actually code on a smartphone? I decided to find out by ditching my laptop for an entire...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WFpEvs2sjgs",
        "title": "The Incredible Engineering That Saved Slack During COVID",
        "publishedAt": "7 months ago",
        "durationSeconds": 1107,
        "views": 75640,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How Slack went from thousands to 2.3 MILLION database queries per second - without crashing once.\n\nWhen COVID hit in March 2020, the entire world went remote overnight. For Slack, this meant...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9Ej9JUnFCO0",
        "title": "How the New York Times Beat Paywall Hackers For Good",
        "publishedAt": "8 months ago",
        "durationSeconds": 691,
        "views": 68912,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ever hit that NYT paywall at the worst possible moment? It's not random - it's an AI making calculated decisions about YOU.\n\nThe NYT's Dynamic Meter uses machine learning to decide exactly...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xg45b8UXoZI",
        "title": "I Fixed My ADHD with a Receipt Printer",
        "publishedAt": "9 months ago",
        "durationSeconds": 553,
        "views": 653497,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try out Arcade.dev: https://arcade.dev.plug.dev/ZNAVlgk\n\nIn this video, I show how I transformed a $30 thermal receipt printer into a game-changing productivity tool that helped me manage my...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "T5gTIFhPDaY",
        "title": "3 Insane Algorithms Netflix Uses to Scan BILLIONS of Frames",
        "publishedAt": "10 months ago",
        "durationSeconds": 928,
        "views": 75127,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Netflix analyzes BILLIONS of frames from every show and movie using cutting-edge computer vision. Here's what they can do with it that you never knew about.\n\nIn this video, I break down 3 mind-blow...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Stcqh4BqlIY",
        "title": "What Happens When 20 AI Models Play Wordle?",
        "publishedAt": "10 months ago",
        "durationSeconds": 731,
        "views": 30166,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Browserbase: https://browserbase.plug.dev/3bPXfLG\n\nAI is supposedly taking over everything, right? Chess, coding, probably my job... but can they handle a simple word game? I decided to...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LSQstBriMD8",
        "title": "I Built an AI That Knows 200,000 Game Characters",
        "publishedAt": "10 months ago",
        "durationSeconds": 572,
        "views": 11467,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn More about the Hackathon I am juding with NVIDIA: https://developer.nvidia.com/g-assist-hackathon/join \n\nEver jump back into a story-driven game and realize you’ve forgotten who everyone...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AuodUoWEWw0",
        "title": "How Much Does it Cost to Scale an App to 100,000 Users?",
        "publishedAt": "11 months ago",
        "durationSeconds": 809,
        "views": 86780,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Host your applications using Sevalla: https://sevalla.com/?utm_source=youtube&utm_medium=video&utm_campaign=lewis_load_test\n\nSo I built a Twitter clone and decided to see what happens when...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kORQK5NyXqo",
        "title": "I Revisited My Project That Broke YouTube Shorts",
        "publishedAt": "11 months ago",
        "durationSeconds": 639,
        "views": 60366,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Junie, your coding agent by JetBrains. Try it in JetBrains IDEs under the single AI subscription: https://jb.gg/explore_junie\n\n\nSo uh... three years ago I may have accidentally created one...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0MEHvqbgTWc",
        "title": "40 Programming Projects That Will Make You a Better Developer",
        "publishedAt": "1 year ago",
        "durationSeconds": 1018,
        "views": 67656,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Users will get double credits upon signing up using your link: https://lovable.dev/lewis\n\nThis video covers 40 practical programming projects that will genuinely improve your development skills....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "SVf3eR0wBoo",
        "title": "How We Made the \"My Bank wanted $17.83 So I Used Python Instead\" Video",
        "publishedAt": "1 year ago",
        "durationSeconds": 544,
        "views": null,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "hey members! This is the first video up that's exclusive to channel members. Thank you so much for supporting! :)\n\nWill and I go through one of our most popular videos yet that was an actual...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lhjgj45x66Y",
        "title": "Google Refused to Add this Feature So I Did It Myself",
        "publishedAt": "1 year ago",
        "durationSeconds": 643,
        "views": 74456,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out GoLand: https://jb.gg/Try_GoLand\nGet 3 months to master GoLand for free with the code \"GoWithLewis\": https://jb.gg/Redeem\n\nI wanted a simple hotkey feature for Google Tasks that didn't...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "NwZ26lxl8wU",
        "title": "How Notion Handles 200 BILLION Notes (Without Crashing)",
        "publishedAt": "1 year ago",
        "durationSeconds": 603,
        "views": 394941,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Ever wonder how Notion handles your notes when 100 million other people are using it too? \n\nIn this video, I break down Notion's incredible engineering journey from a single database to an...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fv_MPosiINw",
        "title": "How Discord Handled the Worlds Largest Server",
        "publishedAt": "1 year ago",
        "durationSeconds": 456,
        "views": 164724,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this video, we find out how Discord handled the worlds largest discord server... Which had over 2 MILLION active users. 🚀\n\nWe go through:\n\n- How they found critical issues slowing performance...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "GCffvbfnnq0",
        "title": "This App Wanted $700 So I Built it Myself with Python",
        "publishedAt": "1 year ago",
        "durationSeconds": 452,
        "views": 110598,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Download PyCharm now. Free forever, plus one month of Pro included: https://jb.gg/Check_out_PyCharm\n\nWhen the best software costs $700, you rebuild it with Python instead. 🐍\n\nIn this video,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "AJRGxd9cVaY",
        "title": "I Built the Same App in ALL Versions of PHP (1995-2025)",
        "publishedAt": "1 year ago",
        "durationSeconds": 748,
        "views": 206795,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Use promo code 'PhpStormwithLewis20' at checkout to SAVE 20% on an annual individual PhpStorm license: https://jb.gg/Check-out-PhpStorm (Valid until June 16, 2025).\n\nOver 30 years ago, PHP...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nYlv0I9Ips0",
        "title": "I Took a Basic Todo App and Made It Cost $2000/Month",
        "publishedAt": "1 year ago",
        "durationSeconds": 655,
        "views": 166539,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Download Docker Desktop: https://dockr.ly/4fUbX5h\nTry Docker Build Cloud: https://dockr.ly/3VmXab4\n\nWe all know what a $0/month app looks like. Simple, clean, and probably sitting on your computer...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lg1inngHGqQ",
        "title": "The 2 Types of Programmers",
        "publishedAt": "1 year ago",
        "durationSeconds": 515,
        "views": 117728,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "There are two types of programmers that you'll encounter in your career. \n\nYou have the \"craft-based\" programmers and the \"result-based\" programmers. In this video, I will dissect both and...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 2,
      "uploadsLast90d": 5,
      "uploadCadenceWeekly": 0.39,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 85335,
      "viewsPerVideoP90Last90d": 209741,
      "viewVelocityTrend": "stable"
    },
    "performanceBaseline": {
      "p50Views": 85335,
      "p90Views": 209741,
      "p99Views": 209741,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 1,
      "sponsorBrandsDetected": [
        "Anthropic"
      ],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 20,
      "lastSponsoredVideoDate": "2026-02-13",
      "detectionDetail": [
        {
          "brand": "Anthropic",
          "videoId": "jBpQiv-ZlVM",
          "confidence": 0.7,
          "evidence": "description: Sponsored by Anthropic ",
          "timestamp": null,
          "detectedAt": "2026-05-14T00:52:48.341Z"
        }
      ]
    },
    "sponsorshipMaturity": {
      "tier": "occasional",
      "evidence": {
        "sponsoredVideoCountLast90d": 1,
        "uniqueSponsorBrandsLast90d": 1,
        "firstSponsoredVideoDate": "2026-05-14"
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": "[REDACTED]",
      "businessEmailSource": "channel-about-section",
      "businessEmailMxValid": true,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "github.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "high",
      "components": {
        "businessEmailPresent": true,
        "businessEmailValid": true,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": true,
        "affiliateLinksPresent": false
      },
      "interpretation": "Will likely respond to sponsorship outreach: business email validated + active sponsor history + external website live."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.77,
        "evidenceVideoIds": [
          "lSVgeMoXJTs",
          "sEQ1ecQq0HI",
          "JJZQr2AuEI0",
          "Pq3205RoOsI",
          "jBpQiv-ZlVM"
        ]
      },
      {
        "label": "discord",
        "share": 0.37,
        "evidenceVideoIds": [
          "lSVgeMoXJTs",
          "sEQ1ecQq0HI",
          "JJZQr2AuEI0",
          "Pq3205RoOsI",
          "jBpQiv-ZlVM"
        ]
      },
      {
        "label": "twitter",
        "share": 0.37,
        "evidenceVideoIds": [
          "lSVgeMoXJTs",
          "sEQ1ecQq0HI",
          "JJZQr2AuEI0",
          "Pq3205RoOsI",
          "jBpQiv-ZlVM"
        ]
      },
      {
        "label": "12k",
        "share": 0.33,
        "evidenceVideoIds": [
          "lSVgeMoXJTs",
          "sEQ1ecQq0HI",
          "JJZQr2AuEI0",
          "Pq3205RoOsI",
          "jBpQiv-ZlVM"
        ]
      },
      {
        "label": "connect",
        "share": 0.33,
        "evidenceVideoIds": [
          "lSVgeMoXJTs",
          "sEQ1ecQq0HI",
          "JJZQr2AuEI0",
          "Pq3205RoOsI",
          "jBpQiv-ZlVM"
        ]
      },
      {
        "label": "note-taking apps",
        "share": 0.03,
        "evidenceVideoIds": [
          "udr6CLFERE4"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "B",
      "rationale": "business email validated.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "moderate",
        "businessContactSignal": "strong",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "occasional"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 64,
      "reason": "validated business email",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.5
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.95
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.55
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 1,
      "level": "high",
      "coldStart": false
    },
    "whyThisMatters": "validated business email. Channel is in the active outreach window.",
    "whyNow": "Last sponsored video 90 days ago — within typical sponsorship-decision lookback for similar creators.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Coding with Lewis — 0.7M subs, B-tier sponsorship readiness, high contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": true,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 64,
      "readyForOutreach": false,
      "blockers": [],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.46,
      "urgency": 0,
      "noiseRisk": 0
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": {
      "isValidFormat": true,
      "canonical": "sydney@lewismenelaws.com",
      "domain": "lewismenelaws.com",
      "lineType": "corporate",
      "mxValid": true,
      "confidence": 0.9,
      "originalInput": "sydney@lewismenelaws.com",
      "email": null
    },
    "allEmailValidations": [
      {
        "isValidFormat": true,
        "canonical": "sydney@lewismenelaws.com",
        "domain": "lewismenelaws.com",
        "lineType": "corporate",
        "mxValid": true,
        "confidence": 0.9,
        "originalInput": "sydney@lewismenelaws.com",
        "email": null
      }
    ],
    "contactabilityScore": {
      "score": 88,
      "level": "high",
      "components": {
        "presence": 25,
        "sourceQuality": 18,
        "validationQuality": 18,
        "identityStrength": 14,
        "freshness": 8,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "email",
      "secondary": "agency-form",
      "reason": "Validated business email + active sponsor history — email-first maximises response rate."
    },
    "sequenceFit": {
      "directOutreachAllowed": true,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "channel-about",
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.88
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.88,
      "gap": 0.06,
      "howToClose": [
        "Run ryanclinton/person-enrichment-lookup against 'sydney@lewismenelaws.com' to identify the inbox owner."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "high",
      "score": 0.85,
      "factors": [
        "business-email-validated",
        "external-website-active",
        "corporate-email-domain"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "occasional sponsor history + validated corporate business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:occasional",
        "email-line-type:corporate",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [],
      "safeChannels": [
        "email",
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [
      {
        "email": "[REDACTED]",
        "rank": 1,
        "reason": "corporate-domain email",
        "role": "business"
      }
    ],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": true,
      "requiresEnrichment": false,
      "priorityQueue": "medium"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "B-tier readiness — nurture or enrich before outreach.",
      "appliedRules": [
        "contactability:high",
        "lastSponsored<90d"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "late",
      "reason": "Last sponsored video 90 days ago; past typical 14-30d decision-cycle for similar creators.",
      "decayRisk": 0.9
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 76,
      "reasons": [
        "Validated business email (MX confirmed)",
        "Active sponsor history within last 90d (1 videos)",
        "Low confidence-conflict count in scoring trace"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "dc3d5f34dbd6f7b0ca1cd17f62597264ed335e0b21b3bdb7d2500d9831d638c3",
      "inputsHash": "d504b0b0d265011235f763cb38f589e41b3c610f00fb7742b678281825f92f31",
      "rulesApplied": [
        "business-email-validated",
        "sponsorship-history-occasional",
        "growth-velocity-stable",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:47.517Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "skipped",
    "eventId": "701669ec79132a4f26f653f5605be7a924b1611afdec16f9c6250412fbaebbbf",
    "channelHandle": "@javascriptteacher285",
    "channelId": "UC8RekRn3kbAaK7_UHo7Trhw",
    "subscribers": 8,
    "skipReason": {
      "source": "quality-gate",
      "rules": [
        "minSubscribers<50000"
      ],
      "message": "Channel filtered out by quality gate: minSubscribers<50000. No PPE event charged."
    },
    "summary": "Skipped @javascriptteacher285 — failed gate: minSubscribers<50000.",
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:48.923Z"
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "b36011478b6e6022a9019b5abcebe905e076c4060a88fc5f9915a7cf51db3d6c",
    "channelId": "UC8p19gUXJYTsUPEpusHgteQ",
    "channelHandle": "@ExcelGoogleSheets",
    "channelName": "Learn Google Sheets & Excel Spreadsheets",
    "channelUrl": "https://www.youtube.com/@ExcelGoogleSheets",
    "description": "Google Sheets Tutorials & Excel Tutorials - Comprehensive channel covering Google Sheets & Excel functions, tricks & tips.",
    "joinDate": null,
    "location": null,
    "subscribers": 294000,
    "totalVideos": 499,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/PaX6BbL7MsBl1SxDW_hCx6Vp8wMCm3k9FSXMpgBvI5a91pkKV3bvXg08QU5oI13lW8KSSvEG3w=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "paypal.com",
        "url": "https://www.paypal.com/donate/?hosted_button_id=SAH4HWG6M7G86"
      },
      {
        "platform": "chicagocomputerclasses.com",
        "url": "http://www.chicagocomputerclasses.com/youtube-learn-google-spreadsheets/"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/Get__ItDone"
      },
      {
        "platform": "eepurl.com",
        "url": "http://eepurl.com/hwyGg1"
      }
    ],
    "recentVideos": [
      {
        "videoId": "xVf7_b0jPXk",
        "title": "REGEX for Excel & Google Sheets: (REGEXEXTRACT + AI Regex)",
        "publishedAt": "8 months ago",
        "durationSeconds": 2036,
        "views": 6637,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "New to regular expressions? No problem! This tutorial teaches you REGEXEXTRACT function in Excel & Google Sheets step-by-step. We'll also show you how to use Google AI Studio to create regex patterns.\n\n#excel #googlesheets #regex #regularexpressions  #dataextraction #exceltutorial",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PAcjKYwRX4Q",
        "title": "Excel Pivot Tables with Data Model & Multiple Tables are AWESOME!",
        "publishedAt": "10 months ago",
        "durationSeconds": 851,
        "views": 8435,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Are you ready to take your Excel Pivot Tables to the next level? Tired of wrestling with complex VLOOKUPs, INDEX/MATCH, or merging data just to get all your information into one Pivot Table? This video will transform how you work with data in Excel!\n\nExcel Table videos mentioned:\nBasic Tables    • Excel Tables Tutorial - Dynamic Expandable...  \nAdvanced Tables    • Excel Tables - Formulas, Basic to Advanced  \n\nDiscover the incredible power of Excel's Data Model and learn how to create dynamic, powerful Pivot Tables from multiple tables – without writing a single VLOOKUP! This is the secret sauce that many don't know exists within Excel, enabling you to build robust analytical reports just like in Power BI, right within your familiar spreadsheet environment.\n\nIn this comprehensive tutorial, you'll learn:\nWhat the Excel Data Model is and why it's a game-changer for data analysis.\nHow to import multiple tables (e.g., Transactions, Products, Customers, etc.) into your Data Model.\nThe simple steps to create relationships between your different data tables.\nHow to build a Pivot Table from the Data Model.\n\nTimestamps:\n00:00 Excel Pivot Tables with Data Model & Multiple Tables Overview\n01:36 Create Data Tables\n02:42 Create a Pivot Table with Data Model\n04:31 Create a Relationship Between Tables in Data Model\n07:20 Add More Tables to Data Model\n10:34 Things to Known When You Use Excel Pivot Tables with Data Model\n\nWhether you're analyzing sales, managing HR data, tracking inventory, or building financial reports, leveraging the Data Model with Pivot Tables will unlock new dimensions of insight and efficiency. Stop wasting time merging data and start analyzing it!\n\nWatch now and unleash the true power of Excel Pivot Tables!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "G4D3VGhJjac",
        "title": "Google Sheets Basics A-Z: Introduction to Spreadsheets (Tutorial for Beginners)",
        "publishedAt": "11 months ago",
        "durationSeconds": 3696,
        "views": 21161,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "New to Google Sheets or looking to truly master the foundational skills to boost your productivity? This FULL, comprehensive Google Sheets tutorial is designed specifically for absolute beginners and those wanting to solidify their spreadsheet knowledge!\n\nWe'll go beyond just the very basics and dive into essential functionalities that will empower you to organize, and present your data like a pro. By the end of this video, you'll be confidently navigating Google Sheets and leveraging its most powerful beginner-friendly features.\n\n🔑 What You'll Master in This Full Tutorial:\nUnderstanding Spreadsheets: Learn how to navigate the Google Sheets.\nCreating Layouts & Design: Discover how to make your sheets visually appealing and easy to read by formatting cells with borders, fill colors, and text styling. We'll also cover resizing rows and columns, and merging cells for clean layouts.\nStructuring Data like a Table: Learn best practices for organizing your information efficiently, setting up your data to work like a powerful table.\nCreating Dropdowns (Data Validation): Make data entry a breeze and ensure consistency in your sheets by setting up amazingly dynamic dropdown lists.\nBasic Formulas: Your First Calculations! Get hands-on with essential formulas and functions like SUM.\nSorting Data: Easily arrange your information alphabetically or numerically to find exactly what you need.\nFiltering Data: Discover how to quickly filter your data to show only the information that matters most.\nGrouping Data: Group your table by column values for a cleaner view.\nAnd so much more about Google Sheets.\n\n00:00 Introduction to Google Sheets\n00:22 Starting a New Spreadsheet\n01:50 Setting Up a Cleaning Business Spreadsheet\n04:06 Resizing Columns\n06:15 Converting Data to a Table\n07:46 Setting Up Data Types\n08:50 Creating Dropdowns\n10:24 Adding New Rows\n11:13 Modifying Dropdowns\n13:37 Allowing Multiple Selections in Dropdowns\n14:31 Using the Date Picker\n15:13 Moving Columns\n15:54 Adding New Columns\n16:41 Using Checkboxes\n18:16 Deleting Rows\n18:43 Undoing Actions\n19:02 Adding a \"Notes\" Column\n19:52 Adjusting Table Formatting\n21:42 Sorting Data\n22:39 Filtering Data\n23:58 Grouping Data\n27:13 Saving and Exiting Grouped Views\n28:10 Adding a \"Rate\" Column\n29:13 Writing Basic Formulas (Multiplication)\n32:41 Basics of Formula Logic (Operators)\n35:28 Order of Operations in Formulas\n38:18 Cell References vs. Hardcoding Numbers\n40:10 Applying Formulas to Multiple Rows\n42:14 Summing a Whole Column\n49:04 Formatting Cells Outside a Table\n51:20 Deleting and Duplicating Sheets\n52:08 Creating Dynamic Dropdowns\n58:54 Merging and Unmerging Cells for Titles\n\nWhether you're organizing a personal budget, tracking project tasks, managing a small business, or just want to gain an essential digital skill for career advancement, this tutorial will set you up for success in Google Sheets.\n\n👍 If this full tutorial helped you conquer Google Sheets, please give it a thumbs up and subscribe for more in-depth guides! Let me know in the comments what topics you'd like to see next!\n\n#GoogleSheets #SpreadsheetBasics #GoogleSheetsTutorial #IntroductionToSpreadsheets #LearnGoogleSheets #GoogleWorkspace #Formulas",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "s191R6-lptg",
        "title": "Repeating Number Sequence - Excel & Google Sheets",
        "publishedAt": "11 months ago",
        "durationSeconds": 697,
        "views": 4633,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Create a Repeating Number Sequence in Excel & Google Sheets.\n\n#excel #googlesheets",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "yNRZbtfxBDk",
        "title": "AppSheet Drop-down List & Dependent Dropdown Lists - Google Sheets, Mobile (iPhone & Android)",
        "publishedAt": "1 year ago",
        "durationSeconds": 1468,
        "views": 15994,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This tutorial walks you through creating and implementing dropdown lists & dependent dropdown lists in your AppSheet apps using Google Sheets as your data source. Whether you're on your iPhone, Android, or any other device, this method works seamlessly!\n\nIn this video, you'll learn how to:\nCreate basic dropdown lists: Quickly add predefined options to your AppSheet forms.\nConnect AppSheet to Google Sheets: Establish a reliable data source for your dropdown lists.\nImplement dependent dropdown lists: Create dynamic dropdowns where the options in one list depend on the selection in another (e.g., Country - Region - City).\nConfigure your Google Sheets: best practices for structuring your data for use in AppSheet.\n\nWhy use dropdown lists in AppSheet?\nImproved Data Quality: Eliminate typos and ensure consistent data entry.\nFaster Data Entry: Users can quickly select from predefined options.\nSimplified User Experience: Make your app more intuitive and user-friendly.\n\nDon't forget to:\n    👍 Like this video if you found it helpful!\n    💬 Leave a comment with your questions or suggestions!\n\n#AppSheet #GoogleSheets #NoCode #MobileApps #DropdownList #DependentDropdown #iPhone #Android #Tutorial #AppDevelopment #Automation #LowCode #GoogleWorkspace #DataCollection #DataEntry",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ttO1rKwHXIc",
        "title": "Receipt App - iPhone or Android, AppSheet, Google Sheets & Google Drive",
        "publishedAt": "1 year ago",
        "durationSeconds": 1640,
        "views": 12317,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Track Your Expenses Like a Pro with This Receipt App! (Built with AppSheet, Google Sheets & Google Drive compatible with iPhone or Android).\n\nStop drowning in paper receipts! This video shows you how to build a powerful and customizable receipt tracking app using AppSheet, Google Sheets, and Google Drive that's compatible with iPhone or Android.\n\nIn this tutorial, you'll learn how to:\n1. Create a user-friendly mobile app interface with AppSheet - No coding required!\n2. Design a Google Sheet to store and organize your receipt data effectively.\n3. Automatically save receipt images to Google Drive for easy access and organization.\n4. Capture essential receipt information like picture, date, amount, notes and any other information you need.\n5. Customize your app to fit your specific needs and track expenses the way you want.\n\nThis app is perfect for:\nFreelancers and small business owners: Simplify expense tracking for taxes and accounting.\nIndividuals: Gain control over your personal finances and track spending efficiently.\nAnyone tired of losing receipts: Say goodbye to paper clutter and hello to digital organization!\n\nHere's what you'll need:\nA Google Account (Gmail)\nA Google Drive Account\nA willingness to learn!\nWatch the video to learn how to build your own receipt app step-by-step!\n\n#AppSheet #NoCode #GoogleSheets #GoogleDrive #ExpenseTracker #ReceiptApp #Productivity #DIY #Automation #SmallBusiness #PersonalFinance #AppDevelopment #FreeApp #Tutorial",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hGEwBEPyBwE",
        "title": "Python Data Analysis - Gemini AI & Google Colab Intermediate Tutorial",
        "publishedAt": "1 year ago",
        "durationSeconds": 2392,
        "views": 8252,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Level up your Python data analysis skills! 🚀 This intermediate tutorial dives into using Google's Gemini AI directly within Google Colab to supercharge your workflow.\n\nPython Data Analysis with Gemini AI & Google Colab Basics    • Python Data Analysis with Gemini AI  \nData used: https://www.ers.usda.gov/data-product...\n\nLearn how to leverage AI for code generation, explanation, and insights in your data analysis projects. Perfect for those comfortable with Python basics and looking to integrate cutting-edge AI tools.\n\n#Python #DataAnalysis #GeminiAI #GoogleColab #DataScience #AITutorial #IntermediatePython",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "j4bhmlkpLfc",
        "title": "Python Data Analysis with Gemini AI & Google Colab",
        "publishedAt": "1 year ago",
        "durationSeconds": 2066,
        "views": 42211,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Dive deep into the world of data analysis with Python Pandas, powered by the Gemini AI and the convenience of Google Colab.\n\nData Used: https://data.cityofchicago.org/Transp...\n\nEffortlessly process and analyze large datasets: Discover how Gemini AI can assist in data analysis & save you valuable time and effort. This video will provide you with valuable insights and practical examples on how to harness the combined power of Python, Gemini AI, and Google Colab to unlock insights from your data.\n\n#Python #DataAnalysis #GeminiAI #GoogleColab #AI",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "za-b3_d8A-E",
        "title": "Send Mail Merge Emails using Gmail & Google Sheets",
        "publishedAt": "1 year ago",
        "durationSeconds": 1152,
        "views": 46133,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Send Mail Merge Emails using Gmail & Google Sheets.\n\nDocumentation link used in the video https://developers.google.com/apps-sc...\n\n#googlesheets #gmail \n\n\n*Key Topics:*\n\n1.  *Mail Merge Concept:* Sending personalized emails in bulk using data from Google Sheets and a template created in Gmail.\n2.  *Data Preparation:* Getting the necessary contact information and personalization data into a Google Sheet.\n3.  *Gmail Template Creation:* Setting up a draft email in Gmail to serve as the base template.\n4.  *Placeholders:* Using double curly braces `{{Column Header}}` in the Gmail draft to mark where data from the Google Sheet should be inserted.\n5.  *Apps Script Implementation:* Using Google Apps Script (code provided by Google documentation) to automate the mail merge process.\n6.  *Script Configuration:* Modifying the script to match the specific column names used in the Google Sheet (recipient email, status tracking).\n7.  *Running the Script:* Executing the mail merge via a custom menu added to the Google Sheet.\n8.  *Authorization:* Granting the necessary permissions for the script to access Sheets and send emails via Gmail.\n9.  *Verification:* Checking the sent emails and the status column in the Sheet.\n10. *Dynamic Subject Lines:* Modifying the script and Sheet to create unique subject lines for each email based on data in the Sheet.\n\n*Step-by-Step Process Shown:*\n\n1.  *Get Data:* Generate or input data (First Name, Last Name, Email, Amount, Category) into a Google Sheet. (Used ChatGPT for sample data).\n2.  *Format Data (Optional):* Format columns like 'Amount' to currency.\n3.  *Rename Sheet (Optional):* Change the sheet tab name (e.g., to \"Email Data\").\n4.  *Create Gmail Draft Template:*\nGo to Gmail (same account).\nCompose a new email.\nSet a specific, unique *Subject Line* for the draft (e.g., \"Email Template\") - this is used to identify the template later.\nWrite the email body, including any static text and images.\nReplace specific parts of the body with placeholders matching Sheet column headers (e.g., `Dear {{First Name}} {{Last Name}}, Here is your recent balance: {{Amount}}`).\nClose the compose window, saving it as a draft.\n5.  *Add & Configure Apps Script:*\nIn Google Sheets, go to Extensions - Apps Script.\nName the script project.\nCopy the code provided in the Google documentation link.\nPaste the code into the script editor, replacing the default content.\nModify the `RECIPIENT_COL` variable in the script to match the header of the email address column in your sheet (e.g., change from `\"Recipient\"` to `\"Email\"`).\nCreate a new column in the Sheet (e.g., \"Email Sent\").\nEnsure the `EMAIL_SENT_COL` variable in the script matches this new column header.\n(Optional - for dynamic subjects later): Add a `SUBJECT_COL` variable pointing to the header of your subject column (e.g., `\"Subject\"`).\nSave the script.\n6.  *Run Mail Merge:*\nRefresh the Google Sheet; a \"Mail Merge\" menu should appear.\nEnsure the \"Email Sent\" (or your status) column is empty for rows you want to send.\n(For testing): Change recipient emails to your own email address.\nClick Mail Merge - Send Emails.\nAuthorize the script (first time only), handling the \"unsafe app\" warning if necessary.\nWhen prompted, enter the *exact subject line* of the Gmail draft template created earlier (e.g., \"Email Template\").\nClick OK.\n7.  *Verify Results:*\nCheck the \"Email Sent\" column in the Sheet – it should be populated with timestamps.\nCheck the Gmail inbox for received emails.\nConfirm placeholders are replaced correctly and subject lines are as expected.\n8.  *(Optional) Implement Dynamic Subjects:*\nAdd a \"Subject\" column to the Sheet.\nUse formulas to create dynamic subject lines in that column (e.g., `\"Your Balance is: \" & DOLLAR(D2)`).\nModify the script to point `SUBJECT_COL` to this new header.\nModify the `GmailApp.sendEmail` line to use `row[SUBJECT_COL]` for the subject parameter instead of `msgObj.subject`.\nSave the script, clear the status column, and re-run, verifying the dynamic subjects in the received emails.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ToP8tgfkSnE",
        "title": "Google Sheets Macros & Scripts Supercharged by Chat GPT",
        "publishedAt": "1 year ago",
        "durationSeconds": 575,
        "views": 6749,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Google Sheets Macros & Scripts Supercharged by Chat GPT.\n\n#googlesheets \n\n*Overall Topic:* Enhancing a basic recorded Google Sheets macro using ChatGPT to make it more dynamic and powerful.\n\n*Part 1: Recording a Basic Macro (Manual Steps)*\n\n1.  *Start Recording:* Go to `Extensions - Macros - Record macro`.\n2.  *Add Column:* Create a new column named \"Area Code\".\n3.  *Format Header:* Make the new column's header bold.\n4.  *Add Formula:* Enter a `=LEFT(C2, 3)` formula in the first data row (D2) of the new column to extract the area code from the phone number column (C).\n5.  *Autofill Formula:* Use the suggested autofill (or manually drag down) to copy the formula down the column *for the specific range recorded*.\n6.  *Resize Columns:* Select relevant columns (A-D) and auto-resize them.\n7.  *Format Header Row:* Apply background color (purple) and font color (white) to the entire header row (A1:D1).\n8.  *Apply Borders:* Select the entire data range recorded (e.g., A1:D217) and apply all borders.\n9.  *Final Action:* Click cell A1.\n10. *Save Macro:* Save the recorded steps, naming it \"Macro1\".\n\n*Part 2: Identifying Limitations of the Basic Macro*\n\n1.  *Run on Different Sheet:* Execute the saved \"Macro1\" on a different sheet (\"July\") that has fewer rows than the original sheet (\"March\").\n2.  *Observe Problem:* Notice that while formatting applies, the formula and borders extend down to the original recorded row count (e.g., row 217), not the actual last row of the current sheet. This demonstrates the macro isn't dynamic.\n\n*Part 3: Using ChatGPT to Make the Macro Dynamic (Handling Variable Rows)*\n\n1.  *Access Script:* Go to `Extensions - Apps Script` to open the editor.\n2.  *Copy Code:* Locate and copy the Apps Script code generated for \"Macro1\".\n3.  *ChatGPT Prompt 1:* Paste the code into ChatGPT and ask it to modify the script to work dynamically, regardless of the number of rows (using the sheet's actual `getLastRow`).\n4.  *Apply ChatGPT Code 1:* Replace the original script with ChatGPT's first suggested update.\n5.  *Test & Identify Issue:* Run the updated macro. Observe that borders/formatting might be dynamic now, but the formula autofill might not work correctly (e.g., only fills the first cell or uses the old `autofill` range logic).\n6.  *ChatGPT Prompt 2 (Refinement):* Go back to ChatGPT, explain the formula fill issue, and ask for a fix.\n7.  *Apply ChatGPT Code 2:* Replace the script again with ChatGPT's refined code (which likely uses `setFormula` or `setFormulaR1C1` over the dynamic range instead of `autofill`).\n8.  *Verify Dynamic Rows:* Test the macro on sheets with different row counts (\"May\", \"July\", etc.) to confirm it now correctly formats and applies formulas only to the existing data rows.\n\n*Part 4: Using ChatGPT to Apply Macro to All Sheets*\n\n1.  *Copy Working Code:* Copy the currently working dynamic macro code from Apps Script.\n2.  *ChatGPT Prompt 3:* Paste the dynamic code into ChatGPT and ask it to modify the macro to run on every sheet within the Google Sheet file.\n3.  *Apply ChatGPT Code 3:* Replace the script with ChatGPT's new version, which now includes a loop (`forEach`) iterating through `spreadsheet.getSheets()`.\n4.  *Verify Multi-Sheet Execution:* Run the final \"Macro1\". Check several different sheets in the file to confirm the dynamic formatting and formulas have been applied across all of them.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EzTuZ9wmCss",
        "title": "Excel Macros Supercharged by Chat GPT",
        "publishedAt": "1 year ago",
        "durationSeconds": 759,
        "views": 2179,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Create Excel Macros Supercharged by Chat GPT.\n\n#excel #chatgpt",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "w3mkaI9VejQ",
        "title": "Excel - Link/Reference Other Files (Workbooks, Spreadsheets)",
        "publishedAt": "1 year ago",
        "durationSeconds": 1011,
        "views": 9366,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Excel - Link/Reference Other Files (Spreadsheets, Workbooks) the GOOD way!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "IJHu9IpCunY",
        "title": "Google Sheets - Link Reference Other Sheets (Spreadsheets)",
        "publishedAt": "1 year ago",
        "durationSeconds": 676,
        "views": 16865,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Google Sheets - Link Reference Other Sheets (Spreadsheets, Files, Google Sheets).",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "hqnGizEsWN0",
        "title": "GROUPBY Function - Microsoft Excel",
        "publishedAt": "1 year ago",
        "durationSeconds": 1091,
        "views": 3190,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How to use GROUPBY Function in Microsoft Excel?\n\nLAMBDA function https://youtu.be/uuei1LzZcw0\nPIVOTBY function https://youtu.be/-g9GT9gI730\n\n#excel",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-g9GT9gI730",
        "title": "Create a Pivot Table using PIVOTBY Function in Excel",
        "publishedAt": "1 year ago",
        "durationSeconds": 981,
        "views": 7289,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How to create a Pivot Table using PIVOTBY Function in Excel.\n\nLAMBDA function https://youtu.be/uuei1LzZcw0\nGROUPBY function https://youtu.be/hqnGizEsWN0\n\n#excel",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "05Q5zU7PaXA",
        "title": "XLOOKUP Returns Multiple Columns in Excel & Google Sheets",
        "publishedAt": "1 year ago",
        "durationSeconds": 453,
        "views": 13952,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to XLOOKUP & return multiple columns in Excel & Google Sheets.\n\n#xlookup #vlookup",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "773-wIXDd3Q",
        "title": "Compare Sheets (Tables) in Excel & Google Sheets for Matches",
        "publishedAt": "1 year ago",
        "durationSeconds": 879,
        "views": 7660,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to compare sheets (tables) in Excel & Google Sheets for matching records with or without having a key column. We'll match data in both sheets using matching key column first and then...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "yIiPZtR6r2o",
        "title": "Pivot Table from Multiple Sheets (Tables) in Excel",
        "publishedAt": "1 year ago",
        "durationSeconds": 774,
        "views": 4491,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How to create Pivot Tables from multiple sheets (tabs, tables, worksheets) in Excel?\n\n#pivottables #pivot #excel",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LxfpPzkJe68",
        "title": "Excel - Get Stock History Data",
        "publishedAt": "1 year ago",
        "durationSeconds": 962,
        "views": 3026,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Get Stock History Data in Excel.\nGet real-time stock data to Excel https://youtu.be/CTB-ZL5dgVo",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CTB-ZL5dgVo",
        "title": "Excel - How to Get Stock Market Data",
        "publishedAt": "1 year ago",
        "durationSeconds": 462,
        "views": 7879,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to Get Stock Market Data in Excel.\n\n#excel",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "t2xW_kbTBfc",
        "title": "Google Sheets Multi-Select Dropdowns (Multiple Choice)",
        "publishedAt": "1 year ago",
        "durationSeconds": 854,
        "views": 11484,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How to create multi-select (multiple choice) dropdowns in Google Sheets.\n\n#googlesheets #dropdown #tutorial #sheetsexcellence",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zDQ34UUoDFQ",
        "title": "Google Forms to Google Sheets Tables & Auto-Updating Formulas",
        "publishedAt": "1 year ago",
        "durationSeconds": 968,
        "views": 33778,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How to link Google Forms to Google Sheets Tables & create auto-updating formulas in your spreadsheet when new responses are submitted using the google From.\n\nGoogle Sheets Tables https://youtu.be/L...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EYxCYfsGsFc",
        "title": "IF IFS LET Functions - Excel & Google Sheets",
        "publishedAt": "1 year ago",
        "durationSeconds": 1184,
        "views": 9236,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "IF IFS LET Functions - Excel & Google Sheets\n\n00:00 IF LET functions\n07:40 IFS LET functions\n12:30 LET function with Arrays\n\n#excel #googlesheets",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "U5k6MTAkIng",
        "title": "Pivot Tables in Google Sheets A-Z Tutorial",
        "publishedAt": "1 year ago",
        "durationSeconds": 2524,
        "views": 54064,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Pivot Tables in Google Sheets A-Z.\n\nIn this tutorial we'll cover:\n00:00 How Google Sheets Pivot Tables Work\n03:31 How to Create a Pivot Table in Google Sheets\n15:07 Multiple Value Fields in...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "L9PHJD0Wqfc",
        "title": "Google Sheets Tables & Formulas",
        "publishedAt": "1 year ago",
        "durationSeconds": 982,
        "views": 37355,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how Google Sheets Tables work and how they integrate with formulas in spreadsheets.\n\n#googlesheets #formulas #tables",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6OufZkQur1Y",
        "title": "Chat GPT vs Google Bard for JavaScript, Apps Script Code",
        "publishedAt": "2 years ago",
        "durationSeconds": 1874,
        "views": 18082,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Compare Chat GPT & Google Bard for JavaScript, Apps Script code.\n\n#chatgpt #googlebard #javascript",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "HO1z4k0QuwQ",
        "title": "Automate Google Sheets with Chat GPT Macros & Apps Script",
        "publishedAt": "2 years ago",
        "durationSeconds": 924,
        "views": 89978,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How to automate Google Sheets using  Apps Script macros generated by with Chat GPT?\n\n#googlesheets #chatgpt #appsscript",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "yoh2eoezsHs",
        "title": "Combine Data/Sheets in Excel & Google Sheets",
        "publishedAt": "3 years ago",
        "durationSeconds": 1674,
        "views": 16479,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Combine Data/Sheets in Excel & Google Sheets.\n\n00:00 Combine Data/Sheets in Excel & Google Sheets\n00:25 VSTACK & HSTACK functions\n05:35 Combine Ranges with Dynamic Updates in Excel & Google...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lW1Csmvk7rQ",
        "title": "How to Link to Other Spreadsheets (Files) in Excel & Google Sheets",
        "publishedAt": "3 years ago",
        "durationSeconds": 1294,
        "views": 23973,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to link to (refer to) data form other spreadsheets (files) in Excel & Google Sheets in a super dynamic way.\n\n#excel #googlesheets #sheetsexcellence",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LWEQkuP0g5Q",
        "title": "Google Sheets Links",
        "publishedAt": "3 years ago",
        "durationSeconds": 574,
        "views": 57580,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Learn how to create links in Google Sheets. We'll use the conventional way & HYPERLINK function methods.\n\n#googlesheets #tutorial",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "paypal.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "google",
        "share": 0.73,
        "evidenceVideoIds": [
          "xVf7_b0jPXk",
          "G4D3VGhJjac",
          "s191R6-lptg",
          "yNRZbtfxBDk",
          "ttO1rKwHXIc"
        ]
      },
      {
        "label": "sheets",
        "share": 0.67,
        "evidenceVideoIds": [
          "xVf7_b0jPXk",
          "G4D3VGhJjac",
          "s191R6-lptg",
          "yNRZbtfxBDk",
          "ttO1rKwHXIc"
        ]
      },
      {
        "label": "excel",
        "share": 0.5,
        "evidenceVideoIds": [
          "xVf7_b0jPXk",
          "PAcjKYwRX4Q",
          "s191R6-lptg",
          "EzTuZ9wmCss",
          "w3mkaI9VejQ"
        ]
      },
      {
        "label": "create",
        "share": 0.47,
        "evidenceVideoIds": [
          "xVf7_b0jPXk",
          "PAcjKYwRX4Q",
          "s191R6-lptg",
          "yNRZbtfxBDk",
          "ttO1rKwHXIc"
        ]
      },
      {
        "label": "googlesheets",
        "share": 0.43,
        "evidenceVideoIds": [
          "xVf7_b0jPXk",
          "G4D3VGhJjac",
          "s191R6-lptg",
          "yNRZbtfxBDk",
          "ttO1rKwHXIc"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Wednesday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "limited sponsorship signals (never maturity, low contactability).",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 32,
      "reason": "tier C composite — weak signal mix",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "Tier C — composite signal mix is never sponsor history, weak contact.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Learn Google Sheets & Excel Spreadsheets — 0.3M subs, C-tier sponsorship readiness, low contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 32,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.78,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "b36011478b6e6022a9019b5abcebe905e076c4060a88fc5f9915a7cf51db3d6c",
      "inputsHash": "f346a561a07d12074ca57beab569820326f8467ecd0e86c0eeb4fd72913f959b",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:50.364Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "34c15b51bc18cd911e72cdee18ac963cce68e0384da9d0874dabd4afe50477f2",
    "channelId": "UCeVMnSShP_Iviwkknt83cww",
    "channelHandle": "@CodeWithHarry",
    "channelName": "CodeWithHarry",
    "channelUrl": "https://www.youtube.com/@CodeWithHarry",
    "description": "Code With Harry is my attempt to teach basics and those coding techniques to people in short time which took me ages to learn.\nAt Code With Harry, I provide a quick and to the point demo along with resources of anything and everything I teach. Source code and other resources are hosted on my website CodeWithHarry.com. I provide source code(if any) in the description of every video.\nQuality programming videos in Hindi :)\nBusiness enquiries: harry@codewithharry.com",
    "joinDate": null,
    "location": null,
    "subscribers": 9640000,
    "totalVideos": 2500,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_kX3sdbuu3KFmRPsmlu0R5Rx_BhpxwupjtvJmkEdNfla7w=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "codewithharry.com",
        "url": "https://www.codewithharry.com/courses/the-ultimate-job-ready-data-science-course"
      },
      {
        "platform": "goharry.in",
        "url": "https://goharry.in/python"
      },
      {
        "platform": "codewithharry.com",
        "url": "http://www.codewithharry.com"
      },
      {
        "platform": "facebook",
        "url": "https://www.facebook.com/CodeWithHarry"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/codewithharry"
      }
    ],
    "recentVideos": [
      {
        "videoId": "G8-6rr3gTj0",
        "title": "I Tried Replit Agent 4 - Is It Worth the Hype?",
        "publishedAt": "1 month ago",
        "durationSeconds": 1003,
        "views": 95436,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Agent 4 - https://replit.com/refer/codewithharry\nAgent 4 is Replit’s newest AI building agent that lets you plan, design, and build at the same time. Instead of waiting for code to finish before moving forward, you can run multiple agents in parallel, iterate on designs in an infinite canvas, and ship full projects faster.\n\nWhen you sign up and upgrade using my link:\n• You get $10 in Replit credits\n• I get $10 in credits\n\n➡️ Download Notes and CheatSheets: https://www.codewithharry.com/notes/\n➡️ Udemy Python Course: https://goharry.in/python\n➡️ Checkout Data Science The Ultimate Job Ready Data Science Course: https://www.codewithharry.com/courses...\n➡️ Data Science (International Students): https://buy.stripe.com/9B65kF3790jS2k...\n➡️ Career Advice:\nIf you are into college and C/C++/Java is being taught, please continue with it. Here are my respective videos/playlists:\nLearn C Programming:    • C Language Tutorial for Beginners (With No...  \nLearn C++ Programming:    • C++ Tutorials In Hindi   \nLearn Java Programming:    • Java Tutorials For Beginners In Hindi  \n\nBut if you are not in college and want to learn programming, then I would suggest you to start with Python.  \n\nAlso if you are a beginner and want to learn programming, start with Python. It is beginner-friendly and has a large community for support and a lot of jobs. If you're serious start with my Udemy course in English. Its updated + has a lot of projects. Here is the discounted link which will get you this course for less than ₹400-500. I request you to leave a review if you have enrolled: \nUdemy Course: https://goharry.in/python\n\nAfter you finish this course, you can start with Data Science. It is a very profitable field to get into and has a lot of job opportunities. You can learn Data Science through my \"Ultimate Job Ready Data Science Course\". It is a complete course that covers everything you need to know to get a job in Data Science. Here is the discounted link to the course that will get you this course for ₹2899:\nData Science Course: https://www.codewithharry.com/courses...\n\nIf you are looking for free resources to learn Python, you can start with my Python Course on YouTube. It is a complete course that covers everything you need to know to become a Python developer. Its Free and you can access it here:\n10 Hour Long Python Course (VS Code):    • Python Tutorial For Beginners in Hindi | C...  \n100 Days of Code Playlist that uses Replit:    • Python for Beginners (Full Course) | #100D...  \n\nIf you want to learn web development, you can start with my Sigma Web Development Course. It is a complete course that covers everything you need to know to become a web developer. Its Free and you can access it here:\nWeb Development Course:    • Sigma Web Development Course - Web Develop...  \n\nIf you want to learn Data Structures and Algorithms, you can start with my Data Structures and Algorithms Course. It is a complete course that covers everything you need to know to become a good programmer. Its Free and you can access it here:\nData Structures and Algorithms Course:    • Data Structures and Algorithms Course in H...  \n\n➡️ Other Tutorials:\nWordpress[3.2 Hr]:   • How To Make a WordPress Website | Wordpres...  \nAngular[2 Hr]:   • Angular Tutorial in Hindi  \nGUI Development with Python:    • Python GUI: Tkinter Tutorial In Hindi  \nLinux[1 Hr]:   • Linux Tutorial For Beginners in Hindi  \n\n➡️ More Advise from Harry:\nMany people say that in the AI era , programming is dead. But I don't think so. AI is a tool that can help you in your programming journey. But dont overuse it in the  beginning. Try to learn basics first!\nAI can help you write better code, debug your code, and even help you learn new programming languages. So don't be afraid of AI, embrace it and use it to your advantage. Talk to ChatGPT daily and you will realize how quickly you can learn new things and build software. What others think is a disadvantage will become your advantage.\n\n➡️ Hosting\nIf you want to host a website on a VPS and get $200 in credits, use my DigitalOcean Link\nGet Free 200$ DigitalOcean Credits here: https://m.do.co/c/2f2aa100b7ee\n\n➡️ Follow Me On Social Media\n► Website (Created Using Next.js): https://www.codewithharry.com\n► Facebook:   / codewithharry  \n► Instagram:   / codewithharry   \n► Twitter:   / codewithharry  \n► English channel:    / @programmingwithharry  \nComment \"#HarryBhai\" if you read this 😉😉",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YBB3GbluHjA",
        "title": "Learn Coding & Get a Job (in 2026) 🔥",
        "publishedAt": "2 months ago",
        "durationSeconds": 1157,
        "views": 397992,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Checkout Bluehost: https://www.bluehost.com/vps-hosting?...\n\nData Analytics Course: https://www.codewithharry.com/courses...\nData Science Course: https://www.codewithharry.com/courses...\n\n🕑 TimeStamps\n00:00 Introduction\n01:03 Is Coding Dead?\n02:37 What Exactly Is Coding?\n03:37 Is a Degree Required?\n07:33 How to Start?\n12:15 Why You Shouldn't Do Android Development\n14:30 You should go for Short-Term Plans\n15:06 AI and Other Tools\n16:04 Git & GitHub\n16:31 How to Make Money and Get a Job\n19:01 Conclusion\n\n\nPython Roadmap:    • Complete Python Programming Roadmap (Zero ...  \n100 Days of Code:    • Python for Beginners (Full Course) | #100D...  \nPython in One Video:    • Python Tutorial For Beginners in Hindi | C...  \n\nUdemy C Course: https://goharry.in/clang\nC In One Video:    • C Language Tutorial for Beginners (With No...  \n\nUdemy Web Development Course: https://goharry.in/webdev\nWeb Development Roadmap:    • Web Development Roadmap 2026 (No BS Guide!)  \nHTML in One Video:    • HTML Full Course (in Hindi)  \nSigma Web Dev Playlist:    • Sigma Web Development Course - Web Develop...  \n\n\n--------------------------- PROMPTS DISCUSSED IN THE VIDEO ---------------------------\n\nYou are a senior software engineer who teaches using the Socratic method.\n\nRules:\nNever give full answers immediately.\nAsk guiding questions first.\nHelp me discover concepts myself.\nIncrease difficulty gradually.\nIf I struggle, give hints instead of solutions.\n\nTopic: Python\n\nStart by assessing my current level with 3 questions.\n\n\n---------------------------------------------------------------------------------------------------------\n\nYou are my programming tutor.\n\nFor every topic:\n1. Explain simply  \n2. Give a real-world analogy.\n3. Ask me questions.\n4. Give a small coding challenge.\n5. Review my answer critically.\n\nTopic: JavaScript\n\n---------------------------------------------------------------------------------------------------------\n\nAct as a Staff Software Engineer evaluating a junior developer.\n\nInterview me through practical and conceptual questions about:\nJavaScript\nReact\nWeb fundamentals\n\nAfter the interview:\nIdentify my weak areas\nRank them by importance\nCreate a 30-day learning roadmap\nProvide specific project ideas to fix gaps\n\nBe brutally honest.\n\n---------------------------------------------------------------------------------------------------------\n\nYou are my Tech Lead at a startup.\n\nI am building: PDF editor using React\n\nYour responsibilities:\nReview my architecture decisions\nChallenge bad choices\nSuggest industry best practices\nAsk what I considered before deciding\nNever sugarcoat feedback\n\nWait for my progress updates.\n\n---------------------------------------------------------------------------------------------------------\n\nYou are transforming me from coder → engineer.\n\nWhenever I ask a question:\nFirst explain how a junior thinks\nThen how a senior thinks\nThen how a staff engineer thinks\n\nFocus on tradeoffs and reasoning.\n\n---------------------------------------------------------------------------------------------------------\n\nYou are an extremely strict code reviewer.\n\nRules:\nAssume this is production code.\nPoint out ALL issues:\nreadability\nscalability\nnaming\nperformance\nhidden bugs\nSuggest professional alternatives.\n\nTone: direct, honest, constructive.",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "-4e3ewcTupM",
        "title": "Web Development Roadmap 2026 (No BS Guide!)",
        "publishedAt": "2 months ago",
        "durationSeconds": 1024,
        "views": 381927,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Udemy WebDev Course: https://goharry.in/webdev\n\n🕛 TimeStamps\n00:00 Introduction\n00:38 Reality Check\n01:25 How Web Development Works\n05:07 When should you use AI Tools?\n06:58 Modern Stack for Web Development\n13:42 Jobs?\n14:45 12 Month Action Plan\n16:30 Conclusion\n\n➡️ Download Notes and CheatSheets: https://www.codewithharry.com/notes/\n➡️ Udemy Python Course: https://goharry.in/python\n➡️ Checkout Data Science The Ultimate Job Ready Data Science Course: https://www.codewithharry.com/courses...\n➡️ Data Science (International Students): https://buy.stripe.com/9B65kF3790jS2k...\n➡️ Career Advice:\nIf you are into college and C/C++/Java is being taught, please continue with it. Here are my respective videos/playlists:\nLearn C Programming:    • C Language Tutorial for Beginners (With No...  \nLearn C++ Programming:    • C++ Tutorials In Hindi   \nLearn Java Programming:    • Java Tutorials For Beginners In Hindi  \n\nBut if you are not in college and want to learn programming, then I would suggest you to start with Python.  \n\nAlso if you are a beginner and want to learn programming, start with Python. It is beginner-friendly and has a large community for support and a lot of jobs. If you're serious start with my Udemy course in English. Its updated + has a lot of projects. Here is the discounted link which will get you this course for less than ₹400-500. I request you to leave a review if you have enrolled: \nUdemy Course: https://goharry.in/python\n\nAfter you finish this course, you can start with Data Science. It is a very profitable field to get into and has a lot of job opportunities. You can learn Data Science through my \"Ultimate Job Ready Data Science Course\". It is a complete course that covers everything you need to know to get a job in Data Science. Here is the discounted link to the course that will get you this course for ₹2899:\nData Science Course: https://www.codewithharry.com/courses...\n\nIf you are looking for free resources to learn Python, you can start with my Python Course on YouTube. It is a complete course that covers everything you need to know to become a Python developer. Its Free and you can access it here:\n10 Hour Long Python Course (VS Code):    • Python Tutorial For Beginners in Hindi | C...  \n100 Days of Code Playlist that uses Replit:    • Python for Beginners (Full Course) | #100D...  \n\nIf you want to learn web development, you can start with my Sigma Web Development Course. It is a complete course that covers everything you need to know to become a web developer. Its Free and you can access it here:\nWeb Development Course:    • Sigma Web Development Course - Web Develop...  \n\nIf you want to learn Data Structures and Algorithms, you can start with my Data Structures and Algorithms Course. It is a complete course that covers everything you need to know to become a good programmer. Its Free and you can access it here:\nData Structures and Algorithms Course:    • Data Structures and Algorithms Course in H...  \n\n➡️ Other Tutorials:\nWordpress[3.2 Hr]:   • How To Make a WordPress Website | Wordpres...  \nAngular[2 Hr]:   • Angular Tutorial in Hindi  \nGUI Development with Python:    • Python GUI: Tkinter Tutorial In Hindi  \nLinux[1 Hr]:   • Linux Tutorial For Beginners in Hindi  \n\n➡️ More Advise from Harry:\nMany people say that in the AI era , programming is dead. But I don't think so. AI is a tool that can help you in your programming journey. But dont overuse it in the  beginning. Try to learn basics first!\nAI can help you write better code, debug your code, and even help you learn new programming languages. So don't be afraid of AI, embrace it and use it to your advantage. Talk to ChatGPT daily and you will realize how quickly you can learn new things and build software. What others think is a disadvantage will become your advantage.\n\n➡️ Hosting\nIf you want to host a website on a VPS and get $200 in credits, use my DigitalOcean Link\nGet Free 200$ DigitalOcean Credits here: https://m.do.co/c/2f2aa100b7ee\n\n➡️ Follow Me On Social Media\n► Website (Created Using Next.js): https://www.codewithharry.com\n► Facebook:   / codewithharry  \n► Instagram:   / codewithharry   \n► Twitter:   / codewithharry  \n► English channel:    / @programmingwithharry  \nComment \"#HarryBhai\" if you read this 😉😉",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "161yAjOIHAw",
        "title": "OpenClaw Tutorial for Beginners | Automating Email + Calendar forever 🔥",
        "publishedAt": "2 months ago",
        "durationSeconds": 1302,
        "views": 248650,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try OpenClaw today: https://www.hostg.xyz/SHIys\nUse Coupon Code: HARRY20 for 20% coupon code until end of March 2026\n\n➡️ Download Notes and CheatSheets: https://www.codewithharry.com/notes/\n➡️ Udemy Python Course: https://goharry.in/python\n➡️ Checkout Data Science The Ultimate Job Ready Data Science Course: https://www.codewithharry.com/courses...\n➡️ Data Science (International Students): https://buy.stripe.com/9B65kF3790jS2k...\n➡️ Career Advice:\nIf you are into college and C/C++/Java is being taught, please continue with it. Here are my respective videos/playlists:\nLearn C Programming:    • C Language Tutorial for Beginners (With No...  \nLearn C++ Programming:    • C++ Tutorials In Hindi   \nLearn Java Programming:    • Java Tutorials For Beginners In Hindi  \n\nBut if you are not in college and want to learn programming, then I would suggest you to start with Python.  \n\nAlso if you are a beginner and want to learn programming, start with Python. It is beginner-friendly and has a large community for support and a lot of jobs. If you're serious start with my Udemy course in English. Its updated + has a lot of projects. Here is the discounted link which will get you this course for less than ₹400-500. I request you to leave a review if you have enrolled: \nUdemy Course: https://goharry.in/python\n\nAfter you finish this course, you can start with Data Science. It is a very profitable field to get into and has a lot of job opportunities. You can learn Data Science through my \"Ultimate Job Ready Data Science Course\". It is a complete course that covers everything you need to know to get a job in Data Science. Here is the discounted link to the course that will get you this course for ₹2899:\nData Science Course: https://www.codewithharry.com/courses...\n\nIf you are looking for free resources to learn Python, you can start with my Python Course on YouTube. It is a complete course that covers everything you need to know to become a Python developer. Its Free and you can access it here:\n10 Hour Long Python Course (VS Code):    • Python Tutorial For Beginners in Hindi | C...  \n100 Days of Code Playlist that uses Replit:    • Python for Beginners (Full Course) | #100D...  \n\nIf you want to learn web development, you can start with my Sigma Web Development Course. It is a complete course that covers everything you need to know to become a web developer. Its Free and you can access it here:\nWeb Development Course:    • Sigma Web Development Course - Web Develop...  \n\nIf you want to learn Data Structures and Algorithms, you can start with my Data Structures and Algorithms Course. It is a complete course that covers everything you need to know to become a good programmer. Its Free and you can access it here:\nData Structures and Algorithms Course:    • Data Structures and Algorithms Course in H...  \n\n➡️ Other Tutorials:\nWordpress[3.2 Hr]:   • How To Make a WordPress Website | Wordpres...  \nAngular[2 Hr]:   • Angular Tutorial in Hindi  \nGUI Development with Python:    • Python GUI: Tkinter Tutorial In Hindi  \nLinux[1 Hr]:   • Linux Tutorial For Beginners in Hindi  \n\n➡️ More Advise from Harry:\nMany people say that in the AI era , programming is dead. But I don't think so. AI is a tool that can help you in your programming journey. But dont overuse it in the  beginning. Try to learn basics first!\nAI can help you write better code, debug your code, and even help you learn new programming languages. So don't be afraid of AI, embrace it and use it to your advantage. Talk to ChatGPT daily and you will realize how quickly you can learn new things and build software. What others think is a disadvantage will become your advantage.\n\n➡️ Hosting\nIf you want to host a website on a VPS and get $200 in credits, use my DigitalOcean Link\nGet Free 200$ DigitalOcean Credits here: https://m.do.co/c/2f2aa100b7ee\n\n➡️ Follow Me On Social Media\n► Website (Created Using Next.js): https://www.codewithharry.com\n► Facebook:   / codewithharry  \n► Instagram:   / codewithharry   \n► Twitter:   / codewithharry  \n► English channel:    / @programmingwithharry  \nComment \"#HarryBhai\" if you read this 😉😉",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "s4dLwoanLm0",
        "title": "2026 will be the Year of Multi-agent AIs - Here's why!",
        "publishedAt": "2 months ago",
        "durationSeconds": 1255,
        "views": 119201,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Oz by Warp is one of the easiest ways to create your AI Agents on the cloud. \nTry Warp today and get an extra 1000 Oz credits. ➞ https://oz.dev/harryyt\n\nIf you are interested in Python, you might want to check out this online conference by JetBrains: https://lp.jetbrains.com/python-unplu...\n\nTimeStamps 🕰️\n00:00 – Introduction\n00:54 – Will AI Take Jobs?\n01:43 – What Are LLMs?\n03:40 – What Is an AI Agent?\n05:26 – Creating Agents with Oz by Warp\n12:38 – Why 2026 Is Going to Be the Year of Background AI Agents\n15:32 – Hype vs. Reality Breakdown\n19:05 – Final Thoughts & Advice\n\n\n➡️ Download Notes and CheatSheets: https://www.codewithharry.com/notes/\n➡️ Udemy Python Course: https://goharry.in/python\n➡️ Checkout Data Science The Ultimate Job Ready Data Science Course: https://www.codewithharry.com/courses...\n➡️ Data Science (International Students): https://buy.stripe.com/9B65kF3790jS2k...\n➡️ Career Advice:\nIf you are into college and C/C++/Java is being taught, please continue with it. Here are my respective videos/playlists:\nLearn C Programming:    • C Language Tutorial for Beginners (With No...  \nLearn C++ Programming:    • C++ Tutorials In Hindi   \nLearn Java Programming:    • Java Tutorials For Beginners In Hindi  \n\nBut if you are not in college and want to learn programming, then I would suggest you to start with Python.  \n\nAlso if you are a beginner and want to learn programming, start with Python. It is beginner-friendly and has a large community for support and a lot of jobs. If you're serious start with my Udemy course in English. Its updated + has a lot of projects. Here is the discounted link which will get you this course for less than ₹400-500. I request you to leave a review if you have enrolled: \nUdemy Course: https://goharry.in/python\n\nAfter you finish this course, you can start with Data Science. It is a very profitable field to get into and has a lot of job opportunities. You can learn Data Science through my \"Ultimate Job Ready Data Science Course\". It is a complete course that covers everything you need to know to get a job in Data Science. Here is the discounted link to the course that will get you this course for ₹2899:\nData Science Course: https://www.codewithharry.com/courses...\n\nIf you are looking for free resources to learn Python, you can start with my Python Course on YouTube. It is a complete course that covers everything you need to know to become a Python developer. Its Free and you can access it here:\n10 Hour Long Python Course (VS Code):    • Python Tutorial For Beginners in Hindi | C...  \n100 Days of Code Playlist that uses Replit:    • Python for Beginners (Full Course) | #100D...  \n\nIf you want to learn web development, you can start with my Sigma Web Development Course. It is a complete course that covers everything you need to know to become a web developer. Its Free and you can access it here:\nWeb Development Course:    • Sigma Web Development Course - Web Develop...  \n\nIf you want to learn Data Structures and Algorithms, you can start with my Data Structures and Algorithms Course. It is a complete course that covers everything you need to know to become a good programmer. Its Free and you can access it here:\nData Structures and Algorithms Course:    • Data Structures and Algorithms Course in H...  \n\n\n➡️ More Advise from Harry:\nMany people say that in the AI era , programming is dead. But I don't think so. AI is a tool that can help you in your programming journey. But dont overuse it in the  beginning. Try to learn basics first!\nAI can help you write better code, debug your code, and even help you learn new programming languages. So don't be afraid of AI, embrace it and use it to your advantage. Talk to ChatGPT daily and you will realize how quickly you can learn new things and build software. What others think is a disadvantage will become your advantage.\n\n➡️ Hosting\nIf you want to host a website on a VPS and get $200 in credits, use my DigitalOcean Link\nGet Free 200$ DigitalOcean Credits here: https://m.do.co/c/2f2aa100b7ee\n\n➡️ Follow Me On Social Media\n► Website (Created Using Next.js): https://www.codewithharry.com\n► Facebook:   / codewithharry  \n► Instagram:   / codewithharry   \n► Twitter:   / codewithharry  \n► English channel:    / @programmingwithharry  \nComment \"#HarryBhai\" if you read this 😉😉",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Tc1RVGZUXbU",
        "title": "5 Ways Hackers Use AI to Hack You (For Educational Purpose Only)",
        "publishedAt": "2 months ago",
        "durationSeconds": 736,
        "views": 442569,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "➡️ Download Notes and CheatSheets: https://www.codewithharry.com/notes/\n➡️ Udemy Python Course: https://goharry.in/python\n➡️ Checkout Data Science The Ultimate Job Ready Data Science Course: https://www.codewithharry.com/courses...\n➡️ Data Science (International Students): https://buy.stripe.com/9B65kF3790jS2k...\n\n⏱️ Timestamps\n\n00:00 – Introduction\n00:54 – Method 1\n04:59 – Method 2\n07:05 – Method 3\n09:20 – Method 4\n10:41 – Method 5\n\n\n➡️ Career Advice:\nIf you are into college and C/C++/Java is being taught, please continue with it. Here are my respective videos/playlists:\nLearn C Programming:    • C Language Tutorial for Beginners (With No...  \nLearn C++ Programming:    • C++ Tutorials In Hindi   \nLearn Java Programming:    • Java Tutorials For Beginners In Hindi  \n\nBut if you are not in college and want to learn programming, then I would suggest you to start with Python.  \n\nAlso if you are a beginner and want to learn programming, start with Python. It is beginner-friendly and has a large community for support and a lot of jobs. If you're serious start with my Udemy course in English. Its updated + has a lot of projects. Here is the discounted link which will get you this course for less than ₹400-500. I request you to leave a review if you have enrolled: \nUdemy Course: https://goharry.in/python\n\nAfter you finish this course, you can start with Data Science. It is a very profitable field to get into and has a lot of job opportunities. You can learn Data Science through my \"Ultimate Job Ready Data Science Course\". It is a complete course that covers everything you need to know to get a job in Data Science. Here is the discounted link to the course that will get you this course for ₹2899:\nData Science Course: https://www.codewithharry.com/courses...\n\nIf you are looking for free resources to learn Python, you can start with my Python Course on YouTube. It is a complete course that covers everything you need to know to become a Python developer. Its Free and you can access it here:\n10 Hour Long Python Course (VS Code):    • Python Tutorial For Beginners in Hindi | C...  \n100 Days of Code Playlist that uses Replit:    • Python for Beginners (Full Course) | #100D...  \n\nIf you want to learn web development, you can start with my Sigma Web Development Course. It is a complete course that covers everything you need to know to become a web developer. Its Free and you can access it here:\nWeb Development Course:    • Sigma Web Development Course - Web Develop...  \n\nIf you want to learn Data Structures and Algorithms, you can start with my Data Structures and Algorithms Course. It is a complete course that covers everything you need to know to become a good programmer. Its Free and you can access it here:\nData Structures and Algorithms Course:    • Data Structures and Algorithms Course in H...  \n\n➡️ Other Tutorials:\nWordpress[3.2 Hr]:   • How To Make a WordPress Website | Wordpres...  \nAngular[2 Hr]:   • Angular Tutorial in Hindi  \nGUI Development with Python:    • Python GUI: Tkinter Tutorial In Hindi  \nLinux[1 Hr]:   • Linux Tutorial For Beginners in Hindi  \n\n➡️ More Advise from Harry:\nMany people say that in the AI era , programming is dead. But I don't think so. AI is a tool that can help you in your programming journey. But dont overuse it in the  beginning. Try to learn basics first!\nAI can help you write better code, debug your code, and even help you learn new programming languages. So don't be afraid of AI, embrace it and use it to your advantage. Talk to ChatGPT daily and you will realize how quickly you can learn new things and build software. What others think is a disadvantage will become your advantage.\n\n➡️ Hosting\nIf you want to host a website on a VPS and get $200 in credits, use my DigitalOcean Link\nGet Free 200$ DigitalOcean Credits here: https://m.do.co/c/2f2aa100b7ee\n\n➡️ Follow Me On Social Media\n► Website (Created Using Next.js): https://www.codewithharry.com\n► Facebook:   / codewithharry  \n► Instagram:   / codewithharry   \n► Twitter:   / codewithharry  \n► English channel:    / @programmingwithharry  \nComment \"#HarryBhai\" if you read this 😉😉",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5iliern1SAs",
        "title": "WordPress Crash Course | Learn WordPress in 30 Minutes",
        "publishedAt": "3 months ago",
        "durationSeconds": 2094,
        "views": 124586,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "This video is made in Collaboration with Hostinger\n🔥 Get Flat 20% OFF on Hostinger Hosting! 🔥\n👉 Special Discount Link: http://hostinger.com/codewithharry\n\n🎟Apply Coupon Code at Checkout:\nHARRY20 – Flat 20% OFF on all plans (any duration)\n\n💡 Don’t miss this limited-time offer - grab fast, secure, and affordable Wordpress hosting with Hostinger today!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xb-fcoMMiTM",
        "title": "End of Web Development?",
        "publishedAt": "3 months ago",
        "durationSeconds": 611,
        "views": 480472,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Checkout my Webdev Course: https://goharry.in/webdev\n➡️ Download Notes and CheatSheets: https://www.codewithharry.com/notes/\n➡️ Udemy Python Course: https://goharry.in/python\n➡️ Checkout Data Science The Ultimate Job Ready Data Science Course: https://www.codewithharry.com/courses...\n➡️ Data Science (International Students): https://buy.stripe.com/9B65kF3790jS2k...\n➡️ Career Advice:\nIf you are into college and C/C++/Java is being taught, please continue with it. Here are my respective videos/playlists:\nLearn C Programming:    • C Language Tutorial for Beginners (With No...  \nLearn C++ Programming:    • C++ Tutorials In Hindi   \nLearn Java Programming:    • Java Tutorials For Beginners In Hindi  \n\nBut if you are not in college and want to learn programming, then I would suggest you to start with Python.  \n\nAlso if you are a beginner and want to learn programming, start with Python. It is beginner-friendly and has a large community for support and a lot of jobs. If you're serious start with my Udemy course in English. Its updated + has a lot of projects. Here is the discounted link which will get you this course for less than ₹400-500. I request you to leave a review if you have enrolled: \nUdemy Course: https://goharry.in/python\n\nAfter you finish this course, you can start with Data Science. It is a very profitable field to get into and has a lot of job opportunities. You can learn Data Science through my \"Ultimate Job Ready Data Science Course\". It is a complete course that covers everything you need to know to get a job in Data Science. Here is the discounted link to the course that will get you this course for ₹2899:\nData Science Course: https://www.codewithharry.com/courses...\n\nIf you are looking for free resources to learn Python, you can start with my Python Course on YouTube. It is a complete course that covers everything you need to know to become a Python developer. Its Free and you can access it here:\n10 Hour Long Python Course (VS Code):    • Python Tutorial For Beginners in Hindi | C...  \n100 Days of Code Playlist that uses Replit:    • Python for Beginners (Full Course) | #100D...  \n\nIf you want to learn web development, you can start with my Sigma Web Development Course. It is a complete course that covers everything you need to know to become a web developer. Its Free and you can access it here:\nWeb Development Course:    • Sigma Web Development Course - Web Develop...  \n\nIf you want to learn Data Structures and Algorithms, you can start with my Data Structures and Algorithms Course. It is a complete course that covers everything you need to know to become a good programmer. Its Free and you can access it here:\nData Structures and Algorithms Course:    • Data Structures and Algorithms Course in H...  \n\n➡️ Other Tutorials:\nWordpress[3.2 Hr]:   • How To Make a WordPress Website | Wordpres...  \nAngular[2 Hr]:   • Angular Tutorial in Hindi  \nGUI Development with Python:    • Python GUI: Tkinter Tutorial In Hindi  \nLinux[1 Hr]:   • Linux Tutorial For Beginners in Hindi  \n\n➡️ More Advise from Harry:\nMany people say that in the AI era , programming is dead. But I don't think so. AI is a tool that can help you in your programming journey. But dont overuse it in the  beginning. Try to learn basics first!\nAI can help you write better code, debug your code, and even help you learn new programming languages. So don't be afraid of AI, embrace it and use it to your advantage. Talk to ChatGPT daily and you will realize how quickly you can learn new things and build software. What others think is a disadvantage will become your advantage.\n\n➡️ Hosting\nIf you want to host a website on a VPS and get $200 in credits, use my DigitalOcean Link\nGet Free 200$ DigitalOcean Credits here: https://m.do.co/c/2f2aa100b7ee\n\n➡️ Follow Me On Social Media\n► Website (Created Using Next.js): https://www.codewithharry.com\n► Facebook:   / codewithharry  \n► Instagram:   / codewithharry   \n► Twitter:   / codewithharry  \n► English channel:    / @programmingwithharry  \nComment \"#HarryBhai\" if you read this 😉😉",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "sf6ZOBmzhGQ",
        "title": "Which Pays More: Data Science or Data Analytics? | Data Science vs Data Analytics",
        "publishedAt": "4 months ago",
        "durationSeconds": 571,
        "views": 177290,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "➡️ Data Science Course: https://www.codewithharry.com/courses...\n➡️ Data Analytics Course: https://www.codewithharry.com/courses...\n➡️ Data Science (International Students): https://buy.stripe.com/9B65kF3790jS2k...\n➡️ Career Advice:\nIf you are into college and C/C++/Java is being taught, please continue with it. Here are my respective videos/playlists:\nLearn C Programming:    • C Language Tutorial for Beginners (With No...  \nLearn C++ Programming:    • C++ Tutorials In Hindi   \nLearn Java Programming:    • Java Tutorials For Beginners In Hindi  \n\nBut if you are not in college and want to learn programming, then I would suggest you to start with Python.  \n\nAlso if you are a beginner and want to learn programming, start with Python. It is beginner-friendly and has a large community for support and a lot of jobs. If you're serious start with my Udemy course in English. Its updated + has a lot of projects. Here is the discounted link which will get you this course for less than ₹400-500. I request you to leave a review if you have enrolled: \nUdemy Course: https://goharry.in/python\n\nAfter you finish this course, you can start with Data Science. It is a very profitable field to get into and has a lot of job opportunities. You can learn Data Science through my \"Ultimate Job Ready Data Science Course\". It is a complete course that covers everything you need to know to get a job in Data Science. Here is the discounted link to the course that will get you this course for ₹2899:\nData Science Course: https://www.codewithharry.com/courses...\n\nIf you are looking for free resources to learn Python, you can start with my Python Course on YouTube. It is a complete course that covers everything you need to know to become a Python developer. Its Free and you can access it here:\n10 Hour Long Python Course (VS Code):    • Python Tutorial For Beginners in Hindi | C...  \n100 Days of Code Playlist that uses Replit:    • Python for Beginners (Full Course) | #100D...  \n\nIf you want to learn web development, you can start with my Sigma Web Development Course. It is a complete course that covers everything you need to know to become a web developer. Its Free and you can access it here:\nWeb Development Course:    • Sigma Web Development Course - Web Develop...  \n\nIf you want to learn Data Structures and Algorithms, you can start with my Data Structures and Algorithms Course. It is a complete course that covers everything you need to know to become a good programmer. Its Free and you can access it here:\nData Structures and Algorithms Course:    • Data Structures and Algorithms Course in H...  \n\n➡️ Other Tutorials:\nWordpress[3.2 Hr]:   • How To Make a WordPress Website | Wordpres...  \nAngular[2 Hr]:   • Angular Tutorial in Hindi  \nGUI Development with Python:    • Python GUI: Tkinter Tutorial In Hindi  \nLinux[1 Hr]:   • Linux Tutorial For Beginners in Hindi  \n\n➡️ More Advise from Harry:\nMany people say that in the AI era , programming is dead. But I don't think so. AI is a tool that can help you in your programming journey. But dont overuse it in the  beginning. Try to learn basics first!\nAI can help you write better code, debug your code, and even help you learn new programming languages. So don't be afraid of AI, embrace it and use it to your advantage. Talk to ChatGPT daily and you will realize how quickly you can learn new things and build software. What others think is a disadvantage will become your advantage.\n\n➡️ Hosting\nIf you want to host a website on a VPS and get $200 in credits, use my DigitalOcean Link\nGet Free 200$ DigitalOcean Credits here: https://m.do.co/c/2f2aa100b7ee\n\n➡️ Follow Me On Social Media\n► Website (Created Using Next.js): https://www.codewithharry.com\n► Facebook:   / codewithharry  \n► Instagram:   / codewithharry   \n► Twitter:   / codewithharry  \n► English channel:    / @programmingwithharry  \nComment \"#HarryBhai\" if you read this 😉😉",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kxRZkJidkMM",
        "title": "Is This The Best Skill to Learn in 2026?",
        "publishedAt": "4 months ago",
        "durationSeconds": 564,
        "views": 315756,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "If you are interested in learning Data Science/Data Analytics, my courses are on a New Year's discount. Check them out:\nData Analytics: https://www.codewithharry.com/courses...\nData Science: https://www.codewithharry.com/courses...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "FzN_K2E1PzA",
        "title": "This AI can build Mobile Apps with High Accuracy🔥| Manus 1.6 Updates",
        "publishedAt": "4 months ago",
        "durationSeconds": 1114,
        "views": 205483,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Manus & get 1000 credits free : https://manus.im/redeem?c=CWH8M1P5\n\n➡️ Follow Me On Social Media\n► Website (Created Using Next.js): https://www.codewithharry.com\n► Facebook: https://www...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "wmC7G4BuG2w",
        "title": "Lets Try Medo: A Vibecoding Tool with the Best app Marketplace",
        "publishedAt": "4 months ago",
        "durationSeconds": 988,
        "views": 259466,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Build an app from a single prompt! \nSign up with my link to claim a credits pack: https://medo.dev/?invitecode=user-8bdxc9641v5s\n\n#nocode #VibeCode  #MeDo #VibeCoding\n➡️ Follow Me On Social...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9UNIK5wIKBU",
        "title": "Top 5 Programming Languages to learn in 2026! (Important)",
        "publishedAt": "5 months ago",
        "durationSeconds": 835,
        "views": 470802,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "➡️ Checkout my Data Science Course: https://www.codewithharry.com/courses/the-ultimate-job-ready-data-science-course\n➡️ Data Science (International Students): https://buy.stripe.com/9B65kF3...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8jfcloETVVI",
        "title": "Build Multiple Projects in Parallel with This Agentic AI Tool 🔥",
        "publishedAt": "5 months ago",
        "durationSeconds": 1414,
        "views": 131799,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Verdent: https://www.verdent.ai/?ots=youtube&id=CodeWithHarry\nVerdent is a powerful AI development platform that helps you plan, code, and verify with confidence. Work in isolated workspaces,...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8411fEhNKNc",
        "title": "How to become a Data Analyst? | Complete Roadmap for Data Analyst🔥",
        "publishedAt": "5 months ago",
        "durationSeconds": 1127,
        "views": 499552,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Enroll in my Data Analyst course here: https://www.codewithharry.com/courses/the-ultimate-job-ready-ai-powered-data-analytics-course\n➡️ International Students: https://buy.stripe.com/28E00lgXZ7...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Oh-jASBQn5o",
        "title": "Complete Data Analytics Course for Absolute Beginners (Zero Prerequisite batch)",
        "publishedAt": "5 months ago",
        "durationSeconds": 543,
        "views": 253867,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "➡️ Enroll here: https://www.codewithharry.com/courses/the-ultimate-job-ready-ai-powered-data-analytics-course\n➡️ International Students: https://buy.stripe.com/28E00lgXZ7Mk2kC1wd1gs08...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZlAs79nW4P4",
        "title": "ChatGPT ❌ This Agentic AI ✅ (Game Changer) | Manus 1.5",
        "publishedAt": "5 months ago",
        "durationSeconds": 1067,
        "views": 76237,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Manus AI: https://manus.im/redeem?c=CWH8M1P5\nManus 1.5 just dropped with massive upgrades: 4× faster engine, full-stack website builder, \ndeep research modules, smarter slides, and real-time...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EY4eqjdrEew",
        "title": "Google Antigravity - W or L?",
        "publishedAt": "5 months ago",
        "durationSeconds": 871,
        "views": 394855,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Merchandise: https://shop.codewithharry.com/\nTry Antigravity: https://antigravity.google/\n➡️ Checkout Data Science The Ultimate Job Ready Data Science Course: https://www.codewithharry.com/cour...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "CBYfXlP7ppQ",
        "title": "5 Ways to use AI in Coding (Copy these)!",
        "publishedAt": "5 months ago",
        "durationSeconds": 1531,
        "views": 176049,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Merchandise: https://shop.codewithharry.com/\nTry Warp for free today ➞ https://go.warp.dev/harryytagents \n \n➡️ Follow Me On Social Media\n► Website (Created Using Next.js): https://www.codew...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "dpz80_o5kgA",
        "title": "I Tested Trae SOLO: The New AI Coding Tool Everyone Is Talking About 🔥",
        "publishedAt": "5 months ago",
        "durationSeconds": 1268,
        "views": 151429,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Merchandise: https://shop.codewithharry.com/\nCheck out Trae SOLO: https://tinyurl.com/nyjpz8xs\nTrae SOLO and Trae SOLO Coder is now live! It’s a responsive AI coding agent with human-feedback...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "M1dKYQ7GsTg",
        "title": "MongoDB Crash Course 2026 (with Handbook)",
        "publishedAt": "6 months ago",
        "durationSeconds": 4150,
        "views": 328318,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Merchandise: https://shop.codewithharry.com/\nDownload the Handbook: https://cwh-full-next-space.fra1.cdn.digitaloceanspaces.com/YouTube/MongoDB%20Handbook.pdf\nDownload the Source Code: https://gith...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2jmiNO3jwrA",
        "title": "Is It Still Worth Learning to Code? (The Truth)",
        "publishedAt": "6 months ago",
        "durationSeconds": 1007,
        "views": 717791,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Try Notion Agent → https://ntn.so/CodeWithHarryAgent\nMerchandise: https://shop.codewithharry.com/\nLet Notion Agent do your work for you.\n#Notion #AI #Productivity\n\n\n➡️ Download Notes...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bDHLcCa8TWU",
        "title": "Claude Tried to Reset My PC… You Won’t Believe What Happened!",
        "publishedAt": "6 months ago",
        "durationSeconds": 1110,
        "views": 83129,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out Claude Code: http://clau.de/codewithharry\nMerchandise: https://shop.codewithharry.com/\n\nDiwali Offer is live: https://www.codewithharry.com/courses/the-ultimate-job-ready-data-science-cou...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Lt0iZi50Vpw",
        "title": "Todo List App Using HTML, CSS and JavaScript | Back to Basics Web Development Project",
        "publishedAt": "6 months ago",
        "durationSeconds": 2452,
        "views": 150770,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Source Code: https://github.com/CodeWithHarry/codewithharry-back-to-basics-web-dev-projects\nAccess the Playlist: https://www.youtube.com/playlist?list=PLu0W_9lII9ahaRLzpAeXYPpjlb58rpR7E\n\nEnroll...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ITkIdDyXeag",
        "title": "Watch This Before Buying a new Laptop in 2025 | Laptop Buying Guide 🔥",
        "publishedAt": "7 months ago",
        "durationSeconds": 1413,
        "views": 937150,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Access the Sheet: https://docs.google.com/spreadsheets/d/13O2Si9cpBULclwDpXSPHn_hvMbaj5KgbI0Cdau4mlkM/edit?usp=sharing\nMirror 1: https://docs.google.com/spreadsheets/d/1QBSmLACf_uRjcQJaj0PuEooGVbsQ...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LNlgYczTqxY",
        "title": "5 Ways AI is Making Business Easier!",
        "publishedAt": "7 months ago",
        "durationSeconds": 887,
        "views": 145411,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Checkout my Job Ready Courses:\nData Analytics Course: https://www.codewithharry.com/courses/the-ultimate-job-ready-ai-powered-data-analytics-course\nData Science Course: https://www.codewithharry.co...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2IsolBF0kYM",
        "title": "Idea to app in one Prompt — Trying Replit Agent 3!",
        "publishedAt": "7 months ago",
        "durationSeconds": 1441,
        "views": 1074755,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Checkout Replit: https://replit.com/refer/codewithharry\nGet $10 credit when you purchase Replit Core via my referral link\n\n➡️ Download Notes and CheatSheets: https://www.codewithharry.com/notes...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xKJhaQdG6ic",
        "title": "Should You Build Websites with Pure Vibe Coding — the reality check!",
        "publishedAt": "8 months ago",
        "durationSeconds": 815,
        "views": 121036,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Checkout Replit: https://replit.com/refer/codewithharry\n\n➡️ Download Notes and CheatSheets: https://www.codewithharry.com/notes/\n➡️ Udemy Python Course: https://goharry.in/python\n➡️...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "XHKhxN6nkz8",
        "title": "How to Vibe Code with AI in 2025 ft. TRAE IDE 🔥",
        "publishedAt": "8 months ago",
        "durationSeconds": 2250,
        "views": 168987,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Check out TRAE: https://tinyurl.com/2dtvdfeu\n➡️ Download Notes and CheatSheets: https://www.codewithharry.com/notes/\n➡️ Udemy Python Course: https://goharry.in/python\n➡️ Checkout...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kMRWLz8G5SU",
        "title": "Everyone is Lying — Dark Sides of Vibe Coding 😢",
        "publishedAt": "8 months ago",
        "durationSeconds": 915,
        "views": 182074,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Checkout Clerk: https://go.clerk.com/YaEOB3e  \n➡️ Checkout Data Science The Ultimate Job Ready Data Science Course: https://www.codewithharry.com/courses/the-ultimate-job-ready-data-science-cou...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 1,
      "uploadsLast90d": 8,
      "uploadCadenceWeekly": 0.62,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 248650,
      "viewsPerVideoP90Last90d": 442569,
      "viewVelocityTrend": "declining"
    },
    "performanceBaseline": {
      "p50Views": 248650,
      "p90Views": 442569,
      "p99Views": 442569,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "web-services",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:web development"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": "[REDACTED]",
      "businessEmailSource": "channel-about-section",
      "businessEmailMxValid": true,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "codewithharry.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "high",
      "components": {
        "businessEmailPresent": true,
        "businessEmailValid": true,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Will likely respond to sponsorship outreach: business email validated + active sponsor history + external website live."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.97,
        "evidenceVideoIds": [
          "G8-6rr3gTj0",
          "YBB3GbluHjA",
          "-4e3ewcTupM",
          "161yAjOIHAw",
          "s4dLwoanLm0"
        ]
      },
      {
        "label": "com",
        "share": 0.9,
        "evidenceVideoIds": [
          "G8-6rr3gTj0",
          "YBB3GbluHjA",
          "-4e3ewcTupM",
          "161yAjOIHAw",
          "s4dLwoanLm0"
        ]
      },
      {
        "label": "codewithharry",
        "share": 0.9,
        "evidenceVideoIds": [
          "G8-6rr3gTj0",
          "YBB3GbluHjA",
          "-4e3ewcTupM",
          "161yAjOIHAw",
          "s4dLwoanLm0"
        ]
      },
      {
        "label": "www",
        "share": 0.77,
        "evidenceVideoIds": [
          "G8-6rr3gTj0",
          "YBB3GbluHjA",
          "-4e3ewcTupM",
          "161yAjOIHAw",
          "s4dLwoanLm0"
        ]
      },
      {
        "label": "course",
        "share": 0.6,
        "evidenceVideoIds": [
          "G8-6rr3gTj0",
          "YBB3GbluHjA",
          "-4e3ewcTupM",
          "161yAjOIHAw",
          "s4dLwoanLm0"
        ]
      },
      {
        "label": "web development",
        "share": 0.3,
        "evidenceVideoIds": [
          "G8-6rr3gTj0",
          "YBB3GbluHjA",
          "-4e3ewcTupM",
          "161yAjOIHAw",
          "s4dLwoanLm0"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Monday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "business email validated, content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "strong",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 45,
      "reason": "validated business email x fits web-services",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.95
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.2
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.35
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.8,
      "level": "high",
      "coldStart": false
    },
    "whyThisMatters": "validated business email + fits web-services. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "CodeWithHarry — 9.6M subs, C-tier sponsorship readiness, high contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": true,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 45,
      "readyForOutreach": false,
      "blockers": [],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.65,
      "urgency": 0,
      "noiseRisk": 0.2
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": {
      "isValidFormat": true,
      "canonical": "harry@codewithharry.com",
      "domain": "codewithharry.com",
      "lineType": "corporate",
      "mxValid": true,
      "confidence": 0.9,
      "originalInput": "harry@codewithharry.com",
      "email": null
    },
    "allEmailValidations": [
      {
        "isValidFormat": true,
        "canonical": "harry@codewithharry.com",
        "domain": "codewithharry.com",
        "lineType": "corporate",
        "mxValid": true,
        "confidence": 0.9,
        "originalInput": "harry@codewithharry.com",
        "email": null
      }
    ],
    "contactabilityScore": {
      "score": 88,
      "level": "high",
      "components": {
        "presence": 25,
        "sourceQuality": 18,
        "validationQuality": 18,
        "identityStrength": 14,
        "freshness": 8,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "email",
      "secondary": "agency-form",
      "reason": "Validated business email + active sponsor history — email-first maximises response rate."
    },
    "sequenceFit": {
      "directOutreachAllowed": true,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "channel-about",
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.88
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.88,
      "gap": 0.06,
      "howToClose": [
        "Run ryanclinton/person-enrichment-lookup against 'harry@codewithharry.com' to identify the inbox owner."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "high",
      "score": 0.85,
      "factors": [
        "business-email-validated",
        "external-website-active",
        "corporate-email-domain"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + validated corporate business email typically correlates with higher outreach responsiveness for mega-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:corporate",
        "channel-tier:mega"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mega-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [],
      "safeChannels": [
        "email",
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [
      {
        "email": "[REDACTED]",
        "rank": 1,
        "reason": "corporate-domain email",
        "role": "business"
      }
    ],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": false,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "mega",
      "sponsorCategory": "web-services",
      "historicalTypicalReplyRange": "2-6%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mega-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": [
        "contactability:high"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 64,
      "reasons": [
        "Validated business email (MX confirmed)",
        "Low confidence-conflict count in scoring trace"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "34c15b51bc18cd911e72cdee18ac963cce68e0384da9d0874dabd4afe50477f2",
      "inputsHash": "7fb7d98472643c50f32deef4dcf741e08fe063a6a53bbbd47a27f2f640a47d3c",
      "rulesApplied": [
        "business-email-validated",
        "sponsorship-history-never",
        "growth-velocity-declining",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:50.700Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "skipped",
    "eventId": "55f21003d18e602281b76a5f8dbe9458006b262727d908e37e9d3982572b54a5",
    "channelHandle": "@CodingWithJustin",
    "channelId": "UCro4e-xxAYrgwt5cOccnE0A",
    "subscribers": 17000,
    "skipReason": {
      "source": "quality-gate",
      "rules": [
        "minSubscribers<50000"
      ],
      "message": "Channel filtered out by quality gate: minSubscribers<50000. No PPE event charged."
    },
    "summary": "Skipped @CodingWithJustin — failed gate: minSubscribers<50000.",
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:51.506Z"
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "skipped",
    "eventId": "894d6fe228e73bb94f6f9ff89670c2bf7e588b19c927d2520f566fb497bb84c8",
    "channelHandle": "@saifdev99",
    "channelId": "UCzRcKz2Z0rUuLrSnUTLEaxQ",
    "subscribers": null,
    "skipReason": {
      "source": "data-unavailable",
      "rules": [
        "subscribers-unavailable"
      ],
      "message": "Channel skipped: subscriber count could not be extracted from YouTube (likely page-header shape change or transient block). Other gate rules: none. No PPE event charged."
    },
    "summary": "Skipped @saifdev99 — subscribers unavailable from YouTube.",
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:53.407Z"
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "skipped",
    "eventId": "80e52aa2b06d9624d73a7d05c1f77359b8e2d078a98aba49dc04a9b17bcac360",
    "channelHandle": "@CodeFlow",
    "channelId": "UCJjDIEeBxUT8VxBVnMXHkDQ",
    "subscribers": 23300,
    "skipReason": {
      "source": "quality-gate",
      "rules": [
        "minSubscribers<50000"
      ],
      "message": "Channel filtered out by quality gate: minSubscribers<50000. No PPE event charged."
    },
    "summary": "Skipped @CodeFlow — failed gate: minSubscribers<50000.",
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:53.772Z"
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "skipped",
    "eventId": "9417b58aa3bef3e20d00dbf9780578d2cf37d9a7688b43d09505c3addac0fb2c",
    "channelHandle": "@DEEPTITALESRA",
    "channelId": "UC_xk18oWJ2ineZ1NYYl91Iw",
    "subscribers": 18000,
    "skipReason": {
      "source": "quality-gate",
      "rules": [
        "minSubscribers<50000"
      ],
      "message": "Channel filtered out by quality gate: minSubscribers<50000. No PPE event charged."
    },
    "summary": "Skipped @DEEPTITALESRA — failed gate: minSubscribers<50000.",
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:54.185Z"
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "f58568ab55beb26952f137c7c77f13957d672df19aeae3a6c0e60027482f88b7",
    "channelId": "UCc5FkTYiWH5L3Gk5IyW6Rmw",
    "channelHandle": "@geekyshows",
    "channelName": "Geeky Shows",
    "channelUrl": "https://www.youtube.com/@geekyshows",
    "description": "You can learn various Programming Languages, Web Designing, How to Tutorials, Windows Tips and Tricks and Linux Tips and Tricks etc Free of Cost. Share our Channel with your friends and don't forget to subscribe Geeky Shows a Free Education Portal. You can visit our official website www.geekyshows.com\nBusiness Email: contact@geekyshows.com",
    "joinDate": null,
    "location": null,
    "subscribers": 546000,
    "totalVideos": 4100,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_n_CPBkAdTFO5ID4Ra2ugCg0I6fodU9ruvavueExdaMtyc=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "geekyshows.com",
        "url": "https://www.geekyshows.com"
      },
      {
        "platform": "twitter",
        "url": "https://twitter.com/rajsolodev"
      },
      {
        "platform": "instagram",
        "url": "https://www.instagram.com/rajsolodev"
      },
      {
        "platform": "github",
        "url": "https://github.com/rajsolodev"
      },
      {
        "platform": "linkedin",
        "url": "https://www.linkedin.com/in/rajsolodev"
      }
    ],
    "recentVideos": [
      {
        "videoId": "JlPySA1UYRs",
        "title": "99% New Drivers Make These Mistakes Avoid These Now",
        "publishedAt": "3 weeks ago",
        "durationSeconds": 717,
        "views": 755,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "99% New Drivers Make These Mistakes Avoid These Now",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "kzFqPZOkzzo",
        "title": "AI Isn’t Smart Its Just Really Good at Guessing",
        "publishedAt": "1 month ago",
        "durationSeconds": 593,
        "views": 811,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "AI Isn’t Smart Its Just Really Good at Guessing How LLM works",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ZOOCz8i7UhQ",
        "title": "30000 Layoffs Shocked IT Industry",
        "publishedAt": "1 month ago",
        "durationSeconds": 249,
        "views": 3029,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "30000 Layoffs Oracle Shocked IT Industry\n\nFastAPI Course https://geekyshows.com/short/fastapi",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "T5nv2erHlVw",
        "title": "Video Quality Improve karne ki koshish",
        "publishedAt": "1 month ago",
        "durationSeconds": 389,
        "views": 899,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Video Quality Improve karne ki koshish",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pS11o8RWNTg",
        "title": "Mera comeback nahi ho raha",
        "publishedAt": "1 month ago",
        "durationSeconds": 393,
        "views": 3320,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Carry ka comeback ho gaya.. Mera comeback nahi ho raha :D",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lHwYOx2-fT0",
        "title": "What Docker Does NOT Protect You From Real Production Infrastructure",
        "publishedAt": "4 months ago",
        "durationSeconds": 872,
        "views": 1134,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "What Docker Does NOT Protect You From Real Production Infrastructure\nDocker Won’t Save You From This | PostgreSQL, Redis & Nginx Upgrade Reality",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "EoSZE6CoKu8",
        "title": "Bigest Docker Mistake Single VPS Multiple Project Best Architecture Explained",
        "publishedAt": "4 months ago",
        "durationSeconds": 1150,
        "views": 1245,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Bigest Docker Mistake Single VPS Multiple Project Best Architecture Explained",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "lIFGEaavwiU",
        "title": "MongoDB Worst Security Bug Mongobleed Explained",
        "publishedAt": "4 months ago",
        "durationSeconds": 585,
        "views": 1858,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "MongoDB Worst Security Bug Mongobleed Explained",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "6s889_XArro",
        "title": "Nobody Watches Coding Videos Anymore",
        "publishedAt": "4 months ago",
        "durationSeconds": 875,
        "views": 2129,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Coding Tutorials Are Dead on YouTube Nobody Watches Coding Videos Anymore",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tFU-Pq0ibig",
        "title": "One Mistake That Breaks Database Design",
        "publishedAt": "4 months ago",
        "durationSeconds": 392,
        "views": 591,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "One Mistake That Breaks Database Design Entity vs Column \nCourse Link: https://www.youtube.com/playlist?list=PLbGui_ZYuhigVbcMqLgQMDWk3B-Yktgif",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qUkn-4iVzoI",
        "title": "Stop Designing Tables This Way",
        "publishedAt": "4 months ago",
        "durationSeconds": 612,
        "views": 784,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Stop Designing Tables This Way\nCourse Link: https://www.youtube.com/playlist?list=PLbGui_ZYuhigVbcMqLgQMDWk3B-Yktgif",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9GupRfDltHA",
        "title": "Most Developers Design Databases the WRONG Way",
        "publishedAt": "4 months ago",
        "durationSeconds": 234,
        "views": 1055,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Most Developers Design Databases the WRONG Way\nCourse Link: https://www.youtube.com/playlist?list=PLbGui_ZYuhigVbcMqLgQMDWk3B-Yktgif",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qDDoY5FCtZA",
        "title": "Think in Database Design Series Overview",
        "publishedAt": "4 months ago",
        "durationSeconds": 342,
        "views": 1521,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Think in Database Design Series Overview\nCourse Link: https://www.youtube.com/playlist?list=PLbGui_ZYuhigVbcMqLgQMDWk3B-Yktgif",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "zIEQSEQIduw",
        "title": "How Netflix Stores 250 Million Users Database Design Explained",
        "publishedAt": "4 months ago",
        "durationSeconds": 2106,
        "views": 4935,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How Netflix Stores 250 Million Users Database Design Explained Netflix Database Design System Design Interview Question Design Netflix From Scratch",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PmkEuADHXiE",
        "title": "LLM Memory Leaks Are Killing Your App",
        "publishedAt": "5 months ago",
        "durationSeconds": 412,
        "views": 617,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Stop LLM Memory Leaks\n\nFastAPI Course Link:- https://geekyshows.com/short/fastapi",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "ORyH3j1KT8M",
        "title": "Google Analytics Custom Dashboard using Django",
        "publishedAt": "5 months ago",
        "durationSeconds": 1804,
        "views": 583,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Google Analytics Custom Dashboard using Django\n\n\nOfficial Website:- https://geekyshows.com\nLinkedIn: https://www.linkedin.com/in/rajsolodev\nInstagram: https://www.instagram.com/rajsolodev\nTwitter:...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "btW4VojIkyg",
        "title": "Create and Setup Google Analytics Django Project",
        "publishedAt": "5 months ago",
        "durationSeconds": 1057,
        "views": 892,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Create and Setup Google Analytics Django Project\n\nDjango 5 Mastery from beginner to Pro https://www.youtube.com/playlist?list=PLbGui_ZYuhigUfO47FLx4ocfmo1071hlc\n\nAWS https://www.youtube.com/playlis...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qCcu7I00yww",
        "title": "Broadcast Messages Live on Feed using Django Channel Celery Docker Redis",
        "publishedAt": "5 months ago",
        "durationSeconds": 3789,
        "views": 778,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Broadcast Messages Live on Feed using Django Channel Celery Docker Redis | Setup Django Docker Channel Celery Redis UV\n\nDjango 5 Mastery from beginner to Pro https://www.youtube.com/playlist?list=P...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "5CcG8FPxY6Q",
        "title": "Django Scaling Made EASY! UV Django Redis Celery Docker Complete Setup",
        "publishedAt": "5 months ago",
        "durationSeconds": 2759,
        "views": 734,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Django Scaling Made EASY! UV + Redis + Celery + Docker ka Complete Setup\n\nDjango 5 Mastery from beginner to Pro https://www.youtube.com/playlist?list=PLbGui_ZYuhigUfO47FLx4ocfmo1071hlc\n\nAWS...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "qpfv3A38I8I",
        "title": "How to use Redis Cache in Django Docker Project",
        "publishedAt": "6 months ago",
        "durationSeconds": 2618,
        "views": 1354,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How to use Redis Cache in Django Docker Project\n\nDjango 5 Mastery from beginner to Pro https://www.youtube.com/playlist?list=PLbGui_ZYuhigUfO47FLx4ocfmo1071hlc\n\nAWS https://www.youtube.com/playlist...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YLDm50FLCPc",
        "title": "Django UV MySQL Docker Setup",
        "publishedAt": "6 months ago",
        "durationSeconds": 2099,
        "views": 470,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Django UV MySQL Docker Setup\n\nDjango 5 Mastery from beginner to Pro https://www.youtube.com/playlist?list=PLbGui_ZYuhigUfO47FLx4ocfmo1071hlc\n\nAWS https://www.youtube.com/playlist?list=PLbGui_ZYuhii...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "3_CKFOGRH8I",
        "title": "Error Handling in FastAPI Learn FastAPI in 15 Days Course for beginner",
        "publishedAt": "6 months ago",
        "durationSeconds": 266,
        "views": 1770,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Error Handling in FastAPI Learn FastAPI in 15 Days Course for beginner\n\nFastAPI Course https://geekyshows.com/short/fastapi",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Bo1lqKKCdHk",
        "title": "Template in FastAPI Learn FastAPI in 15 Days Course for beginner",
        "publishedAt": "6 months ago",
        "durationSeconds": 244,
        "views": 654,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Template in FastAPI Learn FastAPI in 15 Days Course for beginner\n\nFastAPI Course https://geekyshows.com/short/fastapi",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "8Qam35uVyRo",
        "title": "API Router in FastAPI Learn FastAPI in 15 Days Course for beginner",
        "publishedAt": "6 months ago",
        "durationSeconds": 401,
        "views": 646,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "API Router in FastAPI Learn FastAPI in 15 Days Course for beginner\n\nFastAPI Course https://geekyshows.com/short/fastapi",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "4YRG8nF9NIk",
        "title": "SQLAlchemy Database in FastAPI Learn FastAPI in 15 Days Course for beginner",
        "publishedAt": "6 months ago",
        "durationSeconds": 792,
        "views": 978,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "SQLAlchemy Database in FastAPI Learn FastAPI in 15 Days Course for beginner\n\nFastAPI Course https://geekyshows.com/short/fastapi",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "liOr6qil-yc",
        "title": "Middleware in FastAPI Learn FastAPI in 15 Days Course for beginner",
        "publishedAt": "6 months ago",
        "durationSeconds": 277,
        "views": 1549,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Middleware in FastAPI Learn FastAPI in 15 Days Course for beginner\n\nFastAPI Course https://geekyshows.com/short/fastapi",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DcTNLAjalns",
        "title": "Form Handling in FastAPI Learn FastAPI in 15 Days Course for beginner",
        "publishedAt": "6 months ago",
        "durationSeconds": 249,
        "views": 600,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Form Handling in FastAPI Learn FastAPI in 15 Days Course for beginner\n\nFastAPI Course https://geekyshows.com/short/fastapi",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "r6p95yBxYdw",
        "title": "Header in FastAPI Learn FastAPI in 15 Days Course for beginner",
        "publishedAt": "6 months ago",
        "durationSeconds": 172,
        "views": 706,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Header in FastAPI Learn FastAPI in 15 Days Course for beginner\n\nFastAPI Course https://geekyshows.com/short/fastapi",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "0WDTikPFfwc",
        "title": "Cookie in FastAPI Learn FastAPI in 15 Days Course for beginner",
        "publishedAt": "6 months ago",
        "durationSeconds": 224,
        "views": 647,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Cookie in FastAPI Learn FastAPI in 15 Days Course for beginner\n\nFastAPI Course https://geekyshows.com/short/fastapi",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "tzTBKynR3U8",
        "title": "Response Model with Pydantic Model Learn FastAPI in 15 Days Course for beginner",
        "publishedAt": "6 months ago",
        "durationSeconds": 269,
        "views": 750,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Response Model with Pydantic Model Learn FastAPI in 15 Days Course for beginner\n\nFastAPI Course https://geekyshows.com/short/fastapi",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 5,
      "uploadsLast90d": 5,
      "uploadCadenceWeekly": 0.39,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": 899,
      "viewsPerVideoP90Last90d": 3029,
      "viewVelocityTrend": "rising"
    },
    "performanceBaseline": {
      "p50Views": 899,
      "p90Views": 3029,
      "p99Views": 3029,
      "outperformingVideosLast90d": 2
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": "[REDACTED]",
      "businessEmailSource": "channel-about-section",
      "businessEmailMxValid": true,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "geekyshows.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "high",
      "components": {
        "businessEmailPresent": true,
        "businessEmailValid": true,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": false
      },
      "interpretation": "Will likely respond to sponsorship outreach: business email validated + active sponsor history + external website live."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.7,
        "evidenceVideoIds": [
          "ZOOCz8i7UhQ",
          "tFU-Pq0ibig",
          "qUkn-4iVzoI",
          "9GupRfDltHA",
          "qDDoY5FCtZA"
        ]
      },
      {
        "label": "com",
        "share": 0.7,
        "evidenceVideoIds": [
          "ZOOCz8i7UhQ",
          "tFU-Pq0ibig",
          "qUkn-4iVzoI",
          "9GupRfDltHA",
          "qDDoY5FCtZA"
        ]
      },
      {
        "label": "course",
        "share": 0.5,
        "evidenceVideoIds": [
          "ZOOCz8i7UhQ",
          "tFU-Pq0ibig",
          "qUkn-4iVzoI",
          "9GupRfDltHA",
          "qDDoY5FCtZA"
        ]
      },
      {
        "label": "beginner",
        "share": 0.47,
        "evidenceVideoIds": [
          "btW4VojIkyg",
          "qCcu7I00yww",
          "5CcG8FPxY6Q",
          "qpfv3A38I8I",
          "YLDm50FLCPc"
        ]
      },
      {
        "label": "geekyshows",
        "share": 0.4,
        "evidenceVideoIds": [
          "ZOOCz8i7UhQ",
          "PmkEuADHXiE",
          "ORyH3j1KT8M",
          "3_CKFOGRH8I",
          "Bo1lqKKCdHk"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Saturday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "C",
      "rationale": "business email validated.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "strong",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 58,
      "reason": "validated business email x growth rising last 90d",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.95
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.85
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.3
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.8,
      "level": "high",
      "coldStart": false
    },
    "whyThisMatters": "validated business email + rising 90d view velocity. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 7,
    "failureType": null,
    "summary": "Geeky Shows — 0.5M subs, C-tier sponsorship readiness, high contactability, respond within 7 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": true,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 58,
      "readyForOutreach": false,
      "blockers": [],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.52,
      "urgency": 0,
      "noiseRisk": 0.2
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": {
      "isValidFormat": true,
      "canonical": "contact@geekyshows.com",
      "domain": "geekyshows.com",
      "lineType": "role-account",
      "mxValid": true,
      "confidence": 0.75,
      "originalInput": "contact@geekyshows.com",
      "email": null
    },
    "allEmailValidations": [
      {
        "isValidFormat": true,
        "canonical": "contact@geekyshows.com",
        "domain": "geekyshows.com",
        "lineType": "role-account",
        "mxValid": true,
        "confidence": 0.75,
        "originalInput": "contact@geekyshows.com",
        "email": null
      }
    ],
    "contactabilityScore": {
      "score": 83,
      "level": "high",
      "components": {
        "presence": 25,
        "sourceQuality": 18,
        "validationQuality": 18,
        "identityStrength": 9,
        "freshness": 8,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "email",
      "secondary": "agency-form",
      "reason": "Validated business email + active sponsor history — email-first maximises response rate."
    },
    "sequenceFit": {
      "directOutreachAllowed": true,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "channel-about",
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.83
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.83,
      "gap": 0.11,
      "howToClose": [
        "Run ryanclinton/person-enrichment-lookup against 'contact@geekyshows.com' to identify the inbox owner."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "medium",
      "score": 0.65,
      "factors": [
        "business-email-validated",
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + validated business email typically correlates with higher outreach responsiveness for macro-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:role-account",
        "channel-tier:macro"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-macro-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [],
      "safeChannels": [
        "email",
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [
      {
        "email": "[REDACTED]",
        "rank": 1,
        "reason": "role-account email",
        "role": "general"
      }
    ],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": false,
      "priorityQueue": "low"
    },
    "benchmarkRange": {
      "creatorTier": "macro",
      "sponsorCategory": "unspecified",
      "historicalTypicalReplyRange": "3-8%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-macro-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "delay",
      "reason": "C-tier readiness — nurture or enrich before outreach.",
      "appliedRules": [
        "contactability:high"
      ]
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": null,
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 64,
      "reasons": [
        "Validated business email (MX confirmed)",
        "Low confidence-conflict count in scoring trace"
      ],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "f58568ab55beb26952f137c7c77f13957d672df19aeae3a6c0e60027482f88b7",
      "inputsHash": "fe85b2a15745c737f7e47343b94fe3bb5c6641dd0f677d00ca13e40c792e1fd9",
      "rulesApplied": [
        "business-email-validated",
        "sponsorship-history-never",
        "growth-velocity-rising",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:56.858Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "error",
    "eventId": "722f6377dc24e7c1739a435e9b779a8cff9f0448cdc6d91010505acf143dcd7d",
    "channelHandle": "@gauravsensanjeev",
    "channelId": null,
    "failureType": "not_found",
    "message": "ytInitialData not found",
    "error": true,
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:57.931Z"
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "error",
    "eventId": "be81ea29756772fde76ede1036b5a9968c4fae291b2ca37c6dcb879ac768ce18",
    "channelHandle": "@TomNomNomCS",
    "channelId": null,
    "failureType": "not_found",
    "message": "ytInitialData not found",
    "error": true,
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:52:59.876Z"
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "error",
    "eventId": "32606c845daa52f6ede5d0e10aed45d4cdea3e6fb6f0bab6d85092472662070e",
    "channelHandle": "@b001io",
    "channelId": null,
    "failureType": "not_found",
    "message": "ytInitialData not found",
    "error": true,
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:53:00.899Z"
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "error",
    "eventId": "3092a0b273c255e4c430f21f58ad1d769ff4d196553826f4103e06ce8d0ab16a",
    "channelHandle": "@SmoljanovicJavaScript",
    "channelId": null,
    "failureType": "not_found",
    "message": "ytInitialData not found",
    "error": true,
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:53:02.461Z"
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "error",
    "eventId": "bd2f28d8d95e9b261af83fb4bd7c8bcbde5a61eff543cb306b43b3f2ba04f00b",
    "channelHandle": "@DevSimplifiedClone",
    "channelId": null,
    "failureType": "not_found",
    "message": "ytInitialData not found",
    "error": true,
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:53:05.416Z"
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "channel",
    "eventId": "647b229f5e860d9640fbeadc858304739c08508077613f1f2c1bfd8fa1b5e968",
    "channelId": "UC5Wi_NYysX-LfcqT3Hq9Faw",
    "channelHandle": "@CodingTutorials360",
    "channelName": "Dylan Israel",
    "channelUrl": "https://www.youtube.com/@CodingTutorials360",
    "description": "Coders and inspiring programmers have come to the correct channel. Daily uploads of multiple object oriented programming languages. Specializing with JavaScript and its frameworks such as jQuery, Angular, React and more. Most of the content is focused around online tutorial sites such as Codecademy, FreeCodeCamp and CodeCombat.",
    "joinDate": null,
    "location": null,
    "subscribers": 75900,
    "totalVideos": 1100,
    "totalViews": null,
    "isVerified": false,
    "avatarUrl": "https://yt3.googleusercontent.com/ytc/AIdro_mm5nSkCkBBoICBjeS93Sre39Jxlg9D8EhXksdmp80xQg=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=20587",
    "bannerUrl": null,
    "socialLinks": [
      {
        "platform": "mentorcruise.com",
        "url": "https://mentorcruise.com/mentor/DylanIsrael/"
      },
      {
        "platform": "udemy.com",
        "url": "https://www.udemy.com/user/dylanisrael/"
      },
      {
        "platform": "linkedin",
        "url": "https://www.linkedin.com/in/dylan310/"
      }
    ],
    "recentVideos": [
      {
        "videoId": "gOK7guA65yY",
        "title": "🚀Top 1% Rated Software Engineer on MentorCruise - Book Me Now and Let Me Help Grow Your Career 🚀",
        "publishedAt": "2 years ago",
        "durationSeconds": 197,
        "views": 2610,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🚀Top 1% Rated Software Engineer on MentorCruise - Book Me Now and Let Me Help Grow Your Career 🚀\n\nhttps://mentorcruise.com/mentor/Dylan...\n\nAs a self-taught software engineer and former Amazonian, I can relate to how important a mentor is to developing as an engineer. A good mentor has allowed me to progress my career tremendously fast and keep it fun while at it. I specialize in Front End Engineering and JavaScript / TypeScript.\n\nAll my mentees get access to my courses for FREE. I also will send a regular resource recommendation I have used so you can stay on top of your game!\n\nBetween speaking at conferences, authoring content on W3Schools, building courses and passive income streams, my podcast, and the YouTube channel I have inadvertently mentored upwards of a million unique individuals on a large scale. I'd like to do it on a more individual scale and help you succeed!\n\nWhether success is defined as helping you land that next big role, navigating salary negotiations, overcoming imposter syndrome, getting a side project up and running, or just upping your technical skill. I look forward to us doing all of the above!",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xW0lrAREHII",
        "title": "Is This The End??? Season 3 Ending",
        "publishedAt": "5 years ago",
        "durationSeconds": 2699,
        "views": 1741,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Is the podcast over? Is this our last episode! Listen up!\n\nSelf-Taught Or Not\nEpisode 13, Season 3\nMarch 29, 2021\n\n★ Episode details: https://share.transistor.fm/s/a14179df\n★ Additional episodes: http://selftaughtornot.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "DhogZ1gcqHA",
        "title": "Why You Should Test Your Emails With Julia From Mailtrap!",
        "publishedAt": "5 years ago",
        "durationSeconds": 2356,
        "views": 487,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this episode we chat with Julia from Mailtrap.io. Julia teaches us all about email marketing and why you should test your emails!\n\nSelf-Taught Or Not\nEpisode 12, Season 3\nMarch 24, 2021\n\n★ Episode details: https://share.transistor.fm/s/b2e8b698\n★ Additional episodes: http://selftaughtornot.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "WuMN07ylCa8",
        "title": "From Construction To Senior Software Developer - Interview With Jesse From CodeSTACKr!",
        "publishedAt": "5 years ago",
        "durationSeconds": 2739,
        "views": 948,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this episode we discuss with Jesse from Codestackr how he went from a construction worker to senior full stack developer\n\nSelf-Taught Or Not\nEpisode 11, Season 3\nMarch 15, 2021\n\n★ Episode details: https://share.transistor.fm/s/a90925ef\n★ Additional episodes: http://selftaughtornot.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "bY3MDwF6hRg",
        "title": "Dylan Gives A Very Important Update...",
        "publishedAt": "5 years ago",
        "durationSeconds": 1930,
        "views": 834,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Dylan gives a mental health update and looking back at 2020 in this very special solo episode\n\nSelf-Taught Or Not\nEpisode 10, Season 3\nMarch 8, 2021\n\n★ Episode details: https://share.transistor.fm/s/c3998b9d\n★ Additional episodes: http://selftaughtornot.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "62Rq2h6K4WE",
        "title": "Web Dev Q & A Mix Mash",
        "publishedAt": "5 years ago",
        "durationSeconds": 3047,
        "views": 337,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Web Dev Q & A Mix Mash where we answer the most common dev questions on Reddit.\n\nSelf-Taught Or Not\nEpisode 9, Season 3\nMarch 1, 2021\n\n★ Episode details: https://share.transistor.fm/s/0a45e60d\n★ Additional episodes: http://selftaughtornot.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "O8cZVJYcXMQ",
        "title": "Mentoring Madness and New Job Ramp",
        "publishedAt": "5 years ago",
        "durationSeconds": 2683,
        "views": 538,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Mentor or mentee take part in the madness and progress your career. We also dive into ramping up at a new job!\n\nSelf-Taught Or Not\nEpisode 8, Season 3\nFebruary 21, 2021\n\n★ Episode details: https://share.transistor.fm/s/c86e3d1a\n★ Additional episodes: http://selftaughtornot.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UfIvn-t7nuw",
        "title": "Covid and It's Lasting Changes on the Tech Industry",
        "publishedAt": "5 years ago",
        "durationSeconds": 2134,
        "views": 437,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "How has COVID impacted our lives and changed the tech industry?\n\nSelf-Taught Or Not\nEpisode 7, Season 3\nFebruary 16, 2021\n\n★ Episode details: https://share.transistor.fm/s/65986b66\n★ Additional episodes: http://selftaughtornot.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "fgxgka9B2lg",
        "title": "Hobbies Holding It down",
        "publishedAt": "5 years ago",
        "durationSeconds": 2526,
        "views": 392,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today we talk about the importance of hobbies and how they hold you down outside the software world.\n\nSelf-Taught Or Not\nEpisode 6, Season 3\nFebruary 8, 2021\n\n★ Episode details: https://share.transistor.fm/s/23d6af1a\n★ Additional episodes: http://selftaughtornot.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "z_wDEgPShoo",
        "title": "David Tang on Ember, Teaching, Code and Much More",
        "publishedAt": "5 years ago",
        "durationSeconds": 3726,
        "views": 294,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today we talk with David Tang and his many years of development experience, teaching part time web development and being an author.\n\nSelf-Taught Or Not\nEpisode 5, Season 3\nFebruary 2, 2021\n\n★ Episode details: https://share.transistor.fm/s/dd4471ac\n★ Additional episodes: http://selftaughtornot.com",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "HAKteiQuTQ8",
        "title": "GitHub API User Info with FE Engineer Dylan Israel",
        "publishedAt": "5 years ago",
        "durationSeconds": 1292,
        "views": 774,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Lets connect to the GitHub API and make a nice banner to add our statistics.\nAngular Course - http://dylanisrael.com/?course=100-angular \nBlog - https://dylancisrael.medium.com/github-api-get-your-...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "NoYxdyKwggE",
        "title": "Leaving a Job the Right Way",
        "publishedAt": "5 years ago",
        "durationSeconds": 3422,
        "views": 491,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Moving onto better opportunities can be tricky. When to do it? How to do it without burning bridges? We dive into all of this and more!\n\nSelf-Taught Or Not\nEpisode 4, Season 3\nJanuary 25, 2021...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "uBjscJwvBBM",
        "title": "2020 Review and Our Goals For 2021",
        "publishedAt": "5 years ago",
        "durationSeconds": 3242,
        "views": 440,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "2020 was not fun for a lot of us. In this episode we'll reflect how our software development and personal careers went in 2020 and what we want to accomplish for 2021. \n\nSelf-Taught Or Not...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "2AyHrasKYok",
        "title": "🏫  100 Algorithm Challenge Unit Testing Update with Jest by Testing Advocate Dylan Israel",
        "publishedAt": "5 years ago",
        "durationSeconds": 508,
        "views": 938,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "🏫  The 100 Algorithm Challenge gets a massive update adding unit testing with Jest to all 100+ challenges. \n- http://dylanisrael.com/?course=100-algorithms \n\n► ULTIMATE CODING RESOURCES...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "YQsU2Zq2Zis",
        "title": "Introduction to Clean Code Course on Scrimba by JavaScript Engineer Dylan Israel",
        "publishedAt": "5 years ago",
        "durationSeconds": 502,
        "views": 919,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Introduction to Clean Code Course on Scrimba by JavaScript Engineer Dylan Israel\n- Clean Code Course: https://scrimba.com/learn/cleancode?utm_source=youtube&utm_medium=video&utm_campaign=dylan_clea...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "f524PXduh1A",
        "title": "Mix Mashing Our Way into 2021",
        "publishedAt": "5 years ago",
        "durationSeconds": 3160,
        "views": 244,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today we talk about a few different topics that are all over the place, but filled with values. From soft skills to remote life and mentality and much much more!\n\nSelf-Taught Or Not\nEpisode...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "nAjavMpwvFk",
        "title": "Custom Style Console.log Message for your Portfolio in 10 Minutes with FE Engineer Dylan Israel",
        "publishedAt": "5 years ago",
        "durationSeconds": 671,
        "views": 1272,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today we build a custom styled console log message to add to your portfolio and impress potential employers!\n- 100 Angular Challenge: Build 100 Mini Projects\nhttp://dylanisrael.com/?course=100-angu...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "1MbBWwoj5GI",
        "title": "2020 End of Year Pay Report with Levels.fyi with FE Engineer Dylan Israel",
        "publishedAt": "5 years ago",
        "durationSeconds": 813,
        "views": 1514,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Highest Paying Companies of 2020 for Software Engineers with FE Engineer Dylan Israel\nArticle - https://www.levels.fyi/2020/ \n\n\n► ULTIMATE CODING RESOURCES LIST\nA collection of the best resources...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Zjp9m9H4M4Q",
        "title": "Marketing 101 for Developers - S3E1",
        "publishedAt": "5 years ago",
        "durationSeconds": 3946,
        "views": 502,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this episode we'll be discussing all about promoting yourself to the best of your ability as an engineer. The world needs to know how great you are for great things to come your way and...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "pddU-EbvCEY",
        "title": "Day 22 of JavaScriptMas with Scrimba and Dylan Israel",
        "publishedAt": "5 years ago",
        "durationSeconds": 358,
        "views": 384,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Day 22 of JavaScriptMas with Scrimba and Dylan Israel \n- Join the fun: https://scrimba.com/learn/adventcalendar?utm_source=youtube&utm_medium=referral&utm_campaign=JSadvent_calendar&utm_content=dyl...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "UY522S0MfMI",
        "title": "The War of Art Book Review by Steven Pressfield",
        "publishedAt": "5 years ago",
        "durationSeconds": 670,
        "views": 935,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The War of Art Book Review by Steven Pressfield - Break Through the Blocks and Win your Inner Creative Battles\n- Book https://amzn.to/37k40oQ \n\n► ULTIMATE CODING RESOURCES LIST\nA collection...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "H0dd2xRtWeA",
        "title": "New Amazon Job and Life Update with Ex Pizza Delivery Driver Dylan Israel",
        "publishedAt": "5 years ago",
        "durationSeconds": 683,
        "views": 3116,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "New Amazon Job and Life Update with Ex Pizza Delivery Driver Dylan Israel\n- AlgoExpert https://www.algoexpert.io/codinggod \n\n► ULTIMATE CODING RESOURCES LIST\nA collection of the best resources...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "xTt3EeHuQS0",
        "title": "24 Days of JavaScriptmas is Here | Day 1 with Dylan Israel",
        "publishedAt": "5 years ago",
        "durationSeconds": 348,
        "views": 915,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "24 Days of JavaScriptmas is Here | Day 1 with Dylan Israel\nJoin the fun - https://scrimba.com/learn/adventcalendar?utm_source=youtube&utm_medium=referral&utm_campaign=JSadvent_calendar&utm_content=...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "LDlwgTMC3zQ",
        "title": "Success Story 1 - Networking with Senior Software Engineer Dylan Israel",
        "publishedAt": "5 years ago",
        "durationSeconds": 821,
        "views": 1380,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Today we go over Henry's story and his journey to become a developer. \n- Thank you to our sponsor Devmountain: https://cutt.ly/GrrbLDE \n\n► ULTIMATE CODING RESOURCES LIST\nA collection of the...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "Z-WmfrUwtkU",
        "title": "New Course! TypeScript: Object-Oriented Programming with Course Creator Dylan Israel",
        "publishedAt": "5 years ago",
        "durationSeconds": 654,
        "views": 1197,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "New Course! TypeScript: Object-Oriented Programming with Course Creator Dylan Israel\n\n- Thank you to our sponsor Devmountain: https://cutt.ly/GrrbLDE \n- TypeScript OOP Course: https://www.linkedin....",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "TtBBh44cVts",
        "title": "The 5 Love Languages Book Review with Emotionally Lacking Dylan Israel ;)",
        "publishedAt": "5 years ago",
        "durationSeconds": 790,
        "views": 484,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "The 5 Love Languages Book Review with Emotionally Lacking Dylan Israel ;)\n- Thank you to our sponsor Devmountain: https://cutt.ly/GrrbLDE \n- 5 Love Languages Book | https://amzn.to/31OSZrV...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "vh7kXsE4bFA",
        "title": "Small Survey for Your Industry Help Over Time with Survey Loving Dylan Israel",
        "publishedAt": "5 years ago",
        "durationSeconds": 670,
        "views": 277,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Small Survey for Your Industry Help Over Time with Survey Loving Dylan Israel\nThank you to our sponsor Devmountain: https://cutt.ly/GrrbLDE \n\n\n► ULTIMATE CODING RESOURCES LIST\nA collection...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "9ryGC1dBgXs",
        "title": "Visual Your Code Contributions with Sourcerer.io with Git Terminal User Dylan Israel",
        "publishedAt": "5 years ago",
        "durationSeconds": 532,
        "views": 501,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Visual Your Code Contributions with Sourcerer.io with Git Terminal User Dylan Israel\nThank you to our sponsor Devmountain: https://cutt.ly/GrrbLDE \n- Sourcerer.io - https://sourcerer.io/\n\n►...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "PcSDe-_XJc4",
        "title": "Being a Dev Is Not All Sunshine and Rainbows with Happy Developer Dylan Israel",
        "publishedAt": "5 years ago",
        "durationSeconds": 886,
        "views": 1702,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "Being a Dev Is Not All Sunshine and Rainbows with Happy Developer Dylan Israel\nThank you to our sponsor Devmountain: https://cutt.ly/GrrbLDE \n\n► ULTIMATE CODING RESOURCES LIST\nA collection...",
        "transcript": null,
        "hashtags": []
      },
      {
        "videoId": "E0tbY30oAjI",
        "title": "Technical Interviewer Secrets! - Season 2 Episode 24",
        "publishedAt": "5 years ago",
        "durationSeconds": 2791,
        "views": 499,
        "likes": null,
        "commentCount": null,
        "isShort": false,
        "description": "In this episode we discuss what it's like to interview people and some tips you should take a way!\n\nSelf-Taught Or Not\nEpisode 24, Season 2\nJuly 28, 2020\n\n★ Episode details: https://share.transis...",
        "transcript": null,
        "hashtags": []
      }
    ],
    "growthVelocity": {
      "uploadsLast30d": 0,
      "uploadsLast90d": 0,
      "uploadCadenceWeekly": 0,
      "shortsCadenceWeekly": 0,
      "viewsPerVideoP50Last90d": null,
      "viewsPerVideoP90Last90d": null,
      "viewVelocityTrend": "unknown"
    },
    "performanceBaseline": {
      "p50Views": null,
      "p90Views": null,
      "p99Views": null,
      "outperformingVideosLast90d": 0
    },
    "sponsorshipSignals": {
      "sponsoredVideosLast90dEstimate": 0,
      "sponsorBrandsDetected": [],
      "affiliateLinkHosts": [
        "amzn.to"
      ],
      "sponsorshipFrequencyPercent": 0,
      "lastSponsoredVideoDate": null,
      "detectionDetail": []
    },
    "sponsorshipMaturity": {
      "tier": "never",
      "evidence": {
        "sponsoredVideoCountLast90d": 0,
        "uniqueSponsorBrandsLast90d": 0,
        "firstSponsoredVideoDate": null
      }
    },
    "sponsorFit": {
      "likelySponsorCategories": [
        {
          "category": "web-services",
          "confidence": 0.15,
          "evidence": [
            "topic-pillar:web development"
          ]
        }
      ],
      "unlikelyCategories": [
        "gambling",
        "crypto",
        "tobacco",
        "adult-content"
      ],
      "rationale": "Categories ranked by combined signal of content pillars + historical sponsor brands + transcript brand-mention frequency."
    },
    "businessContact": {
      "businessEmail": null,
      "businessEmailSource": null,
      "businessEmailMxValid": null,
      "linktreeResolution": [],
      "primaryWebsiteDomain": "mentorcruise.com",
      "additionalContacts": []
    },
    "contactability": {
      "tier": "low",
      "components": {
        "businessEmailPresent": false,
        "businessEmailValid": false,
        "agencyRepresentationDetected": false,
        "externalWebsiteActive": true,
        "sponsorshipHistoryPresent": false,
        "affiliateLinksPresent": true
      },
      "interpretation": "Limited contactability: thin business signals. Consider running website-contact-scraper or person-enrichment-lookup before outreach."
    },
    "topicPillars": [
      {
        "label": "https",
        "share": 0.8,
        "evidenceVideoIds": [
          "gOK7guA65yY",
          "xW0lrAREHII",
          "DhogZ1gcqHA",
          "WuMN07ylCa8",
          "bY3MDwF6hRg"
        ]
      },
      {
        "label": "com",
        "share": 0.53,
        "evidenceVideoIds": [
          "gOK7guA65yY",
          "xW0lrAREHII",
          "DhogZ1gcqHA",
          "WuMN07ylCa8",
          "bY3MDwF6hRg"
        ]
      },
      {
        "label": "dylan",
        "share": 0.53,
        "evidenceVideoIds": [
          "gOK7guA65yY",
          "bY3MDwF6hRg",
          "HAKteiQuTQ8",
          "2AyHrasKYok",
          "YQsU2Zq2Zis"
        ]
      },
      {
        "label": "self",
        "share": 0.47,
        "evidenceVideoIds": [
          "gOK7guA65yY",
          "xW0lrAREHII",
          "DhogZ1gcqHA",
          "WuMN07ylCa8",
          "bY3MDwF6hRg"
        ]
      },
      {
        "label": "taught",
        "share": 0.47,
        "evidenceVideoIds": [
          "gOK7guA65yY",
          "xW0lrAREHII",
          "DhogZ1gcqHA",
          "WuMN07ylCa8",
          "bY3MDwF6hRg"
        ]
      },
      {
        "label": "web development",
        "share": 0.03,
        "evidenceVideoIds": [
          "z_wDEgPShoo"
        ]
      }
    ],
    "audienceSignal": {
      "primaryCommentLanguage": null,
      "commentLanguageMix": {},
      "averageCommentsPerVideoLast90d": 0,
      "peakUploadDayOfWeek": "Saturday",
      "peakUploadHourUtc": 0
    },
    "sponsorshipReadiness": {
      "tier": "D",
      "rationale": "content pillars match high-value sponsor categories.",
      "components": {
        "subscriberSignal": "strong",
        "engagementRateSignal": "weak",
        "businessContactSignal": "weak",
        "postingCadenceSignal": "weak",
        "sponsorshipHistorySignal": "never"
      }
    },
    "detectedSensitiveThemes": [],
    "priorityScore": {
      "value": 33,
      "reason": "fits web-services",
      "components": [
        {
          "name": "sponsorship-history",
          "weight": 0.3,
          "value": 0.1
        },
        {
          "name": "contactability",
          "weight": 0.25,
          "value": 0.3
        },
        {
          "name": "growth-velocity",
          "weight": 0.2,
          "value": 0.4
        },
        {
          "name": "audience-fit",
          "weight": 0.15,
          "value": 0.35
        },
        {
          "name": "freshness",
          "weight": 0.1,
          "value": 0.95
        }
      ]
    },
    "confidence": {
      "score": 0.4,
      "level": "low",
      "coldStart": false
    },
    "whyThisMatters": "fits web-services. Channel is in the active outreach window.",
    "whyNow": "No recent sponsored video detected — sponsorship-decision timing unknown.",
    "respondWithinDays": 30,
    "failureType": null,
    "summary": "Dylan Israel — 0.1M subs, D-tier sponsorship readiness, low contactability, respond within 30 days.",
    "pipelineState": {
      "channelEnriched": true,
      "transcriptsSampled": true,
      "commentsSampled": false,
      "emailVerified": false,
      "icpScored": true,
      "crmSynced": false
    },
    "actorGraph": {
      "previous": null,
      "current": "ryanclinton/youtube-sponsorship-intelligence",
      "next": [
        "ryanclinton/bulk-email-verifier",
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ]
    },
    "executionReadiness": {
      "score": 33,
      "readyForOutreach": false,
      "blockers": [
        "contactability:low — enrich before outreach"
      ],
      "stepsToReady": [
        "Run ryanclinton/website-contact-scraper to surface decision-maker",
        "Run ryanclinton/bulk-email-verifier on candidate emails"
      ]
    },
    "improvementSuggestions": [],
    "nextActions": [],
    "channelState": null,
    "outreachUrgency": null,
    "channelBehaviorMetrics": null,
    "temporalSignals": null,
    "stateTransition": null,
    "regimeShift": null,
    "narrativeDelta": null,
    "persistentAccumulators": null,
    "changeFlags": [],
    "alertQuality": {
      "novelty": 0.77,
      "urgency": 0,
      "noiseRisk": 0.6
    },
    "suppressedSignals": [],
    "escalationRecommendation": null,
    "emailValidation": null,
    "allEmailValidations": [],
    "contactabilityScore": {
      "score": 5,
      "level": "unreachable",
      "components": {
        "presence": 0,
        "sourceQuality": 0,
        "validationQuality": 0,
        "identityStrength": 0,
        "freshness": 0,
        "decisionAlignment": 5
      }
    },
    "channelStrategy": {
      "primary": "agency-form",
      "secondary": "agency-form",
      "reason": "Limited published email — route via website or enrichment before outreach."
    },
    "sequenceFit": {
      "directOutreachAllowed": false,
      "agencyRouteRequired": false,
      "linkedInInMailReady": false,
      "voicemailReady": false
    },
    "coverageAnalysis": {
      "attemptedSources": [
        "channel-about",
        "linktree-resolution",
        "external-website-scan"
      ],
      "successfulSources": [
        "external-website-scan"
      ],
      "missedOpportunities": [
        "person-enrichment-lookup-not-run"
      ],
      "coverageScore": 0.05
    },
    "coverageCeiling": {
      "maxPossibleScore": 0.94,
      "currentScore": 0.05,
      "gap": 0.89,
      "howToClose": [
        "Run ryanclinton/website-contact-scraper on the channel external website to surface additional contacts."
      ]
    },
    "recoveryPlan": {
      "nextBestActorSlug": "ryanclinton/website-contact-scraper",
      "rationale": "Channel exposes limited contact surface; sibling actor can resolve decision-maker.",
      "expectedLift": "+0.15-0.25 contactability",
      "recommendedFlow": [
        "ryanclinton/website-contact-scraper",
        "ryanclinton/person-enrichment-lookup"
      ],
      "expectedLiftScore": 0.2
    },
    "reachability": {
      "status": "low",
      "score": 0.25,
      "factors": [
        "external-website-active"
      ],
      "riskFlags": []
    },
    "historicalContactabilityPattern": {
      "pattern": "no recent sponsor history + no business email typically correlates with higher outreach responsiveness for mid-tier creators.",
      "evidenceBasis": [
        "sponsorship-history:never",
        "email-line-type:none",
        "channel-tier:mid"
      ],
      "source": "industry-reported-creator-outreach-patterns-2024-2025-mid-tier",
      "note": "Descriptive pattern from public sources. NOT a per-record prediction; the actor does not forecast individual outreach outcomes."
    },
    "contactRiskGate": {
      "shouldBlockOutreach": false,
      "riskReasons": [
        "no-published-business-email"
      ],
      "safeChannels": [
        "agency-form"
      ],
      "unsafeChannels": [],
      "overrideAllowed": true
    },
    "emailRanking": [],
    "nextBestActions": [
      {
        "if": "no_response_after_5d",
        "then": "send_followup_with_specific_brand_match"
      },
      {
        "if": "bounced",
        "then": "run_email_pattern_finder_then_retry"
      },
      {
        "if": "agency_auto_reply",
        "then": "route_to_agency_form"
      },
      {
        "if": "always",
        "then": "log_outcome_to_outcome_dataset"
      }
    ],
    "dataIntegrity": {
      "status": "clean",
      "issues": [],
      "severity": "none"
    },
    "automationTriggers": {
      "sendToEmailSequence": false,
      "sendToAgencyRouter": false,
      "sendToCrm": false,
      "requiresEnrichment": true,
      "priorityQueue": "none"
    },
    "benchmarkRange": {
      "creatorTier": "mid",
      "sponsorCategory": "web-services",
      "historicalTypicalReplyRange": "5-12%",
      "source": "industry-reported-cold-outreach-replies-2024-2025-mid-tier",
      "note": "Range is a guidance benchmark, not a prediction for this specific creator."
    },
    "costToActUsd": 3,
    "actionDecision": {
      "type": "ignore",
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "appliedRules": []
    },
    "allocationDecision": {
      "selected": false,
      "reason": "Economics layer disabled — allocation not computed.",
      "excludedDueTo": "economics-disabled",
      "rankInAllocation": null
    },
    "actionPlan": [
      {
        "step": 1,
        "action": "Verify business email with deeper SMTP probe",
        "targetActorSlug": "ryanclinton/bulk-email-verifier",
        "required": false,
        "estimatedCostUsd": 0.5
      },
      {
        "step": 2,
        "action": "Run website-contact-scraper to identify decision-maker name",
        "targetActorSlug": "ryanclinton/website-contact-scraper",
        "required": false,
        "estimatedCostUsd": 1
      },
      {
        "step": 3,
        "action": "Send personalised partnership pitch referencing recent sponsor categories",
        "required": true,
        "estimatedCostUsd": 3
      }
    ],
    "outreachPlays": [],
    "timingWindow": {
      "status": "unknown",
      "reason": "No recent sponsored video detected — sponsorship-decision cycle inference unavailable.",
      "decayRisk": 0
    },
    "relativePosition": null,
    "disqualificationAnalysis": {
      "reason": "D-tier readiness — composite signal below threshold (never history, weak contact).",
      "gaps": [
        "tier:D",
        "contactability:low"
      ]
    },
    "upstreamQuality": null,
    "simulation": null,
    "salesTrust": {
      "trustScore": 40,
      "reasons": [],
      "repObjection": null,
      "answer": null
    },
    "dataHygiene": {
      "score": 100,
      "severity": "clean",
      "criticalIssues": [],
      "normalisationIssues": [],
      "stalenessRisk": "fresh",
      "automationSafe": true
    },
    "freshness": {
      "status": "fresh",
      "ageDays": 0,
      "scorePenalty": 0,
      "recommendedAction": "use-as-is",
      "dateFieldUsed": "_meta.fetchedAt"
    },
    "decisionSnapshot": {
      "schemaVersion": "1.0.0",
      "eventId": "647b229f5e860d9640fbeadc858304739c08508077613f1f2c1bfd8fa1b5e968",
      "inputsHash": "08f5e03c2a9cde1f8e3bf1f99ea95556d329614ec6387d47448720a605b73484",
      "rulesApplied": [
        "sponsorship-history-never",
        "growth-velocity-unknown",
        "profile:agency-sponsorship-prospecting"
      ],
      "profileSnapshot": {
        "profile": "agency-sponsorship-prospecting",
        "persona": "sponsorship-team",
        "goal": "sponsorship-fit",
        "strictness": "balanced",
        "scorecardTemplate": "agency-sponsorship-v1"
      },
      "replayable": true
    },
    "_meta": {
      "mode": "channels",
      "fetchedAt": "2026-05-14T00:53:14.629Z",
      "dataSourcesUsed": [
        "channelPage",
        "videoListings",
        "transcripts"
      ],
      "intelligenceFieldsComputed": [
        "sponsorshipTimestamps",
        "sponsorshipSignals",
        "sponsorshipMaturity",
        "growthVelocity",
        "performanceBaseline",
        "audienceSignal",
        "topicPillars",
        "businessContact",
        "contactability",
        "sponsorFit",
        "sponsorshipReadiness",
        "priorityScore",
        "confidence"
      ],
      "degraded": false
    }
  },
  {
    "schemaVersion": "1.0.0",
    "recordType": "summary",
    "runManifest": {
      "schemaVersion": "1.0.0",
      "actorVersion": "1.0.0",
      "mode": "channels",
      "profile": "agency-sponsorship-prospecting",
      "persona": "sponsorship-team",
      "goal": "sponsorship-fit",
      "systemMode": false,
      "watchlistName": null,
      "outputProfile": "sales",
      "rateLimitPerSecond": 2,
      "maxRetries": 3,
      "timeoutMs": 120000,
      "scoringWeightsVersion": "1.0.0",
      "sponsorshipPatternsVersion": "1.0.0",
      "sponsorFitTaxonomyVersion": "1.0.0",
      "industryDealSizeTableVersion": "1.0.0",
      "runStartedAt": "2026-05-14T00:51:24.892Z",
      "runCompletedAt": "2026-05-14T00:53:15.523Z"
    },
    "portfolioState": {
      "overallStatus": "moderate",
      "attentionCount": 0,
      "criticalChannels": 0,
      "trend": "stable",
      "dominantSignals": [
        "growth-velocity-rising",
        "contactability-validated",
        "sponsorship-velocity-rising"
      ],
      "avgPressureScore": 0,
      "pressureDistribution": {
        "critical": 0,
        "high": 0,
        "elevated": 0,
        "normal": 0,
        "quiet": 0
      },
      "summary": "92 channels — overallStatus=moderate, 0 need attention (0 critical)."
    },
    "priorityQueue": [
      {
        "rank": 1,
        "channelId": "UC9x0AN7BWHpCDHSm9NiJFJQ",
        "channelHandle": "@NetworkChuck",
        "priorityScore": 83,
        "state": "monitor",
        "pressureScore": 0,
        "reason": "regular sponsor history x validated business email x growth rising last 90d x fits ai-saas",
        "eventId": "7b3439328bed9ee617ee334d96baf9191f31f791f1d2a8b1243a907e92c9e00b"
      },
      {
        "rank": 2,
        "channelId": "UCQ-W1KE9EYfdxhL6S4twUNw",
        "channelHandle": "@TheCherno",
        "priorityScore": 70,
        "state": "monitor",
        "pressureScore": 0,
        "reason": "regular sponsor history x validated business email x fits web-services",
        "eventId": "1281d9396d23644f1f0251e9cac0d44c8964ea8a2d95a93ac606b4a7b6d51702"
      },
      {
        "rank": 3,
        "channelId": "UC4JX40jDee_tINbkjycV4Sg",
        "channelHandle": "@TechWithTim",
        "priorityScore": 64,
        "state": "monitor",
        "pressureScore": 0,
        "reason": "regular sponsor history x growth rising last 90d",
        "eventId": "f7653800e465ab88897388aa98248a8cd7306228603ef376cd6f3797a666ee5b"
      },
      {
        "rank": 4,
        "channelId": "UCWI-ohtRu8eEeDj93hmUsUQ",
        "channelHandle": "@CodingWithLewis",
        "priorityScore": 64,
        "state": "monitor",
        "pressureScore": 0,
        "reason": "validated business email",
        "eventId": "dc3d5f34dbd6f7b0ca1cd17f62597264ed335e0b21b3bdb7d2500d9831d638c3"
      },
      {
        "rank": 5,
        "channelId": "UCvM5YYWwfLwpcQgbRr68JLQ",
        "channelHandle": "@AdrianTwarog",
        "priorityScore": 61,
        "state": "monitor",
        "pressureScore": 0,
        "reason": "regular sponsor history x fits developer-tools",
        "eventId": "4e5d259ff570d29ca1ef5ffd1c2975d7fd80f5732aff4d6cce1833dbfe439c41"
      },
      {
        "rank": 6,
        "channelId": "UCWQaM7SpSECp9FELz-cHzuQ",
        "channelHandle": "@dreamsofcode",
        "priorityScore": 61,
        "state": "monitor",
        "pressureScore": 0,
        "reason": "regular sponsor history x fits web-services",
        "eventId": "b822fedc6828b157202e49861ff1804e2f02ef1c55ea4f97fb737bfbf672d06d"
      },
      {
        "rank": 7,
        "channelId": "UCP7WmQ_U4GB3K51Od9QvM0w",
        "channelHandle": "@davidbombal",
        "priorityScore": 57,
        "state": "monitor",
        "pressureScore": 0,
        "reason": "fits education",
        "eventId": "92ce56e0b7f064f9370f7c74e8924077866a6191e3e8b556f65613547e3b0c62"
      },
      {
        "rank": 8,
        "channelId": "UCJUmE61LxhbhudzUugHL2wQ",
        "channelHandle": "@mehulmpt",
        "priorityScore": 54,
        "state": "monitor",
        "pressureScore": 0,
        "reason": "growth rising last 90d",
        "eventId": "c9d41fee33f469c92eb20766b0cc1fefbe5e3a431c3191af408a755fbdff1f51"
      },
      {
        "rank": 9,
        "channelId": "UCVyRiMvfUNMA1UPlDPzG5Ow",
        "channelHandle": "@DesignCourse",
        "priorityScore": 52,
        "state": "monitor",
        "pressureScore": 0,
        "reason": "validated business email x fits ai-saas",
        "eventId": "07872f834de9a100d874ffde327b2d040d5283821b0e371aa89780f362140b0f"
      },
      {
        "rank": 10,
        "channelId": "UC5DNytAJ6_FISueUfzZCVsw",
        "channelHandle": "@aniakubow",
        "priorityScore": 52,
        "state": "monitor",
        "pressureScore": 0,
        "reason": "validated business email",
        "eventId": "e8a207c52e7b27344d200049f7124b8094a32047ad481e721cd5e17a20d88eb8"
      }
    ],
    "watchlistAnalytics": null,
    "cohortInsights": {
      "size": 92,
      "topNiches": [
        {
          "value": "https",
          "count": 79,
          "share": 0.86
        },
        {
          "value": "com",
          "count": 51,
          "share": 0.55
        },
        {
          "value": "code",
          "count": 15,
          "share": 0.16
        },
        {
          "value": "machine learning",
          "count": 14,
          "share": 0.15
        },
        {
          "value": "web development",
          "count": 14,
          "share": 0.15
        }
      ],
      "averageGrowthVelocity": 0.81,
      "decisionDistribution": {
        "contact-now": 2,
        "nurture": 18,
        "monitor": 56,
        "skip": 16
      },
      "lowDiversity": {
        "industries": false,
        "audienceLanguages": true,
        "reason": "mixed-language cohort"
      },
      "duplicateRate": 0,
      "recommendedApproach": "account-based",
      "risk": "medium",
      "validRate": 0.14
    },
    "icpInsights": {
      "topPerformerCohortSize": 10,
      "topNiches": [
        {
          "value": "https",
          "count": 79,
          "share": 0.86
        },
        {
          "value": "com",
          "count": 51,
          "share": 0.55
        },
        {
          "value": "code",
          "count": 15,
          "share": 0.16
        },
        {
          "value": "machine learning",
          "count": 14,
          "share": 0.15
        },
        {
          "value": "web development",
          "count": 14,
          "share": 0.15
        }
      ],
      "topAudienceLanguages": [
        {
          "value": "unknown",
          "count": 92,
          "share": 1
        }
      ],
      "topSponsorCategories": [
        {
          "value": "web-services",
          "count": 17,
          "share": 0.18
        },
        {
          "value": "ai-saas",
          "count": 10,
          "share": 0.11
        },
        {
          "value": "developer-tools",
          "count": 5,
          "share": 0.05
        },
        {
          "value": "consumer-electronics",
          "count": 2,
          "share": 0.02
        },
        {
          "value": "education",
          "count": 2,
          "share": 0.02
        }
      ],
      "icpVsTopPerformerDrift": {
        "nichesNotInIcp": [],
        "sponsorCategoriesNotInIcp": [],
        "suggestion": "Top performers cluster heavily in https + com. Consider tightening the niche filter for future runs."
      }
    },
    "batchInsights": {
      "listQualityScore": 38,
      "listQualityLevel": "poor",
      "estimatedReplyRate": 0.045,
      "expectedOutreachVolume": 20,
      "recommendedActionVolume": 2,
      "riskDistribution": {
        "contact-now": 2,
        "nurture": 18,
        "monitor": 56,
        "skip": 16
      },
      "diagnosis": "92 channels processed — 20 outreach-ready, 2 immediate-priority.",
      "recommendations": []
    },
    "changeAnalysis": null,
    "savings": {
      "leadsSkipped": 11,
      "estimatedEnrichmentCostAvoidedUsd": 16.5,
      "estimatedSdrTouchesAvoided": 11,
      "estimatedSpendAvoidedUsd": 33,
      "reason": "11 channels skipped by quality gate (no PPE charge)."
    },
    "simulationStats": null,
    "executionPlan": null,
    "operationalPosture": null,
    "attentionGuidance": null
  }
]
