| name | linkedin-export |
| description | Parse, search, analyze, and ingest LinkedIn GDPR data exports into structured JSON or RLAMA for semantic search. Covers messages, connections, profile data, and Markdown export. Requires a LinkedIn GDPR ZIP file. Triggers on 'LinkedIn data', 'search messages', 'analyze connections', 'LinkedIn export', 'GDPR download'. |
LinkedIn Export Skill
Parse LinkedIn GDPR data exports into structured JSON, then search messages, analyze connections, export to Markdown, and ingest into RLAMA for semantic search.
Prerequisites
- Python 3.10+ via
uv
- LinkedIn GDPR export ZIP — Request at: LinkedIn → Settings → Data Privacy → Get a copy of your data
- RLAMA + Ollama (optional, for semantic search ingestion)
Quick Start
uv run ~/.claude/skills/linkedin-export/scripts/li_parse.py ~/Downloads/Basic_LinkedInDataExport_*.zip
uv run ~/.claude/skills/linkedin-export/scripts/li_search.py --list-partners
uv run ~/.claude/skills/linkedin-export/scripts/li_network.py summary
uv run ~/.claude/skills/linkedin-export/scripts/li_export.py all --output ~/linkedin-archive/
uv run ~/.claude/skills/linkedin-export/scripts/li_ingest.py
All scripts read from ~/.claude/skills/linkedin-export/data/parsed.json. Parse once, query many times.
Parse — li_parse.py
Unzip and parse all CSVs from the LinkedIn GDPR export into structured JSON.
uv run ~/.claude/skills/linkedin-export/scripts/li_parse.py <linkedin-export.zip>
uv run ~/.claude/skills/linkedin-export/scripts/li_parse.py <zip> --output /custom/path.json
Output: ~/.claude/skills/linkedin-export/data/parsed.json
Parses 23 CSV types:
Core: messages, connections, profile, positions, education, skills, endorsements, invitations, recommendations, shares, reactions, certifications
Extended: comments (548), projects (3), honors (2), organizations (3), volunteering (1), languages (9), events (12), member_follows (828), job_applications (443, merged from multiple files), recommendations_given (3), inferences (4)
Auto-detects CSV column names (case-insensitive), handles LinkedIn's preamble format (Connections.csv), and merges split files (Job Applications).
Search Messages — li_search.py
Search messages by person, keyword, date range, or combination.
uv run ~/.claude/skills/linkedin-export/scripts/li_search.py --person "Jane Doe"
uv run ~/.claude/skills/linkedin-export/scripts/li_search.py --keyword "project proposal"
uv run ~/.claude/skills/linkedin-export/scripts/li_search.py --after 2025-01-01 --before 2025-06-01
uv run ~/.claude/skills/linkedin-export/scripts/li_search.py --person "Jane" --keyword "meeting" --after 2025-06-01
uv run ~/.claude/skills/linkedin-export/scripts/li_search.py --conversation "CONVERSATION_ID"
uv run ~/.claude/skills/linkedin-export/scripts/li_search.py --list-partners
uv run ~/.claude/skills/linkedin-export/scripts/li_search.py --keyword "AI" --context 3
uv run ~/.claude/skills/linkedin-export/scripts/li_search.py --keyword "proposal" --full --json
Flags: --person, --keyword, --after, --before, --conversation, --list-partners, --context N, --full, --limit N, --json
Network Analysis — li_network.py
Analyze the connection graph — companies, roles, timeline.
uv run ~/.claude/skills/linkedin-export/scripts/li_network.py summary
uv run ~/.claude/skills/linkedin-export/scripts/li_network.py companies --top 20
uv run ~/.claude/skills/linkedin-export/scripts/li_network.py timeline --by year
uv run ~/.claude/skills/linkedin-export/scripts/li_network.py timeline --by month
uv run ~/.claude/skills/linkedin-export/scripts/li_network.py roles --top 20
uv run ~/.claude/skills/linkedin-export/scripts/li_network.py search "Anthropic"
uv run ~/.claude/skills/linkedin-export/scripts/li_network.py export --format csv
uv run ~/.claude/skills/linkedin-export/scripts/li_network.py export --format json
Subcommands: summary, companies, timeline, roles, search, export
Export to Markdown — li_export.py
Convert parsed data to clean Markdown files.
uv run ~/.claude/skills/linkedin-export/scripts/li_export.py messages --output ~/linkedin-archive/messages/
uv run ~/.claude/skills/linkedin-export/scripts/li_export.py connections --output ~/linkedin-archive/connections.md
uv run ~/.claude/skills/linkedin-export/scripts/li_export.py all --output ~/linkedin-archive/
uv run ~/.claude/skills/linkedin-export/scripts/li_export.py rlama --output ~/linkedin-archive/rlama/
Subcommands: messages, connections, all, rlama
RLAMA Ingestion — li_ingest.py
Prepare RLAMA-optimized documents and create a semantic search collection.
uv run ~/.claude/skills/linkedin-export/scripts/li_ingest.py
uv run ~/.claude/skills/linkedin-export/scripts/li_ingest.py --prepare-only
uv run ~/.claude/skills/linkedin-export/scripts/li_ingest.py --rebuild
Collection: linkedin-tdimino (fixed/600/100 chunking, reranker enabled, 13 docs, 2.14 MB)
Query (default: retrieve-only, Claude synthesizes):
python3 ~/.claude/skills/rlama/scripts/rlama_retrieve.py linkedin-tdimino "What projects has Tom built?" -k 10
rlama run linkedin-tdimino --query "Who works at Google?"
RLAMA document structure (13 files):
messages-conversations-{a-f,g-l,m-r,s-z}.md — Conversations grouped alphabetically
connections-companies.md — Connections by company
connections-timeline.md — Connections by year
profile-positions-education.md — Resume data
endorsements-skills.md — Skills and endorsements
shares-reactions.md — Posts and activity
comments-activity.md — 548 comments with dates and links
projects-honors-volunteering.md — Projects, honors, volunteering, organizations
metadata-languages-events-follows.md — Languages, events, follows, job applications, recommendations given, inferences
INDEX.md — Collection metadata and counts
Data Format Reference
See references/linkedin-export-format.md for complete CSV column documentation.
Key files in the LinkedIn export ZIP (23 parsed):
| CSV | Contents |
|---|
messages.csv | All messages and InMail |
Connections.csv | 1st-degree connections (preamble format) |
Profile.csv | Profile data |
Positions.csv | Work history |
Education.csv | Education |
Skills.csv | Listed skills |
Endorsement_Received_Info.csv | Endorsements received |
Invitations.csv | Connection requests |
Recommendations_Received.csv | Recommendations received |
Shares.csv | Posts and shares |
Reactions.csv | Post reactions |
Certifications.csv | Certifications |
Comments.csv | Comments on posts |
Projects.csv | Projects (Bazaar, Dream Daimon, etc.) |
Honors.csv | Awards and hackathon wins |
Organizations.csv | Clubs and groups |
Volunteering.csv | Volunteer roles |
Languages.csv | Language proficiencies |
Events.csv | LinkedIn events |
Member_Follows.csv | People/companies followed |
Jobs/Job Applications*.csv | Job applications (split across multiple files) |
Recommendations_Given.csv | Recommendations written |
Inferences_about_you.csv | LinkedIn's inferences |
Script Selection Guide
| Task | Script | Example |
|---|
| First-time setup | li_parse.py | Parse the ZIP |
| Find a conversation | li_search.py --person | Search by person name |
| Find a topic | li_search.py --keyword | Search by keyword |
| Who do I talk to most? | li_search.py --list-partners | Sorted partner list |
| Company breakdown | li_network.py companies | Top companies |
| Network growth | li_network.py timeline | Connections over time |
| Archive messages | li_export.py messages | Markdown per conversation |
| Semantic search | li_ingest.py | RLAMA collection |