LinkedIn Analyzer
Clean and analyze your LinkedIn data exports.
Web app or Python CLI. File contents stay local in the web app; optional diagnostics are opt-in.
What it does
LinkedIn's data exports are messy. This tool fixes that.
- Shares.csv has weird nested quote escaping
- Comments.csv has backslash-escaped quotes
- messages.csv has mixed participant/profile fields that need normalization
- Connections.csv often includes preamble rows and noisy identity fields
Upload your files, get clean Excel outputs. Plus analytics dashboards, relationship views from messages/connections, and rule-based insights.
Quick start
Development: Install locked Python and Node dependencies:
# Requires Python 3.11+, uv, and Node.js 22.13.x or 24+
make setup
Web: Run the Vite dev server and open the local URL:
cp .env.example .env # optional; set VITE_SENTRY_DSN + VITE_APP_RELEASE for opt-in diagnostics
make web
CLI: For automation:
pip install linkedin-analyzer
linkedin-analyzer shares
linkedin-analyzer comments
linkedin-analyzer messages
linkedin-analyzer connections
linkedin-analyzer all
Container: Run the published CLI image:
docker run --rm -v "$PWD/data:/app/data" ghcr.io/hermione-granger-1176/linkedin-analyzer:latest --version
Tech stack
Web app
Python CLI
Dev & CI
Features
| Feature | Detail |
|---|---|
| 100% client-side | File contents stay local in your browser |
| Local restore | Raw CSV data may be saved in browser storage until cleared |
| Light/dark theme | Hand-drawn sketch aesthetic |
| Guided tutorials | Per-page tutorials |
| Analytics | Timeline, topics, heatmap |
| Messages view | Top contacts, silent connections, fading chats |
| SPA routing | Hash routes with URL-synced filters |
| Excel export | Formatted .xlsx with proper columns |
| Connections | Network growth, top companies, top positions |
| Chart export | Download any chart as PNG |
| PWA-ready | Installable with auto-refreshing service worker caching |
| Session cleanup | Stale uploads and cached analytics cleared asynchronously |
| Social previews | Open Graph and Twitter Card meta tags |
| Type-safe CLI | Strict mypy, high test coverage (100% threshold) |
Documentation
See the docs/ folder for:
- Web App Guide
- Python CLI Reference
- Development Setup
- Project Structure
- Style Guide
- Operations and Deployment
Architecture Decision Records: docs/adr/
Contributor guide: .github/CONTRIBUTING.md
Changelog (Python package): CHANGELOG.md
Security reporting guidelines: .github/SECURITY.md
License
Created by Aditya Kumar Darak
Metadata
Release files for linkedin-analyzer 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| linkedin_analyzer-0.6.0.tar.gz | 58.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| linkedin_analyzer-0.6.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 82.8 kB
Release files / linkedin_analyzer-0.6.0.tar.gz
| Download URL | linkedin_analyzer-0.6.0.tar.gz |
|---|---|
| Size | 58.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
51e6ae9a80a00dfc7751c988b1fe79a6030ef957ff363d35a74cb8fa1c538ba0
|
|
BLAKE2b-256 checksum How to use checksums |
3a217aa80557d1b6476ac32047c39128f892def2d3b2e32ad65a6d9df986eb79
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 3, 2026.
Transparency logRelease files / linkedin_analyzer-0.6.0-py3-none-any.whl
| Download URL | linkedin_analyzer-0.6.0-py3-none-any.whl |
|---|---|
| Size | 24.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f9b42845094c513320ba8a536960792939549abf3948219906a24d69e2405715
|
|
BLAKE2b-256 checksum How to use checksums |
250b211f2e4df2229f9d3165d0b06aec072676b2ce48c1816c9b187ad40b030b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 3, 2026.
Transparency log