A python program to collect job data and partially automate shares to user's LinkedIn account. For this version, job data is sourced from the career website of Dollar Bank FSB. Maybe even earn that sweet referral 💰 bonus 💰
Important Note: This is NOT a production quality program and does not adhere to best practices/security recommendations from LinkedIn or the maintainers of Requests HTTP library for Python. This is a toy program to experiment with LinkedIn API, application designs, and project structure. It is intended to be RUN LOCALLY ONLY. Do not host this publicly without considering security and vulnerabilities to end users.
This program was developed for Ubuntu 18.04, and has not been tested in any other environment. If using this program, it is strongly suggested to setup in the same environment.
- Ubuntu 16.04 [OK!]
-
Install major dependencies.
- Install Python 3.x
- Install venv (You might have to use the
sudo
command)
$ apt-get install python3-venv
- During authentication a browser will need to be used. At this point the only browser supported is Firefox.
-
Clone this repository onto your local machine.
$ git clone https://github.com/jtroussard/linkedin_assist.git
-
Change into the root project directory and setup a virtual environment.
$ cd linkedin_assist && python3 -m venv && source venv/bin/activate
-
Install program level dependencies.
$ pip3 install -r requirements
-
Obtain LinkedIn OAuth2 app credentials. Open the following link in a new tab/window for instructions. Get LinkedIn Credentials
-
Fill out the configuration file. Open the configuration file,
linkedin_assist/linkedin_assist/config/cfg.yaml
using a text editor and fill out the options. A short document mapping all the non-default options can be found at the following link, LinkedIn Configuration File Documentation. -
Program is ready to be kicked off. Follow prompts to create posts.
$ cd ./linkedin_assist && python3 app.py config/cfg.yaml
Moved to ./linkedin_assist/docs/notes.md
- YOLO code.
- Modularize.
- Add selection feature
NpyScreenPyInquirer -
Persistent token.Renewing tokens is not available to normal consumer. See programming notes for details. - CRON automation with e-mail alerts.
- Test and verify entire program. (WIP)
- Create documentation. (WIP)
- Drop english.py and replace with Python Pattern. (NLP library)
- Add function to verify link to post posting is good.
- Possible consolidation of configuration files (At least use the same standard across config files.)
- Test and verify.
- Update documentation.
- Include image with post.
- Restructure for image hosting/storage/reference.
- Add configuration for browser selection.
- Update documentation.
- Convert to web application framework. (Django)
- Implement backend. (PostgreSQL)
- Implement best practices/security/apply ssl.
- Test and verify.
- Update documentation.
- Create dashboard.
- Test and verify.
- Update documentation.
- Add data viz to dashboard.
- Create functions to measure and predict impact of posts.
- Test and verify.
- Update documentation.
- Picture generator. (1.2)
- Web Application Version. (2.0)
- Create dashboard: Post history, frequency, and impact is possible. (2.1)
- Track and offer statistical analysis on posts. (2.2)
Variable post message formats. (1.0)DONEDetermine and add collection of hashtags to posts. (1.0)DONE- Browser preference selection or perhaps autodetection feature. (1.2)
Embed SQLite, drop files altogether.Implement backend. (2.0)- Build out LinkedIn class into my own vanilla lib. (?)
- Double check job post link (404/missing/titles match?) (1.1)