Skip to content
This repository was archived by the owner on Sep 11, 2026. It is now read-only.
danczwPublic archive

About

Be active to LinkedIn using computer generated posts via LLMs

Resources

Stars

9 stars

Watchers

1 watching

Forks

Repository files navigation

RidicuLink - sarcastic social media bot

Be active to LinkedIn using computer generated posts via Large Language Models (LLM)





License


🌟 Highlights

  • Unique content - based on, but not copied from, real posts - no two posts are the same although it might feel like it
  • Seamless integration - blends in with real posts, no one will notice the difference
  • Single source of truth - no need to follow multiple accounts, get all your typical LinkedIn content from one source


💡 About

RidicuLink is a unique bot that generates fictional, satirical content based on real posts from LinkedIn. Live bot can be found here: RidicuLink (LinkedIn)1.

As the rise in popularity of LinkedIn Lunatics 🔥 continues to grow, the creators of this bot saw an opportunity to poke fun at the current state of this "professional" social media site. Using LLM models, specifically currently GPT-3.5-turbo, RidicuLink generates new mind bending content from existing social media posts. This approach allows the bot to seamlessly blend into real-life interactions on LinkedIn. The result is a refreshing take on a platform that can often feel overly serious and dry 🚱. Thereby, turning social media even more into a playground for satire.

The bot is currently running on a Raspberry Pi 4 and continuously generates new posts every day.



🛠 Technical Details

  • Written in Python using Poetry for dependency management
  • Leveraging OpenAI API for content generation
  • Using SpaCy for text pre processing and cleaning
  • Utilizing Selenium for web scraping of real posts
  • With sqlite3 as a simple database for storing real posts
  • Scheduled with Cron to run how often you want (usual LinkedIn spam 👀)
  • Deployed with Docker on a simple Raspberry Pi 4


📝 How to use

Some instructions on how to use this repo. Feel free to open an issue if you have any questions.

1. Install dependencies

poetry install

2. Create a .env file

cp .env.example .env

3. Update .env file

  • Add your LinkedIn credentials
  • Add your OpenAI API key
  • Get your Organization ID from LinkedIn - More Info

To find your LinkedIn company ID as a LinkedIn Page Admin, navigate to the Admin View of the LinkedIn Page from the All Pages or Home tab. The LinkedIn company ID is the numbers after "/company/" in the URL.

  • Create LinkedIn application and add access token with respective permissions (min w_organization_social) - More Info here and here

4. Get real LinkedIn posts

  • Download ChromeDriver and place it in ./src/, alternatively for other browser drivers, update SELENIUM_DRIVER_TYPE & SELENIUM_DRIVER_PATH in ./conf/config.yml
  • Update SEARCH_TOPICS in ./conf/config.yml for topics / keywords you want to scrape
  • Run scraper entry point to collect real LinkedIn posts
python src/main_scraper.py
  • Per defualt, results will be stored in ./data/ as linkedin.db

5. Generate new posts

  • Run bot entry point to generate new posts
python src/main_bot.py

⏩ Deployment:

For deployment via Docker Container, following steps are required (after setting up your .env file).

The Dockerfile is based on a slim Python image and installs all dependencies via Poetry. The entry point is set to a cron job that runs the bot every twice a day. This can be changed in the ./crontab/crontab file. A wrapper script is used to propagate the environment variables from the .env file through the container to be available for the cron job and successfully run the bot.

Note: all scrapping should be done before building the Docker image, as the image does not contain this functionality.

    # 1. - build docker image locally
    docker build -t ridic:<version> .

    # 2. - run the script in Docker Container manually
    docker run -d --env-file ./.env ridic:<version>


📝 Parameters & Config

Further parameters and configurations can be found in ./conf/config.yml. Especially, the following parameters are worth mentioning:

  • ✔️ SEARCH_TOPICS: topics / keywords to search for when scraping LinkedIn posts
  • ✔️ POST_TOPICS: topics / keywords to use for content generation - these topics should be a subset of the SEARCH_TOPICS
  • ✔️ OAI_MODEL: OpenAI model to use for content generation
  • ✔️ OAI_MAX_TOKENS: maximum number of tokens to generate per created content suggestion - this parameter has a minimal randomization build in to create more diverse posts
  • ✔️ OAI_N_COMPLETIONS: number of completions to generate per request
  • ✔️ OAI_TEMPERATURE: temperature parameter for content generation, higher values result in more random completions - this parameter has a minimal randomization build in to create more diverse posts
  • ✔️ OAI_PROMPT_PREFIX: prefix for content generation prompt - can be used to guide the model to generate specific content
  • ✔️ OAI_PROMPT_SUFFIX: suffix for content generation prompt - can be used to include or exclude specific content




1The views and opinions expressed in these posts do not reflect the official policy or position of the site owner. Any content provided are not intended to malign any religion, ethnic group, club, organization, company, individual or anyone or anything.

About

Be active to LinkedIn using computer generated posts via LLMs

Resources

Stars

9 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages