Resetting My Obsidian CRM: A Fresh Start for 5/50/100 Networking

Over the last year I’ve been building a personal CRM inside Obsidian, inspired by Judy Robinett’s 5/50/100 framework and my own relationship thesis. It worked well for a while, but the files had grown messy: inconsistent YAML front-matter, redundant fields like overdue, and tags that didn’t really add value.

So this week I hit reset.

Why Reset?

  • Clarity: Too many legacy fields made it hard to trust the data.
  • Automation: I want to run simple Dataview queries like “who’s overdue?” without wrestling with inconsistent metadata.
  • Longevity: The schema should still make sense 5 years from now, not just this quarter.

The New Schema

Each contact now starts with a clean YAML block:

---
fullname: 
role: 
company: 
location: 
ecosystem: 
ecosystem_role: 
power_circle: 900
closeness: 3
cadence: 90
last_contacted: 2025-09-08
date_added: 2025-09-08
strategic_value: 
value_to_them: 
interests: 
resources: 
status: active
tags: []
---

A few principles:

  • Minimal & consistent → only the fields I’ll actually use.
  • Machine-friendlycadence and last_contacted allow Dataview to calculate who’s due for a check-in.
  • Human-friendlystrategic_value, value_to_them, and interests help me write authentic notes and add value.
  • Standardizedpower_circle and ecosystem align to my networking thesis.

How I Did It

I wrote a small Python script to:

  • Strip old YAML front-matter.
  • Rebuild a new schema from scratch.
  • Preserve (or wipe) the Markdown body depending on flags.

What’s Next

With this foundation, I can:

  • Query in Dataview for overdue contacts.
  • Slice by ecosystem or closeness.
  • Add authentic context in the Markdown body (## Interaction Log) without bloating YAML.

It feels like a clean slate. The messy data is gone, and I now have a networking system I can trust—something that should scale as my 5/50/100 grows.