Telegram scraper run
14 AI executives powered by legendary minds (Musk/Buffett/Simons/Feynman) — deploy your virtual C-Suite in one git clone.
npx -y skills add aAAaqwq/AGI-Super-Team --skill telegram-scraper-runAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Automatic Telegram scraping
SKILL.md
4.0 KB, as published. Nobody here has run it
Telegram Scraper Run
Runs the Telegram Scraper Agent manually for testing or unscheduled scanning.
When to use
- "run telegram scraper"
- "scan telegram channels"
- "find new channels with AI"
- "check competitors on Telegram"
Input
Optional:
--dry-run- test run without notifications--category <name>- scan only one category (competitors/industry/advertising)--no-messages- skip reading messages (faster)--notify-test- notification test only
How to execute
Full run (production)
cd $AGENTS_PATH/telegram-scraper
python3 telegram_scraper_agent.py
Dry-run tests
# Test without notifications
python3 telegram_scraper_agent.py --dry-run
# Single category
python3 telegram_scraper_agent.py --category competitors --dry-run
# Without reading messages (faster)
python3 telegram_scraper_agent.py --no-messages --dry-run
Notification test
python3 telegram_scraper_agent.py --notify-test
Unit tests
python3 test_telegram_scraper.py
Output
Agent outputs:
- Progress to stderr (channel scanning)
- Summary to stdout (results from Claude)
- Telegram notification (if high-value channels found)
Data is saved to:
$PROJECT_ROOT/data/telegram_scraper/
├── YYYY-MM-DD/ # Dated results
│ ├── competitors_channels.json
│ ├── competitors_ad_contacts.csv
│ ├── industry_channels.json
│ ├── advertising_channels.json
│ └── messages/
└── latest/ # Symlinks to most recent
Checking results
# Latest results
ls -l $PROJECT_ROOT/data/telegram_scraper/latest/
# Top 5 channels (competitors)
cat $PROJECT_ROOT/data/telegram_scraper/latest/competitors_channels.json | jq '.[0:5]'
# Ad contacts
cat $PROJECT_ROOT/data/telegram_scraper/latest/competitors_ad_contacts.csv
# Agent log
cat $PROJECT_ROOT/data/telegram_scraper/agent_log.json | jq '.[-5:]'
Configuration
Edit config:
code $PROJECT_ROOT/data/telegram_scraper_config.json
Config structure:
{
"categories": {
"competitors": {
"keywords": ["annotation", "data labeling", "cvat"],
"exclude": ["spam", "crypto"],
"scan_posts": 10
}
},
"min_subscribers": 100,
"min_score": 10,
"notification_threshold": 30
}
Launchd Schedule
Agent runs automatically twice daily (9:00, 18:00).
# Check status
launchctl list | grep telegram-scraper
# Load schedule
launchctl load ~/Library/LaunchAgents/com.yourcompany.telegram-scraper.plist
# Unload schedule
launchctl unload ~/Library/LaunchAgents/com.yourcompany.telegram-scraper.plist
# View logs
tail -f $GOOGLE_TOOLS_PATH/logs/telegram_scraper.log
tail -f $GOOGLE_TOOLS_PATH/logs/telegram_scraper.err
Troubleshooting
Session Expired Error
If Telegram session is invalid:
# Refresh session
cd $TG_TOOLS_PATH
python3 -m tg_utils.auth
No Results
- Check keywords in config (too specific?)
- Verify session:
cd $TG_TOOLS_PATH && python3 -m tg_utils.auth - Run with
--dry-runfor debug
Rate Limited
- Normal: agent waits and retries
- FloodWaitError > 5 min: channel skipped
- Solution: decrease
scan_postsin config
Manual Scraping (without the agent)
If the agent is not working:
cd $TG_TOOLS_PATH/tools
# Find channels with ad contacts
python3 tg_scrape.py ads --keywords "annotation,labeling" --posts 10
# List channels
python3 tg_scrape.py channels --keywords "ai,ml" --output channels.csv
# Read messages
python3 tg_scrape.py messages "Channel Name" --days 7 --limit 50
Next steps
After scraping:
- Add contacts to CRM: use
add-leadskill - Write outreach: use
telegram-sendskill - Adjust config: edit config file and re-run
Related skills
telegram-session- update Telegram sessionadd-lead- add found contacts to CRMtelegram-send- message ad contactsdaily-briefing- include findings in morning briefing