AI-Powered Content Generation and Shot Commentary System for Live Golf Tournament Coverage

pga_tour · Media & Entertainment · 2025 · 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: Live sports media and fan engagement

The PGA Tour needed to turn high-volume live golf data into timely, accurate, brand-safe commentary and content across tournaments, players, channels, and non-tournament days.

Constraints:

Architecture

PGA Tour runs two Bedrock-backed media systems: shot commentary over TOURCast/ShotLink-style live data, and agentic article generation for repetitive tournament content. Article requests land in DynamoDB/SQS, AgentCore/Lambda invokes research and data agents over Tour APIs and media guides, writer/editor/validator agents iterate against brand style and facts, Nova helps image selection, and approved content publishes to digital channels.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  tourcast-shot-data["tourcast-shot-data"]
  shot-commentary-generator["shot-commentary-generator"]
  dynamodb-request-store["dynamodb-request-store"]
  sqs-job-queue["sqs-job-queue"]
  agentcore-lambda-runner["agentcore-lambda-runner"]
  research-data-agents["research-data-agents"]
  writer-agent["writer-agent"]
  editor-agent["editor-agent"]
  validator-agent["validator-agent"]
  nova-image-selector["nova-image-selector"]
  publication-channels["publication-channels"]
  tourcast-shot-data --> shot-commentary-generator
  dynamodb-request-store --> sqs-job-queue
  sqs-job-queue --> agentcore-lambda-runner
  agentcore-lambda-runner --> research-data-agents
  agentcore-lambda-runner --> writer-agent
  agentcore-lambda-runner --> editor-agent
  agentcore-lambda-runner --> validator-agent
  agentcore-lambda-runner --> nova-image-selector
  research-data-agents --> writer-agent
  writer-agent --> editor-agent
  editor-agent --> validator-agent
  editor-agent --> nova-image-selector
  validator-agent --> research-data-agents
  validator-agent --> publication-channels
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
tourcast-shot-data Live 3D tournament and shot data used for factual shot descriptions and contextual commentary. shot-commentary-generator
shot-commentary-generator Generates factual and contextual live commentary only when shot context adds value. tourcast-shot-data
dynamodb-request-store Records incoming article-generation workloads before queueing. sqs-job-queue
sqs-job-queue Buffers hundreds of article jobs to avoid token/usage limits and smooth generation work. agentcore-lambda-runner
agentcore-lambda-runner Runs the multi-agent article workflow and coordinates calls to Bedrock, Tour APIs, media guides, Getty, and image selection. sqs-job-queue, research-data-agents, writer-agent, editor-agent, validator-agent, nova-image-selector
research-data-agents Collect structured player/tournament data from Tour APIs and unstructured facts from PDF media guides. agentcore-lambda-runner, writer-agent, validator-agent
writer-agent Creates article drafts from work orders, research data, format requirements, and audience guidance. research-data-agents, editor-agent
editor-agent Checks style, brand, format, and image pairing; sends drafts back to the writer or forward to validation. writer-agent, validator-agent, nova-image-selector
validator-agent Extracts factual claims and checks them against authoritative Tour API data before publication. editor-agent, research-data-agents, publication-channels
nova-image-selector Evaluates image appropriateness for generated articles using a Nova model. agentcore-lambda-runner, editor-agent
publication-channels Digital destinations for validated AI-generated articles and live shot commentary. validator-agent

Data flow

A content request is stored in DynamoDB, transformed into an SQS job, and picked up by an AgentCore/Lambda worker. Research/data agents gather structured Tour API data and unstructured media-guide facts, a writer creates the article, an editor checks format, audience, style, brand, and image fit, and a validator extracts factual claims and compares them to Tour API data before publication. Shot commentary separately reads live shot and tournament context from TOURCast data to decide when context is useful.

3 supporting quotes
“once a request comes in, the request is returned to a DynamoDB table that a specific workload has been launched kind of stuff.”transcript, stated
“that request goes into a job transformer which transforms the request that came in and puts it in an SQS queue.”transcript, stated
“the data agent also looks through their media guides. The media guides, like, if you look, it's a big PDF document about the player”transcript, implied

Why this architecture

PGA Tour separated research, writing, editing, validation, and image selection because sports content must be fast, brand-safe, and factually exact. Queueing protects token limits when hundreds of similar articles are generated together, while AgentCore fits the I/O-bound workflow because agents wait on Tour APIs, Getty, and Bedrock calls.

“Because the content is generated, but we want to make sure the content has the right facts in it.”transcript, stated
“Because as I mentioned earlier, they write, like, hundreds of articles and generating all these articles at one time. They may hit some limits on, like, the usage of tokens”transcript, stated

Models used: AWS Bedrock models · Nova model

Scale

Alternatives considered (roads not taken)

Assigning human writers to produce 156 similar player articles for each tournament

Rejected because: The team viewed this as unrewarding repetitive work and used recipe-driven agentic generation instead.

“There is no way I could tell a content guy, "Your job is to write 156 very similar articles today. Does that sound rewarding?" No is the answer to that.”transcript, stated

Publishing generated articles without fact validation

Rejected because: The workflow extracts factual claims and checks them against Tour API data before publication.

“So, you need to extract the facts from the content and then use the data. The data agent can give you the data from the TOUR API”transcript, stated

Narrating every shot regardless of value

Rejected because: The commentary system distinguishes factual narration from meaningful commentary and may keep early low-context shots simple.

“We were really strong that we didn't wanna do narration, we wanted to do commentary.”transcript, implied

Patterns

multi-agent-orchestration (content-generation)

A work order moves through data, writer, editor, image, validation, and publication agents to generate articles and related assets.

“The data agent can give you the data from the TOUR API, like, that Scottie Scheffler scored a birdie in the 18th hole”transcript, implied
“If it doesn't match, the request is sent back to the editor agent asking the editor agent to fix the issues that was identified by the validation agent.”transcript, stated

llm-as-judge (content-validation)

Generated features are scored and validated with a mix of regex, LLM judging, source-data comparison, and human review during rollout.

“Some of it's simple regex, some of it's LLM as a judge, some of it's take the original data and check it's in the output.”transcript, stated

rag-retrieval (sports-data-context)

The data agent retrieves structured statistics from Tour APIs and unstructured player context from media guides before generation.

“the research request goes in, goes in and gets the data both from the structured data as well as the unstructured data”transcript, stated

structured-output-contract (brand-safe-generation)

The editor agent asks the writer for a specific article format, target audience, channel, and brand/style compliance before validation.

“the editor asks the writer to write an article with this specific format for this specific target audience and for this specific thing”transcript, stated

human-in-the-loop-gate (launch-quality)

New AI features can run in draft with human verification until the team is satisfied enough to enable automatic approval.

“Sometimes, we'll throw to a human when we're building a new feature, as Murali will come onto. We'll have a few running draft, we'll verify it”transcript, stated

Tradeoffs

How much context to add to shot commentary.

Chose comment only when context matters over narrating every shot with generated context.

Rationale: The team preferred varied, meaningful commentary and accepted that some shots only need a factual description.

“Sometimes, it's just his first drive on the first hole and there is no context. So, we'll say, "Scottish Scheffler opens his round”transcript, stated

How to cover repetitive player-specific content.

Chose agentic article generation from a recipe over assigning content staff to write 156 similar betting profiles.

Rationale: AI made repetitive, high-volume Monday content feasible while keeping human effort focused on higher-value work.

“There is no way I could tell a content guy, "Your job is to write 156 very similar articles today. Does that sound rewarding?"”transcript, stated

Gotchas (what bit them)

Base LLMs do not know live sports state.

Root cause: Golf articles depend on how a player performed minutes ago, while model pretraining data is stale.

Resolution: The workflow feeds structured Tour data and media-guide context into agents before writing.

“LLMs typically do not have the data that is needed to generate articles, right? Because the LLM's data is usually the old data.”transcript, stated

Factual and brand errors can damage a world-class sports brand.

Root cause: Generated content must match real scores and comply with PGA Tour style and brand guidelines.

Resolution: Editor and validation agents check style, facts, and source-data agreement before publication.

“they wanted to make sure that the brand value is not damaged, right? When you generate content, you want to make sure the content is validated”transcript, stated

Golf has unusual edge cases that generic workflows miss.

Root cause: A live tournament includes non-uniform events, rules exceptions, and rare scoring situations across tens of thousands of shots.

Resolution: PGA Tour brings production-first edge-case thinking into scoring and validation before auto-approving output.

“We are really good at edge cases. What happens if someone holes-in-one and damages the hole and we got to re-pin the middle of a round?”transcript, stated

Evaluation

PGA Tour evaluates AI output with scoring and validation gates, fact extraction against source data, brand/style checks, draft human review, cost and throughput metrics, and engagement outcomes.

Metrics: validation pass rate · article cost · articles per week · time to publish · page views · fan engagement

“we automatically approve things as quickly as possible using scoring and validation? So, our features essentially will go through an analysis”transcript, stated
“extract the facts from the content and then use the data. The data agent can give you the data from the TOUR API”transcript, stated

Outcomes

PGA Tour combines about 31,000 shots per standard tournament, 156-player content sets, ShotLink data, Tour APIs, media guides, and publication workflows.

3 supporting quotes
“each article is generated using generative AI for 25 cents per article. That resulted in 95% cost reduction.”transcript, stated
“Currently they're writing around 140 to 180 articles per week. Soon, by the end of this year, they're going to write close to 800 articles per week”transcript, stated
“these gen-AI-generated articles have billions of page views per year”transcript, stated