Renewal signal board for every HubSpot customer account
Open one board before every renewal or QBR to see what the open web has said about each customer lately, then have an assistant write the brief into HubSpot.
Build me an app my account managers open before every renewal and QBR: a board of our existing customer accounts from HubSpot, where each account is a card showing what the open web has said about that company lately. Today the team preps by googling each account the night before, and I want that replaced with one screen they return to every week.
The main view is a board of account cards. A handler builds the account list from HubSpot: use Search Companies when a filter is applied so the filtering happens server side, and List Companies for the unfiltered sweep. Give me a filter bar at the top with a lifecycle stage picker, an account owner picker populated from HubSpot List Owners, and a renewal window control. Default the board to accounts with a renewal date inside the next 90 days, using whichever company date property holds renewal or contract end date, and let me choose that property once in a small settings panel so the app is not hardcoded to one portal's schema. If no renewal property is configured, fall back to filtering by lifecycle stage and owner and say so in the empty state instead of showing a broken filter.
For each account on the board, a handler sweeps the web with Exa Search using the company name and domain, looking for five signal types: funding, acquisition, layoffs, leadership change and product launch. Run a focused search per signal type rather than one vague query, and use the search categories that fit: news and financial report for funding, acquisition and layoff coverage, company for product and corporate pages. Bias toward recent results and pass the company domain through so results about a same named company elsewhere do not slip in. Classify each result into one of the five signal types, give it a signal strength score based on how significant the event is and how credible the source looks, and keep the published date. Cache sweep results per account so opening the board is fast, and put a Refresh button on each card plus a Refresh all on the board.
Each card shows the account name, the renewal date and days remaining, the account owner, the last researched date, and the top few signals as compact rows with signal type, headline, source and date. Sort the board by a blend of signal strength and recency so the accounts with the biggest recent news float to the top, and let me switch the sort to soonest renewal. Show staleness clearly: an account whose last researched date is older than the threshold I set gets a visible stale marker, and accounts never researched are marked as such.
Clicking a signal opens a reading pane with the clean readable text of that page, pulled with Exa Get Contents, plus the source link, the published date and the signal type. Every signal row has a Dismiss as noise action. Dismissals persist in the app keyed by account plus source URL, apply for the whole team rather than just the person who clicked, and filter that result out of future sweeps for that account. Keep a Dismissed list per account with who dismissed it and when, and let someone restore one.
Every card has a Write the account brief button that kicks off a background agent for deeper research. The agent starts an asynchronous run with Exa Create Agent Run, passing the company name, domain, renewal date, the signals currently on the card, and instructions to produce a renewal ready brief: what changed at this company recently, what it implies for our relationship, risks to the renewal, expansion angles, and the questions the account manager should ask on the call. Set a sensible effort tier and a spend cap through the budget max cost setting, and expose both in the settings panel. Agent runs are asynchronous, so the card must immediately show a pending state with the run started time, and the app polls Get Agent Run until the run completes, fails or is still working. Show the finished brief in the app, in a panel next to the signals.
When the brief is ready, file it back to the CRM: HubSpot Create Note with the brief body, associated to that company record, and HubSpot Update Company to stamp the last researched date property so the board immediately shows the account as fresh. Show both writes as they happen and confirm them on the card. If either write fails, keep the brief in the app, show the error inline on the card, and offer a retry rather than losing the work.
A few rules to bake in. Never write anything to HubSpot beyond the brief note and the last researched date stamp. Let several briefs run at once without blocking the board, and keep each card independent so one failed sweep or run does not blank the page. Remember each viewer's filter and sort choices between visits, but keep dismissals and briefs shared across the team. Surface the estimated research cost of a brief before it runs so nobody is surprised by the spend, and show a clear empty state when an account genuinely has no news, since silence is a useful answer for a renewal too.
What does this prompt do?
- Turns your existing HubSpot customer accounts into a board of cards, one per account, showing the funding, acquisition, layoff, leadership change and product launch news published about that company lately.
- Opens by default on the accounts with a renewal inside the next 90 days, so your team works the ones that actually matter this quarter first.
- Gives every card a Write the account brief button that sends an assistant off to do deeper research, then files the finished brief onto the HubSpot record as a note and stamps the account with the date it was last researched.
- Lets you dismiss a story as noise so it never comes back, and shows at a glance which accounts have gone stale since anyone last looked at them.
What do I need to use this?
- A HubSpot account where your customers live as company records
- An Exa account for the web research
- A date field on your HubSpot companies that holds the renewal or contract end date, if you want the 90 day default view
- Account managers or customer success reps who prep for renewals and QBRs
How can I customize it?
- Choose which accounts appear: filter by lifecycle stage, by account owner, or by how soon the renewal lands
- Change which signal types count and how heavily each one weighs into the ranking
- Set how deep the account brief research goes and cap what each brief is allowed to spend
- Change how many days without research counts as stale
FAQs
Does this change anything in my HubSpot data?
What if we do not track a renewal date in HubSpot?
How current is the news on each card?
What happens when I dismiss a story as noise?
How long does an account brief take to come back?
Related templates
Stop buying stale lists. Reps run a saved search, work the results like an inbox, and only the accounts they approve ever reach your CRM.
Pick a date, a starting point and a radius, then build a sequenced day of customer visits that lands straight on your calendar.
One screen where reps filter for companies that fit, see who is actually reachable at each account, and save only the addresses that verify.
See every competitor battlecard next to the number of open deals that name that competitor, so the cards carrying real pipeline get refreshed first.
Score every target account against the buying committee you actually need, see the exact holes, and have an assistant fill them in your CRM.
See open and pending conversations from all your Help Scout inboxes in one queue, sorted so the customers who have waited longest on you come first.
Stop googling your accounts the night before the renewal.
Give your account managers one board that already knows what happened at every customer this quarter.