- Continuous monitoring of multiple Telegram channels
- Message forwarding to a Telegram bot for workflow ingestion
- AI-assisted parsing and eligibility filtering (Google Gemini in n8n)
- WhatsApp notifications with formatted details and links
- Optional Docker deployment for the Python forwarder
Telegram Channels -> Python Forwarder -> Telegram Bot -> n8n Workflow -> AI Parsing/Filtering -> WhatsApp API
telegram Autoforward.py: Telethon-based Telegram forwarderInternship Informer.json: n8n workflow definitionrequirements.txt: Python dependenciesDockerfile: Container definition for the forwarderrebuild.sh: Helper script to rebuild the Docker container (update paths for your environment)
- Python 3.11+
- Telegram API credentials (
api_id,api_hash) - Telegram bot token (configured in n8n)
- n8n instance (self-hosted or cloud)
- Google Gemini API key
- WhatsApp Business API or compatible provider
- Docker (optional)
git clone https://github.com/Unknown-Geek/InternFlow.git
cd InternFlowpip install -r requirements.txtEdit telegram Autoforward.py and set:
api_idandapi_hashwith your Telegram API credentialssource_channelsto the channels you want to monitortarget_chatto the bot username or destination chat
The forwarder stores a local session file named forwarder_session.session in the working directory.
python "telegram Autoforward.py"On first run, Telethon will prompt you to authenticate with your Telegram account.
docker build -t internflow-forwarder .
docker run -d --name internflow-forwarder -v "$(pwd):/app" internflow-forwarder- Open your n8n instance and import
Internship Informer.json. - Configure credentials for:
- Telegram API (bot token)
- Google Gemini API
- WhatsApp API (endpoint and authentication)
- Update the HTTP Request node to point to your WhatsApp provider and destination number.
- Activate the workflow.
The workflow is designed to identify internship opportunities that match specific criteria (for example, the 2027 batch and selected roles). These rules live in the AI prompt within the workflow nodes and can be adjusted to:
- Change the target graduation year
- Add or remove role keywords
- Exclude specific categories (events, webinars, non-internship jobs)
- Keep sensitive values out of source control.
- Consider loading
api_idandapi_hashfrom environment variables if you plan to deploy. - Update
source_channelsas you join or leave Telegram channels.
- Session file issues: delete
forwarder_session.sessionand re-authenticate. - Forwarding failures: ensure the target bot has an active chat with your account.
- Rate limits: pause the script if you encounter Telegram flood-wait errors.
- No messages received: verify bot token and webhook configuration.
- Invalid AI output: confirm the structured output parser is enabled and Gemini API quota is available.
- WhatsApp delivery failures: verify endpoint URL, phone format, and authentication.
- Never commit API credentials or access tokens.
- Store secrets in environment variables or a secure secrets manager.
- Restrict WhatsApp API access to trusted IPs and use HTTPS.
*.session
*.session-journal
.env
config.py
__pycache__/
*.pyc
If you use Docker for the forwarder, you can rebuild with the helper script (update the path inside rebuild.sh to match your environment):
./rebuild.shContributions are welcome. Please open an issue to discuss changes or submit a pull request.
This repository does not currently include a license file.
- Telethon for the Telegram client library
- n8n for workflow orchestration
- Google Gemini for AI-assisted parsing
For questions or support, please open an issue on GitHub.