Package: simplelinkedin
SimpleLinkedInElevate your LinkedIn game withSimpleLinkedIn, a Python package designed for automating routine LinkedIn tasks. Whether you want to connect with specific users, manage connection requests, or optimize your LinkedIn networking, this package has you covered.Key FeaturesLogin to LinkedIn: Seamlessly access your LinkedIn account.Send Connection Requests: Customize your connection requests by filtering users based on mutual connections, user types, and more.Accept Connection Requests: Simplify the process of accepting incoming connection requests.Delete/Withdraw Sent Requests: Keep your connection list clean by removing outdated sent requests.Smart Follow-Unfollow: Automatically manage connections, delete aged requests, and maximize your daily interactions within LinkedIn's limits.Background Mode: Run all tasks in the background mode without interfering with your regular work.Note:SimpleLinkedInhas been tested on macOS and is expected to work on Linux/Unix environments as well. If you encounter any issues while running the scripts, feel free to raise an issue or submit a pull request.Getting StartedTo get started withSimpleLinkedIn, first, install the package from PyPi using the following command:pipinstallsimplelinkedinNext, you can run and test the package by creating a script similar tosamplelinkedin/scripts/sample_script.py. Start by running your script withLINKEDIN_BROWSER_HEADLESS=0to ensure everything works as expected. Once you're confident, switch toLINKEDIN_BROWSER_HEADLESS=1to run your script in the background.Here's a simplified example of runningSimpleLinkedIn:fromsimplelinkedin.linkedinimportLinkedInsettings={"LINKEDIN_USER":"<your_username>","LINKEDIN_PASSWORD":"<your_password>","LINKEDIN_BROWSER":"Chrome","LINKEDIN_BROWSER_HEADLESS":0,"LINKEDIN_PREFERRED_USER":"/path/to/preferred/user/text_doc.text","LINKEDIN_NOT_PREFERRED_USER":"/path/to/not/preferred/user/text_doc.text",}withLinkedIn(username=settings.get("LINKEDIN_USER"),password=settings.get("LINKEDIN_PASSWORD"),browser=settings.get("LINKEDIN_BROWSER"),headless=bool(settings.get("LINKEDIN_BROWSER_HEADLESS")),)asln:# Perform LinkedIn actions hereln.login()ln.remove_sent_invitations(older_than_days=14)last_week_invitations=ln.count_invitations_sent_last_week()ln.send_invitations(max_invitations=max(ln.WEEKLY_MAX_INVITATION-last_week_invitations,0),min_mutual=10,max_mutual=450,preferred_users=["Quant"],# file_path or list of featuresnot_preferred_users=["Sportsman"],# file_path or list of featuresview_profile=True,# (recommended) view profile of users you sent connection requests to)ln.accept_invitations()# Customize your actions as needed# ...# Alternatively, use the smart follow-unfollow method for a streamlined approachln.smart_follow_unfollow(min_mutual=0,max_mutual=500,withdraw_invite_older_than_days=14,max_invitations_to_send=0,users_preferred=settings.get("LINKEDIN_PREFERRED_USER")or[],users_not_preferred=settings.get("LINKEDIN_NOT_PREFERRED_USER")or[],)Command Line UsageSimpleLinkedInprovides a convenient command-line interface for easy interaction. You can execute tasks directly from the command line with options like:python-msimplelinkedin-hThis command will display a list of available options, allowing you to configure and execute LinkedIn tasks without writing scripts.Setting Up Cron JobsTo schedule recurring tasks, you can set up cron jobs usingSimpleLinkedIn. Here's how:Start with the following commands. (Useexample.envas a reference while setting.envvalues)python-msimplelinkedin--env.envYou can supply--rmcronto remove existing cron jobs:python-msimplelinkedin--rmcron--cronuserosuserTo create a new cron job, specify the desired settings:python-msimplelinkedin--cronfile.cron.env--cronuserosuser--cronhour23These cron jobs enable you to automate your LinkedIn tasks at specific times, enhancing your networking efficiency.ExtrasSimpleLinkedInheavily relies on another package namedSimpleSelenium. Feel free to explore that package for additional functionality.TODOsEnhance documentationInclude comprehensive tests