Skip to main content

Convert LinkedIn data exports to Markdown

Project description

linkedin2md

PyPI version Python versions License CI

Convert LinkedIn data exports to clean Markdown files - the ideal format for LLM analysis.

Why Markdown?

Markdown is the lingua franca of AI tools. Once your LinkedIn data is in .md format, you can:

  • Upload to NotebookLM and have conversations about your career history
  • Use Claude Projects to analyze patterns across your professional journey
  • Feed to Obsidian with AI plugins for a personal career knowledge base
  • Run local LLMs (Ollama, LM Studio) for completely private analysis

Example Prompts

Once your LinkedIn data is in an LLM, try asking:

Question Data Used
"What patterns do you see in my career transitions?" experience.md
"What skills have I developed over time?" skills.md, experience.md
"Group my connections by industry" connections.md
"What themes appear in my recommendations?" recommendations.md
"Summarize my job applications and outcomes" job_applications.md
"What qualities do people consistently mention about me?" recommendations.md, endorsements.md
"Based on my experience, what roles should I target?" All files

Installation

Recommended (using pipx - installs in isolated environment):

pipx install linkedin2md

Or with pip (in a virtual environment):

pip install linkedin2md

Note: On modern Linux systems (Debian, Ubuntu 23.04+, Fedora), use pipx to avoid the "externally-managed-environment" error.

Usage

linkedin2md Complete_LinkedInDataExport.zip
linkedin2md export.zip -o ./my-profile
linkedin2md export.zip --lang es
linkedin2md export.zip --pdf  # Generate beautiful PDF CV alongside Markdown files

Then drag the output folder into your favorite AI tool.

Options

Option Description Default
source LinkedIn ZIP export file (required) -
-o, --output Output directory linkedin_export
--lang Output language (en or es) en
--pdf Generate an elegant A4 PDF resume from your profile False

How to Export Your LinkedIn Data

Follow these steps to download your LinkedIn data:

  1. Go to Settings: Log into LinkedIn, click your profile photo in the top right, then select "Settings & Privacy"

  2. Navigate to Data Privacy: In the left sidebar, click "Data privacy"

  3. Request your data: Click "Get a copy of your data"

  4. Select data to download:

    • Choose "Download larger data archive" for complete data
    • Or select specific categories if you only need certain data
  5. Request archive: Click "Request archive"

  6. Wait for email: LinkedIn will process your request and send an email when ready (usually within 24 hours, sometimes up to 72 hours for large archives)

  7. Download the ZIP file: Click the download link in the email. The file will be named something like Complete_LinkedInDataExport_01-20-2025.zip

Note: The download link expires after a few days. Download it promptly and store it safely.

LLM Tools That Work Great With This

Tool Type Best For
NotebookLM Cloud Conversational analysis, audio summaries
Claude Projects Cloud Deep analysis, long context
ChatGPT Cloud General analysis, quick insights
Obsidian + AI plugins Local Personal knowledge base, linked notes
Open Notebook Local/Cloud 16+ AI models, open source
Ollama Local Private, offline analysis

Output

Creates 40+ markdown files in the output directory, organized by category:

Core Profile

  • profile.md - Name, title, contact, summary
  • experience.md - Work history with achievements
  • education.md - Educational background
  • skills.md - Professional skills
  • certifications.md - Certifications and licenses
  • languages.md - Language proficiencies
  • projects.md - Personal and professional projects

Recommendations & Endorsements

  • recommendations.md - Recommendations received
  • endorsements.md - Skill endorsements received

Learning

  • learning.md - LinkedIn Learning courses
  • learning_reviews.md - Course reviews and ratings

Network

  • connections.md - Your connections
  • companies_followed.md - Companies you follow
  • members_followed.md - People you follow
  • invitations.md - Connection invitations sent/received
  • imported_contacts.md - Contacts imported from address book

Content & Activity

  • posts.md - Your posts and shares
  • comments.md - Comments you made
  • reactions.md - Likes and reactions
  • reposts.md - Content you reposted
  • votes.md - Poll votes
  • saved_items.md - Bookmarked content
  • events.md - Events attended

