# Track what buyers say about competitors on every call

> 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.

- Workflow type: app
- Services: Fathom, Google Sheets, Slack Bot
- Categories: Sales, Marketing
- Published: 2026-08-21

## What it does

- Holds a standing watchlist of the terms you care about: competitor names and their nicknames, pricing pushback like "too expensive", and feature names. Aliases fold into one term so a single competitor is counted once, however people spell it.
- Reads the transcripts of calls your team already records and shows each hit as a readable quote with the speaker, the meeting title, the date, and the lines either side, so any number can be traced back to a real conversation.
- Ranks terms by how often they came up in the period you pick, with a small trend line next to each one showing whether it is climbing or fading month over month.
- Opens any term to show every mention grouped by account and filterable by rep, plus a button that hands the term to an agent which writes a battlecard style rebuttal brief you can push to a spreadsheet or share to a Slack channel.

## What you'll need

- A Fathom account with API access enabled, and calls already recorded there
- A starting watchlist: your top few competitors, the objections you hear most, and the features buyers keep asking for
- A Google account, if you want to push a term's mentions into a spreadsheet for the wider revenue team
- A Slack workspace, if you want to share finished briefs to a channel

## Prompt

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.

## How to customize

- Change the period the term list ranks on: last 30 days, last quarter, or a custom range you set
- Add, rename, or retire terms at any time, and fold new nicknames into an existing term so the count stays whole
- List your own email domains so internal standups and team syncs stay out of the counts
- Choose which spreadsheet mentions get appended to and which Slack channel briefs get posted in

## FAQ

### Do I need Gong or another enterprise call intelligence platform for this?

No. This works off the calls your team already records in Fathom. The tracking, the trend over time, and the briefs all live in the app, which is the point: you get the tracker without the enterprise contract.

### Will our own internal meetings pollute the numbers?

Not if you exclude them. You list your own email domains once, and any meeting with no outside participants is marked internal and left out of the counts by default. You can also exclude a single meeting by hand, or flip the toggle to include internal calls when you want them.

### Can I see who actually said it, or just a count?

Every hit is shown as a quote with the speaker's name, whether they were on your side or the buyer's side, the meeting title, the date, and a few transcript lines before and after so the context reads properly. Nothing is ever shown as a bare keyword count.

### Can I track phrases and feature names, not just competitor names?

Yes. A tracked term can be a competitor, a phrase like "too expensive" or "does it integrate with", or a feature name. Matching is case insensitive, so you do not have to guess how someone typed or said it.

### How far back does it look, and is it slow to open?

You pick the date range. Transcripts that have already been read are remembered, so opening the app again only fetches calls it has not seen yet rather than re-reading everything.

Use this prompt in General Input: https://www.generalinput.com/prompts/track-what-buyers-say-about-competitors-on-every-call