Back to projects
Featured project⚪ Archived

LinkedIn Post Generator with LLM

Desktop application using Ollama AI to create, edit and automatically publish articles to LinkedIn with a rich text editor.

Technologies used

PythonPyQt5OllamaSQLiteLinkedIn API

Key features

Modular architecture

Extensible plugin system for maximum flexibility

Optimized performance

Loading time < 100ms thanks to lazy loading

Complete RESTful API

OpenAPI documentation and SDK available

Automated tests

Code coverage > 90% with integrated CI/CD

#Overview

ArticleGen Pro is a desktop application that combines the power of local AI models with LinkedIn's publishing capabilities. Built with Python and PyQt5, it provides a comprehensive solution for content creators who want to leverage AI assistance while maintaining full control over their content.

#Key Features

#🤖 AI-Powered Content Generation

The application integrates with Ollama, a local AI model runner, providing:

  • Content generation assistance without sending data to external servers
  • Real-time AI suggestions and improvements
  • Complete conversation history for iterative content refinement
  • Support for various writing styles and target audiences

#✍️ Rich Text Editor

A full-featured text editor built with PyQt5:

  • Complete formatting toolbar (bold, italic, underline, lists, etc.)
  • Real-time preview of formatted content
  • Markdown support for technical documentation
  • Clean, distraction-free writing interface

#📊 Content Management

SQLite-based article management system:

  • Create, edit, and delete articles
  • Track publication status and dates
  • Organize with keywords and metadata
  • Search and filter functionality

#🚀 Direct LinkedIn Publishing

Seamless integration with LinkedIn:

  • One-click publishing to your LinkedIn profile
  • Automatic formatting conversion
  • Publication tracking and history
  • Draft and scheduled post support

#Technical Architecture

LinkedinPost/
├── main.py              # Application entry point
├── models/              # Data models
│   ├── article.py       # Article model
│   └── database.py      # Database manager
├── ui/                  # PyQt5 interface
│   ├── main_window.py   # Main window
│   ├── article_editor.py # Article editor
│   └── rich_text_editor.py # Rich text editor
├── services/            # External services
│   ├── ollama_service.py # Ollama integration
│   └── linkedin_service.py # LinkedIn integration
└── utils/               # Utilities
    └── markdown_utils.py # Markdown conversion

#Implementation Details

#Database Schema

The application uses a single articles table with comprehensive metadata:

| Field | Description | |-------|-------------| | id | Unique identifier | | title | Article title | | content | Rich text content | | conversation | AI conversation history | | keywords | SEO keywords | | target_audience | Intended readers | | writing_style | Tone and style | | published | Publication status | | published_at | Publication timestamp |

#AI Integration

The Ollama integration provides:

  • Local model execution for privacy
  • Customizable prompts based on metadata
  • Context-aware content suggestions
  • Support for multiple language models

#User Interface

Built with PyQt5's Fusion style for a modern, professional appearance:

  • Responsive layout that adapts to content
  • Intuitive toolbar with common actions
  • Status indicators for AI and publication states
  • Keyboard shortcuts for power users

#Use Cases

  1. Content Creators: Generate engaging LinkedIn posts with AI assistance
  2. Marketers: Maintain consistent brand voice across posts
  3. Professionals: Share expertise with well-formatted articles
  4. Developers: Technical content with code formatting support

#Future Enhancements

  • Multi-platform support: Extend to other social networks
  • Analytics integration: Track post performance
  • Template system: Reusable content structures
  • Collaboration features: Team content creation
  • Advanced scheduling: Calendar-based publishing

#Getting Started

The application requires:

  • Python 3.11+
  • Ollama running locally
  • LinkedIn account for publishing

Installation is straightforward with pip and the included requirements file. The application creates its database on first run and guides users through LinkedIn authentication.

Quick installation

Via npm:

npm install linkedin-post-llm

Via yarn:

yarn add linkedin-post-llm

Usage:

import { LinkedInPostGeneratorwithLLM } from 'linkedin-post-llm'