diff --git a/kits/automation/meeting-intelligence/.env.example b/kits/automation/meeting-intelligence/.env.example
new file mode 100644
index 00000000..f2e7cf40
Binary files /dev/null and b/kits/automation/meeting-intelligence/.env.example differ
diff --git a/kits/automation/meeting-intelligence/.gitignore b/kits/automation/meeting-intelligence/.gitignore
new file mode 100644
index 00000000..c332cf6a
--- /dev/null
+++ b/kits/automation/meeting-intelligence/.gitignore
@@ -0,0 +1,4 @@
+node_modules/
+.env
+.env.local
+.next/
diff --git a/kits/automation/meeting-intelligence/README.md b/kits/automation/meeting-intelligence/README.md
new file mode 100644
index 00000000..cd0c590e
--- /dev/null
+++ b/kits/automation/meeting-intelligence/README.md
@@ -0,0 +1,193 @@
+# 🧠 Meeting Intelligence Agent
+
+> Stop losing action items after meetings. Paste your raw notes — get a structured report delivered to your inbox in seconds.
+
+[](https://vercel.com/new/clone?repository-url=https://github.com/AnuragDubey007/meeting-intelligence)
+
+## 🔴 Live Demo
+
+**[https://meeting-intelligence-tau.vercel.app/]**
+
+---
+
+## The Problem
+
+Every team has this problem.
+
+Someone takes notes during a meeting — messy, unstructured, full of half sentences. After the meeting ends, nobody knows exactly who owns what task or what deadline was agreed on. Action items get lost in a wall of text. Follow ups never happen. The meeting was a waste of time.
+
+Existing tools like Zoom AI require you to be inside their ecosystem and cost money. This is open source, works with any text source, and runs entirely on Lamatic.
+
+---
+
+## The Solution
+
+Paste any raw meeting notes. The agent:
+
+- Writes a clean 2-3 sentence summary
+- Extracts every action item with owner, deadline, and priority
+- Lists all decisions that were made
+- Identifies follow up questions that need answers
+- Emails the full structured report to your team automatically
+
+---
+
+## How It Works
+Raw Notes → Lamatic Flow → LLM Extraction → Code Parser → SMTP Email → Dashboard
+
+1. User pastes messy meeting notes and enters recipient email in the Next.js UI
+2. Frontend sends the data to Lamatic via GraphQL API
+3. **LLM Node** extracts structured JSON from the raw notes using Llama 3.3 70B
+4. **Code Node** parses the JSON and builds a formatted HTML email body
+5. **SMTP Node** sends the report directly to the recipient's inbox
+6. **API Response** returns the parsed data to the frontend dashboard
+
+---
+
+## Lamatic Flow Architecture
+
+The entire intelligence pipeline runs inside Lamatic — 5 nodes, zero backend servers:
+
+| Node | Purpose |
+|------|---------|
+| API Request | Accepts `meetingNotes` and `recipientEmail` from the frontend |
+| Generate Text | Runs Llama 3.3 70B via Groq to extract structured JSON |
+| Code Node | Parses JSON response and builds HTML email body |
+| SMTP Node | Sends formatted report to recipient email automatically |
+| API Response | Returns structured result back to the Next.js frontend |
+
+---
+
+## Features
+
+- Works with any meeting notes — standups, client calls, brainstorms, retrospectives
+- Automatically identifies task owners from natural language
+- Color coded priority labels — High, Medium, Low
+- Sends formatted HTML email report via Lamatic SMTP node
+- Copy all results to clipboard in one click
+- Clean dark UI built with Next.js and Tailwind CSS
+- Fully open source and self hostable
+
+---
+
+## Tech Stack
+
+| Layer | Technology |
+|-------|-----------|
+| Frontend | Next.js 16, TypeScript, Tailwind CSS |
+| AI Orchestration | Lamatic.ai |
+| LLM | Llama 3.3 70B via Groq |
+| Email Delivery | Lamatic SMTP Node |
+| Deployment | Vercel |
+
+---
+
+## Setup
+
+### Prerequisites
+
+- Node.js 18+
+- Lamatic.ai account (free)
+- Gmail or SMTP credentials configured in Lamatic Connections
+
+### 1. Clone and install
+
+
+### 2. Set up environment variables
+
+Copy `.env.example` to `.env.local` and fill in your values:
+
+```bash
+cp .env.example .env.local
+```
+
+```env
+LAMATIC_API_URL=your_lamatic_graphql_endpoint
+LAMATIC_API_KEY=your_lamatic_api_key
+LAMATIC_PROJECT_ID=your_project_id
+LAMATIC_FLOW_ID=your_flow_id
+```
+
+Get these values from Lamatic Studio → your project → Connect → API tab.
+
+### 3. Import the Lamatic Flow
+
+- Go to Lamatic Studio
+- Create a new flow
+- Set up the 5 nodes as described in the architecture section above
+- Configure your SMTP credentials in Lamatic Connections
+- Deploy the flow
+- Copy your Flow ID and Project credentials to `.env.local`
+
+### 4. Run locally
+
+```bash
+npm run dev
+```
+
+Open `http://localhost:3000`
+
+### 5. Deploy to Vercel
+
+Click the Deploy button at the top of this README or:
+
+1. Push to GitHub
+2. Import repo in Vercel
+3. Add all 4 environment variables in Vercel settings
+4. Deploy
+
+---
+
+## Example
+
+**Input — raw messy notes:**
+ok so we had our weekly sync. raj mentioned the API is still slow and
+needs optimization before launch. priya will handle the database indexing
+by thursday. john said the login page bug is critical and needs to be fixed
+today. we decided to delay the launch by one week to april 28. need to
+follow up with the design team about the new onboarding flow.
+
+**Output — structured report:**
+
+**Summary:** The team discussed pre-launch blockers including API performance and a critical login bug. The launch has been delayed by one week. Database optimization and bug fixes are the immediate priorities.
+
+**Action Items:**
+
+| Task | Owner | Deadline | Priority |
+|------|-------|----------|----------|
+| Optimize API performance | Raj | Before launch | 🔴 High |
+| Database indexing | Priya | Thursday | 🔴 High |
+| Fix login page bug | John | Today | 🔴 High |
+| Follow up with design team | Unknown | Not specified | 🟡 Medium |
+
+**Decisions:** Launch delayed to April 28
+
+**Follow Up:** What is the status of the new onboarding flow design?
+
+---
+
+## Project Structure
+
+```
+kits/automation/meeting-intelligence/
+├── app/
+│ ├── api/
+│ │ └── analyze/
+│ │ └── route.ts
+│ ├── page.tsx
+│ └── layout.tsx
+├── .env.example
+├── package.json
+└── README.md
+```
+
+---
+
+## Contributing
+
+This kit is part of [Lamatic AgentKit](https://github.com/Lamatic/AgentKit).
+See [CONTRIBUTING.md](../../../CONTRIBUTING.md) for guidelines.
+
+---
+
+Built with ❤️ for the Lamatic AgentKit Challenge
diff --git a/kits/automation/meeting-intelligence/actions/orchestrate.ts b/kits/automation/meeting-intelligence/actions/orchestrate.ts
new file mode 100644
index 00000000..c2c9c754
--- /dev/null
+++ b/kits/automation/meeting-intelligence/actions/orchestrate.ts
@@ -0,0 +1,11 @@
+"use server";
+import { executeFlow } from "@/lib/lamatic-client";
+
+export async function analyzeMeeting(meetingNotes: string, recipientEmail: string) {
+ // We use executeFlow from your lib folder instead of raw fetch
+ const result = await executeFlow(
+ process.env.LAMATIC_FLOW_ID!,
+ { meetingNotes, recipientEmail }
+ );
+ return result ?? { error: "No result" };
+}
diff --git a/kits/automation/meeting-intelligence/app/api/analyze/route.ts b/kits/automation/meeting-intelligence/app/api/analyze/route.ts
new file mode 100644
index 00000000..6db8bc19
--- /dev/null
+++ b/kits/automation/meeting-intelligence/app/api/analyze/route.ts
@@ -0,0 +1,41 @@
+import { NextRequest, NextResponse } from "next/server";
+
+export async function POST(req: NextRequest) {
+ const { meetingNotes, recipientEmail } = await req.json();
+
+ const query = `
+ query ExecuteWorkflow($workflowId: String!, $meetingNotes: String, $recipientEmail: String) {
+ executeWorkflow(
+ workflowId: $workflowId
+ payload: { meetingNotes: $meetingNotes, recipientEmail: $recipientEmail }
+ ) {
+ status
+ result
+ }
+ }
+ `;
+
+ const response = await fetch(process.env.LAMATIC_API_URL!, {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json",
+ "Authorization": `Bearer ${process.env.LAMATIC_API_KEY}`,
+ "x-project-id": process.env.LAMATIC_PROJECT_ID!,
+ },
+ body: JSON.stringify({
+ query,
+ variables: {
+ workflowId: process.env.LAMATIC_FLOW_ID,
+ meetingNotes,
+ recipientEmail,
+ },
+ }),
+ });
+
+ const data = await response.json();
+
+
+ const result = data?.data?.executeWorkflow?.result?.result;
+
+ return NextResponse.json(result ?? { error: "No result" });
+}
diff --git a/kits/automation/meeting-intelligence/app/favicon.ico b/kits/automation/meeting-intelligence/app/favicon.ico
new file mode 100644
index 00000000..718d6fea
Binary files /dev/null and b/kits/automation/meeting-intelligence/app/favicon.ico differ
diff --git a/kits/automation/meeting-intelligence/app/globals.css b/kits/automation/meeting-intelligence/app/globals.css
new file mode 100644
index 00000000..c214bd1b
--- /dev/null
+++ b/kits/automation/meeting-intelligence/app/globals.css
@@ -0,0 +1,26 @@
+@import "tailwindcss";
+
+:root {
+ --background: #ffffff;
+ --foreground: #171717;
+}
+
+@theme inline {
+ --color-background: var(--background);
+ --color-foreground: var(--foreground);
+ --font-sans: var(--font-geist-sans);
+ --font-mono: var(--font-geist-mono);
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --background: #0a0a0a;
+ --foreground: #ededed;
+ }
+}
+
+body {
+ background: var(--background);
+ color: var(--foreground);
+ font-family: var(--font-sans), Arial, Helvetica, sans-serif;
+}
diff --git a/kits/automation/meeting-intelligence/app/layout.tsx b/kits/automation/meeting-intelligence/app/layout.tsx
new file mode 100644
index 00000000..b05601a2
--- /dev/null
+++ b/kits/automation/meeting-intelligence/app/layout.tsx
@@ -0,0 +1,34 @@
+import type { Metadata } from "next";
+import { Geist, Geist_Mono } from "next/font/google";
+import "./globals.css";
+
+const geistSans = Geist({
+ variable: "--font-geist-sans",
+ subsets: ["latin"],
+});
+
+const geistMono = Geist_Mono({
+ variable: "--font-geist-mono",
+ subsets: ["latin"],
+});
+
+export const metadata: Metadata = {
+ title: "Meeting Intelligence Agent",
+ description:
+ "Transform chaotic meeting notes into structured action items, decisions, and follow-ups — delivered straight to your inbox.",
+};
+
+export default function RootLayout({
+ children,
+}: Readonly<{
+ children: React.ReactNode;
+}>) {
+ return (
+
+