CRM Account Brief
One account, twenty minutes of research, one page the user can read in the elevator.
Flow
1. CRM context (if connected)
crm_query_records(object_type="companies", search="<name or domain>")
crm_query_records(object_type="contacts", search="<domain>") # linked people
What we already know: fields, mapped scores/signals, who we talk to, what stage. The brief
must not contradict the CRM — where outside data disagrees (e.g. new title), flag it as
an update candidate for anysite-crm-enrich/anysite-crm-champions.
2. Company snapshot
execute crunchbase/search {keywords: name} → alias (verify name+domain, first hit may
be a namesake) → crunchbase/company → funding history, leadership_hires[] (often empty
for smaller companies — not a negative), news[], layoffs[], employee range, investors.
Same response, free extras for the brief: related.competitors[] (their competitive set),
bombora_surges[] (what their team is researching — mention only if relevant to the
meeting), predictions.funding_score (likelihood of a next round).
search_sql_companies {website: "<domain>", count: 10} + exact website match check
(substring search returns look-alike domains — verify before trusting) → description,
specialities, locations, employee_count.
3. What's happening now
- Hiring:
search_companies {keywords: "<name>", count: 5} → pick the right company by
name/industry/alias (first hit is often a namesake), its urn comes back already as the
{type, value} object → search_jobs {company: [<urn object>], sort: "recent", count: 20}
— what functions they're growing (that's their current priorities, use in talking points).
- News: crunchbase
news[] first (already fetched); add
techmeme/stories/stories_search {keyword: "<name>", count: 5} for tech companies.
- Employer sentiment (optional, for bigger companies): resolve the employer id first via
glassdoor/companies/companies_search {company: "<name>", count: 1} → then
companies_ratings {company: <id>}; blind/companies/companies_reviews — morale,
attrition themes. Use with care in messaging — background context, never a quoted opener.
4. The people in the room
For each known attendee / key CRM contact with linkedin_url:
execute linkedin/user/user {user: <url>} → role, tenure, background
execute linkedin/user/user_posts {urn, count: 10,
posted_after: <90 days ago>} → what they talk about
Caveat: user called with a URL may omit the urn in its response, and user_posts
accepts ONLY a URN. If the urn is missing, recover it via
search_users {first_name, last_name, current_company: [<company urn object>], count: 3}
— the company-filtered search returns the URN directly (same cascade crm-enrich uses for
email-only contacts). Posts are personalization gold: real interests, stated problems,
conference activity. Quiet posters: user_comments and user_reactions (posts they
engaged with) reveal what a lurker actually reads — often better meeting fuel than their
own posts.
No posts ≠ no signal — check user_comments for lurker activity if it matters.
5. The brief
One page, this order:
- Snapshot — what they do, size, stage, funding, trajectory (3 lines).
- What's new — dated events (funding, hires, launches, layoffs), newest first.
- People — attendees with one-line "who they are + what they care about".
- Angle — 3 talking points tied to evidence, 1–2 risks/landmines (layoffs, churned
history in CRM, competitor relationship).
- Sources — links for every claim. No link → don't claim it.
When the next step is a cold message, hand a single dated fact + its angle to
anysite-outreach.
Writes
None by default. If the user asks to save the brief: a note via the CRM UI is their
fastest path (note-writing is not exposed through crm_* tools); offer the brief as text
they can paste, or stamp mapped summary fields via crm_upsert_companies (dry-run first)
only if the profile maps them.
1---2name: anysite-crm-account-brief3description: Pre-meeting brief for an account that lives in the connected CRM - what the CRM already knows (fields, contacts, history) merged with fresh outside data (funding, exec changes, news, key people's recent LinkedIn activity) into a one-page brief with talking points. Read-only. Use when the user preps for a call/meeting/demo with a CRM account or asks for account research in the context of their pipeline. Requires an active CRM connection - for briefs on arbitrary companies without CRM context, other research skills apply.4---56# CRM Account Brief78One account, twenty minutes of research, one page the user can read in the elevator.910## Flow1112### 1. CRM context (if connected)1314```15crm_query_records(object_type="companies", search="<name or domain>")16crm_query_records(object_type="contacts", search="<domain>") # linked people17```18What we already know: fields, mapped scores/signals, who we talk to, what stage. The brief19must not contradict the CRM — where outside data disagrees (e.g. new title), flag it as20an update candidate for `anysite-crm-enrich`/`anysite-crm-champions`.2122### 2. Company snapshot2324- `execute crunchbase/search {keywords: name}` → alias (verify name+domain, first hit may25 be a namesake) → `crunchbase/company` → funding history, `leadership_hires[]` (often empty26 for smaller companies — not a negative), `news[]`, `layoffs[]`, employee range, investors.27 Same response, free extras for the brief: `related.competitors[]` (their competitive set),28 `bombora_surges[]` (what their team is researching — mention only if relevant to the29 meeting), `predictions.funding_score` (likelihood of a next round).30- `search_sql_companies {website: "<domain>", count: 10}` + exact `website` match check31 (substring search returns look-alike domains — verify before trusting) → description,32 specialities, locations, employee_count.3334### 3. What's happening now3536- Hiring: `search_companies {keywords: "<name>", count: 5}` → pick the right company by37 name/industry/alias (first hit is often a namesake), its `urn` comes back already as the38 `{type, value}` object → `search_jobs {company: [<urn object>], sort: "recent", count: 20}`39 — what functions they're growing (that's their current priorities, use in talking points).40- News: crunchbase `news[]` first (already fetched); add41 `techmeme/stories/stories_search {keyword: "<name>", count: 5}` for tech companies.42- Employer sentiment (optional, for bigger companies): resolve the employer id first via43 `glassdoor/companies/companies_search {company: "<name>", count: 1}` → then44 `companies_ratings {company: <id>}`; `blind/companies/companies_reviews` — morale,45 attrition themes. Use with care in messaging — background context, never a quoted opener.4647### 4. The people in the room4849For each known attendee / key CRM contact with linkedin_url:50```51execute linkedin/user/user {user: <url>} → role, tenure, background52execute linkedin/user/user_posts {urn, count: 10,53 posted_after: <90 days ago>} → what they talk about54```55Caveat: `user` called with a URL may omit the `urn` in its response, and `user_posts`56accepts ONLY a URN. If the urn is missing, recover it via57`search_users {first_name, last_name, current_company: [<company urn object>], count: 3}`58— the company-filtered search returns the URN directly (same cascade crm-enrich uses for59email-only contacts). Posts are personalization gold: real interests, stated problems,60conference activity. Quiet posters: `user_comments` and `user_reactions` (posts they61engaged with) reveal what a lurker actually reads — often better meeting fuel than their62own posts.63No posts ≠ no signal — check `user_comments` for lurker activity if it matters.6465### 5. The brief6667One page, this order:681. **Snapshot** — what they do, size, stage, funding, trajectory (3 lines).692. **What's new** — dated events (funding, hires, launches, layoffs), newest first.703. **People** — attendees with one-line "who they are + what they care about".714. **Angle** — 3 talking points tied to evidence, 1–2 risks/landmines (layoffs, churned72 history in CRM, competitor relationship).735. **Sources** — links for every claim. No link → don't claim it.7475When the next step is a cold message, hand a single dated fact + its angle to76`anysite-outreach`.7778## Writes7980None by default. If the user asks to save the brief: a note via the CRM UI is their81fastest path (note-writing is not exposed through crm_* tools); offer the brief as text82they can paste, or stamp mapped summary fields via `crm_upsert_companies` (dry-run first)83only if the profile maps them.