Newswire

A "Twitter feed" that posts in your league's announcements channel. Multiple personas (Adam Schefter, Tony Romo, Skip Bayless, Greg Olsen, etc.) react to real league activity — trades, injuries, big plays, weekly results, contract moves.

What triggers a tweet

The bot watches several streams continuously:

  • Transactions — releases, signings, trades. Schefter does the wire reports, Romo does the takes.
  • Game results — close games, blowouts, upsets. Each persona has a take template.
  • Roster changes — OVR jumps, dev-trait promotions, X-Factor unlocks. Greg Olsen is the scouting voice.
  • Cap moves — big releases that free notable cap, contract extensions. Cap analysts weigh in.

Scoring + dedupe

Every event gets a score on a fixed rubric. Anything above the threshold (6) becomes a candidate tweet; everything below it drops silently. The bot also drops anything that looks like the same story within the last day (by topic) or the last week (by player + team) so a re-detected event doesn't spam your league.

What you can tune

On your league's newswire page in the dashboard:

  • Newswire channel (default: announcements)
  • Min score threshold (default 6)
  • Personas enabled / disabled
  • Per-event-type quota (e.g. max 2 game previews/day)
  • Mute window (silence the feed during certain hours)

Why content sometimes feels "off"

The AI personas rely on the data the bot scraped from the league. If a player got traded to a new team and then the AI references their OLD team for a few exports — that's stale-team detection catching up. The isStalePlayerTeam guard kicks in once the EA roster export confirms the new team.