Workflow pattern / Competitive intelligence

Build a public-source market map

Assemble a map of who exists in a category and how they describe themselves, using only their own public pages.

Intermediate / Dataset / Weekly

The problem

Category maps are usually opinion illustrated as fact, with no way to check where a placement came from.

Who it is for

Strategy and research teams that need a defensible category view.

Teams: Strategy / Research / Investment

Inputs

  • Category definition
  • Seed source list
  • A self-description schema
  • Inclusion rules

Conceptual process

  1. 01Seed

    Start from directories, association lists, and known participants.

  2. 02Expand

    Follow explicit references between participants to find others.

  3. 03Profile

    Extract each participant's own positioning statement and product list.

  4. 04Cluster

    Group by declared function using their words, not yours.

  5. 05Annotate

    Record inclusion reason and source for every entry.

Flow diagram

  1. 01Seeds
  2. 02Expand
  3. 03Profile
  4. 04Cluster
  5. 05Annotate
  6. 06Market map

Example output

Illustrative output
{  "category": "Freight visibility",  "entries": [    {      "name": "Example Logistics",      "self_description": "Real-time shipment visibility for mid-market shippers",      "source_url": "https://example.com/",      "cluster": "Visibility platforms",      "inclusion_reason": "Self-describes as visibility platform on homepage"    }  ],  "excluded": [{ "name": "Example Freight Broker", "reason": "Brokerage, not visibility" }]}

Data-quality considerations

  • Self-description is evidence of positioning, not of capability.
  • Record exclusions with reasons; a map is defined by both.
  • Re-run periodically — categories reshape faster than maps get updated.

Failure modes

  • Clusters reflect the analyst's model rather than participants' language.
  • Long-tail participants missing because seeds were all from one directory.
  • Dormant companies with live websites counted as active participants.

Suggested architecture

  • Seed registry
  • Reference-following crawler
  • Self-description extractor
  • Clustering with manual review
  • Map dataset

What to test first

  1. 01Check whether the map includes the five participants you would name from memory.
  2. 02Review the exclusion list for things that should have been included.

Related reading