Automatically monitor LinkedIn company pages, generate AI-powered commentary, and repost with Telegram approval workflow.
A professional automation tool that monitors LinkedIn company pages, generates AI-powered commentary using OpenAI, and manages reposting through a Telegram bot approval system with encrypted credential storage.
- ✅ Automatic LinkedIn Monitoring - Polls company pages every 10 minutes
- ✅ Instant Startup Processing - Fetches recent posts immediately on startup
- ✅ AI-Powered Commentary - GPT-4o-mini generates professional insights and commentary
- ✅ Telegram Approval Workflow - Approve/Revise/Skip/Like posts from your phone
- ✅ Smart Duplicate Prevention - Never processes the same post twice
- ✅ Session Persistence - LinkedIn stays logged in across runs
- 🔐 AES-256-GCM Encryption - All credentials encrypted at rest
- 🔑 Passphrase Protected - Master password controls access
- 🛡️ Local Storage Only - No cloud dependencies, all data stays on your machine
- 🔒 Session Security - Secure browser session management
- 📊 Post Database - JSON-based tracking with status management
- 🔄 Automatic Retry - Failed posts retry automatically
- 📈 Statistics Dashboard - Track post counts by status
- 🎨 Modern GUI - Clean CustomTkinter interface
- 🤖 15+ Commands - Comprehensive Telegram bot control
- 📝 Custom Commentary - Override AI with manual text
- ❤️ Auto-Like - Automatically likes posts when reposting
- ⚡ Early Exit Optimization - Stops checking after detecting processed posts
- Google Chrome - Download Chrome (Required for executable version)
- Python 3.13+ - Download Python (Source only)
- LinkedIn Account - Personal profile with reposting permissions
- Telegram Bot Token - Create via @BotFather
- Telegram Chat ID - Your personal chat ID (Get it here)
- OpenAI API Key - Get API key
- Windows 10/11 - Recommended for executable version
- Company Page Access - Monitoring target (public or accessible pages)
cd c:\.Codding-Projects\LIPMpython -m venv venv
.\venv\Scripts\Activate.ps1pip install -r requirements.txtplaywright install chromiumpython -m linkedin_post_monitor.main!Paralax1
- LinkedIn: Username, Password, Company Page URL
- Telegram: Bot Token, Chat ID
- OpenAI: API Key, Model (gpt-4o-mini)
Click "Start Monitoring" button
Reply to approval messages with:
/approve- Use AI commentary/revise [your text]- Use custom commentary/skip- Ignore post
LIPM/
├── linkedin_post_monitor/
│ ├── __init__.py
│ ├── main.py # Application entry point
│ ├── gui.py # CustomTkinter interface
│ ├── config_manager.py # Encrypted settings manager
│ ├── encryption.py # AES-256-GCM encryption
│ ├── linkedin_scraper.py # Playwright automation
│ ├── ai_commentary.py # OpenAI integration
│ ├── telegram_bot.py # Telegram bot handler
│ ├── post_database.py # JSON-based post tracking
│ ├── monitor.py # Scheduling & orchestration
│ └── utils.py # Utilities and helpers
├── requirements.txt
├── README.md
└── prompt-requirement.md
- Credentials encrypted with AES-256-GCM
- Passphrase-protected (default:
!Paralax1) - Stored locally only
- Never transmitted to third parties
Prerequisites:
- ✅ Install Google Chrome (Required!)
Steps:
- Download latest release from Releases
- Extract
LIPM-Package.zipto any folder - Run
LIPM.exe - Enter passphrase (default:
!Paralax1) - Configure your settings (LinkedIn, Telegram, OpenAI)
- Click "Start Monitoring"
Note: The executable uses your system's Chrome browser. All data files (config, database, logs) are stored in the same folder as the .exe
See installation instructions above
/repost- Approve and repost with AI commentary/skip- Skip this post permanently/redo- Regenerate AI commentary/just_like- Like original post without reposting/just_repost- Repost instantly without commentary
/resend [number]- Resend last X posts (default: 5)/resend_pending- Resend only pending posts/summary [number]- Get summary of last X posts/statistics- Show post statistics by status/start- Show welcome message/help- Display command reference
{
"workflow": {
"polling_frequency_minutes": 10,
"posts_per_check": 10,
"auto_approve": false,
"posts_lookback": 10
}
}You can also configure via environment variables:
LIPM_PASSPHRASE- Master passphraseLINKEDIN_USERNAME- LinkedIn emailTELEGRAM_CHAT_ID- Your Telegram chat ID
# Windows
.\build.ps1
# Or using batch file
.\build.batOutput: dist\LIPM-Package\LIPM.exe
See Windows Installer Guide below
- Passphrase: Default is
!Paralax1- CHANGE THIS on first run - Encryption: AES-256-GCM with PBKDF2 key derivation
- Storage: All credentials stored in
config.json(encrypted) - Session: LinkedIn session in
data/linkedin_session/ - Database: Post tracking in
data/posts.json
config.json secure and never commit it to version control
"Browser executable doesn't exist" or "Playwright not found"
- For .exe users: Install Google Chrome from https://www.google.com/chrome/
- For Python users: Run
playwright install chromiumafter installing dependencies - The executable automatically uses your system's Chrome browser
"Passphrase invalid"
- First run: Use default
!Paralax1 - Subsequent: Use your configured passphrase
- Reset: Delete
config.jsonto start fresh
"LinkedIn login failed"
- Check credentials in GUI settings
- Verify LinkedIn account is not locked
- Try manual login in browser first
"Telegram bot not responding"
- Verify bot token is correct
- Check chat ID matches your Telegram user
- Start conversation with bot first:
/start
"Posts not being detected"
- Verify company page URL is correct
- Check monitoring is started (green indicator)
- Review logs in
logs/lipm.log
LIPM/
├── linkedin_post_monitor/ # Main application package
│ ├── main.py # Entry point & GUI
│ ├── monitor.py # Orchestration & scheduling
│ ├── linkedin_scraper.py # Playwright automation
│ ├── ai_commentary.py # OpenAI integration
│ ├── telegram_bot.py # Telegram bot handler
│ ├── post_database.py # JSON database
│ ├── config_manager.py # Settings & encryption
│ ├── encryption.py # AES-256-GCM crypto
│ ├── gui.py # CustomTkinter UI
│ └── utils.py # Helpers & logging
├── data/ # Application data
│ ├── posts.json # Post tracking database
│ └── linkedin_session/ # Browser session
├── logs/ # Log files
│ └── lipm.log # Application logs
├── config.json # Encrypted configuration
├── requirements.txt # Python dependencies
├── LIPM.spec # PyInstaller build config
├── build.ps1 # Build script (PowerShell)
├── build.bat # Build script (Batch)
└── README.md # This file
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Playwright - Browser automation framework
- OpenAI - AI commentary generation
- python-telegram-bot - Telegram bot framework
- CustomTkinter - Modern GUI framework
- Cryptography - Encryption library
This tool is for personal use and educational purposes. Please ensure you comply with:
- LinkedIn's Terms of Service
- Your company's social media policies
- OpenAI's usage policies
- Telegram's bot guidelines
Use responsibly and at your own risk.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Multi-company monitoring
- Post scheduling
- Analytics dashboard
- Custom AI models
- Browser extension
- Mobile app
Made with ❤️ for LinkedIn automation
- Verify credentials in settings
- Check for 2FA notifications in Telegram
- Ensure Playwright browsers are installed
- Verify Bot Token is correct
- Ensure Chat ID is numeric (negative for groups)
- Check bot has permission to send messages
- Verify API key is valid
- Check account has available credits
- Ensure model name is correct (gpt-4o-mini)
For issues or questions, check the prompt-requirement.md file for detailed specifications.
Private/Internal Use
Built with Python 3.14, CustomTkinter, Playwright, and OpenAI GPT-4o-mini