MeetOps is an AI-powered meeting automation system that processes raw transcripts, extracts structured action items with owners and deadlines, and delivers them to your team via Slack or Discord, all in seconds. Powered by Google's Gemini model, it converts unstructured meeting conversations into executable workflows, reducing manual coordination overhead.
- AI transcript cleaning, removes filler words, fixes typos, preserves speaker structure
- Action item extraction with owner, due date, and priority (HIGH / MEDIUM / LOW)
- One-click delivery to Slack or Discord via webhook
- Live global usage counter visible to all users
- Persistent feedback system powered by Supabase
- 15-minute session auto-clear for privacy
- API rate limiter
- Gemini API limit notification on Discord via webhook
- Community feedback page with social handle verification and platform linking
meetops/
├── backend/
│ ├── agents/
│ │ ├── pipeline.py # Ingestion, extraction, execution agents
│ │ └── logger.py # Operational logging
│ ├── tools/
│ │ ├── discord_tool.py # Slack and Discord webhook integration
│ │ └── calendar_tool.py # Calendar event scaffolding
│ ├── main.py # FastAPI app entry point
│ └── requirements.txt
│
└── frontend/
├── app/
│ ├── page.tsx # Main page
│ ├── layout.tsx # Root layout and metadata
│ ├── globals.css # Global styles and theme
│ ├── robots.ts
│ ├── sitemap.ts
│ └── api/
│ ├── feedback/ # Supabase feedback GET + POST
│ ├── webhook/ # Server-side Slack/Discord relay
│ └── stats/ # Global usage counter
├── components/
│ ├── Hero.tsx
│ ├── UploadCard.tsx
│ ├── FeedbackSection.tsx
│ ├── LegalSection.tsx
│ ├── FAQ.tsx
│ ├── Results.js
│ ├── WebhookSender.js
│ ├── FeedbackTicker.js
│ ├── Footer.js
│ └── Toast.js
└── lib/
├── supabase.ts
└── types.ts
| Layer | Technology |
| --- | --- |
| AI Model | Google Gemini 2.5 Flash |
| Backend | FastAPI + Uvicorn |
| Frontend | Next.js 14 + Tailwind CSS |
| Database | Supabase (PostgreSQL) |
| Fonts | Syne + DM Sans |
| Hosting - Backend | Render |
| Hosting - Frontend | Vercel |
git clone https://github.com/karmaniket/MeetOps.git
cd MeetOps
pip install -r meetops/requirements.txtCreate a .env file inside meetops/:
GEMINI_API_KEY=your_key
ALERT_DISCORD_WEBHOOK_URL=your_discord_webhook
Run locally:
uvicorn meetops.main:app --reload-
Go to nodejs.org > Download LTS version (v20 or higher) > Run the installer > keep all defaults
-
Open a new terminal and verify:
node -v # should show v20.x.x
npm -v # should show 10.x.x
- Install dependencies
cd frontend
npm install
cp .env.local .env.local.exampleFill in .env.local:
NEXT_PUBLIC_API_URL=your_backend_url
NEXT_PUBLIC_SUPABASE_URL=https://xxxx.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key
Run locally:
npm run devOpen http://localhost:3000
services:
- type: web
name: MeetOps
runtime: python
repo: https://github.com/karmaniket/MeetOps
plan: free
region: oregon
buildCommand: pip install -r meetops/requirements.txt
startCommand: uvicorn meetops.main:app --host 0.0.0.0 --port $PORT
envVars:
- key: GEMINI_API_KEY
sync: false
- key: ALERT_DISCORD_WEBHOOK_URL
sync: false-
Push to GitHub:
git init git add . git commit -m "initial" git remote add origin {repo_path} git push -u origin main
-
Import repo at vercel.com. Add the three
NEXT_PUBLIC_*environment variables in the Vercel dashboard. Every subsequentgit pushauto-redeploys.
feedback
| Column | Type | Notes |
| --- | --- | --- |
| id | uuid | primary key, auto |
| name | text | public |
| message | text | public |
| social_handle | text | public, unique per platform |
| platform | text | public |
| created_at | timestamptz | auto |Unique constraint: (social_handle, platform) combined.
meetings_log
| Column | Type | Notes |
| --- | --- | --- |
| id | uuid | auto |
| processed_at | timestamptz | auto |Both tables require RLS enabled with allow public insert and allow public select policies.
- Ingestion Agent: cleans raw transcript, removes filler words, preserves speaker attribution
- Action Agent: extracts tasks, owners, due dates, and priorities using Gemini with the current system date as reference
- Execution Agent: processes extracted actions and returns structured results with metrics
MeetOps runs on free-tier infrastructure. If it saves you time, consider supporting its development:
