Automating Trading Card Copywriting with Multi-Agent Generative AI

fanatics_collectibles · Media & Entertainment · 2026 · source Agentic: yes · promotional bias: med · source-backed · extracted with prompt 0.5.4 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Trading-card copywriting and compliance

Fanatics Collectibles needed to create card-back copy at scale while researching player stats, maintaining brand voice, and complying with changing licensing and style requirements across sports properties.

Constraints:

Architecture

Fanatics built a Bedrock multi-agent copywriting system. A user supplies player lists, theme, and requirements through a Streamlit UI. A Claude Opus 4 supervisor/writer agent orchestrates structured MLB stats retrieval, historical copy examples, web-search research through Lambda and Tavily, and copy generation. A QA agent then validates sections against MLB guideline knowledge bases, formatting rules, and character limits. Jobs run asynchronously so large batches can complete in the background.

Diagram confidence: explicit (topology described by the source).

flowchart LR
  streamlit-ui[Streamlit UI] --> background-worker[Background worker]
  background-worker --> writer-supervisor-agent[Writer supervisor agent]
  stats-pipeline[Stats pipeline] --> stats-knowledge-base[Stats knowledge base]
  stats-knowledge-base --> writer-supervisor-agent
  historical-copy-knowledge-base[Historical copy knowledge base] --> writer-supervisor-agent
  writer-supervisor-agent --> web-search-agent[Web search agent]
  web-search-agent --> web-search-lambda[Web search Lambda]
  web-search-lambda --> tavily-api[Tavily API]
  writer-supervisor-agent --> qa-agent[QA agent]
  mlb-guideline-knowledge-base[MLB guideline knowledge base] --> qa-agent
  qa-agent --> qa-lambda[QA Lambda]
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Streamlit UI Provides the business-facing Python interface for submitting and tracking copywriting jobs. Background worker
Background worker Processes long-running multi-agent jobs independently of the user interface. Streamlit UI, Writer supervisor agent
Writer supervisor agent Claude Opus 4 agent that orchestrates research, generation, and supporting tools. Background worker, Stats knowledge base, Historical copy knowledge base, Web search agent, QA agent
Stats knowledge base Supplies validated player statistics from the official MLB data pipeline. Stats pipeline, Writer supervisor agent
Stats pipeline Ingests and refines official MLB data and ranks the most relevant stats. Stats knowledge base
Historical copy knowledge base Provides examples of prior human card-back copy for style and inspiration. Writer supervisor agent
Web search agent Performs qualitative current-player research when the writer needs additional information. Writer supervisor agent, Web search Lambda
Web search Lambda Calls the Tavily API and processes web-search results for the agent. Web search agent, Tavily API
Tavily API Returns current web information and reference URLs. Web search Lambda
QA agent Reviews generated copy sections against licensing, guidelines, formatting, and quality rules. Writer supervisor agent, MLB guideline knowledge base, QA Lambda
MLB guideline knowledge base Stores style guides and licensing requirements for compliance checks. QA agent
QA Lambda Checks formatting rules and character limits. QA agent
AWS CDK deployment Packages the solution as repeatable infrastructure for multiple environments and sports licenses. —

Data flow

The UI submits player, theme, and requirement specifications as a background job. The Claude Opus 4 writer supervisor analyzes missing information, pulls historical examples and validated stats from knowledge bases, invokes web search through Lambda and Tavily when current information is needed, drafts card copy, and hands it to a QA agent. The QA agent checks sections against MLB guidelines, formatting rules, and character limits before results are shown back through the UI.

3 supporting quotes
“it starts with several predefined specifications, where the user or the actor need to put in the player list, theme, and any additional requirements”transcript, stated
“This triggers our writer super supervisor agent powered by the Cloud uh Opus 4, which orchestrate the entire process.”transcript, stated
“Once the copy is drafted, the QA agent starts take over. It validates the copy against the MLB guidelines, check”transcript, stated

Why this architecture

Fanatics split the system into specialized agents and knowledge sources because card copy needs both precise structured statistics and qualitative storytelling. Sectional QA exists because simply placing all compliance documents in a knowledge base was insufficient; targeted context improved rule checking. Asynchronous workers were necessary because multi-agent and batch jobs can run for minutes or hours.

3 supporting quotes
“How do we build an agent that can combine the precise player stats with the qualitative narratives and identify the most compelling highlights”transcript, stated
“we quickly discovered that the model would sometimes miss important rules even with all the documentation and rules already available in the knowledge base.”transcript, stated
“A traditional web app model where the UI waits for the whole job to finish just isn't stable for the long-running workflow.”transcript, stated

