Inspiration

Enterprises already have hours of training video. Completion rates do not tell a manager whether someone can do the job. Learners get stuck, skip steps, or submit work nobody reviews. Chatbots answer questions — they do not plan a path, watch for evidence, or update a competency profile.

We built SkillProof Agent on ChatPye so a real video product could grow an agentic learning layer. The goal: help employees and employers upskill from video with proof, not just certificates.

What it does

Paste a YouTube tutorial, add optional docs, set a learning goal, click Generate SkillProof Agent.

Six agents run as a team:

  • Planner — video + docs → learning plan, tasks, competencies, quiz checkpoints
  • Tutor — progressive hints in the workspace chat (uses video + transcript context)
  • Observer — xAPI-compatible events (viewed, asked, completed, failed, submitted)
  • Assessor — scores artifacts against rubric; links evidence to competencies
  • Coach — continue, advance, retry, remediate, nudge
  • Orchestrator — ADK-style Sequential / Parallel / Loop workflows + audit trail

Managers see evidence-backed SkillProof profiles. We never label someone qualified without evidence.

How we built it

  • Next.js 15 on Cloud Run with Firebase Auth
  • Vertex AI Gemini 3.6 Flash for agents and chat; Gemini 2.5 Flash Lite for YouTube video analysis (parallel time windows for full-video coverage)
  • Google GenAI SDK (@google/genai) with Application Default Credentials — no API key in production
  • Google ADK sidecar on Cloud Run (skillproof-adk)
  • Cloud SQL Postgres for videos, transcripts, learning events, competencies
  • Firestore MongoDB-compatible for document-store routes
  • TypeScript orchestrator in src/lib/agents/ — product authority; ADK optional sidecar

Video processing uses Gemini to analyse YouTube URLs directly from Cloud Run (caption scraping is blocked on datacenter IPs).

What we learned

Multi-agent systems need scoped memory, explicit tool permissions, and inspectable workflows — not one giant prompt. Separating text and video models mattered: Gemini 3.x rejects YouTube URL input; 2.5 Flash Lite handles video reliably.

Challenges

  • AI Studio prepayment credits depleted — migrated to Vertex AI billing on GCP
  • YouTube transcript scraping blocked from Cloud Run — windowed Gemini video analysis
  • Firebase Auth + Cloud Run env propagation + Firestore MongoDB index build times (~60s per index)
  • Removing demo seed data that masked real-time behaviour

Built with (tags)

Next.js, TypeScript, Python, FastAPI, Google ADK, Google GenAI SDK, Gemini 3.6 Flash, Gemini 2.5 Flash Lite, Firebase Auth, Cloud Run, Cloud SQL, Firestore, Cloud Storage, Vertex AI, Drizzle, PostgreSQL, xAPI, Tailwind CSS


Try it out links

Built With

  • cloud-run
  • cloud-sql
  • cloud-storage
  • css
  • drizzle
  • fastapi
  • firebase-auth
  • firestore
  • gemini-2.5-flash-lite
  • gemini-3.6-flash
  • google-adk
  • google-genai-sdk
  • next.js
  • postgresql
  • python
  • tailwind
  • typescript
  • vertex-ai
  • xapi
Share this project:

Updates

Submission history