LinkedIn Data Export Index

Generated: 2026-03-26 Author: Dmitri Sunshine Pipeline: linkedin-data-maximizer

Purpose

Complete index of all data exports and analysis documents produced from Dmitri’s LinkedIn export (exported 2026-03-13). Designed for consumption by: Dmitri, coach, Nexus AI assistant, and eventual database import.

Base paths:

  • Exports: C:\_my\_solanasis\solanasis-scripts\linkedin-pipeline\data\export\
  • Analysis docs: C:\_my\_solanasis\solanasis-docs\linkedin-analysis\

Database-Ready Exports (JSON/CSV)

Core Contact and Messaging Tables

FileFormatRowsPurposeSchema Reference
contacts_for_database.jsonJSON2,478All connections with full scoring and ICP tagscontacts_schema.md
contacts_for_database.csvCSV2,478Same as JSON, spreadsheet/import-compatiblecontacts_schema.md
conversations_full_export.jsonJSON562Consolidated conversation threads, one entry per contact
messaging_summary_for_database.csvCSV562Per-contact messaging stats (counts, dates, response times)
interaction_timeline.jsonJSON5,730Chronological log of all interactions (messages, invitations, follows)
interaction_timeline_for_database.csvCSV5,730Same as JSON, flattened for relational import
meeting_notes_export.jsonJSON100Meeting notes exported from Baserow, one entry per note
meeting_notes_for_database.csvCSV100Same as JSON, flattened for DB import
non_connections_for_database.csvCSV805People who interacted with Dmitri but are not connections

Dimension Exports (Behavioral and Engagement Data)

FileFormatRows/EntriesPurposeSchema Reference
ads_clicked_for_database.csvCSV21Monthly LinkedIn ad click history (5,852 total clicks tracked)
ads_clicked_analysis.jsonJSON21 monthly entriesAd engagement patterns, monthly timeline, top months
company_follows_for_database.csvCSV299Companies Dmitri follows on LinkedIn
company_follows_icp_analysis.jsonJSON299 companiesICP segment mapping of followed companies
member_follows_for_database.csvCSV2,030Members Dmitri follows (includes non-connections)
member_follows_analysis.jsonJSON2,030 followsFollow analysis; 50-contact outreach sample identified
connection_velocity_analysis.jsonJSON67 monthly entriesConnection growth timeline; 2,498 total connections tracked
inferences_analysis.jsonJSON7 entriesLinkedIn’s inferred interest/demographic categories
invitation_effectiveness_analysis.jsonJSON232 template entriesInvitation acceptance rates; 1,549 total invitations analyzed
security_audit_analysis.jsonJSON8 monthly entriesLogin security events; 117 challenges, IP analysis, fCISO framing
remaining_dimensions_analysis.jsonJSON19 top-level keysComposite analysis: endorsements (11), events (6), learning (7 courses), reactions (601), reposts (6), saved items (5), saved jobs (15), account history (18.6 yr account), rich media (5), logins (22)

Outreach Lists (Ready-to-Use Prospect Lists)

All files in data/export/outreach-lists/:

FileFormatRowsFilter CriteriaPurpose
colorado-local-network.csvCSV70segment_tags contains ‘boulder-local’, sorted by warmth_score DESCPriority local outreach — Colorado Front Range contacts
dormant-gold-high-value-never-engaged.csvCSV57strategic_value_score >= 30 AND warmth_score < 15, sorted by strategic_value_score DESCHigh-value dormant connections worth reactivating
foundation-nonprofit-targets.csvCSV136segment_tags contains ‘foundation’ OR ‘nonprofit’, sorted by strategic_value_score DESCFoundation and nonprofit ICP prospects
fractional-exec-referral-partners.csvCSV363segment_tags contains ‘fractional-exec’ OR ‘connector’, sorted by warmth_score DESCReferral partner network — fractional execs and connectors
reactivation-gone-silent.csvCSV80message_count_total >= 5 AND days_since_last_contact > 90, sorted by warmth_score DESCPreviously engaged contacts who have gone quiet
warm-introduction-map.csvCSV20Top 5 warmest contacts per vertical (foundation, nonprofit, wealth-mgmt, tech)Warm intro leverage points — one table per vertical
wealth-management-targets.csvCSV21segment_tags contains ‘wealth-mgmt’, sorted by strategic_value_score DESCWealth management and RIA ICP prospects

Total outreach list contacts: 747 rows across 7 lists (some contacts appear in multiple lists)

Schema and Documentation (in export/)

FileFormatPurpose
contacts_schema.mdMarkdownFull field reference, scoring methodology, tier thresholds, ICP segments, import instructions
messaging_insights.mdMarkdownMessaging pattern analysis — generated during pipeline run, lives in export/

Analysis Documents (Markdown)

All files in solanasis-docs/linkedin-analysis/:

Primary Analysis Files

