An automated internship monitoring bot that scrapes AICTE and Internshala for relevant internships in your preferred domains and sends real-time notifications via Telegram.
- ποΈ AICTE Integration: Monitors official AICTE internship portal
- πΌ Internshala Integration: Searches Internshala for matching opportunities
- π€ Smart Filtering: Filters by preferred domains (Data Science, AI/ML, etc.)
- π± Telegram Notifications: Instant alerts with apply buttons
- π Duplicate Prevention: Tracks seen internships across platforms
- β° Automated Scheduling: Runs checks every hour (configurable)
- π Comprehensive Reports: Summary statistics for both platforms
- π Cloud Ready: Optimized for Render deployment
- Python 3.9+
- Telegram Bot Token
- Telegram Chat ID
git clone https://github.com/HimanshuSingh-966/InternBeacon.git
cd InternBeaconpip install -r requirements.txtCreate a .env file:
# Required
TELEGRAM_BOT_TOKEN=your_bot_token_here
TELEGRAM_CHAT_ID=your_chat_id_here
# Optional (defaults provided)
ENABLE_AICTE=true
ENABLE_INTERNSHALA=true
CHECK_INTERVAL_HOURS=2python main.py- Message @BotFather on Telegram
- Send
/newbot - Follow the prompts to create your bot
- Copy the bot token (format:
1234567890:ABCdef...)
- Start a chat with your new bot
- Send any message to the bot
- Visit:
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates - Find
"chat":{"id":12345678}in the response - Use that number as your
TELEGRAM_CHAT_ID
| Variable | Required | Default | Description |
|---|---|---|---|
TELEGRAM_BOT_TOKEN |
β | - | Your Telegram bot token |
TELEGRAM_CHAT_ID |
β | - | Your Telegram chat ID |
ENABLE_AICTE |
β | true |
Enable AICTE scraping |
ENABLE_INTERNSHALA |
β | true |
Enable Internshala scraping |
CHECK_INTERVAL_HOURS |
β | 1 |
Hours between checks |
RENDER |
β | false |
Enable Render deployment mode |
PORT |
β | 10000 |
Port for health checks |
Edit the preferred_domains list in bot.py to customize your interests:
self.preferred_domains = [
'data science', 'machine learning', 'artificial intelligence',
'ai', 'ml', 'data analyst', 'ai/ml'
]-
Fork this repository
-
Connect to Render:
- Go to Render Dashboard
- Click "New +" β "Web Service"
- Connect your GitHub repository
-
Configure Environment Variables in Render:
TELEGRAM_BOT_TOKEN=your_bot_token TELEGRAM_CHAT_ID=your_chat_id RENDER=true ENABLE_AICTE=true ENABLE_INTERNSHALA=true CHECK_INTERVAL_HOURS=2 -
Deploy: Render will automatically use the
render.yamlconfiguration
ποΈ New AICTE Internship!
π Role: Data Science Intern
π’ Company: Tech Corp India
π° Stipend: βΉ15,000/month
π Location: Remote
β° Duration: 6 months
π
Start Date: 2025-09-01
β‘ Apply By: 2025-08-25
π Posted: Just now
π Found: 2025-08-17 14:30:25 IST
#AICTEInternship #TechCorpIndia
π Dual-Platform Internship Bot Summary
ποΈ AICTE:
β’ Found: 25
β’ Matching: 12
β’ New: 3
πΌ Internshala:
β’ Found: 40
β’ Matching: 18
β’ New: 5
π Total across platforms:
β’ Found: 65
β’ Matching your domains: 30
β’ New notifications sent: 8
β° Last checked: 2025-08-17 14:30:25 IST
π New opportunities above!
- Modular Design: Separate scrapers for each platform
- Abstract Base Class: Easy to add new platforms
- Error Handling: Platform-specific error isolation
- Rate Limiting: Respectful scraping with delays
- Persistent Storage: JSON-based seen internships tracking
- Scheduled Check β Runs every N hours
- Platform Scraping β Fetches from AICTE and Internshala
- Domain Filtering β Matches against preferred keywords
- Duplicate Detection β Checks against seen internships
- Telegram Notification β Sends alerts for new matches
- Summary Report β Provides statistics
internship-bot/
βββ main.py # Main application
βββ requirements.txt # Python dependencies
βββ render.yaml # Render deployment config
βββ README.md # This file
βββ .env # Environment variables (create this)
βββ seen_internships.json # Auto-generated tracking file
βββ bot.log # Auto-generated log file
# Install dependencies
pip install -r requirements.txt
# Run with debug logging
python main.py
# Check logs
tail -f main.log- Create a new scraper class extending
InternshipScraper - Implement
fetch_internships()method - Add the scraper to
DualPlatformInternshipBot.__init__() - Update configuration and documentation
The bot creates detailed logs in bot.log:
- β Successful operations
- β Error details and stack traces
- π Statistics and performance metrics
- π Debug information for troubleshooting
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
This bot is for educational and personal use only. Please respect the terms of service of AICTE and Internshala platforms. Use responsibly and ensure compliance with their scraping policies.
- Issues: Open a GitHub issue
- Questions: Check existing issues or create a new one
- Logs: Include
main.logcontents when reporting issues
- Add more platforms (Indeed, Naukri.com)
- Web dashboard for monitoring
- Advanced filtering options
- Email notifications
- Mobile app integration
- Analytics dashboard
Built with β€οΈ for students seeking internship opportunities