-
-
The Taskmate Chrome Extension
-
Actively listening(extension)
-
Lists the tasks assigned
-
Actively listens and Updates the tasks listed
-
Do not duplicate the tasks
-
Tickets are directed to freshworks
-
Each ticket's details are mentioned
-
Tickets assigned are llisted in the admin's dashboard
-
Inference graph of Tickets assigned and resolved
-
Minutes Of Meetings recorded
Inspiration
Meetings generate action items constantly, but most of that gets lost the moment the call ends. Someone says "can you fix this by tomorrow," everyone nods, and then it's on nobody to actually turn that into real, tracked work. Most existing meeting tools only summarize after the meeting — we wanted to build something that acts during it instead.
What it does
TaskMate is a Chrome extension that listens to a live Google Meet conversation and turns spoken action items into real Freshdesk tickets, in real time — correctly assigned, prioritized, and categorized, without anyone touching a keyboard.
It also generates automatic meeting minutes, summarizing everything discussed and every task created during the call, so a team walks away from the meeting with both a written record and real, trackable tickets already created.
How we built it
TaskMate runs on a small pipeline of coordinated agents:
Speech Agent — captures live audio from the mic, and also reads Google Meet's own closed captions directly, so it hears every participant in the meeting, not just whoever's on the local mic. Memory Agent — maintains rolling context of the conversation so extraction understands what's actually being discussed, rather than reacting to isolated sentences. Extraction Agent — uses an LLM (via Groq) to identify the task description, assignee, and deadline from the live transcript, with deduplication so the same task doesn't get detected repeatedly. Router Agent — classifies each task's priority and Freshdesk ticket type based on the urgency and content of what was said. Freshdesk integration — creates a real ticket via the Freshdesk REST API, with fuzzy name matching so the correct team member gets assigned even when speech-to-text mishears their name. Challenges we ran into
A few real integration issues came up that we had to actually debug, not just work around:
Browser CSP silently blocking our UI. Our Confirm/Dismiss buttons initially used inline onclick attributes, which Google Meet's Content Security Policy blocks from executing — the buttons looked correct in code but did nothing when clicked. We fixed this by switching to proper event delegation with addEventListener. Freshdesk API validation. Our ticket creation kept failing with a 400 error because we were sending an invalid type value — Freshdesk only accepts a fixed set of ticket types (Question, Incident, Problem, Feature Request, Refund), and we were sending a value outside that set. Cross-context permissions. Chrome extensions split code between content scripts and a background service worker, each with different access to page context and network permissions — getting the Freshdesk API calls to actually fire required understanding that boundary properly rather than assuming one script could do everything. Real speech is messy. Names get mistranscribed, urgency gets phrased differently by different speakers. We built fuzzy name matching with edit-distance comparison, and made sure priority detection checks the raw spoken transcript, not just the LLM's cleaned-up summary, which was dropping urgency words like "urgently." Accomplishments that we're proud of
Getting this to be a genuinely working, end-to-end integration — not a mockup — with a real third-party API, real ticket creation, real agent assignment, and real notification behavior, all triggered live from natural spoken conversation.
What we learned
Real integrations are messier than they look from the outside — API field validation, browser security models, and the gap between "the LLM extracted something" and "the extracted thing is actually usable data" all required real debugging, not just wiring an API call together.
What's next Making the Router Agent reason with the LLM itself about urgency and context, rather than relying on rule-based keyword matching Adding a follow-up agent that checks whether a task is still open near its deadline and automatically escalates it, so nothing created in a meeting quietly falls through the cracks afterward either Supporting Zoom and Microsoft Teams, not just Google Meet Building this natively on Freshworks Agent Studio, rather than calling the Freshdesk API externally
Log in or sign up for Devpost to join the conversation.