Track what buyers say about competitors on every call

By General Input

Keep a watchlist of competitor names, pricing objections, and feature asks, then see every time one comes up on a call with the quote attached.

Integrations

  • Fathom
  • Google Sheets
  • Slack Bot

Type

App

Categories

  • Sales
  • Marketing

Build me an app that turns our recorded Fathom calls into a searchable library of what buyers actually said about competitors, pricing, and missing features. I keep a watchlist of tracked terms inside the app itself, the app scans call transcripts for those terms, and every hit shows up as a quotable snippet with attribution rather than a bare keyword count. The two people who live in this are a product marketer, who wants to see which competitor is climbing, and a sales manager, who wants to see which rep keeps running into the same objection.

Watchlist page. I manage tracked terms here. Each term has a display name, a type (competitor, pricing, feature, or objection), a list of aliases, and an active toggle. Matching is case insensitive and aliases fold into the parent term, so "Gong", "gong.io", and "Gong dot io" all count as one term with one number. Terms can be phrases as well as single words, for example "too expensive" or "does it integrate with". This page also holds the list of our own email domains, used for excluding internal meetings.

Scanning and caching. Use Fathom List Meetings over a bounded date range, following the cursor to page through results. For each meeting not already in the cache, call Fathom Get Transcript and store the transcript lines along with the computed term hits, keyed by recording id. Page views must read from that cache, never re-pull transcripts that have already been read. Fathom allows 60 API calls per minute, so throttle the scan, show progress while it runs, and show when the library was last brought up to date. A "Scan new calls" button extends the cache forward to today. Use Fathom List Team Members, and Fathom List Teams to scope it, to build the rep roster, then label every transcript speaker as either one of our reps or an outside participant.

Excluding internal meetings. Any meeting whose participants are all on our own email domains is treated as internal and left out of the counts by default, so our standups do not pollute the numbers. Give me a toggle to include internal meetings when I want them, and a way to exclude an individual meeting by hand.

Main view: the term list. Rank tracked terms by mention count in the selected period. Each row shows the term, its type, the mention count, how many distinct accounts it came up in, how many distinct reps were on those calls, and a sparkline of month over month counts so I can see the trend at a glance. Give me a period picker (last 30 days, last quarter, custom range), a rep filter driven by the Fathom team member list, and the option to sort by raw mentions or by biggest month over month change.

Term detail. Clicking a term opens every mention of it in the period, grouped by account. Derive the account from the external participants' email domain, falling back to the meeting title. Each mention renders as a card with the matched quote, the speaker's name, whether that speaker is one of our reps or on the buyer's side, the meeting title, the meeting date, and two or three transcript lines before and after so the context is readable. Link out to the Fathom recording where the API gives one. Filters on this view: rep, date range, and buyer side versus rep side.

Embedded background agent: "Build a rebuttal brief". Every term has this button. It kicks off a background agent that reads all of that term's mentions in the selected period along with their surrounding transcript lines, works out the recurring shape of the objection, how reps currently answer it, and which answers preceded deals that kept going (look for later meetings with the same account after the mention). The agent writes a battlecard style brief back into the app containing: the objection stated in the buyer's own words, the recurring pattern behind it, the responses that appear to work with the real quotes and the rep they came from, responses that seem to stall the conversation, and the accounts where the term comes up most. Show the run status in the UI while it works, and store each brief against the term with a timestamp and the period it covered so past briefs stay readable.

Actions from a brief. A "Push mentions to a spreadsheet" button uses Google Sheets Append Values to append one row per mention for the wider revenue team, with columns for term, quote, speaker, buyer or rep, account, meeting title, meeting date, and rep. A "Share to Slack" button uses Slack Bot Send a Message to post the brief to a channel I pick. Let me set the default spreadsheet and default channel once and reuse them.

The rule that matters most: never show a number nobody can trace. Every count in the app clicks through to the underlying quotes, and every quote carries its speaker, meeting, and date.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageLet support send one-off Loops emails without an engineerA brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensStop cold emails to anyone with a live deal in PipedriveLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery board