# Market sizing by persona: count the market, then the CRM gap

Source: https://mcpforgtm.com/recipes/tam-by-persona (StackMCP, independent directory of official MCP servers)

## Goal

Marketers and RevOps people who want a market size by persona before a campaign, and a count of how many matching contacts are already in the CRM. Cognism supplies free company and people counts from its dictionaries, and HubSpot supplies the contact count. Cognism can be swapped for Explorium AgentSource for free company and prospect statistics, and HubSpot for Salesforce.

## Connected tools

- Cognism: https://mcp.cognism.com/mcp (setup: https://mcpforgtm.com/tools/cognism)
- HubSpot: https://mcp.hubspot.com (setup: https://mcpforgtm.com/tools/hubspot)

## Guardrails

- Use Cognism dictionaries and count tools only. Don't run company_search or people_search, and don't reveal emails or phones, unless I approve a record search first.
- Read only in HubSpot. Don't create, edit or delete records, segments or emails.
- Show me the dictionary values and wait for me to confirm them before counting.
- Keep each segment on its own row. Don't combine company counts across personas.
- Keep the table here as text.

## Steps

1. Look up {industries}, {regions}, {departments} and {seniorities} in the Cognism dictionaries. Show the exact dictionary value next to each word I used. Don't return company or person records.
2. For each segment I confirm, run a Cognism company count and a people count with those dictionary values. Show the company count, the people count and the filters applied. Use the count tools only. If a count isn't available, stop and tell me how many search tokens a record search would use. Don't return records unless I approve it.
3. Search HubSpot contacts for each segment with the closest properties I have, such as {industry_property} and {title_property}. Show the contact count and the exact filters for each segment. Don't change any records.
4. Give me one table: segment, Cognism companies, Cognism people, HubSpot contacts, and the gap, which is Cognism people minus HubSpot contacts. Flag any row where the HubSpot filters differ from the Cognism dictionary values. Keep each segment on its own row when companies repeat across personas. Keep the table here as text.

## Expected output

Sizing table for four logistics segments. Example (all names fictional):

```
Campaign segments for Fernhill Software (fictional): logistics operations leaders in the United States and Canada.

Dictionary values used:
- Industry: Freight and logistics services
- Regions: United States, Canada
- Department: Operations
- Seniority: Director, VP

Counts only. No Cognism records returned.

| Segment | Companies | People | HubSpot contacts | Gap | Filters |
|---|---|---|---|---|---|
| US, Operations, Director | 1240 | 3860 | 214 | 3646 | HubSpot industry is Logistics and job title contains Director. Partial match. |
| US, Operations, VP | 1240 | 1105 | 61 | 1044 | HubSpot has no seniority field. Title contains VP. Not the same filter. |
| Canada, Operations, Director | 310 | 640 | 18 | 622 | Same title rule as the US Director row. Partial match. |
| Canada, Operations, VP | 310 | 190 | 7 | 183 | Same title rule as the US VP row. Not the same filter. |

Company counts repeat across Director and VP. Don't add them into one total.

Already in HubSpot, inside the US Director row: Dana Okafor, dana.okafor@larkspur.example, Director of Operations, Larkspur Freightworks (fictional).

No HubSpot records were changed.
```

## Watch for

- A dictionary value that isn't the segment you meant: Show the dictionary value next to your words before counting. Don't count a segment until you confirm the value. Industries and regions have near-matches that change the total.
- A people or company search instead of a count: company_search and people_search use 1 search token per record returned, and the contacts view also uses 1 credit per person record. Counts are free. If the result is a list of records, stop. A call returns at most 100 records, so a list is not the market size.
- HubSpot properties that don't match the Cognism filters: Print the Cognism dictionary values and the HubSpot property filters on the same row. If HubSpot has no department or seniority property, say the gap isn't comparable for that row.
- The same companies counted in more than one persona: Director and VP counts often share one company set. Keep each segment on its own row, and don't add company counts across personas.
