All projects

MCC AI Blueprints: mapping 321 workflows to a future-state strategy

Took 321 discovered workflows across nine enterprise domains, mapped them against 41 AI Blueprint initiatives, measured coverage against a 70% target, and shipped the entire analysis as a live multi-page Railway site.

Year
2025 — 2026
Client
IBM Consulting
Scope
9 domains, 321 workflows, 41 initiatives
Built with
Figma, Claude Code, custom skill, Railway
Live
MCC AI Blueprints combined coverage view showing 321 workflows, 41 initiatives, 82% coverage rate
Combined coverage view: 321 workflows, 252 mapped, 69 gaps, 82% aggregate coverage — twelve points above the 70% agentification target.

Two streams of work, no crosswalk between them

IBM's Marketing Communications Center engagement produced two parallel streams of work that never met in the middle. The strategy team had built an AI Blueprint of 41 transformation initiatives across nine enterprise domains. Separately, an iX discovery effort had documented 321 existing workflows in PDF form, one domain at a time, with no consistent format and no way to query across them.

The blueprint lived in a master Excel and a strategy deck. The discovery lived in a folder of PDFs with names like Operations_E2E_Process.pdf and CSC_E2E_Process_Flow.pdf. Both sides were meticulous. Neither side could answer the one question stakeholders kept asking: how much of what we already do is covered by what we plan to build?

Answering that meant reading 321 workflow descriptions, holding 41 initiatives in your head, and mapping them by intent, tooling, stakeholder, and outcome. Doing it once was a multi-week effort. Doing it every time a new domain landed was untenable. So nobody was doing it, and the coverage story stayed invisible at exactly the moment leadership needed it most: heading into the agentification investment review.

I took it on as side work to make the relationship visible and, more importantly, to build a system where it could stay visible without re-doing the work each cycle.

The starting state
321
workflows discovered, no normalized format
41
blueprint initiatives across 9 domains
9
PDFs of varying length, structure, and naming
0
existing crosswalk between the two streams

A repeatable mapping system, packaged as a Claude Code skill

Manually mapping 321 workflows would have taken weeks and decayed the moment a new domain landed. Instead I built the work as a repeatable system: a custom Claude Code skill that handled extraction, normalization, mapping, scoring, and rendering end-to-end. Each new domain runs through the same pipeline, produces output in the same format, and ships to the same Railway service. The work compounds instead of restarting.

I want to be precise about what "AI did the work" means here, because it's almost always the wrong framing. The AI didn't make the strategic decisions. I designed a system where the strategic decisions could happen reliably and at scale. Claude Code was the runtime. The skill encoded my judgment, my prompts, my mapping rubric, and my output format. The value lives in the skill, not in any single domain's mapping.

Skill anatomy · /mcc-ix-mapping
STAGE 01
Extract
Run pdftotext over a domain's discovery PDFs, normalize headings, emit a structured markdown corpus.
STAGE 02
Compile
Discrete process records pulled from the markdown, deduped, tagged with source PDF and section path.
STAGE 03
Map
Each process scored against every blueprint initiative for the domain. Strong, medium, or no match.
STAGE 04
Score
Coverage rate and target gap calculated against the 70% agentification benchmark for the domain.
STAGE 05
Render
Self-contained HTML fragment emitted into the deploy folder, slotted into the live shell via fetch.

What the skill actually does to a domain

01
Normalize the source material
Discovery PDFs vary wildly. Some are flat process flows. Others are dense narratives with embedded tables. The first stage runs pdftotext, strips noise, identifies heading hierarchies, and produces one markdown record per process. This is the unglamorous step that makes everything downstream possible.
02
Pull initiatives from the master Excel
The blueprint lives in a master Excel with one row per initiative: ID, name, description, owning domain, capability tags. The skill reads it directly so there's no manual transcription, and so changes to the blueprint flow automatically into the next mapping run.
03
Score every process against every initiative
For a 30-process domain with 6 initiatives, that's 180 pairwise comparisons. The skill scores each pair as strong match, medium match, or no match using a rubric I encoded as part of the skill prompt: shared intent, overlapping tooling, common stakeholders, equivalent outcome.
04
Calculate coverage and identify gaps
Coverage rate = mapped processes ÷ total processes. Anything under the 70% agentification target becomes a gap, with a target-gap value (in points) so leadership can see at a glance how far each domain is from the goal. Initiatives with zero mapped processes become opportunities; processes with no initiative become candidates for scope expansion.
05
Emit a styled HTML fragment
Output is a self-contained ix-{domain}.html fragment matching the site's design system: header with summary stats, coverage bar against the target, a card grid of every blueprint initiative with mapped process counts, and the per-process mapping list. Drop it into the deploy folder, push to Railway, done.
T&O Workflow Mapping page showing 23 workflows mapped against blueprint initiatives
A single domain output: T&O. 23 workflows, 20 mapped, 87% coverage, +17 pts above target.

Where the blueprint matched, and where it didn't

Once all nine domains ran through the skill, the coverage spread became the story. Aggregate coverage landed at 82% — twelve points above the 70% agentification target. Six of nine domains cleared the target on their own. The three that didn't — CSR, Content & Creative, and PMM — were all within ten points, making them a focused backlog rather than a structural problem.

The variance still pointed at the next round of strategy work. The blueprint either needed to expand to close those three pockets, or explicitly de-scope them. Either answer was actionable. Until this view existed, neither answer was possible.

≥ 70%
< 70%
Domain Workflows Mapped Gaps Coverage vs. 70% target %
Marketing & Automation 11 10 1
91%
Named Account 42 38 4
90%
MMAPI 35 31 4
89%
T&O 23 20 3
87%
Corporate Affairs 40 33 7
82%
Select Marketing 60 49 11
82%
PMM 15 10 5
67%
Content & Creative 68 44 24
65%
CSR 27 17 10
63%
Total workflows
321
Mapped
252
Aggregate coverage
82%
Target delta
+12 pts
Domain comparison table from the live site showing all 9 domains side by side
The same data, rendered live on the site. One row per domain, plus a combined total.

41 initiatives. 17 atomic components.

The coverage map surfaced the gaps. The harder question stakeholders asked next was the expensive one: how do we actually build 41 initiatives without running 41 separate projects? I decomposed every initiative into its fundamental agentic parts, and the same building blocks kept appearing across every domain. Build each brick once, snap them together in different combinations, and 17 atomic components unlock 41 initiatives.

A Retriever built for the Executive Briefer is 80% of the Retriever for the RFI Ninja, the TL Engine, and the Agency Briefer. A Monitor built for Media Monitoring is the foundation for Trigger-Based Activation and Social Media Advocacy. The reuse multiplier is the entire investment thesis — and the part the blueprint, on its own, could not make visible.

The 17 atomic components
01
Ingestor
The front door
02
Scraper
The translator
03
Repository
The memory
04
Retriever
The researcher
05
Classifier
The organizer
06
Generator
The creator
07
Validator
The quality gate
08
Router
Traffic control
09
Monitor
The watcher
10
Alerter
The messenger
11
Orchestrator
The conductor
12
Optimizer
The advisor
13
Transformer
The adapter
14
Query UI
Human front door
15
Scorer
The evaluator
16
Scheduler
The coordinator
17
Matcher
The connector
Knowledge Agent
Retriever + Generator + Transformer
Executive briefers, research synthesis, thought-leadership creation.
Monitoring Chain
Monitor + Alerter + Router
Media tracking, trigger-based activation, crisis escalation.
Lifecycle Orchestrator
Orchestrator + Validator + Router + Generator
Press releases, event management, multi-system grant workflows.

Same bricks, different variables. 17 reusable components does not mean 17 identical deployments. A Retriever for executive briefings searches different repositories, applies different relevance weights, and formats output differently than a Retriever for RFI responses. A Monitor for Corp Affairs escalates crises in minutes; a Monitor for MMAPI flags data quality issues overnight. The architecture is reusable. The configuration isn't. That's how 17 primitives serve 41 initiatives without 41 custom builds — and why the first wave focuses on nailing the bricks, not the buildings.