Models used: Claude Opus 4 · Amazon Bedrock · LLM writer agent · LLM QA agent

Scale

Um AI-generated car backs cost minimal and compared to the traditional manual process."

— transcript, stated

Alternatives considered (roads not taken)

Manual editorial research and compliance checking

Rejected because: It took weeks, created pressure under roster changes, and required repeated QA/licensing iteration.

“our editors spent weeks researching their latest stats, reading game summaries, and crafting a unique narrative for each of them.”transcript, stated
“partners, any compliance miss meant another week of iteration waiting. So, that's where we saw opportunity. Can”transcript, stated

Rely only on raw statistics

Rejected because: Raw stats did not provide enough narrative quality, so the team added stat ranking and qualitative web research.

“But the raw stats alone is not enough. We also need the intelligence stats uh selection system. So we developed an”transcript, stated
“Second, we build a web search agent um as the qualitative research partner. So how this works? After being initialized by the copy uh”transcript, stated

Process all compliance context at once

Rejected because: The model missed rules even with documentation available, so Fanatics broke copy and guidelines into topical sections.

“the model would sometimes miss important rules even with all the documentation and rules already available in the knowledge base.”transcript, stated
“And then, we have the QA agent review each section systematically against the relevant guidelines, which also have been sorted into topics rather”transcript, stated

Synchronous web application processing

Rejected because: Browser timeouts, network drops, and sleeping laptops made long-running jobs unreliable.

“A traditional web app model where the UI waits for the whole job to finish just isn't stable for the long-running workflow.”transcript, stated
“So, we designed a system to be asynchronous. Instead of UI doing the work, the UI submits the work as a job in the background.”transcript, stated

Build production infrastructure from day one

Rejected because: Starting in the Bedrock GUI let the team learn, test prompts, compare models, and understand behavior quickly before moving to CDK.

“So we built our first POC entirely in the GUI. No CDK, no deployment, just hands-on experiment. This wasn't a corner-cutting move.”transcript, stated
“You can test a prompt instantly. You can compare models. You can understand the behavior of the system in hours instead of days.”transcript, stated

Patterns

multi-agent-orchestration (orchestration)

A Claude Opus supervisor coordinates writer, web-search, and QA agents with knowledge bases and Lambda tools.

“This triggers our writer super supervisor agent powered by the Cloud uh Opus 4, which orchestrate the entire process.”transcript, stated
“This multi-agent orchestration, combining the knowledge base, web search, stats pipeline, and quality assurance”transcript, stated

rag-retrieval (retrieval)

Bedrock knowledge bases ground generation and QA in player stats, historical examples, style guides, and licensing requirements.

“we load our extensive MLB guide books and licensing requirement just directly into the system.”transcript, stated
“It will pull from the MLB copy example knowledge base”transcript, stated

tool-use-orchestration (orchestration)

The writer agent invokes Lambda-backed Tavily web search and the QA agent uses a Lambda function for formatting and character-limit checks.

“it invokes a lambda function that calls the web search API and process the results.”transcript, stated
“check formatting rules, character limit through the QA Lambda function”transcript, stated

guardrails-io-filtering (safety)

A QA agent checks generated copy against licensing requirements, style guidelines, formatting rules, and character limits.

“Once the copy is drafted, the QA agent starts take over. It validates the copy against the MLB guidelines”transcript, stated

async-message-orchestration (operations)

Long-running card-copy jobs are submitted from the UI to background workers and later surfaced through status/progress polling.

“Instead of UI doing the work, the UI submits the work as a job in the background. A worker processes independently”transcript, stated

prompt-versioning (prompting)

The system injects historical card-copy examples as few-shot style anchors for the generation prompt.

“We randomly select a relevant historical car back copy and include it in the initial prompt as inspiration for the agent.”transcript, stated

Tradeoffs

Combine structured stats with qualitative web research

Chose parallel stats knowledge base plus web-search agent over using raw official statistics alone.

Rationale: Raw stats were accurate but insufficient for compelling narrative copy, so the architecture adds qualitative current-player context when needed.

“that's why we designed the two parallel system to work together. One is for the structured data with the intelligence selection algorithm building.”transcript, stated
“Second, we build a web search agent um as the qualitative research partner.”transcript, stated

Use sectional QA instead of one broad compliance pass

Chose topic-sorted guidelines and section-by-section QA review over processing all generated copy and compliance documents at once.

