Inspiration

Every team has the same problem. Meetings happen, decisions get made, someone says they'll handle something — and then nothing happens. No follow-up, no accountability, no visibility. Three weeks later you're having the exact same conversation again. We built LoopAgent to fix that permanently, right inside Slack.

What it does

LoopAgent is a Slack agent that turns raw meeting notes into a complete chain of actions — automatically. Paste any meeting summary into a Slack channel and LoopAgent:

  • Detects the meeting type (sales, sprint, client, or general) using Slack AI capabilities
  • Extracts tasks and assigns them to team members via DM with deadlines
  • Scores meeting quality from 1–10 and flags risk language to managers instantly
  • Sends professional client recap emails via Gmail MCP integration — fully written by AI
  • Books follow-up meetings in Google Calendar via MCP integration
  • Generates executive briefings for leadership on demand
  • Detects blockers — overdue tasks preventing other work from progressing
  • Tracks decisions with a fully searchable audit trail
  • Calculates meeting ROI — real cost vs outcomes for every meeting
  • Sends stakeholder digests to clients and executives automatically
  • Briefs new team members when they join a channel
  • Detects Slack Huddles and posts a structured notes template
  • App Home dashboard showing live task health, decisions, and quick actions

How we built it

LoopAgent is built on the Slack Bolt framework with Node.js in Socket Mode. The AI intelligence layer uses the Anthropic Claude API to parse meeting summaries, detect meeting types, generate client recaps, score meeting quality, detect blockers, and produce executive briefings.

Technologies used:

  • Slack AI capabilities — meeting type detection, task parsing, quality scoring, risk detection
  • MCP server integration — Gmail MCP for automated client recap emails, Google Calendar MCP for follow-up scheduling
  • Slack Bolt + Socket Mode — real-time event handling and slash commands
  • Anthropic Claude API (claude-sonnet-4-6) — all AI-powered features
  • Node.js + node-cron — scheduled reminders, weekly digests, and overdue alerts
  • Slack Canvases API — live team health dashboard
  • Google APIs — Gmail and Calendar integration with OAuth2
  • JSON persistent storage — tasks and meetings survive app restarts

Challenges we faced

Smart user matching — When a meeting summary says "Muyiez will handle the proposal," the agent needs to match that name to the right Slack user even if their username is completely different. We solved this by building a member map that scans the channel before assigning tasks, registering every variation of each person's name — display name, real name, first name — and doing fuzzy matching against all of them.

Gmail OAuth persistence — Google OAuth tokens expire and need refreshing. We built an auto-refresh system that detects expiry before each send and silently refreshes the token, making the integration reliable across restarts and deployments.

Multi-listener conflicts — Slack messages containing email addresses in meeting summaries were triggering both the meeting listener and the email listener simultaneously. We solved this with early-return guards that check message content before processing.

HTML email rendering — Converting AI-generated markdown responses into properly rendered HTML emails with tables, bold text, and branded headers required building a custom markdown-to-HTML parser that handles Slack-specific formatting edge cases.

What we learned

Building LoopAgent taught us that the hardest part of AI-powered tools isn't the AI — it's the plumbing. Getting Slack events, external APIs, scheduled jobs, OAuth flows, and persistent storage to work reliably together requires careful architecture. We also learned that the best UX is invisible — LoopAgent should feel like it's just part of how your team works, not a tool you have to remember to use.

What's next

  • Real-Time Search API integration for searching live Slack message history
  • Jira and Asana MCP for automatic ticket creation from action items
  • Multi-workspace OAuth for full Slack Marketplace distribution
  • Voice transcription for automatic note generation from Slack Huddles
  • Cross-team dependency alerts when tasks in one channel block another
  • Mobile push notifications for urgent blockers

Built With

Share this project:

Updates