Skip to content

HimanshuSingh-966/InternBeacon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ InternBeacon

An automated internship monitoring bot that scrapes AICTE and Internshala for relevant internships in your preferred domains and sends real-time notifications via Telegram.

🎯 Features

  • πŸ›οΈ 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

πŸ“‹ Prerequisites

  • Python 3.9+
  • Telegram Bot Token
  • Telegram Chat ID

πŸš€ Quick Start

1. Clone the Repository

git clone https://github.com/HimanshuSingh-966/InternBeacon.git
cd InternBeacon

2. Install Dependencies

pip install -r requirements.txt

3. Set Up Environment Variables

Create 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=2

4. Run the Bot

python main.py

πŸ”‘ Getting Telegram Credentials

Bot Token

  1. Message @BotFather on Telegram
  2. Send /newbot
  3. Follow the prompts to create your bot
  4. Copy the bot token (format: 1234567890:ABCdef...)

Chat ID

  1. Start a chat with your new bot
  2. Send any message to the bot
  3. Visit: https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates
  4. Find "chat":{"id":12345678} in the response
  5. Use that number as your TELEGRAM_CHAT_ID

πŸŽ›οΈ Configuration

Environment Variables

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

Preferred Domains

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'
]

🌐 Deploy to Render

Option 1: One-Click Deploy

Deploy to Render

Option 2: Manual Deployment

  1. Fork this repository

  2. Connect to Render:

    • Go to Render Dashboard
    • Click "New +" β†’ "Web Service"
    • Connect your GitHub repository
  3. 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
    
  4. Deploy: Render will automatically use the render.yaml configuration

πŸ“Š Sample Output

Individual Notifications

πŸ›οΈ 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

Summary Reports

πŸ“Š 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!

πŸ”§ Technical Details

Architecture

  • 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

Data Flow

  1. Scheduled Check β†’ Runs every N hours
  2. Platform Scraping β†’ Fetches from AICTE and Internshala
  3. Domain Filtering β†’ Matches against preferred keywords
  4. Duplicate Detection β†’ Checks against seen internships
  5. Telegram Notification β†’ Sends alerts for new matches
  6. Summary Report β†’ Provides statistics

File Structure

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

πŸ› οΈ Development

Local Development

# Install dependencies
pip install -r requirements.txt

# Run with debug logging
python main.py

# Check logs
tail -f main.log

Adding New Platforms

  1. Create a new scraper class extending InternshipScraper
  2. Implement fetch_internships() method
  3. Add the scraper to DualPlatformInternshipBot.__init__()
  4. Update configuration and documentation

πŸ“ Logs

The bot creates detailed logs in bot.log:

  • βœ… Successful operations
  • ❌ Error details and stack traces
  • πŸ“Š Statistics and performance metrics
  • πŸ” Debug information for troubleshooting

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

⚠️ Disclaimer

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.

πŸ†˜ Support

  • Issues: Open a GitHub issue
  • Questions: Check existing issues or create a new one
  • Logs: Include main.log contents when reporting issues

πŸš€ Roadmap

  • 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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages