Skip to content

Product Overview

What Jester is

Jester is a platform that generates oddspark's articles and blogs with AI. From material that already exists โ€” race results, race videos, past blog articles โ€” AI drafts the copy, and an operator reviews and publishes it.

There are two kinds of content.

Content Description
Article The "10-second race result summary" embedded in the race result page: one headline and three sentences
Blog Longer-form blog articles, in two families: rewrites of past blogs, and newly written race recaps / predictions

Generated content is saved as a draft and published by an operator. The AI never publishes anything.


Problems it solves

Problem How Jester addresses it
Writing articles takes time and money AI drafts them from the race result and race video
Migrating past articles is laborious Past blogs are imported and rewritten by AI without changing their content
Race videos go unused AI analyses the video and feeds it into the writing and thumbnail selection
Preparing thumbnails is laborious AI picks the best moment in the race video and that frame becomes the thumbnail
AI can write things that are not true Transcription and cross-referencing are done in code, and generated text is checked against the official data โ€” contradictions are never published

Key features

Race information management

  • Uploading race result JSON (auto racing, keirin, horse racing)
  • Registering the pre-race entry list and AI prediction marks
  • Race videos and course images live in S3 and are read during generation

AI article generation (10-second race result summary)

  • Request generation for a race, and AI writes a summary readable in about ten seconds
  • The race result, race video and course image (horse racing only) are analysed and reflected in the text
  • The generated article is saved as a draft; publishing is a separate operator action
  • Failed generations remain visible as "failed" with a reason and can be retried with extra instructions

AI blog generation

Kind Description
Rewrite Rewrites an imported past blog for readability without changing its content
Race recap Writes a post-race retrospective from the race result and video
Race prediction Writes a pre-race prediction from the entry list and AI prediction marks

Generated blogs are assembled using oddspark's real article designs.

AI thumbnail generation

  • AI analyses the race video and selects the best moment for a thumbnail
  • That frame is extracted, stored as an image and embedded in the blog body
  • Similarity between blogs is computed and links to related blogs are inserted at the bottom of the article
  • Race-linked blogs also show a card pointing to the race result page

Master data

  • Categories (broad blog categories, which also determine the article design)
  • NG words (terms that must not appear in generated text)

How factual accuracy is protected

Generative AI is poor at transcribing numbers and cross-referencing multiple data sources, and it mixes things up. Jester is designed so that interpretation, matching and transcription happen in code, and the AI only writes the Japanese.

Mechanism Description
Eligibility check Races with no finishing order (void / cancelled) are never generated, because the AI would invent a winner
Value substitution Entrant names, payout amounts and popularity are filled in from the official data rather than written by the AI
Post-generation checking Number-to-name mapping and payout figures are verified against the official data
NG word screening Generated text is scanned for prohibited words

When something is detected the text is rewritten (up to twice); if it still cannot be resolved, generation fails and nothing is published.


Tech stack

Area Technology
Cloud AWS (Lambda / API Gateway / SQS / S3 / CloudFront / DocumentDB / Bedrock)
AI models Amazon Bedrock (Nova Pro / Claude Sonnet / Titan Text Embeddings v2)
AI agents LangGraph (combined race analysis, thumbnail moment selection)
Database Amazon DocumentDB (MongoDB-compatible)
Architecture Serverless, asynchronous pipelines

See Tech Stack for details.


Current phase

Jester is in a proof-of-concept phase. The focus is validating automatic article and blog generation and the factual accuracy of what it produces. There is also instrumentation for measuring how much a generated article drew on the race result versus the race video.