AI Account Researcher
Outcome: one prompt each morning that reads every external meeting on your calendar, researches the company and the person you are meeting, surfaces the other decision-makers you should be multi-threading into, and hands you a brief per call.
- Surface
- MCP server
- Level
- Intermediate
- Uses
- enrich_organization, headcount_by_department, find_company_techstack, company_job_listings, find_people_within_company, linkedin_profile_enrich, linkedin_profile_posts — plus a calendar MCP server
- Credits
- ~9 per account for the core brief, ~15 for the deep one
- Prerequisite
- Lesson 04, a calendar connector in your AI client
What this replaces
The 20 minutes before a demo where you open LinkedIn, their website, Crunchbase, their careers page and their pricing page, and paste fragments into a notes doc. That work is a fixed cost per meeting and it scales linearly with your calendar — which is why it stops happening in a busy week.
The chain does it in one pass, on every meeting at once, and it does not skip the day you have four calls.
The trigger is the difference. Every other research workflow starts with “here is a company” — this one starts with “here is my day” and works out which companies matter. Nothing is queued, nothing is remembered, nothing is skipped.
The chain
Read the calendar
The calendar MCP server returns today’s events. Filter to meetings with external attendees — anyone whose email domain is not yours. That filter is free and it is what stops the chain researching your own standups.
Resolve company and person
The attendee’s email domain is the company. Run enrich_organization on the domain for the firmographic base — headcount, industry, location, LinkedIn page, funding.
For the attendee, linkedin_profile_enrich if you have the URL, or find_linkedin_from_work_email if you only have the invite address.
Pull the signals that change the pitch
Not all of them — the ones that change what you say:
| Signal | Tool | Cost | Why it changes the call |
|---|---|---|---|
| Team shape | headcount_by_department | 2 | A 3-person sales team and a 40-person one buy differently |
| Tech stack | find_company_techstack | 1 | Tells you the integration question before they ask it |
| Open roles | company_job_listings | 0.3 | Hiring into the pain means budget already moved |
| Their posts | linkedin_profile_posts | 0.3 | What they say publicly, in their words |
| Traffic and growth | similarweb_insights | 2 | Only for accounts where scale is the objection |
Find who else needs to be in the room
find_people_within_company for the two or three titles that sign or block — usually one level above your attendee and one function across. This is the step that turns a demo into a multi-threaded deal.
Write the brief
One page per meeting, in a fixed structure so you can read it in 90 seconds.
Core brief: about 8 credits per account. Deep brief with traffic, ads and contacts for two extra stakeholders: about 13.
Run it
Use my calendar and the Sync GTM MCP server.
1. List today's calendar events. Keep only meetings with at least one
attendee whose email domain is not <yourdomain.com>. Show me the list
before researching anything.
2. For each external meeting, take the attendee's email domain as the
company. Then:
- enrich_organization on the domain
- headcount_by_department
- find_company_techstack
- company_job_listings — flag any sales, RevOps or growth roles
- resolve the attendee's LinkedIn profile and enrich it
- pull their last 10 posts
3. Then find 2 other decision-makers at the company: one level senior to
the attendee, one in <the function that blocks you>. Names, titles and
LinkedIn URLs only — no emails yet.
4. Write one brief per meeting:
- Company in two lines: what they do, size, stage
- Three facts that change the pitch, each with its source
- What the attendee has said publicly, if anything
- Two other people to multi-thread into, and why
- Three discovery questions grounded only in what you found
- One risk or disqualifier
If a signal comes back empty, write "no data" — do not fill the gap
with a guess. Report credits used per meeting.Step 1 is deliberately a checkpoint. “Show me the list before researching anything” costs nothing and stops a chain from spending 13 credits briefing you on an internal 1:1 that happened to have a contractor on the invite.
The rule that makes briefs usable
Every claim carries its source, and gaps stay visible as gaps.
A brief that says “they are scaling their sales team” is a sentence you cannot act on. A brief that says “9 open sales roles, posted in the last 30 days — company_job_listings” is a sentence you can open the call with.
The no data instruction is the other half. A model asked for a tech stack that no provider has will produce a plausible one, and it looks identical to a real one. An explicit “no data” line is worth more than an invented paragraph — it tells you what to ask on the call.
Where the brief should land
Reading briefs in a chat window works for a day and fails as a habit. Send them somewhere the team already looks:
- Notion or a docs database — one page per meeting, one property per signal, searchable after the call
- Slack, to yourself or the deal channel — one message per meeting, first thing in the morning
- Your CRM — as a note on the account, so the brief survives the rep
Each needs its own connector in the same client. The chain does not change — only the last instruction does.
Check your work
| Check | How |
|---|---|
| The right meetings | Internal calls filtered out; every remaining row has an external domain |
| Sourced, not invented | Every fact names the tool that produced it |
| Gaps are visible | At least some fields say “no data” — a brief with none is suspicious |
| Actually useful | You could open the call with the first fact without checking it |
| Cost is per meeting | Credits ≈ 9–15 × external meetings, not 9–15 × calendar events |
Where this breaks
Personal-domain attendees — gmail, outlook — have no company to resolve. Consultants, contractors and founders using a personal address will fall out of the domain step. Have the chain flag them for a manual lookup rather than guessing a company from the display name.
Meetings booked the same morning will not be in a brief generated at 7am. Either re-run before your afternoon block, or trigger the chain on a two-hour lookahead instead of a whole day.
Cost scales with your calendar, not with your intent. Ten external meetings at the deep tier is 130 credits before you have spoken to anyone. Gate the deep tier on deal size — core brief by default, deep brief only for named accounts.
Further automation
Both halves of this exist as installable skills:
- Daily Meeting Prep — the calendar-triggered version, writing one brief per meeting straight to Notion
- Account Researcher — the single-company deep version, for ABM planning and proposals
- Prospect Researcher — one person rather than one account, for a call you are joining cold
The natural next step is a schedule: the same chain at 7am daily, so the briefs are waiting rather than requested.
Next lesson
19 — Auto-enrich your CRM, the third build: pull records out of Attio, refill the missing and stale fields from LinkedIn, and write them back.
Reference for this lesson: Prompting guide, Tools, Research & Web Scraping, Signals & ABM.