Meeting cost audit board for your recurring Fathom calls

By General Input

See what every recurring meeting costs in attendee hours and dollars, then let an agent decide which ones to keep, shorten, or cancel.

Integrations

  • Fathom
  • Slack Bot

Type

App

Categories

  • Operations
  • Finance

Build me a meeting audit board that our ops lead and department heads open each quarter to decide which recurring meetings still deserve their slot. Everything on the board is rebuilt from meetings recorded in Fathom, so make that scope obvious in the interface rather than letting anyone read the totals as a picture of our entire calendar.

Scope the board to one team at a time. Use Fathom List Teams to fill a team picker at the top of the board, and Fathom List Team Members to pull that team's people so meetings and attendees can be attributed to them. Next to the team picker put a period selector that defaults to the last quarter and sets the date range used when fetching meetings.

Rebuild our recurring series from raw calls. Fetch the period's meetings with Fathom List Meetings, then group calls into series by matching a normalized meeting title, so dates, week numbers, and trailing punctuation do not split one series into several, combined with a roughly matching attendee set: treat two calls as the same series when most of their attendees overlap rather than demanding an exact match. A series is anything that ran at least twice in the period. Calls that ran only once in the period are ad hoc, not recurring, so move them to a separate 'Ad hoc' tab and keep them out of the main ranking.

The main board is a table of series, one row each, showing the series name, how many times it ran in the period, average duration, total duration, average attendee count, total attendee hours burned, and an estimated cost. Sort by estimated cost descending by default and say so in a one line note under the table, because the most expensive series is what actually changes behavior. Let me re-sort by any column, and show the annualized run rate for each series alongside the period cost so a weekly sync reads as a yearly number.

Separate one to one meetings from team meetings. Any series whose typical attendee count is two should be classed as a one to one and shown in its own tab, since the decision for those is a different conversation, with a toggle to include or exclude them from the headline totals.

Add a Rates settings page where I enter hourly rates once and the app stores them. Support a per role table, for example engineer, manager, director, each with an hourly rate, plus a default fallback rate for anyone unmatched, and an optional per person override list keyed by email address. The cost of an occurrence is the sum across attendees of duration in hours times that attendee's rate, falling back to their role rate and then the default. Rates are sensitive, so default the interface to the role table, keep per person rates as an opt in, and never include raw individual rate figures in anything sent out of the app, only the resulting totals.

Clicking a series opens a detail view listing every occurrence with its date, duration, attendee list, and cost, plus the attendees who appear most often. Load this detail on demand for the series I clicked and never for the whole board at once: the Fathom key is scoped to the owner's own and team-shared recordings and is limited to 60 calls per minute, so fetch series detail, summaries, and transcripts lazily, cache what you have already fetched, and show a clear message if the limit is hit instead of failing silently.

Every series row and the detail view get an 'Audit this series' button that kicks off a background agent. The agent reads the last several occurrences of that series, up to about six, using Fathom Get Summary for the summary and action items of each and Fathom Get Transcript when the summary is thin or missing or when it needs to see who actually spoke. For each occurrence it judges whether the meeting produced a decision, produced any action items, or was purely informational, and classifies it as decision making, informational, or ad hoc. It then writes one verdict for the whole series back into the app: a recommendation of keep as is, shorten, trim the attendees who never speak, or cancel and replace with an async update, a short rationale, the per occurrence classifications, and direct quotes pulled from real occurrences as evidence. When it recommends trimming attendees it should name the people who show up on the invite but never speak in the transcripts.

Store verdicts in app storage keyed by series so they survive a reload and everyone opening the board sees the same state. Each row shows its verdict status: not audited, audit running, or a verdict badge with the recommendation and the date it was written. The detail view shows the full verdict with the rationale, the per occurrence classifications, and the quoted evidence.

Once a verdict exists, give me a 'Send to owner or channel' action that posts it with Slack Send a Message. Let me pick a channel or a person and edit the text before it goes. The default message should carry the series name, how often it runs, what it costs per year at the current run rate, the recommendation, and one or two supporting quotes, so the decision gets made in the open rather than dying in a spreadsheet.

Two things to keep front and center: the board must state plainly that it only covers meetings recorded in Fathom, not the whole calendar, and the default view is most expensive first. Seeing that a weekly recurring sync costs tens of thousands of dollars a year is what gets people asking who really needs to attend, whether it can be shorter, and whether a short async update would do the job.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them