ultrabot690-oswald/X-Activity-Notifier
X activity notification system
X Activity Notifier (Alerts + Reply Drafts)
X Activity Notifier watches selected X accounts and sends instant notifications when they post new content, so you never miss time-sensitive updates. It can also prepare photo+caption reply drafts from a batch you provide, keeping engagement fast while staying human-approved.
Created by Appilot, built to showcase our approach to Automation!
If you are looking for custom , you've just found your team β Letβs Chat.π π
Introduction
This project monitors activity from a list of target X accounts and triggers notifications to your preferred channels (Telegram, Discord, Slack, email, or webhook).
It solves the βmissed momentβ problem by detecting new posts quickly, then optionally generating ready-to-send reply drafts (including media + captions) from your preloaded batch.
Real-Time Monitoring & Assisted Engagement
- Tracks new posts from specific accounts you care about
- Sends notifications with post link, author, and excerpt
- Prepares reply drafts using your caption library and image batch
- Enforces rate limits and deduplication to avoid noisy alerts
- Keeps posting actions manual/approved by default
Features
| Feature | Description |
|---|---|
| Account watchlist | Monitor a configurable list of X accounts |
| Near real-time alerts | Trigger notifications when a new post is detected |
| Multi-channel notifications | Send alerts to Telegram/Discord/Slack/email/webhook |
| Draft reply generator | Suggest captions and attach images from your batch for quick replies |
| Deduplication | Prevent duplicate alerts for the same post |
| Audit logging | Record detections, notifications, and draft suggestions |
What Data This Scraper Extracts
| Field Name | Field Description |
|---|---|
| author_handle | Handle of the monitored account |
| tweet_id | ID of the detected post |
| tweet_url | Direct link to the post |
| created_at | Timestamp of the post |
| detected_at | Timestamp when the system detected it |
| notification_targets | Channels/users that received the alert |
| draft_caption | Suggested caption selected/generated from your batch |
| draft_image_path | Local/hosted path for the suggested image |
| status | detected, notified, draft_generated |
Example Output
[
{
"author_handle": "target_account",
"tweet_id": "1899988776655443322",
"tweet_url": "https://x.com/target_account/status/1899988776655443322",
"created_at": "2025-12-18T08:21:10Z",
"detected_at": "2025-12-18T08:21:18Z",
"notification_targets": ["telegram:my_channel", "discord:#alerts"],
"draft_caption": "Big moment π₯ Hereβs the highlight β what do you think?",
"draft_image_path": "batches/images/img_014.jpg",
"status": "draft_generated"
}
]
Directory Structure Tree
X Activity Notifier/
βββ src/
β βββ main.py
β βββ watchers/
β β βββ timeline_watcher.py
β β βββ dedupe_store.py
β β βββ rate_limiter.py
β βββ notifiers/
β β βββ telegram_notifier.py
β β βββ discord_notifier.py
β β βββ slack_notifier.py
β β βββ webhook_notifier.py
β βββ drafts/
β β βββ caption_pool.py
β β βββ image_picker.py
β β βββ draft_builder.py
β βββ storage/
β β βββ sqlite_store.py
β β βββ models.py
β βββ utils/
β βββ time.py
β βββ logging.py
βββ batches/
β βββ captions/
β β βββ captions.sample.txt
β βββ images/
β βββ img_001.jpg
β βββ img_014.jpg
βββ config/
β βββ settings.example.json
β βββ watchlist.example.json
βββ data/
β βββ logs/
β β βββ app.log
β βββ state/
β βββ dedupe.sqlite
βββ requirements.txt
βββ README.md
Use Cases
- Traders use it to get alerts from specific accounts, so they can react quickly to market-moving posts.
- Community managers use it to monitor partner accounts, so they can engage at the right moment.
- Brands use it to track competitor announcements, so they can respond with prepared content faster.
- Content teams use it to generate reply drafts, so approvals and posting are quick and consistent.
- Operators use it to route alerts to multiple channels, so teams stay aligned in real time.
FAQs
Can this automatically comment with a photo and caption?
This repository is designed to generate reply drafts and notify you instantly. Automated commenting is intentionally not enabled by default because it can create policy and account-risk issues; the safer workflow is human approval + one-click posting.
How fast are notifications?
With short polling intervals and deduplication, alerts can arrive within seconds to a couple of minutes depending on rate limits and network conditions.
How do I provide the batch of captions and photos?
Add captions to batches/captions/ and images to batches/images/. The draft engine can rotate, randomize, or select by keyword rules.
Can I filter which posts trigger alerts?
Yes. You can filter by author, keywords, reposts vs originals, or other rules inside the watcher module.
Performance Benchmarks and Results
Primary Metric: Detects new posts and triggers notifications typically within 15β60 seconds under stable conditions.
Reliability Metric: Deduplication prevents repeat alerts for the same post, maintaining consistent signal quality across long runtimes.
Efficiency Metric: Runs lightweight monitoring with low idle CPU usage; burst work occurs only when new posts appear.
Quality Metric: Draft replies stay consistent and on-brand by selecting from your curated caption and image batches.
