Skip to main content

LinkedIn Automator

A Python-based Selenium automation utility for interacting with LinkedIn through a Chrome browser.

Features

  • Selenium-based Chrome browser automation
  • Login/session workflow
  • Local SQLite storage
  • Cookie/session persistence
  • Image, video, and document posting
  • Post text/caption support
  • Console-based menu interface
  • Colored terminal output

Requirements

  • Python 3.9+
  • Google Chrome
  • Selenium-compatible WebDriver
  • A LinkedIn account

Installation

Install the dependencies:

pip install selenium colorama pyfiglet pandas

If published on PyPI:

pip install <your-package-name>

Usage

Run the application:

python main.py

The current menu provides options for saving login/session data, editing stored credentials, exiting, and starting the posting workflow.

First Run

Choose option 1 and provide the LinkedIn username and password. The application creates a local SQLite database and attempts to establish a browser session.

Posting

Choose option 5 to start the posting workflow.

Supported file formats currently include:

  • Images: .jpg, .jpeg, .png, .heic
  • Videos: .mp4, .mov
  • Documents: .pdf, .docs

Security Notice

The current implementation stores login credentials in a local SQLite database and browser cookies/session information in JSON files.

Never publish real credentials, cookies, session files, database files, or other secrets to GitHub or PyPI.

Recommended .gitignore:

*.db
*.sqlite
*.sqlite3
session.json
session.josn
.env
__pycache__/
*.pyc
dist/
build/
*.egg-info/

For production use, replace plaintext credential storage with a secure credential store such as environment variables or an OS keychain.

Responsible Use

This project is intended for legitimate automation, testing, and personal workflows.

Users are responsible for complying with LinkedIn's Terms of Service, applicable laws, privacy requirements, and organizational policies. Do not use the software for spam, deceptive activity, unsolicited bulk messaging, or other activity that violates platform rules.

LinkedIn may change its website UI and selectors at any time, which can break Selenium-based automation.

Project Structure

A recommended PyPI-ready structure is:

linkedin-automator/
├── README.md
├── LICENSE
├── pyproject.toml
└── src/
    └── linkedin_automator/
        ├── __init__.py
        └── core.py

Dependencies

The current script imports:

  • selenium
  • colorama
  • pyfiglet
  • pandas

It also uses Python standard-library modules:

  • time
  • sys
  • os
  • sqlite3
  • json

PyPI Publishing

Install the build tools:

python -m pip install --upgrade build twine

Build:

python -m build

Upload:

python -m twine upload dist/*

For initial testing, use TestPyPI before uploading to the main PyPI repository.

Known Limitations

The automation depends on LinkedIn's current web UI structure and Selenium selectors. Website changes can require selector updates.

The existing source also contains legacy session-handling code and should be reviewed and tested before being distributed as a production package.

License

MIT License. See LICENSE for the complete license text.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

linkdeinautomation-0.0.1.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

linkdeinautomation-0.0.1-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file linkdeinautomation-0.0.1.tar.gz.

File metadata

  • Download URL: linkdeinautomation-0.0.1.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.7

File hashes

Hashes for linkdeinautomation-0.0.1.tar.gz
Algorithm Hash digest
SHA256 b33deaa4fb0a22025e89cd0cd6f24007b1590077c674e8fcb1a6740b830f7a12
MD5 c5b9185856375d5aea6bba1f0522376a
BLAKE2b-256 d213ca9d8358d49e2984985902878f67c71da48d5e4931bd64f85c0f1a520406

See more details on using hashes here.

File details

Details for the file linkdeinautomation-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for linkdeinautomation-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 017a05fecc951522b003b723e066ab376f06ae8d8d4d0b4e68c1667fac0fb56a
MD5 2510c13ecc9235a261275f0303cf772b
BLAKE2b-256 18b927c34c3dc7443db79d107427834a21ab36cf5d7359a8f0f207aff9e38866

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page