Why a Railway site beat a slide deck

The default move would have been a deck. Decks were the wrong tool for this. 321 workflows, 41 initiatives, 9 domains, per-process mapping notes, coverage bars against a target, comparison tables, drill-in modals, and cross-domain views — there is no honest way to compress that into slides without throwing away the parts that make it useful. PowerPoint forces linear reading, flattens hierarchy, and turns every interactive question into a new slide.

A web site with one page per domain handled the volume natively. Coverage charts rendered as actual charts. Modals opened on click for any process to show its mapping notes. Domains compared side by side in a sortable table. Every view was a hyperlink instead of a slide jump. And because it was a live URL, the only thing that ever needed to "update" was the URL itself — stakeholders bookmarked once and saw the latest state every time they returned. No re-distributing decks, no version sprawl, no "is this the current one?"

Getting from "a folder of PDFs" to a site that could carry that much density wasn't a code problem, it was a design problem. I worked it the same way I'd work any product surface: built UX flows in Figma to figure out how stakeholders would move between the combined view, the per-domain pages, and the per-process drill-ins; defined an internal design system (type scale, color tokens, card patterns, table treatments, modal behavior) so every fragment the skill emitted looked like it belonged to the same product; and only then wrote the templates the skill would render against. The skill produces consistent output because the design system gave it consistent rules to follow.

mcc-ai-blueprints/
└─ deploy/
   └─ public/
      ├─ index.html // shell + nav + fetch loader
      ├─ ix-combined.html // 321 / 82%
      ├─ ix-ma.html // Mktg & Automation · 91%
      ├─ ix-na.html // Named Account · 90%
      ├─ ix-mmapi.html // MMAPI · 89%
      ├─ ix-to.html // T&O · 87%
      ├─ ix-ca.html // Corp Affairs · 82%
      ├─ ix-sm.html // Select Mktg · 82%
      ├─ ix-pmm.html // PMM · 67%
      ├─ ix-cc.html // Content & Creative · 65%
      └─ ix-csr.html // CSR · 63%

An index.html shell holds the navigation and shared chrome. Each domain is a self-contained HTML fragment loaded via fetch. Adding a domain means dropping a new fragment and adding one nav item. No framework, no build step, no cold starts.

# 1. run the skill against a new domain
$ claude-code /mcc-ix-mapping content-creative
  → wrote deploy/public/ix-cc.html

# 2. ship it
$ git add deploy/public/ix-cc.html
$ git commit -m "add content & creative"
$ railway up --detach \
    --service mcc-ai-blueprints

# 3. live in seconds
  → mcc-ai-blueprints-production.up.railway.app

The whole loop, from "new PDF arrives" to "stakeholders can read it on the live URL," is minutes. No local dev server. No build pipeline. The same Railway pattern I use for RepoIntel and the rest of my prototypes.

Live site sidebar nav showing all 9 domains with coverage percentages
Live sidebar: every domain reachable in one click, with its coverage % visible at a glance.

A coverage story stakeholders can actually use

Stakeholders stopped asking "is this covered?" and started asking "what do we do about the 69 gaps?" — which is a much better question, and the one the blueprint team needed to answer next.
252 / 321
Workflows mapped against the blueprint at HIGH or MED confidence. The remaining 69 became an explicit, named backlog for the next strategy cycle.
+12 pts
Aggregate coverage above the 70% agentification target. A single number that turned an abstract goal into a measurable result.
9 / 9
Domains shipped through the same skill, in the same format, on the same Railway service. The next domain is a command, not a project.
URL
The deliverable lives somewhere it can keep being used, not somewhere it has to be re-presented every time leadership wants to see the picture.

More than the artifact, the system it was built on is the part that lasts. The next domain doesn't require a new project. It requires running the skill. The next stakeholder doesn't need a meeting. They need a URL. That is the version of AI tooling I want to keep building: repeatable systems that compress weeks of analysis into a single command, and ship the output somewhere humans can actually read it.

Next project
RepoIntel