Job Search

  • job_applications.md - All job applications
  • saved_jobs.md - Jobs you saved
  • job_preferences.md - Job seeker preferences
  • saved_job_answers.md - Saved application answers
  • screening_responses.md - Screening question responses
  • saved_job_alerts.md - Job alert settings

Activity History

  • search_queries.md - Search history
  • logins.md - Login history
  • security_challenges.md - Security verification events

Advertising & Privacy

  • ads_clicked.md - Ads you clicked
  • ad_targeting.md - How LinkedIn targets ads to you
  • lan_ads.md - LinkedIn Audience Network engagement
  • inferences.md - LinkedIn's inferences about you

Payments

  • receipts.md - Premium subscription receipts

Services Marketplace

  • service_engagements.md - Service provider engagements
  • service_opportunities.md - Service opportunities

Identity

  • verifications.md - Identity verifications
  • identity_assets.md - Uploaded documents (resumes, etc.)

📄 PDF Resume Generation

With the --pdf flag, linkedin2md converts your parsed structured data into an elegant, print-ready, professional A4 PDF Resume (profile.pdf):

  • Design: Hand-crafted executive layout with pristine typography, clean margins, and print-friendly stylesheets.
  • Prerequisites: Requires weasyprint and markdown libraries to be installed locally:
    pip install weasyprint markdown
    
    (If not installed, linkedin2md will continue to generate your Markdown folder safely, omitting the PDF and providing setup instructions).

🤖 Agentic Development (NERV Framework)

This repository is fully configured for Agentic Development using opencode and the NERV orchestration framework. NERV coordinates specialized autonomous subagents to design, program, test, and audit code changes.

Quick Commands (Inside Opencode/Claude Code TUI):

  • SDD Pipeline (/sdd-new <change>): Starts the 8-phase Spec-Driven Development workflow (explore ➔ propose ➔ spec ➔ design ➔ tasks ➔ apply ➔ verify ➔ archive) utilizing custom subagents in .opencode/agents/ and .opencode/skills/.
  • Adversarial Review (/judgment-day): Triggers a dual-model adversarial code review (e.g. Claude vs. Copilot) to stress-test pull requests against AGENTS.md standards.
  • Standards Audit (/review): Automatically audits files against strict linting and universal code standards.

We welcome PRs developed and verified using your own AI agent setups!

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

License

GPL-2.0 - see LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

linkedin2md-0.3.1.tar.gz (93.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

linkedin2md-0.3.1-py3-none-any.whl (69.3 kB view details)

Uploaded Python 3

File details

Details for the file linkedin2md-0.3.1.tar.gz.

File metadata

  • Download URL: linkedin2md-0.3.1.tar.gz
  • Upload date:
  • Size: 93.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for linkedin2md-0.3.1.tar.gz
Algorithm Hash digest
SHA256 a6f72935880baeebaba87c9bcc60010333a2f0c1f04781883ca84e9fd563432e
MD5 8d2a91a546aa8f344e8a585f3cf8d30a
BLAKE2b-256 1dfd95c8b88944b56f4405cdeba1d5204846f166942c17225c6755e254bb9983

See more details on using hashes here.

Provenance

The following attestation bundles were made for linkedin2md-0.3.1.tar.gz:

Publisher: publish.yml on juanmanueldaza/linkedin2md

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file linkedin2md-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: linkedin2md-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 69.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for linkedin2md-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5d32a1c3a3c37d58547577091e56d2457e241115fe725c4f7dc833c9f091742d
MD5 e91a7cb130baa69629eddc8244dc0edb
BLAKE2b-256 8a01665d75584c5a67db99dc820d718b5c07d83d8ad52791628240393971a991

See more details on using hashes here.

Provenance

The following attestation bundles were made for linkedin2md-0.3.1-py3-none-any.whl:

Publisher: publish.yml on juanmanueldaza/linkedin2md

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page