Weekly competitor intel digest from X to Slack

By General Input

Every Monday at 8am ET, get a single Slack brief on what competitors posted on X last week, with launches, pricing, and hires pulled to the top.

Integrations

  • X (Twitter)
  • Slack Bot

Type

Agentic Task

Categories

  • Marketing
  • Product

Build me an agent workflow that produces a weekly competitive intelligence digest from X (Twitter) and posts it into Slack.

Trigger: a cron that runs every Monday at 8:00am US Eastern Time.

Inputs the user should configure: (1) a list of competitor X handles to track, e.g. ["acmecorp", "rivalco", "upstartai"], and (2) the target Slack channel ID where the digest should be posted.

On each run, the agent should:

1) For each competitor handle, use the X (Twitter) "Get User by Username" operation to resolve the handle to a numeric user ID. Cache the IDs in memory for the duration of the run so it doesn't re-resolve handles.

2) For each resolved user ID, use the X (Twitter) "Get User Timeline" operation to pull every post that competitor published in the last seven days. Paginate via the cursor until the seven-day window is covered. Request tweet fields that include created_at, public_metrics, entities, and referenced_tweets so the agent can filter and link properly.

3) Filter the haul before synthesis. Drop retweets and quote-only reposts (anything where referenced_tweets includes a retweeted entry), drop replies (where the tweet is in_reply_to_user_id of someone else), and drop generic banter that does not match any signal category. Keep only original posts from the competitor.

4) Synthesize a single brief. The brief should be grouped by competitor, with each competitor as a section header. Inside each section, surface the highest-signal items first across these categories: product launches and shipped features, pricing or packaging changes, hiring announcements (especially exec hires), customer wins or named-logo case studies, partnership and integration news, and notable narrative or positioning shifts. If a competitor was quiet that week, list them as "quiet this week" rather than omitting them, so the reader knows they were checked.

5) Every callout must link back to the original post on X. Use the URL pattern https://x.com/<handle>/status/<tweet_id>.

6) Add a TL;DR section at the very top of the brief with three to five bullets covering the biggest moves across the whole competitive set.

7) Post the final brief into the configured Slack channel using the Slack Bot "Send a Message" operation. Format with Slack-compatible markdown: TL;DR at the top, then a section per competitor with a bold header, then bullets per highlight with the link to the source post.

Use the Slack Bot integration (xoxb- token) for posting, not the user OAuth Slack integration — this is automated workflow output, so the bot identity is the right fit.

Error handling: if a handle cannot be resolved, skip it and note it at the bottom of the brief under "could not fetch". If the X API returns 429, respect x-rate-limit-reset and retry. If a single competitor's timeline call fails, continue with the others and note the failure in the brief rather than aborting the whole run.

The goal is a digest a product marketer or founder can skim in two minutes on Monday morning and walk away knowing exactly what competitors shipped, hired, priced, and bragged about last week.

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