FilePurposeKey Findings
linkedin-complete-data-audit.mdMaster audit of all 37 LinkedIn export source files; field-by-field documentation37 source files catalogued; identifies empty/PII files; maps each to pipeline output
linkedin-outreach-strategy.mdFull GTM playbook with 7 service lines and sequenced outreach tactics2,478 connections; ~35 Tier A contacts; 2,024 member follows not yet connected; 7 service-line ICP maps
non-connection-targets.mdAnalysis of 805 people who engaged with Dmitri but are not connections805 non-connection interactors scored; identifies high-value follow-up targets outside connection list
voice-enrichment-llm-analysis.mdLLM analysis of Dmitri’s LinkedIn communication style and voice670 corpus samples (138 comments, 41 shares, 50 conversations, 263 invitation templates); voice profile sections A-F

Outreach List Companion Docs

All files in solanasis-docs/linkedin-analysis/outreach-lists/:

FileCompanion CSVKey Findings
colorado-local-network.mdcolorado-local-network.csv70 Boulder/Denver/Colorado contacts; filter: boulder-local segment
dormant-gold-high-value-never-engaged.mddormant-gold-high-value-never-engaged.csv57 high-strategic-value contacts with zero messaging history
foundation-nonprofit-targets.mdfoundation-nonprofit-targets.csv136 foundation and nonprofit ICP contacts
fractional-exec-referral-partners.mdfractional-exec-referral-partners.csv363 fractional execs and connectors — largest outreach segment
reactivation-gone-silent.mdreactivation-gone-silent.csv80 contacts with 5+ prior messages who have not engaged in 90+ days
warm-introduction-map.mdwarm-introduction-map.csv20 contacts across 4 verticals; warmest possible intro path per vertical
wealth-management-targets.mdwealth-management-targets.csv21 wealth management / RIA targets

Supplementary Documents

FilePurpose
blog-post-linkedin-data-ai-insights.mdDraft blog post: “What I Learned From Running AI on My Own LinkedIn Data”
social-media-linkedin-data-ai-campaign.mdSocial media campaign content derived from the LinkedIn data analysis
baserow-migration-continuation-prompt.mdStructured prompt for resuming Baserow import work in a new session
linkedin-pipeline-continuation-prompt.mdStructured prompt for resuming pipeline development in a new session
linkedin-pipeline-plan.mdOriginal plan document for the linkedin-data-maximizer pipeline

Previously Generated (Still Valid)

These files were produced before the linkedin-data-maximizer pipeline and remain valid:

FileGeneratedPurpose
network-intelligence-report.md2026-03-23 by analyze_network.pyNetwork composition breakdown, top contacts by tier, geographic distribution
gtm-alignment-report.md2026-03-23 by analyze_network.pyGTM gap analysis — alignment between network composition and Solanasis service lines
voice-analysis-report.md2026-03-23 by analyze_voice.pyStatistical voice analysis (pure Python, no LLM) — baseline before LLM enrichment

Import Instructions

For Baserow

The contacts table is the recommended starting point.

  1. Create a new table named linkedin_contacts
  2. Import contacts_for_database.csv via Import > CSV
  3. Set linkedin_url as the unique identifier field
  4. Set these fields to Number type: warmth_score, strategic_value_score, message_count_total, message_count_from_dmitri, message_count_to_dmitri, connection_age_days, days_since_last_contact
  5. Set relationship_tier to Single Select (values: A, B, C, D)
  6. Set date fields to Date: connected_on, invitation_date, first_message_date, last_message_date
  7. Set boolean fields to Checkbox: relationship_decay_flag, invitation_accepted, dmitri_follows_them, they_follow_dmitri, is_endorser

For additional tables, import the corresponding CSVs and join on linkedin_url (contacts, messaging, timeline) or name/profile_url (non-connections).

For outreach lists: import each CSV in outreach-lists/ as a separate Baserow view or table. These are pre-filtered subsets of the master contacts table.

For PostgreSQL

-- Primary contacts table
create table linkedin_contacts (
    linkedin_url                  varchar(500) primary key,
    first_name                    varchar(200),
    last_name                     varchar(200),
    full_name                     varchar(400),
    email                         varchar(300),
    company                       varchar(500),
    position                      varchar(500),
    connected_on                  date,
    connection_age_days           int,
    invitation_direction          varchar(20),
    invitation_message            text,
    invitation_date               timestamp,
    invitation_accepted           boolean,
    message_count_total           int,
    message_count_from_dmitri     int,
    message_count_to_dmitri       int,
    first_message_date            timestamp,
    last_message_date             timestamp,
    last_message_direction        varchar(20),
    avg_response_time_hours       float,
    longest_conversation_length   int,
    conversation_count            int,
    last_message_content_preview  text,
    dmitri_follows_them           boolean,
    they_follow_dmitri            boolean,
    warmth_score                  int,
    strategic_value_score         int,
    relationship_tier             char(1),
    relationship_decay_flag       boolean,
    days_since_last_contact       int,
    segment_tags                  text,
    icp_match_details             text,
    notes                         text,
    endorsed_skills               text,
    is_endorser                   boolean
);
 
