Pre-call research desk that briefs reps before every meeting
Open one screen before every call to see who you are meeting, what your CRM already knows, and a three-minute brief on the company.
I want an internal app that my sales reps open right before their meetings so nobody walks into a call cold. Think of it as a pre-call research desk: the left pane is today's meeting list, the right pane is a one-screen brief on the company they are about to talk to. It is rep facing and on demand, so nothing runs on a schedule. Every rep sees only their own calendar.
The left pane lists today's external meetings for the signed in rep, pulled from Google Calendar with List Events against their primary calendar for the current day, expanding recurring events into individual instances and sorting by start time. Treat a meeting as external when at least one attendee has an email domain that is not our own company domain, and skip events the rep has declined along with events that have no attendees. Each row shows the time, the meeting title, and the external attendees.
Group the external attendees by email domain and match each domain to a company record using HubSpot Search Companies filtered on the company domain property. When there is a match, the row should immediately show what we already know without the rep clicking anything: company name, the record owner, how many open deals there are and their total value, and the date of the last activity on the account. Resolve the owner id to a real person's name with HubSpot List Owners, and get the open deals with HubSpot Search Deals filtered to deals associated with that company whose stage is not closed won or closed lost. Also look up the individual attendee with HubSpot Search Contacts by email address, so the app knows which contact record the meeting is actually with. If a domain has no company match, say so plainly on the row and still let the rep build a brief from the domain alone.
Every meeting row has a Build brief button. Clicking it starts background research in an Airtop cloud browser: Create Session, then Create Window pointed at the company website, then Scrape Page to pull the page down as markdown and Query Page with a structured output schema to extract the specific fields the brief needs. Repeat that for the company's careers or jobs page and for its news or press page, reusing the same session and opening a window per page. Terminate Session when the research finishes or fails, so we are not paying for idle browsers. While it runs, show progress on the row so the rep can see which page is being read.
The brief itself has to fit on one screen and be readable in about three minutes, because the rep is opening it in the last few minutes before a call and needs to hold it in their head for the first ten minutes of the conversation. Keep it to five short sections: a company snapshot covering what they do, rough size, market and headquarters; anything notable from the last 90 days such as funding, launches, partnerships, expansions or press; open roles that hint at where they are investing, grouped by function rather than listed as raw job postings; recent leadership changes; and three suggested discovery questions written specifically for this account rather than generic ones. Prefer short bullets over paragraphs, cap the length of each section so the whole thing stays scannable, and honestly skip a section when the research found nothing instead of padding it with filler.
Every claim in the brief must show which page it came from, as a small source link next to the line. A rep is going to repeat these facts out loud on a live call, so they need to be able to click through and check anything that looks surprising. Never let the brief assert something the crawl did not actually support.
The rep can edit any section inline. They should be able to correct a wrong fact, delete a bullet, or rewrite a discovery question, and have it save in place against that brief.
A Save to CRM button pushes the finished brief back using HubSpot Create Note, associated to both the company record and the meeting contact, so it lands on the CRM timeline for whoever opens the account next. Save the edited version rather than the original generated one, and format the note so it reads well inside HubSpot.
There is also a brief library the rep can browse: past briefs listed by company, with the date each was built and who built it, so the next person on the account never starts from nothing. Default the library to the signed in rep's own brief history with a toggle to see everything the team has built.
Cache briefs per company for a few days, around three or four. When a brief already exists and is still fresh, open it instantly instead of running a new crawl, and show how old it is alongside a Refresh button for the rep who wants a fresh pass anyway. Two reps meeting the same account on the same day should not each trigger their own crawl. The cache lives at the company level and is shared across the workspace, which is the entire point: the cost of researching an account gets paid once.
Handle the unglamorous states properly. A day with no external meetings, a company we cannot find a website for, a crawl that fails or gets blocked, an attendee domain that matches nothing in the CRM. In each case say what happened in plain language and let the rep keep moving, since they are usually opening this with only a few minutes to spare.
What does this prompt do?
- Lists today's external meetings for the signed in rep and matches each attendee to the right company in your CRM
- Shows what you already know before you dig: the account owner, open deals, and when someone last touched the account
- Builds a one-screen brief from the company's website, careers page, and news page covering a snapshot, the last 90 days, hiring signals, leadership changes, and three discovery questions
- Saves the finished brief back to the CRM and keeps a library of past briefs so the next rep on the account starts warm
What do I need to use this?
- A Google Calendar account for each rep, connected so the app can read their own schedule
- A HubSpot login with access to companies, contacts, deals, and notes
- An Airtop account, which is the cloud browser that reads company websites for you
- Company records in HubSpot with the website domain filled in, since that is how meetings get matched to accounts
How can I customize it?
- Change what counts as an external meeting, or widen the list from today to the next few days
- Adjust the brief sections, for example adding tech stack signals or a one-line fit summary
- Set how long a brief stays fresh before the app offers to research the company again
FAQs
How long does it take to build a brief?
Will this work on a free HubSpot plan?
Can reps see each other's meetings?
Does every rep trigger a fresh crawl of the same company?
How do I know the brief is accurate?
What happens if a company has no website or the pages cannot be read?
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.
Open one screen each morning to see every rental's locks, temperature, humidity, and next check-in, then prep the next stay in a single click.
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.
Stop walking into calls cold.
Give every rep a three-minute brief on the account they are about to meet, built from the company's own pages and saved back to your CRM.