Daily sports betting morning digest in Slack

By General Input

A 9am Slack briefing with today's marquee matchups, biggest favorites and dogs, line disagreements between books, and a recap of how yesterday's headline lines settled.

Integrations

  • The Odds API
  • Slack Bot

Type

Agentic Task

Categories

  • Personal Productivity

Every day at 9am in my configured timezone, build me a sports betting morning briefing and post it to a Slack channel I configure. Use a cron trigger.

Inputs I want to configure: the Slack channel to post to, my timezone, and a list of leagues to cover. Default the league list to NFL, NBA, MLB, NHL, EPL, and UFC, but make it easy to change.

How to gather the data from The Odds API:

1. Call List Sports first to see which of my configured leagues are actually in season today. Skip any that are not. This call is free and costs no credits.

2. For each in-season league, call Get Odds for that sport with regions us,us2 and markets h2h,spreads,totals. Use American odds format. Only keep games whose commence time is within the next 24 hours in the user's timezone.

3. For each in-season league, also call Get Scores with daysFrom=1 so we have yesterday's completed results to recap.

What the digest should contain, written as a Slack message using Slack mrkdwn (single asterisks for bold, not double):

- A header line with today's date and a one-line summary of how many games are on the slate across covered leagues.

- One section per league that has games today, in this order: NFL, NBA, MLB, NHL, EPL, UFC, then any others. Skip leagues with no games rather than printing an empty section.

- Inside each league section: call out the marquee matchups (use your judgment based on the names, the tightness of the line, and whether they are nationally notable), the biggest favorite of the day by implied probability from the moneyline, and the most interesting underdog. Quote the line and which bookmaker has it.

- A 'Shop the line' callout listing any game where two bookmakers disagree by a meaningful margin: 1 point or more on spread/total, or 20 cents or more on the moneyline in American odds. Show both books and both prices so the reader knows where to bet.

- A one-paragraph 'Yesterday' recap that picks out 2 to 4 headline results from the prior day across covered leagues, noting whether the favorite covered and whether the total went over or under when that information is available.

Tone: short, opinionated, sharp. Sound like a friend who watches every line, not a wire service. No hedging filler. Do not give betting advice or tell the reader to wager. Keep the whole message scannable in under a minute.

Post the finished message with the slackbot Send a Message operation to the configured channel. If a league errors out or returns no data, just skip it silently and continue with the rest of the digest.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them