-- Load contacts
\copy linkedin_contacts from 'contacts_for_database.csv' csv header;
 
-- Messaging summary (join key: linkedin_url)
create table linkedin_messaging (
    linkedin_url       varchar(500) references linkedin_contacts(linkedin_url),
    -- see messaging_summary_for_database.csv for full column list
    primary key (linkedin_url)
);
\copy linkedin_messaging from 'messaging_summary_for_database.csv' csv header;
 
-- Interaction timeline (join key: linkedin_url)
create table linkedin_timeline (
    id                 serial primary key,
    linkedin_url       varchar(500),
    event_date         timestamp,
    event_type         varchar(100),
    direction          varchar(20),
    content_preview    text
);
\copy linkedin_timeline from 'interaction_timeline_for_database.csv' csv header;
 
-- Non-connections (separate dataset, no FK to contacts)
create table linkedin_non_connections (
    id                 serial primary key,
    name               varchar(400),
    profile_url        varchar(500),
    -- see non_connections_for_database.csv for full column list
);
\copy linkedin_non_connections from 'non_connections_for_database.csv' csv header;

For Any Generic Database

Import order (respects dependencies):

  1. contacts_for_database.csv — master table, 2,478 rows, 37 columns
  2. messaging_summary_for_database.csv — 562 rows, joins on linkedin_url
  3. interaction_timeline_for_database.csv — 5,730 rows, joins on linkedin_url
  4. non_connections_for_database.csv — 805 rows, standalone table
  5. meeting_notes_for_database.csv — 100 rows, joins on contact name or URL
  6. member_follows_for_database.csv — 2,030 rows, standalone or joined
  7. company_follows_for_database.csv — 299 rows, standalone
  8. ads_clicked_for_database.csv — 21 rows (monthly aggregates), standalone
  9. Outreach lists (7 CSVs) — subsets of contacts, import as views or separate tables

All CSV files use UTF-8 encoding with headers in row 1.


Data Dictionary

Key fields used across multiple export files:

FieldTypeFound InDescription
linkedin_urlstringcontacts, messaging, timelineLinkedIn profile URL; primary join key across all contact tables
warmth_scoreintegercontacts, outreach listsRelationship warmth (0-60+); 11 signals including bidirectional messaging, recency, follow status. A >= 50 combined
strategic_value_scoreintegercontacts, outreach listsStrategic fit score (0-40+); 6 signals including title/role, ICP vertical match, geography, connector status
relationship_tierchar (A/B/C/D)contacts, outreach listsCombined tier: A = 50+ points, B = 30-49, C = 15-29, D = <15
relationship_decay_flagbooleancontactsTrue if connected 1+ year with zero recent contact
days_since_last_contactintegercontactsDays since last message, invitation, or engagement
icp_segmentsstringcontacts (as segment_tags)Comma-separated ICP tags; values: foundation, nonprofit, wealth-mgmt, fractional-exec, tech, startup, coliving-community, boulder-local, connector, spiritual-wellness
icp_match_detailsstringcontactsSemicolon-separated scoring signals that fired for this contact
message_count_totalintegercontacts, messagingTotal messages exchanged across all threads
message_count_from_dmitriintegercontacts, messagingMessages sent by Dmitri
message_count_to_dmitriintegercontacts, messagingMessages received by Dmitri
avg_response_time_hoursfloatcontacts, messagingAverage hours between message exchanges
last_message_directionstringcontacts, messagingfrom_dmitri or to_dmitri — who sent the last message
invitation_directionstringcontacts, timelineINCOMING = they invited Dmitri; OUTGOING = Dmitri invited them
invitation_messagestringcontacts, timelinePersonalized note in connection request, if any
invitation_acceptedbooleancontacts, timelineWhether invitation was accepted
dmitri_follows_thembooleancontactsTrue if Dmitri follows this member
they_follow_dmitribooleancontactsTrue if this member follows Dmitri
endorsed_skillsstringcontactsComma-separated skills this contact endorsed for Dmitri
is_endorserbooleancontactsTrue if this contact has endorsed any of Dmitri’s skills
segment_tagsstringcontacts, outreach listsComma-separated ICP segment tags assigned by pipeline
connected_ondatecontactsDate of LinkedIn connection
connection_age_daysintegercontactsDays since connection was established
event_typestringtimelineType of interaction event (message_sent, message_received, invitation_sent, etc.)
warmth_score_bucketstringnon-connectionsWarmth bracket for non-connection interactors
strategic_value_scoreintegernon-connectionsSame scoring logic applied to non-connection interactors

Coverage Summary

CategoryCount
Total connections in export2,478
Contacts with message history562
Total interaction events tracked5,730
Meeting notes imported100
Non-connection interactors805
Member follows2,030
Company follows299
Outreach list contacts (7 lists)747
Total JSON/CSV export files20
Total analysis documents (MD)19
Total files produced by pipeline39