Skip to content

Plaat2000/dock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LinkedIn Connection Graph (SQLite + D3)

This project ingests Untitled.csv (columns: Last Name, First Name, Account Name, Linkedin URL) and builds a local SQLite database:

  • people: Last Name, First Name (plus a consolidated First Name), Account Name, LinkedIn URL
  • connections: directed edges from each seed person to each discovered connection

⚠️ Important: linkedin-api is an unofficial library and may violate LinkedIn's Terms of Service. Use at your own risk and only for data you have the right to access/store. The official LinkedIn APIs also have strict storage limits for non-authenticated members.

Quick start (macOS Intel)

  1. Install Python 3.11+ (example via Homebrew)
brew install python@3.11
python3.11 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
  1. Put credentials in environment variables (recommended)
export LINKEDIN_USERNAME="you@example.com"
export LINKEDIN_PASSWORD="your-password"
  1. Run (mock mode = safe local test)
python linkedin_graph.py --csv Untitled.csv --db graph.sqlite --mode mock --limit 30
  1. Run (LinkedIn mode)
python linkedin_graph.py --csv Untitled.csv --db graph.sqlite --mode linkedin --limit 30 --min-delay 1.2 --max-delay 3.5
  1. Export website files
python linkedin_graph.py --db graph.sqlite --export-web web_out
python -m http.server 8000 --directory web_out
# open http://localhost:8000

Notes on "primary record"

Uniqueness for a person is enforced by:

  • Last Name
  • Consolidated First Name (first token of First Name, lowercased/trimmed)
  • Account Name

This matches your requirement: Last Name → First Name (can be consolidated) → Account Name.

CSV parsing

Your uploaded Untitled.csv appears to contain a quoted comma-separated row inside the first column. csv_ingest.py contains a robust parser that extracts the required columns.

Automation options

Option A: launchd (recommended on macOS)

See automation/com.example.linkedin-graph.plist. Install it like:

cp automation/com.example.linkedin-graph.plist ~/Library/LaunchAgents/
launchctl load ~/Library/LaunchAgents/com.example.linkedin-graph.plist

Edit the plist to match your project path and desired schedule.

Option B: Python schedule loop

Run automation/run_with_schedule.py (requires pip install schedule). This keeps a Python process running in the background to run the job daily.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors