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
| File | Format | Rows | Purpose | Schema Reference |
|---|---|---|---|---|
| contacts_for_database.json | JSON | 2,478 | All connections with full scoring and ICP tags | contacts_schema.md |
| contacts_for_database.csv | CSV | 2,478 | Same as JSON, spreadsheet/import-compatible | contacts_schema.md |
| conversations_full_export.json | JSON | 562 | Consolidated conversation threads, one entry per contact | — |
| messaging_summary_for_database.csv | CSV | 562 | Per-contact messaging stats (counts, dates, response times) | — |
| interaction_timeline.json | JSON | 5,730 | Chronological log of all interactions (messages, invitations, follows) | — |
| interaction_timeline_for_database.csv | CSV | 5,730 | Same as JSON, flattened for relational import | — |
| meeting_notes_export.json | JSON | 100 | Meeting notes exported from Baserow, one entry per note | — |
| meeting_notes_for_database.csv | CSV | 100 | Same as JSON, flattened for DB import | — |
| non_connections_for_database.csv | CSV | 805 | People who interacted with Dmitri but are not connections | — |
Dimension Exports (Behavioral and Engagement Data)
| File | Format | Rows/Entries | Purpose | Schema Reference |
|---|---|---|---|---|
| ads_clicked_for_database.csv | CSV | 21 | Monthly LinkedIn ad click history (5,852 total clicks tracked) | — |
| ads_clicked_analysis.json | JSON | 21 monthly entries | Ad engagement patterns, monthly timeline, top months | — |
| company_follows_for_database.csv | CSV | 299 | Companies Dmitri follows on LinkedIn | — |
| company_follows_icp_analysis.json | JSON | 299 companies | ICP segment mapping of followed companies | — |
| member_follows_for_database.csv | CSV | 2,030 | Members Dmitri follows (includes non-connections) | — |
| member_follows_analysis.json | JSON | 2,030 follows | Follow analysis; 50-contact outreach sample identified | — |
| connection_velocity_analysis.json | JSON | 67 monthly entries | Connection growth timeline; 2,498 total connections tracked | — |
| inferences_analysis.json | JSON | 7 entries | LinkedIn’s inferred interest/demographic categories | — |
| invitation_effectiveness_analysis.json | JSON | 232 template entries | Invitation acceptance rates; 1,549 total invitations analyzed | — |
| security_audit_analysis.json | JSON | 8 monthly entries | Login security events; 117 challenges, IP analysis, fCISO framing | — |
| remaining_dimensions_analysis.json | JSON | 19 top-level keys | Composite 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/:
| File | Format | Rows | Filter Criteria | Purpose |
|---|---|---|---|---|
| colorado-local-network.csv | CSV | 70 | segment_tags contains ‘boulder-local’, sorted by warmth_score DESC | Priority local outreach — Colorado Front Range contacts |
| dormant-gold-high-value-never-engaged.csv | CSV | 57 | strategic_value_score >= 30 AND warmth_score < 15, sorted by strategic_value_score DESC | High-value dormant connections worth reactivating |
| foundation-nonprofit-targets.csv | CSV | 136 | segment_tags contains ‘foundation’ OR ‘nonprofit’, sorted by strategic_value_score DESC | Foundation and nonprofit ICP prospects |
| fractional-exec-referral-partners.csv | CSV | 363 | segment_tags contains ‘fractional-exec’ OR ‘connector’, sorted by warmth_score DESC | Referral partner network — fractional execs and connectors |
| reactivation-gone-silent.csv | CSV | 80 | message_count_total >= 5 AND days_since_last_contact > 90, sorted by warmth_score DESC | Previously engaged contacts who have gone quiet |
| warm-introduction-map.csv | CSV | 20 | Top 5 warmest contacts per vertical (foundation, nonprofit, wealth-mgmt, tech) | Warm intro leverage points — one table per vertical |
| wealth-management-targets.csv | CSV | 21 | segment_tags contains ‘wealth-mgmt’, sorted by strategic_value_score DESC | Wealth 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/)
| File | Format | Purpose |
|---|---|---|
| contacts_schema.md | Markdown | Full field reference, scoring methodology, tier thresholds, ICP segments, import instructions |
| messaging_insights.md | Markdown | Messaging pattern analysis — generated during pipeline run, lives in export/ |
Analysis Documents (Markdown)
All files in solanasis-docs/linkedin-analysis/:
Primary Analysis Files
| File | Purpose | Key Findings |
|---|---|---|
| linkedin-complete-data-audit.md | Master audit of all 37 LinkedIn export source files; field-by-field documentation | 37 source files catalogued; identifies empty/PII files; maps each to pipeline output |
| linkedin-outreach-strategy.md | Full GTM playbook with 7 service lines and sequenced outreach tactics | 2,478 connections; ~35 Tier A contacts; 2,024 member follows not yet connected; 7 service-line ICP maps |
| non-connection-targets.md | Analysis of 805 people who engaged with Dmitri but are not connections | 805 non-connection interactors scored; identifies high-value follow-up targets outside connection list |
| voice-enrichment-llm-analysis.md | LLM analysis of Dmitri’s LinkedIn communication style and voice | 670 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/:
| File | Companion CSV | Key Findings |
|---|---|---|
| colorado-local-network.md | colorado-local-network.csv | 70 Boulder/Denver/Colorado contacts; filter: boulder-local segment |
| dormant-gold-high-value-never-engaged.md | dormant-gold-high-value-never-engaged.csv | 57 high-strategic-value contacts with zero messaging history |
| foundation-nonprofit-targets.md | foundation-nonprofit-targets.csv | 136 foundation and nonprofit ICP contacts |
| fractional-exec-referral-partners.md | fractional-exec-referral-partners.csv | 363 fractional execs and connectors — largest outreach segment |
| reactivation-gone-silent.md | reactivation-gone-silent.csv | 80 contacts with 5+ prior messages who have not engaged in 90+ days |
| warm-introduction-map.md | warm-introduction-map.csv | 20 contacts across 4 verticals; warmest possible intro path per vertical |
| wealth-management-targets.md | wealth-management-targets.csv | 21 wealth management / RIA targets |
Supplementary Documents
| File | Purpose |
|---|---|
| blog-post-linkedin-data-ai-insights.md | Draft blog post: “What I Learned From Running AI on My Own LinkedIn Data” |
| social-media-linkedin-data-ai-campaign.md | Social media campaign content derived from the LinkedIn data analysis |
| baserow-migration-continuation-prompt.md | Structured prompt for resuming Baserow import work in a new session |
| linkedin-pipeline-continuation-prompt.md | Structured prompt for resuming pipeline development in a new session |
| linkedin-pipeline-plan.md | Original 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:
| File | Generated | Purpose |
|---|---|---|
| network-intelligence-report.md | 2026-03-23 by analyze_network.py | Network composition breakdown, top contacts by tier, geographic distribution |
| gtm-alignment-report.md | 2026-03-23 by analyze_network.py | GTM gap analysis — alignment between network composition and Solanasis service lines |
| voice-analysis-report.md | 2026-03-23 by analyze_voice.py | Statistical voice analysis (pure Python, no LLM) — baseline before LLM enrichment |
Import Instructions
For Baserow
The contacts table is the recommended starting point.
- Create a new table named
linkedin_contacts - Import
contacts_for_database.csvvia Import > CSV - Set
linkedin_urlas the unique identifier field - 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 - Set
relationship_tierto Single Select (values: A, B, C, D) - Set date fields to Date:
connected_on,invitation_date,first_message_date,last_message_date - 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):
contacts_for_database.csv— master table, 2,478 rows, 37 columnsmessaging_summary_for_database.csv— 562 rows, joins onlinkedin_urlinteraction_timeline_for_database.csv— 5,730 rows, joins onlinkedin_urlnon_connections_for_database.csv— 805 rows, standalone tablemeeting_notes_for_database.csv— 100 rows, joins on contact name or URLmember_follows_for_database.csv— 2,030 rows, standalone or joinedcompany_follows_for_database.csv— 299 rows, standaloneads_clicked_for_database.csv— 21 rows (monthly aggregates), standalone- 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:
| Field | Type | Found In | Description |
|---|---|---|---|
linkedin_url | string | contacts, messaging, timeline | LinkedIn profile URL; primary join key across all contact tables |
warmth_score | integer | contacts, outreach lists | Relationship warmth (0-60+); 11 signals including bidirectional messaging, recency, follow status. A >= 50 combined |
strategic_value_score | integer | contacts, outreach lists | Strategic fit score (0-40+); 6 signals including title/role, ICP vertical match, geography, connector status |
relationship_tier | char (A/B/C/D) | contacts, outreach lists | Combined tier: A = 50+ points, B = 30-49, C = 15-29, D = <15 |
relationship_decay_flag | boolean | contacts | True if connected 1+ year with zero recent contact |
days_since_last_contact | integer | contacts | Days since last message, invitation, or engagement |
icp_segments | string | contacts (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_details | string | contacts | Semicolon-separated scoring signals that fired for this contact |
message_count_total | integer | contacts, messaging | Total messages exchanged across all threads |
message_count_from_dmitri | integer | contacts, messaging | Messages sent by Dmitri |
message_count_to_dmitri | integer | contacts, messaging | Messages received by Dmitri |
avg_response_time_hours | float | contacts, messaging | Average hours between message exchanges |
last_message_direction | string | contacts, messaging | from_dmitri or to_dmitri — who sent the last message |
invitation_direction | string | contacts, timeline | INCOMING = they invited Dmitri; OUTGOING = Dmitri invited them |
invitation_message | string | contacts, timeline | Personalized note in connection request, if any |
invitation_accepted | boolean | contacts, timeline | Whether invitation was accepted |
dmitri_follows_them | boolean | contacts | True if Dmitri follows this member |
they_follow_dmitri | boolean | contacts | True if this member follows Dmitri |
endorsed_skills | string | contacts | Comma-separated skills this contact endorsed for Dmitri |
is_endorser | boolean | contacts | True if this contact has endorsed any of Dmitri’s skills |
segment_tags | string | contacts, outreach lists | Comma-separated ICP segment tags assigned by pipeline |
connected_on | date | contacts | Date of LinkedIn connection |
connection_age_days | integer | contacts | Days since connection was established |
event_type | string | timeline | Type of interaction event (message_sent, message_received, invitation_sent, etc.) |
warmth_score_bucket | string | non-connections | Warmth bracket for non-connection interactors |
strategic_value_score | integer | non-connections | Same scoring logic applied to non-connection interactors |
Coverage Summary
| Category | Count |
|---|---|
| Total connections in export | 2,478 |
| Contacts with message history | 562 |
| Total interaction events tracked | 5,730 |
| Meeting notes imported | 100 |
| Non-connection interactors | 805 |
| Member follows | 2,030 |
| Company follows | 299 |
| Outreach list contacts (7 lists) | 747 |
| Total JSON/CSV export files | 20 |
| Total analysis documents (MD) | 19 |
| Total files produced by pipeline | 39 |