{
  "$schema": "https://schema.org/Person",
  "generatedAt": "2026-09-29T16:11:34.317Z",
  "canonicalUrl": "https://koratmeet.in",
  "person": {
    "name": "Meet Korat",
    "title": "AI Automation Engineer",
    "summary": "AI Automation Engineer with experience building production-ready AI systems using LLMs, Voice AI, workflow automation, cloud infrastructure, and product engineering.",
    "identity": "I build AI-powered operational systems that automate business processes, content generation, lead qualification, evaluation workflows, and internal operations. My work combines AI models, workflow automation, cloud infrastructure, APIs, and product engineering to build production-ready systems that solve real business problems.",
    "whatIBring": "I don't simply integrate AI APIs. I design complete AI-powered operational systems that combine cloud infrastructure, workflow orchestration, automation, media generation, and product thinking to solve real business problems. My focus is building systems that businesses can reliably use in production - not isolated AI demonstrations.",
    "location": "Nava Naroda, Ahmedabad, India",
    "email": "meetkorat903@gmail.com",
    "website": "https://koratmeet.in",
    "linkedin": "https://www.linkedin.com/in/meet-korat-335632245/",
    "github": "https://github.com/Meetkorat38",
    "cv": "https://koratmeet.in/cv.pdf",
    "avatar": "https://koratmeet.in/avatar.png"
  },
  "availability": {
    "status": "Open to work",
    "detail": "Actively interviewing for AI Automation Engineer and Applied AI Systems Engineer roles. Open to remote, hybrid, or relocation. Available to start immediately.",
    "workArrangement": [
      "Remote",
      "Hybrid",
      "On-site (Ahmedabad)",
      "Relocation"
    ],
    "careerGoal": "Join an AI-first product company or startup as an AI Automation Engineer or Applied AI Systems Engineer - building scalable AI products, learning from experienced engineers, and growing into a senior engineering role.",
    "targetRoles": [
      "AI Automation Engineer",
      "Applied AI Systems Engineer",
      "AI Product Engineer",
      "Founding Engineer"
    ]
  },
  "stats": [
    {
      "label": "Production projects",
      "value": "5+"
    },
    {
      "label": "AI providers integrated",
      "value": "10+"
    },
    {
      "label": "Songs generated",
      "value": "650+"
    },
    {
      "label": "Slides automated",
      "value": "600+"
    }
  ],
  "experience": [
    {
      "role": "AI Automation Engineer",
      "org": "Team Because",
      "orgUrl": "https://teambecause.com/",
      "period": "Dec 2025 - Present",
      "highlights": [
        "Build production AI applications using modern LLM APIs",
        "Design automation workflows for internal operations",
        "Develop AI-powered content generation systems",
        "Build AI lead qualification platforms and Voice AI applications",
        "Deploy cloud-based AI applications across frontend, backend, APIs, and databases",
        "Contribute to Foresight, a team-built AI financial intelligence platform - AWS medallion data lake, Bedrock RAG, and the data-privacy and AI-usage policy the build follows",
        "Run client delivery directly: weekly requirement sessions, demos, and launch coordination",
        "Collaborate with marketing, design, and product teams on AI-powered solutions"
      ]
    }
  ],
  "skills": [
    {
      "group": "LLMs & AI",
      "items": [
        "OpenAI",
        "Claude",
        "Gemini",
        "OpenRouter",
        "Grok",
        "Kie AI",
        "Prompt Engineering",
        "LLM Integration"
      ]
    },
    {
      "group": "Workflow & Orchestration",
      "items": [
        "n8n",
        "Inngest",
        "Webhooks",
        "REST APIs",
        "Background Jobs",
        "Event-driven Workflows"
      ]
    },
    {
      "group": "Voice AI",
      "items": [
        "ElevenLabs",
        "SIP Trunking",
        "Voice Cloning",
        "Speech-to-Text",
        "Text-to-Speech"
      ]
    },
    {
      "group": "Backend & Cloud",
      "items": [
        "Node.js",
        "FastAPI",
        "Supabase",
        "PostgreSQL",
        "Firebase",
        "Railway",
        "Vercel",
        "AWS",
        "Amazon S3",
        "Amazon Bedrock",
        "AWS Lambda",
        "OpenSearch"
      ]
    },
    {
      "group": "Frontend & Media",
      "items": [
        "React",
        "Next.js",
        "Tailwind CSS",
        "Lovable",
        "FFmpeg",
        "HeyGen",
        "Subtitle Generation",
        "AI Video Editing",
        "Image Processing"
      ]
    },
    {
      "group": "Product & Strategy",
      "items": [
        "AI Product Design",
        "Workflow Architecture",
        "Business Process Automation",
        "Product Strategy",
        "AI System Integration",
        "Rapid Prototyping"
      ]
    }
  ],
  "currentlyLearning": [
    "Amazon Web Services (AWS)",
    "Amazon Bedrock",
    "FastAPI",
    "Serverless Architectures",
    "IAM & Lambda",
    "OpenSearch & Vector Search",
    "Data Engineering Concepts",
    "AI Infrastructure",
    "Cloud-based AI Systems"
  ],
  "projects": [
    {
      "slug": "cg-sanchar",
      "url": "https://koratmeet.in/projects/cg-sanchar",
      "markdownUrl": "https://koratmeet.in/md/projects/cg-sanchar.md",
      "title": "CG Sanchar - Multi-State WhatsApp Automation",
      "category": "WhatsApp broadcast automation · multi-tenant · client delivery",
      "oneLiner": "Teams in every state were designing and posting each WhatsApp creative by hand. Now one console generates, reviews, and schedules them all.",
      "summary": "A national education communications programme publishes to WhatsApp channels in every state, each with its own bots, channels, and staff. The tool had to take the manual work away without ever letting one team publish into another team's channel. Operators pick a channel, generate a state-branded creative or upload their own, get a caption written for it, send it through review, and schedule it.",
      "elevatorPitch": "One console runs WhatsApp publishing for every state team: generate a branded creative or upload your own, get a caption drafted for it, review it, and schedule it to the right channel. Each team is confined to its own state, uploads run on single-use signed URLs so no shared credentials exist anywhere in the system, and a person approves before anything reaches a public audience. Around 170 creatives have shipped through it.",
      "description": "Delivered against a live client over weekly working sessions - requirements gathered, features demoed, and scope adjusted week to week rather than against a spec fixed up front.",
      "role": "Lead engineer - build and client delivery",
      "status": "Production",
      "year": "2026",
      "problem": "Every state team produced its own WhatsApp posts by hand: build the creative, write the caption, remember which channel it belongs to, post it. It did not scale, branding drifted between states, and nothing stopped someone from publishing into a channel that was not theirs. These posts reach a public audience - a mistake is not something you can quietly undo.",
      "solution": "We worked backwards from the two things that could not move. The client's security team would not share credentials, and each team had to stay inside its own state - so both were made structural rather than something the interface has to remember to enforce. Uploads route through a service that mints a short-lived, single-use URL per file, so no long-lived key is ever distributed and size limits live in one place. Access is modelled per state with three levels, making scope a property of the data rather than a UI check. On top of that sits the part operators actually use: choose a channel, generate a branded creative or bring your own, get a caption drafted from the image and the channel it is going to, review it, schedule it. Generation is automated; publishing stays a decision a person makes.",
      "architecture": [
        "Pick channel",
        "Generate / upload",
        "Auto-caption",
        "Review",
        "Signed upload",
        "Private bucket + CDN",
        "SwiftChat",
        "WhatsApp channel"
      ],
      "tools": [
        "React",
        "TypeScript",
        "Supabase",
        "AWS S3",
        "AWS CloudFront",
        "AWS Lambda",
        "Presigned URLs",
        "SwiftChat API",
        "WhatsApp Channels",
        "Role-based access control",
        "Lovable"
      ],
      "metrics": [
        {
          "label": "Creatives shipped",
          "value": "~170"
        },
        {
          "label": "Scope",
          "value": "Multi-state"
        },
        {
          "label": "Access levels",
          "value": "3 · none / view / edit"
        },
        {
          "label": "Shared keys",
          "value": "None"
        }
      ],
      "keyDecisions": [
        {
          "title": "Design for having no credentials at all",
          "detail": "The client's security team would not hand over keys, and they were right to refuse. Instead of negotiating, the upload path was built so credentials are never needed: one endpoint issues a time-limited URL per file. The constraint made the system safer than the original plan."
        },
        {
          "title": "Separate who can deliver a file from who can store one",
          "detail": "The bucket blocks public access entirely and a CDN is the only public route to a creative. Storage permissions and delivery permissions stop being the same decision, so opening one never quietly opens the other."
        },
        {
          "title": "Put scoping in the data, not the interface",
          "detail": "Every team edits only its own state, enforced at the access layer rather than by hiding buttons. With many teams publishing to public channels, a mis-scoped post costs far more than carrying a permission model."
        },
        {
          "title": "Automate generation, not publishing",
          "detail": "An operator sees the creative and its caption before anything goes out. Keeping a person on the last step is what makes running this daily, at this reach, safe."
        }
      ],
      "buildNotes": [
        "Each state carries its own bots, channels, and team members, so adding a state is configuration rather than a code change",
        "Three access levels - none, view-only, and edit scoped to a user's own state",
        "A fixed header panel is composited onto every generated creative so state branding cannot drift",
        "Captions are drafted from the image plus the destination channel, appending the bot link where one is set",
        "Custom uploads supported, with a toggle for whether the brand overlay is applied",
        "Image storage migrated onto the client's own cloud account mid-flight, without downtime"
      ],
      "results": [
        "~170 creatives generated and published through the pipeline",
        "Per-state manual production replaced by generate, review, schedule",
        "No shared cloud credentials distributed anywhere in the system",
        "Each team confined to its own channels, with a review step before publish"
      ],
      "proves": [
        "Designing a system around a client's security constraints rather than around them",
        "Multi-tenant access control across many independent teams",
        "Client-facing delivery - requirements, demos, and launch coordination",
        "Automation with a human review gate where mistakes are public"
      ],
      "highlights": [
        "Turned a client security constraint into a better architecture instead of an exception",
        "Multi-tenant role scoping across many independent teams",
        "Ran the client relationship directly: weekly requirements, demos, launch",
        "Migrated storage onto the client's own cloud account without downtime"
      ]
    },
    {
      "slug": "foresight",
      "url": "https://koratmeet.in/projects/foresight",
      "markdownUrl": "https://koratmeet.in/md/projects/foresight.md",
      "title": "Foresight - AI Financial Intelligence",
      "category": "Finance data platform · governed AI answers · AWS",
      "oneLiner": "A finance team's numbers were trapped in spreadsheets nobody could query. Now they ask in plain English and get an answer that traces back to a row.",
      "summary": "Foresight is an AI financial intelligence platform for CFOs. It takes the workbooks a finance team actually runs on - scheduling, supplier invoices, per-event P&L, aged receivables, purchase-register spend - turns them into consistent, queryable tables, and lets a CFO ask questions of them in ordinary language.",
      "elevatorPitch": "An AI finance layer a CFO can actually check. Scattered workbooks are rebuilt into layered tables with personal fields dropped on the way through, and a question asked in plain English is answered by querying those tables rather than recalled from training. Every figure traces back to the row it came from, nothing is trained on client data, and a person reviews before a number is treated as final.",
      "description": "Built with the team for an Australian CFO-advisory practice, with a not-for-profit education provider as the pilot. Replaces hand-rebuilt spreadsheets with tables anyone can question directly.",
      "role": "AI systems & data-platform engineer",
      "status": "Pilot",
      "year": "2026",
      "problem": "Finance for a multi-entity client lived across Excel workbooks with no single source of truth. Scheduling, invoices, P&L, and receivables sat in separate files with columns that did not agree, so every board question meant somebody rebuilding a spreadsheet by hand. The off-the-shelf tools meant to help were quietly picking the wrong line items and getting the arithmetic wrong - and a CFO cannot act on a number nobody can trace back to its source.",
      "solution": "Rather than put AI in front of the mess, we rebuilt the foundation first. Raw workbooks land untouched so the original is always recoverable, an ETL pass normalises them into consistent tables, and two further layers hold progressively cleaner, modelled data with personal fields stripped on the way through. Only those clean layers can be queried. When a CFO asks a question, the model writes a query against known schemas, runs it, and answers from the rows that come back - so the answer is grounded in the data rather than recalled from training, and every figure traces to a table. Nothing is trained on client data, the model runs inside the client's own region so records never leave it, and a person reviews before any number is treated as final.",
      "architecture": [
        "Finance systems",
        "Raw landing",
        "Normalise (ETL)",
        "Clean tables",
        "Modelled tables",
        "Query",
        "Grounded answer",
        "Human review"
      ],
      "tools": [
        "AWS S3",
        "AWS Glue",
        "Amazon Athena",
        "Amazon Bedrock",
        "Claude (Bedrock)",
        "Medallion architecture",
        "Parquet",
        "AWS KMS",
        "AWS CloudTrail",
        "AWS Secrets Manager",
        "AWS IAM",
        "OAuth connectors",
        "RAG"
      ],
      "metrics": [
        {
          "label": "Source of truth",
          "value": "Excel → queryable tables"
        },
        {
          "label": "Answers",
          "value": "Grounded, traceable"
        },
        {
          "label": "Client data training",
          "value": "None"
        },
        {
          "label": "Records leaving region",
          "value": "None"
        }
      ],
      "keyDecisions": [
        {
          "title": "Fix the data before adding the AI",
          "detail": "The instinct is to point a model at the spreadsheets and demo it. That produces answers nobody can check. Building the layered tables first meant every later answer had something solid underneath it."
        },
        {
          "title": "Strip personal data on the way in, not at question time",
          "detail": "Removing personal fields before they reach the queryable layers makes the AI structurally incapable of reading them. Filtering at question time would have left those columns one crafted prompt away from exposure."
        },
        {
          "title": "Let the model query, not remember",
          "detail": "The model writes a query against known schemas and answers from the rows returned. Nothing is trained on client data, so there is no secondary-use problem - and every number stays traceable to the table it came from."
        },
        {
          "title": "Keep AI advisory, with a person before anything material",
          "detail": "A wrong number that reaches a board paper is worse than no number at all. Human review and the ability to challenge an answer were designed in from the start rather than retrofitted after the first audit."
        }
      ],
      "buildNotes": [
        "Four layers, each one cleaner than the last, so raw personal data and analytics-ready data never share a blast radius",
        "Personal fields stripped before data reaches the queryable layers - the AI cannot read what was never carried forward",
        "Queries are scoped to the clean layers only; the raw landing zone is never reachable from the question path",
        "The model runs inside the client's own region, so financial records never leave their account",
        "Connector-based access over OAuth (Xero, MYOB, Zoho, Salesforce) - fetch on demand rather than copy wholesale",
        "Encryption at rest and in transit, credentials in a managed secret store, and an audit trail on every data access",
        "Wrote the platform's data-privacy, security, and AI-usage policy - the control set the build is measured against"
      ],
      "results": [
        "Scattered workbooks replaced by consistent tables anyone on the team can query",
        "Finance questions answered in plain language, without hand-written SQL",
        "Every AI-surfaced figure traceable to an underlying table and reviewable by a person",
        "Privacy, security, and AI-usage controls documented and mapped to the stack before pilot go-live"
      ],
      "proves": [
        "Fixing the data foundation before adding AI on top",
        "Grounded answers over governed tables instead of free-form prompting",
        "Privacy designed into the architecture, not bolted on afterwards",
        "Data engineering under real regulatory obligations"
      ],
      "highlights": [
        "Designed a layered finance data platform on AWS, not a notebook prototype",
        "Grounded AI answers where accuracy is a compliance obligation, not a nice-to-have",
        "Authored the data-privacy and AI-usage policy the whole team builds against",
        "Least-privilege access, encryption, and audit logging treated as product requirements"
      ]
    },
    {
      "slug": "swiftee",
      "url": "https://koratmeet.in/projects/swiftee",
      "markdownUrl": "https://koratmeet.in/md/projects/swiftee.md",
      "title": "Swiftee Educational Video Platform",
      "category": "Educational AI video · Hindi / Hinglish · Slipchat",
      "oneLiner": "One topic in → a publish-ready 60-second Hindi educational short with mascot, voice, subtitles, and thumbnail.",
      "summary": "Swiftee turns a single topic into a 10-slide Hinglish script, then generates mascot, voiceover, b-roll, subtitles, music, and thumbnail in parallel - stitching a finished 9:16 video for Slipchat’s rural-learning catalog.",
      "elevatorPitch": "Configurable storytelling presets drive an Inngest durable pipeline (Gemini, Kie.ai, ElevenLabs, Rendi/FFmpeg). Jobs show slide-by-slide progress; only failed slides need regeneration. Operators get a finished short in minutes instead of a multi-day creative cycle.",
      "description": "Mascot-based educational video generator for vernacular short-form: AI script, character animation, voiceover, image/video generation, subtitle burn-in, music, and automated render - controlled by presets so every episode stays on-brand.",
      "role": "Lead engineer",
      "status": "Production",
      "year": "2025",
      "problem": "Slipchat needs Hindi educational shorts at catalog scale for rural learners. Manual production - brief, script, storyboard, art, voice, edit, subtitles, music, export - took days per episode, drifted in quality, and could not keep up with curriculum demand.",
      "solution": "Operators submit one topic against a storytelling preset. Swiftee writes a 10-slide Hinglish script, then runs mascot, voiceover, b-roll, subtitles, music, and thumbnail generation in parallel. The job dashboard shows slide-by-slide progress; failed slides regenerate without re-running the whole video. Output is a publish-ready 60-second 9:16 short.",
      "architecture": [
        "Topic",
        "10-slide script",
        "Mascot + images",
        "Voiceover",
        "Subtitles",
        "Music + thumb",
        "FFmpeg merge",
        "9:16 MP4"
      ],
      "tools": [
        "TanStack Start",
        "TypeScript",
        "Supabase",
        "Inngest",
        "Gemini",
        "Kie.ai",
        "ElevenLabs",
        "Rendi (FFmpeg)",
        "Lovable AI Gateway"
      ],
      "metrics": [
        {
          "label": "Length",
          "value": "60s · 9:16"
        },
        {
          "label": "Slides",
          "value": "10"
        },
        {
          "label": "Language",
          "value": "Hindi / Hinglish"
        },
        {
          "label": "Cycle time",
          "value": "Days → minutes"
        }
      ],
      "keyDecisions": [
        {
          "title": "Topic → short as the product contract",
          "detail": "The success metric is a finished 60-second Hindi educational video, not a pile of intermediate assets. Everything in the pipeline exists to protect that outcome."
        },
        {
          "title": "Parallel production with slide-level recovery",
          "detail": "Assets generate in parallel for speed; the dashboard tracks each slide so a single Kie/ElevenLabs failure does not force a full restart."
        },
        {
          "title": "Presets for vernacular storytelling consistency",
          "detail": "Mascot tone, voice, subtitle look, and prompt packs live in presets - curriculum teams get repeatable episodes without re-tuning the model stack every run."
        },
        {
          "title": "Inngest + Rendi for long media jobs",
          "detail": "Image/i2v and FFmpeg steps take minutes. Durable Inngest steps checkpoint provider waits; Rendi owns FFmpeg so the app runtime stays free of native binaries."
        }
      ],
      "buildNotes": [
        "Configurable storytelling presets: slide count, voice, subtitle style, b-roll type, timing, and AI system prompts",
        "Preset snapshotted onto each job so creative tweaks never break in-flight renders",
        "Parallel asset generation - script, mascot/images, VO, captions, music, thumbnail - then a single FFmpeg stitch",
        "Slide-level progress UI; regenerate only the failed slide instead of the entire episode",
        "Hinglish script with a transliteration pass so on-screen captions stay easy to scan",
        "Rendi (FFmpeg-as-a-service) for normalize → concat → narration → music → burn SRT in one merge"
      ],
      "results": [
        "Topic → finished 9:16 Hindi short in minutes instead of days",
        "10-slide Hinglish episodes with mascot, VO, subtitles, music, and thumbnail",
        "Slide-by-slide ops: regenerate failures without re-rendering the whole video",
        "Preset-locked output suitable for Slipchat’s rural education catalog"
      ],
      "proves": [
        "Topic → finished 9:16 educational short in production",
        "Parallel multi-asset AI generation with slide-level recovery",
        "Hinglish script + scannable Latin subtitles for vernacular audiences",
        "Preset-driven storytelling that stays stable mid-render"
      ],
      "highlights": [
        "Shipped vernacular educational video automation end-to-end for Slipchat",
        "Parallel AI production pipeline with slide-level failure recovery",
        "Preset architecture that keeps storytelling stable under iteration",
        "Production FFmpeg merge via Rendi on a durable Inngest workflow"
      ]
    },
    {
      "slug": "lead-qualification",
      "url": "https://koratmeet.in/projects/lead-qualification",
      "markdownUrl": "https://koratmeet.in/md/projects/lead-qualification.md",
      "title": "AI Lead Qualification Platform",
      "category": "Voice AI · Lead ops · Conversation analytics",
      "oneLiner": "AI-powered lead qualification with chatbots, OTP verification, Voice AI, and conversation insights.",
      "summary": "End-to-end lead qualification platform integrating chatbots, phone verification, OTP flows, SIP-based Voice AI calling, and AI-generated conversation summaries in a unified dashboard.",
      "elevatorPitch": "Inbound leads are qualified through a multi-channel stack - web chatbot, OTP phone verification, and AI voice calls via SIP trunking - with every conversation analyzed for intent, objections, and next steps. Operators get a dashboard with AI-generated summaries instead of reading every transcript.",
      "description": "Production platform that replaces manual lead triage with automated qualification, verification, and voice outreach - surfacing structured insights for sales teams.",
      "role": "Solo full-stack + AI engineer",
      "status": "Production",
      "year": "2025",
      "problem": "Inbound leads sat unqualified in shared inboxes. Manual phone verification and triage slowed sales response. Call insights were trapped in recordings nobody had time to review.",
      "solution": "A unified platform where leads enter via chatbot, pass OTP phone verification, get qualified by AI voice calls through SIP trunking, and surface in a dashboard with AI-generated conversation summaries and scoring.",
      "architecture": [
        "Lead",
        "Chatbot",
        "OTP Verify",
        "Voice AI",
        "Analytics",
        "Dashboard"
      ],
      "tools": [
        "OpenAI",
        "ElevenLabs",
        "SIP Trunking",
        "Webhooks",
        "n8n",
        "Node.js",
        "Supabase",
        "PostgreSQL",
        "REST APIs"
      ],
      "metrics": [
        {
          "label": "Channels",
          "value": "Chat + Voice + OTP"
        },
        {
          "label": "Voice AI",
          "value": "SIP + ElevenLabs"
        },
        {
          "label": "Insights",
          "value": "AI summaries"
        },
        {
          "label": "Status",
          "value": "Production"
        }
      ],
      "keyDecisions": [
        {
          "title": "Multi-channel qualification, not chat-only",
          "detail": "Phone verification and voice calls catch leads that chat alone misses - especially in markets where voice is the primary sales channel."
        },
        {
          "title": "AI summaries over raw transcripts",
          "detail": "Sales reps get structured insights (intent, objections, next steps) instead of wall-of-text transcripts - dramatically faster triage."
        },
        {
          "title": "SIP trunking for production voice",
          "detail": "Direct SIP integration gives control over call routing, recording, and cost - versus relying on a single SaaS voice provider."
        }
      ],
      "buildNotes": [
        "Chatbot flow extracts firmographics and intent before routing to verification",
        "OTP verification gates high-value leads before voice outreach",
        "SIP trunking enables AI voice calls with ElevenLabs TTS and speech-to-text",
        "Conversation analytics pipeline extracts objections, sentiment, and action items",
        "Dashboard aggregates lead status, call outcomes, and AI summaries for sales reps"
      ],
      "results": [
        "Every inbound lead qualified and routed within seconds",
        "Voice outreach automated with AI-generated conversation insights",
        "Sales team operates from a single dashboard with AI summaries",
        "OTP verification reduces junk leads before voice spend"
      ],
      "proves": [
        "Multi-channel lead qualification (chat, OTP, voice)",
        "Voice AI with SIP trunking integration",
        "Conversation analytics and AI summaries",
        "Production dashboard for sales ops"
      ],
      "highlights": [
        "End-to-end Voice AI with SIP trunking in production",
        "Multi-channel qualification: chat → OTP → voice → analytics",
        "AI conversation summaries as a product feature, not a demo",
        "Full-stack: frontend dashboard, backend APIs, voice infra"
      ]
    },
    {
      "slug": "autograde",
      "url": "https://koratmeet.in/projects/autograde",
      "markdownUrl": "https://koratmeet.in/md/projects/autograde.md",
      "title": "AutoGrade - AI Paper Evaluation",
      "category": "Vision-LLM pipeline · determinism + QC",
      "oneLiner": "Upload a handwritten student paper, get auditable AI grades with bounding-box evidence in ~2 minutes.",
      "summary": "Web app where teachers upload a question paper once, then each student's handwritten or scanned PDF. The system returns per-question marks, deductions with evidence, a split-view PDF viewer with bounding-box highlights, and a QC verdict.",
      "elevatorPitch": "A fire-and-forget edge chain - extract → grade → qc-check - sidesteps the 150s serverless timeout by treating Postgres status as the orchestrator. Vision-LLM reads handwritten + Gujarati scripts; self-consistency voting at temp=0 makes grading deterministic; an arithmetic QC gate catches AI hallucinations before they reach the teacher.",
      "description": "Handles real-world mess: handwriting, multi-page PDFs, mixed English/Gujarati scripts, merged sub-questions like `3(a,b,c)`, OMR-bubble roll number extraction - with an audit trail a teacher can defend to a parent.",
      "role": "Solo full-stack + AI engineer",
      "status": "Shipped",
      "year": "2025",
      "problem": "A teacher with 60 students × 20 questions burns 6–10 hours per exam, with inconsistent strictness across the batch and zero traceability of why marks were deducted. No off-the-shelf product handles handwritten, multi-page, mixed-script papers with auditable evidence.",
      "solution": "React/Vite SPA → Supabase (Postgres + RLS + Auth + Storage + Edge Functions) → Lovable AI Gateway (Gemini Pro, vision). Fire-and-forget edge chain with DB-status orchestration. react-pdf canvas rendering enables bounding-box evidence overlays.",
      "architecture": [
        "QP Upload",
        "Parse",
        "Student PDF",
        "Extract",
        "Grade (parallel)",
        "QC Check",
        "Results"
      ],
      "tools": [
        "React 18",
        "Vite",
        "TypeScript",
        "Tailwind",
        "shadcn/ui",
        "Supabase",
        "Edge Functions (Deno)",
        "Lovable AI Gateway",
        "Gemini 2.5 / 3.1 Pro Preview (vision)",
        "react-pdf"
      ],
      "metrics": [
        {
          "label": "Grading time",
          "value": "~90% saved"
        },
        {
          "label": "Per paper",
          "value": "~2 min"
        },
        {
          "label": "Re-runs",
          "value": "Deterministic"
        },
        {
          "label": "Edge functions",
          "value": "4"
        }
      ],
      "keyDecisions": [
        {
          "title": "DB-as-orchestrator instead of Inngest/SQS",
          "detail": "Work is self-bounded (one student paper) with no fan-out. Postgres status is the source of truth - inspectable with `SELECT status FROM evaluations`. The right level of complexity for the problem."
        },
        {
          "title": "Fire-and-forget edge chain",
          "detail": "AI pipeline is 60–120s; edge timeout is 150s. Chaining functions via `fetch keepalive:true` decouples the long job from the HTTP request lifecycle."
        },
        {
          "title": "Determinism contract across every AI call",
          "detail": "temp=0, top_p=0.1, self-consistency voting. Same paper graded twice produces the same marks - non-negotiable for teacher trust."
        },
        {
          "title": "Canvas (react-pdf), not iframe",
          "detail": "Bypasses browser PDF sandboxing AND enables bounding-box overlays for evidence - required for the product UX."
        }
      ],
      "buildNotes": [
        "4 Deno edge functions: parse-question-paper, extract, grade, qc-check - JWT-verified at the boundary, service-role for internal chaining",
        "Per-question parallel grading at `temp=0`, `top_p=0.1` with self-consistency voting for reproducible marks",
        "qc-check re-derives totals, verifies arithmetic, evaluates evidence quality, flags low-confidence questions; emits PASS / FLAG / FAIL",
        "react-pdf canvas (not iframe) renders pages so deductions can highlight the exact bounding box on click",
        "UI polls `evaluations.status` every 3s; progress bar maps pending→processing→grading→qc_check→completed",
        "Multi-tenant security: RLS on every table, private buckets with short-lived signed URLs, HIBP leaked-password protection"
      ],
      "results": [
        "~90% reduction in grading time per batch",
        "Deterministic re-runs: identical paper → identical marks",
        "Zero arithmetic errors reach the teacher (QC gate)",
        "Every deduction defensible: click → bounding box on the rendered PDF"
      ],
      "proves": [
        "Production vision-LLM application on real handwritten scripts",
        "LLM determinism as a product feature, not a prompt detail",
        "Pragmatic distributed-systems thinking around serverless timeouts",
        "Evidence-linked AI UX with bounding-box overlays"
      ],
      "highlights": [
        "Vision LLM in production on a messy real-world dataset",
        "Self-consistency + arithmetic QC as guardrails - not just prompting",
        "Timeout-driven architecture: design the workflow around the runtime constraint",
        "Evidence UX: every AI decision is traceable to a region on the page"
      ]
    }
  ],
  "automations": [
    {
      "id": "panchang-video",
      "title": "Lion Kitchen Panchang Video Automation",
      "category": "AI Content",
      "description": "Daily Panchang videos generated automatically using mascot-driven AI content workflows.",
      "problem": "Daily mascot-driven Panchang videos were unsustainable to produce by hand.",
      "workflow": "Cron n8n workflow → Panchang data → OpenRouter script → ElevenLabs voice → mascot video compose → publish.",
      "architecture": [],
      "outcome": "Fully unattended daily video - script to publish with zero manual touch.",
      "flow": [
        "Calendar",
        "AI Agent",
        "Video"
      ],
      "metric": "Daily",
      "tags": [
        "n8n",
        "OpenRouter",
        "ElevenLabs",
        "Video Generation"
      ],
      "links": []
    },
    {
      "id": "song-pipeline",
      "title": "Personalized Jingle Generator (650+)",
      "category": "Media",
      "description": "Bilingual brand jingles generated per business at scale - custom English and Hindi/Hinglish songs written and sung by AI, personalized to each store.",
      "problem": "650+ stores each needed their own personalized jingle - in English and Hindi - which is impossible to write, sing, and produce by hand.",
      "workflow": "Store data sheet → AI builds a pronunciation-safe lyric + Lyria prompt per store → Lyria 3 Pro sings the English & Hindi versions → audio saved to Drive and status written back.",
      "architecture": [
        "Google Sheets holds every store's profile - name, city, category, fabric and tailoring specialty - plus a status column for batch tracking.",
        "n8n filters to pending rows and processes one store at a time with rate-limit pauses.",
        "A pronunciation step builds an exact, singable spelling of each store and city name for both English and Hindi.",
        "An OpenRouter agent (Gemini 3.1 Pro, GPT-5.5 fallback) writes a full bilingual jingle package - title, lyrics, style, and a Lyria prompt - validated against a strict schema.",
        "Google Lyria 3 Pro generates the actual sung audio for the English and Hindi/Hinglish versions via streaming.",
        "If Lyria's safety filter blocks a track, a dedicated rewrite agent produces a safer version and retries automatically.",
        "Finished MP3s are uploaded to a per-store Google Drive folder and the sheet is updated with links and status."
      ],
      "outcome": "650+ personalized, brand-safe jingles - two languages each - produced through one durable, self-healing pipeline.",
      "flow": [
        "Sheet",
        "AI + Lyria",
        "Drive"
      ],
      "metric": "650+ jingles",
      "tags": [
        "n8n",
        "OpenRouter",
        "Lyria 3 Pro",
        "Google Drive",
        "Gemini",
        "GPT-5.5"
      ],
      "links": []
    },
    {
      "id": "slides-system",
      "title": "600+ Slide Generation System",
      "category": "Content",
      "description": "Curriculum slide decks generated end-to-end - each slide is an AI-rendered 16:9 visual built from a content sheet, then assembled into Google Slides with speaker notes.",
      "problem": "Building 600+ on-brand teaching slides by hand - one custom visual per lesson block - would take weeks and inevitably drift off-style.",
      "workflow": "Google Sheet of lesson blocks → AI writes an image prompt per row → Nano Banana Pro renders a 16:9 slide → pushed into Google Slides as a full-bleed background with auto speaker notes.",
      "architecture": [
        "Google Sheets holds the curriculum - each row is a lesson block with a visual-aid description, week, and slide note.",
        "n8n loops through one row at a time; rows marked N/A are skipped automatically.",
        "An OpenRouter agent (Gemini 3 Flash) turns each description into a single production-ready image prompt with strict brand rules - palette, layout, and 16:9 ratio.",
        "The prompt is sent to Kie.ai's Nano Banana Pro model, which renders the slide image.",
        "A polling loop watches the job state (success / generating / fail) until the final image URL is ready.",
        "The Google Slides API creates a blank slide and sets the rendered image as a full-bleed background.",
        "Speaker notes - week, block, and description - are written onto each slide, then the loop moves to the next row."
      ],
      "outcome": "600+ consistent, on-brand teaching slides produced unattended - from a single spreadsheet to a finished Google Slides deck.",
      "flow": [
        "Sheet",
        "AI Image",
        "Slides"
      ],
      "metric": "600+ slides",
      "tags": [
        "n8n",
        "OpenRouter",
        "Nano Banana Pro",
        "Google Slides",
        "Gemini"
      ],
      "links": [
        {
          "label": "Open the full deck",
          "href": "https://docs.google.com/presentation/d/1GsrOkbvv7g0tZcMybRegghptfwHtZUhoE2UzfMbhk3Y/edit?usp=sharing"
        }
      ]
    },
    {
      "id": "whatsapp-dist",
      "title": "WhatsApp Distributor Automation",
      "category": "Ops",
      "description": "Personalized creative assets distributed to distributor networks via WhatsApp.",
      "problem": "500+ personalized creatives per campaign was a multi-hour manual job.",
      "workflow": "Canvas template per distributor from CRM → WhatsApp Business API dispatch with tracking.",
      "architecture": [],
      "outcome": "Hours of manual work collapsed to a 2-click campaign run.",
      "flow": [
        "CRM",
        "Canvas",
        "WhatsApp"
      ],
      "metric": "500+ recipients",
      "tags": [
        "WhatsApp API",
        "Canvas",
        "Automation"
      ],
      "links": []
    },
    {
      "id": "lead-qual",
      "title": "AI Lead Qualification Chatbot",
      "category": "Conversational AI",
      "description": "Conversational AI that replaces boring lead forms - it chats with Meta-ad visitors using a company knowledge bank, qualifies them, verifies their number over OTP, and syncs clean leads to the client's CRM.",
      "problem": "Meta-ad traffic dropped off at static, boring lead forms - and the leads that did come through were unqualified and unverified.",
      "workflow": "Meta ad → AI chatbot with company knowledge → natural qualifying conversation → OTP verification (DLT + MSG91) → verified lead to client CRM + analytics dashboard.",
      "architecture": [
        "Leads arrive from Meta ad campaigns and land in an AI chatbot instead of a static form.",
        "The chatbot is built on the company's own knowledge bank, so it answers questions and holds a natural conversation.",
        "Instead of a boring form, it asks the right qualifying questions and extracts the exact values the business needs.",
        "Phone numbers are verified in-chat via OTP using DLT-approved templates through MSG91.",
        "Verified, qualified leads are pushed straight to the client's CRM.",
        "The same leads flow into our dashboard, where they can be filtered and analyzed."
      ],
      "outcome": "Higher-converting, fully verified leads captured through natural conversation - synced to CRM and ready to action.",
      "flow": [
        "Meta Ad",
        "AI Chat",
        "CRM"
      ],
      "metric": "Live",
      "tags": [
        "AI Chatbot",
        "Meta Ads",
        "MSG91",
        "DLT OTP",
        "CRM"
      ],
      "links": [
        {
          "label": "NAMTECH - Live in production",
          "href": "https://chat.namtech.ac/",
          "primary": true
        },
        {
          "label": "Annalaxmi - Live",
          "href": "https://annalaxmi.com/join"
        }
      ]
    },
    {
      "id": "voice-analysis",
      "title": "AI Voice Calling & Call Analysis",
      "category": "Voice AI",
      "description": "An AI voice agent that places real phone calls over SIP, then turns every recording into structured insight - summary, sentiment, and next actions on a live dashboard.",
      "problem": "Outreach calls carried valuable signal, but recordings were never reviewed and the insight was lost.",
      "workflow": "Vobiz SIP trunk connects to an ElevenLabs voice agent → AI runs the live call → post-call webhook → our app extracts summary, sentiment, and actions into a dashboard.",
      "architecture": [
        "Vobiz provides the SIP trunking, carrying calls over SIP / VoIP protocols to and from real phone numbers.",
        "The trunk connects to an ElevenLabs voice agent that holds the call logic, prompt, and knowledge base.",
        "ElevenLabs runs the live conversation end-to-end - speaking, listening, and following the call flow.",
        "When the call ends, an ElevenLabs webhook posts the recording and transcript to our custom app.",
        "The app uses AI to extract structured data - summary, sentiment, outcome, and follow-up actions.",
        "Everything lands in a dashboard with conversation history, analytics, and per-call detail."
      ],
      "outcome": "Every call is placed, transcribed, and analyzed automatically - searchable insight and analytics with zero manual review.",
      "flow": [
        "SIP Call",
        "AI Agent",
        "Analysis"
      ],
      "metric": "Live",
      "tags": [
        "ElevenLabs",
        "Vobiz SIP",
        "VoIP",
        "Webhooks",
        "AI Analysis"
      ],
      "links": []
    },
    {
      "id": "content-repurpose",
      "title": "Content Repurposing Workflow",
      "category": "AI Content",
      "description": "Transform long-form content into multiple social media formats automatically.",
      "problem": "Long-form published once, never adapted per platform.",
      "workflow": "Source doc → format-specific prompts → threads, posts, scripts, newsletter snippets.",
      "architecture": [],
      "outcome": "One piece becomes a full multi-channel content drop.",
      "flow": [
        "Content",
        "Workflow",
        "Distribution"
      ],
      "metric": "Multi-format",
      "tags": [
        "OpenAI",
        "Automation",
        "Content Pipeline"
      ],
      "links": []
    },
    {
      "id": "internal-ops",
      "title": "Internal Business Automation",
      "category": "Internal",
      "description": "Operational workflow automation for repetitive business processes.",
      "problem": "Recurring ops tasks burned hours across multiple SaaS tools.",
      "workflow": "n8n stitches APIs/webhooks, normalizes data, writes back to tools of record.",
      "architecture": [],
      "outcome": "Hours of weekly manual work replaced with reliable runs.",
      "flow": [
        "Input",
        "Workflow",
        "Output"
      ],
      "metric": "Weekly saves",
      "tags": [
        "n8n",
        "API",
        "Automation"
      ],
      "links": []
    }
  ],
  "faq": [
    {
      "question": "Who is Meet Korat?",
      "answer": "Meet Korat is an AI Automation Engineer based in Ahmedabad, India. He builds production AI systems that automate real business operations - combining LLMs, Voice AI, workflow orchestration, cloud infrastructure, and product engineering. He currently works at Team Because and has shipped five production systems covering content automation, educational video generation, lead qualification, and paper evaluation."
    },
    {
      "question": "What does Meet Korat build?",
      "answer": "Complete AI-powered operational systems rather than isolated API demos. His shipped work includes Foresight (an AI financial intelligence platform for CFOs built on an AWS medallion data lake with Claude on Bedrock, built with the team), Swiftee (a Hindi educational video platform generating 60-second shorts from a topic prompt), an AI lead qualification system with Voice AI and SIP calling, AutoGrade (a vision-LLM paper evaluation platform for handwritten and Gujarati scripts), and CG Sanchar (multi-state WhatsApp broadcast automation on S3, CloudFront, and presigned-URL uploads)."
    },
    {
      "question": "What is Meet Korat's technical stack?",
      "answer": "LLMs and AI: OpenAI, Claude, Gemini, OpenRouter, Grok, Kie AI, prompt engineering. Workflow and orchestration: n8n, Inngest, webhooks, REST APIs, background jobs, event-driven workflows. Voice AI: ElevenLabs, SIP trunking, voice cloning, speech-to-text, text-to-speech. Backend and cloud: Node.js, FastAPI, Supabase, PostgreSQL, Firebase, Railway, Vercel, AWS, Amazon S3, Amazon Bedrock, AWS Lambda, OpenSearch. Frontend and media: React, Next.js, Tailwind CSS, FFmpeg, HeyGen, subtitle generation, AI video editing, image processing."
    },
    {
      "question": "What has Meet Korat actually shipped to production?",
      "answer": "Five production systems, plus eight internal automations. Measurable output includes 650+ personalized jingles generated, 600+ slides automated, and a founder content pipeline that cut turnaround from roughly three hours of manual work to about four minutes. Each project has a full case study covering the problem, solution, architecture, key engineering decisions, and results."
    },
    {
      "question": "Is Meet Korat available for hire?",
      "answer": "Yes. He is actively interviewing for AI Automation Engineer and Applied AI Systems Engineer roles and is available to start immediately. He is open to remote, hybrid, on-site in Ahmedabad, or relocation."
    },
    {
      "question": "What roles is Meet Korat targeting?",
      "answer": "AI Automation Engineer, Applied AI Systems Engineer, AI Product Engineer, and Founding Engineer. His goal is to join an AI-first product company or startup building scalable AI products, learn from experienced engineers, and grow into a senior engineering role."
    },
    {
      "question": "Where is Meet Korat based?",
      "answer": "Nava Naroda, Ahmedabad, Gujarat, India. He works remotely and is open to relocation."
    },
    {
      "question": "How do I contact Meet Korat?",
      "answer": "Email meetkorat903@gmail.com, or connect on LinkedIn at https://www.linkedin.com/in/meet-korat-335632245/. His code is on GitHub at https://github.com/Meetkorat38, his portfolio is at https://koratmeet.in, and his CV is downloadable at https://koratmeet.in/cv.pdf."
    }
  ]
}