Rationale: Targeted context improved the QA agent's catch rate after the model missed rules in a large knowledge base.

“we have the QA agent review each section systematically against the relevant guidelines, which also have been sorted into topics rather than just processing everything all at once.”transcript, stated
“The sectional approach has dramatically improved our catch rate.”transcript, stated

Start in the Bedrock GUI before CDK

Chose fast console experimentation for the first proof of concept over immediate infrastructure-as-code deployment.

Rationale: The GUI allowed prompt testing, model comparison, and system learning in hours before the team invested in repeatable CDK deployment.

“we built our first POC entirely in the GUI. No CDK, no deployment, just hands-on experiment.”transcript, stated
“You can test a prompt instantly. You can compare models. You can understand the behavior of the system in hours instead of days.”transcript, stated

Use asynchronous background processing

Chose job submission, independent worker processing, and UI status checks over having the web UI wait for whole jobs to finish.

Rationale: Batches and multi-agent runs can take long enough that synchronous browser sessions are unstable.

“So, we designed a system to be asynchronous. Instead of UI doing the work, the UI submits the work as a job in the background.”transcript, stated
“This approach makes our web web UI UI stable, scalable, and user-friendly.”transcript, stated

Generalize the deployment as a reusable CDK template

Chose build once and deploy across sports properties over rebuilding separate systems from scratch for each sport.

Rationale: Each sport has different rules, but the core architecture can be reused with license-specific configuration.

“Each has slightly different compliance requirement and style guideline, but the core architecture remains pretty much the same.”transcript, stated
“we implement the entire solution using the AWS CDK and generalize it as a template for scalability.”transcript, stated

Gotchas (what bit them)

The LLM missed compliance rules even with documentation available.

Root cause: A large knowledge base alone did not surface the most relevant rules at the right time.

Resolution: Fanatics broke copy and guidelines into sections so the QA agent reviewed targeted content against targeted rules.

“we quickly discovered that the model would sometimes miss important rules even with all the documentation and rules already available in the knowledge base.”transcript, stated
“we broke down our generated copy by sections. So, this is a player name, this is a stats presentation, this is a narrative structure, etc.”transcript, stated

Generated copy tended toward dramatic and repetitive language.

Root cause: The model's style preferences did not automatically match card-brand voice and set-level variety needs.

Resolution: The team added progressive word tracking and injected historical card-back copy as examples.

“They also love like dramatic language, right? It's a sometimes we feel it's a bit much.”transcript, stated
“we also implemented the traditional NLP methods, specifically a progressive word tracking system that monitor the word usage across the entire car set.”transcript, stated

Synchronous UI processing was unreliable for long-running batches.

Root cause: Multi-agent jobs can take minutes or hours, while browsers and networks can time out or disconnect.

Resolution: The UI submits jobs to background workers and later checks status and results.

“Browser session timeout, network connection drops, laptop went to sleep, etc. It's not reliable.”transcript, stated
“the UI submits the work as a job in the background. A worker processes independently, and the UI then checks the job status”transcript, stated

The first AI copy experiment exposed temporal sequencing weaknesses.

Root cause: The model struggled with concepts like next-night ordering and time sequence.

Resolution: Those findings informed the Bedrock production design and the need for guardrails.

“sometimes struggle with it with the time sequencing.”transcript, stated
“I will talk more about how we address these shortcomings in our AWS back bedrock solution.”transcript, implied

Evaluation

Fanatics ran a collector proof of concept comparing human and AI card-back copy, then measured operational outcomes in production such as QA edit reduction, speed, and cost savings.

Metrics: high collector acceptance rate for AI-generated copy · no significant preference between AI-generated and human-written copy in the small test set · 40% fewer QA edits · 90% faster card-back creation · 90% production creation savings

4 supporting quotes
“AI generated card back copy had a high acceptance rate among the collectors.”transcript, stated
“there is no significant preference between the AI generated and human written copy. And collector couldn't reliably tell the difference.”transcript, stated
“First, 40 few 40% of fewer edits now required by the QA team.”transcript, stated
“Second, 90% faster car back creation. What it used to take weeks now takes like hours”transcript, stated

Outcomes

The system supports large batches such as 100 subjects and was designed to scale from baseball to multiple sports and entertainment properties.

3 supporting quotes
“transforming what used to take 2 weeks in a process that completes in under a day.”transcript, stated
“What it used to take weeks now takes like hours, can be run with minimal human intervention.”transcript, stated
“They can do they can spend their time at developing new car concept, crafting premium content for special edition, and strategic planning.”transcript, stated