<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://suarezaaronroy-sys.github.io/library/feed.xml" rel="self" type="application/atom+xml" /><link href="https://suarezaaronroy-sys.github.io/library/" rel="alternate" type="text/html" hreflang="en" /><updated>2026-07-17T05:06:22+00:00</updated><id>https://suarezaaronroy-sys.github.io/library/feed.xml</id><title type="html">Aaron Suarez | Notes</title><subtitle>The working library of Aaron Suarez — operational systems builder. Manuals, system documentation, and field notes I keep because I use them: CRM, automation, payments, AI-native operations, and the trilogy on how money moves, how work moves, why organizations behave.</subtitle><author><name>Aaron Suarez</name><email>suarezaaronroy@gmail.com</email></author><entry><title type="html">34.2% Open Rate from a Landlord List. What Actually Worked.</title><link href="https://suarezaaronroy-sys.github.io/library/notes/landlord-list-open-rate/" rel="alternate" type="text/html" title="34.2% Open Rate from a Landlord List. What Actually Worked." /><published>2026-04-10T00:00:00+00:00</published><updated>2026-04-10T00:00:00+00:00</updated><id>https://suarezaaronroy-sys.github.io/library/notes/landlord-list-open-rate</id><content type="html" xml:base="https://suarezaaronroy-sys.github.io/library/notes/landlord-list-open-rate/"><![CDATA[<p>The numbers first: 340 cold contacts, Liverpool landlords, 34.2% average open rate, 6.8% click-through, 18 consultations booked across the sequence. For cold B2C-adjacent email, those are not normal numbers — typical cold open rates live in the teens.</p>

<p>Everyone asks about send times and templates. Neither moved the needle. The single biggest lever was embarrassingly simple: <strong>the subject line carried the city.</strong> “Liverpool landlords:” beat the generic equivalent by 11 percentage points, consistently, across every send in the sequence. Same list, same offer, same sender. One word of geography.</p>

<p>The mechanism is worth more than the tactic. A cold inbox is a filtering machine, and the reader’s only question is “is this about me?” — answered in under a second. “For landlords” pattern-matches to spam: it could have been sent to anyone, so it probably was. “For Liverpool landlords” survives the filter because it claims something checkable about the reader. <strong>Specificity is the cheapest trust signal in cold email</strong> — it costs nothing and can’t be faked at scale, which is exactly why it works.</p>

<p>The supporting cast mattered too, but as hygiene rather than magic: a clean list (sub-2% bounce — deliverability is upstream of every other metric), one CTA per email, plain text over designed templates because landlords’ inboxes read design as marketing, and full UK compliance (PECR/ICO) baked in — not just because it’s required, but because compliant sending <em>is</em> deliverability over any horizon longer than a month.</p>

<p>Hygiene gets you delivered. Specificity gets you opened. The full campaign architecture — list, sequence, compliance stack, and the numbers in context — is documented in <a href="/library/grimoires/002-dual-wing-rental.html">Grimoire 002</a>.</p>]]></content><author><name>Aaron Suarez</name><email>suarezaaronroy@gmail.com</email></author><category term="Field Notes" /><summary type="html"><![CDATA[City-specific subject lines outperformed generic ones by 11 percentage points. Breakdown from the Dual Wing campaign.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/landlord-list-open-rate.png" /><media:content medium="image" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/landlord-list-open-rate.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">GHL 101: Why I Published Over a Year of Notes for Free.</title><link href="https://suarezaaronroy-sys.github.io/library/notes/why-i-published-ghl-101/" rel="alternate" type="text/html" title="GHL 101: Why I Published Over a Year of Notes for Free." /><published>2026-03-20T00:00:00+00:00</published><updated>2026-03-20T00:00:00+00:00</updated><id>https://suarezaaronroy-sys.github.io/library/notes/why-i-published-ghl-101</id><content type="html" xml:base="https://suarezaaronroy-sys.github.io/library/notes/why-i-published-ghl-101/"><![CDATA[<p>Try learning GoHighLevel from zero. The official docs cover features in isolation; everything that connects them — how triggers actually interact with tags, which settings break which workflows, what the pricing fine print really means — lives in $200 courses, gated communities, and YouTube channels engineered to convert you into a coaching funnel.</p>

<p>Look at that as a market and it’s just content business as usual. Look at it as a <em>system</em> and it’s a structural failure: the knowledge exists, the people who need it most can least afford it, and the paywalls don’t create the knowledge — they just tax access to it. A new operator pays hundreds of dollars to learn what amounts to a help article with experience attached. Operational problems are what I fix, and this is an operational problem.</p>

<p>So I published the manual. Every procedure as exact click-paths — button to button, not concept to concept. Every factual claim cited to an official source, because uncited tribal knowledge is half of what’s wrong with the gated stuff. Free, open, no email wall, no upsell waiting at module three.</p>

<p>The bet underneath it is simple and I’m comfortable making it in public: <strong>open documentation builds more trust than gated documentation builds revenue.</strong> A reader who learns the platform from my manual knows exactly how I think and how I document. Some of them will never need me — that’s fine, that was the point. The ones who do need systems work won’t require convincing; they’ve already read the evidence.</p>

<p>A year of field notes is sitting in <a href="/library/grimoires/003-ghl-101.html">Grimoire 003</a>, pricing verified against official sources. Read it, share it, use it. No gate.</p>]]></content><author><name>Aaron Suarez</name><email>suarezaaronroy@gmail.com</email></author><category term="Field Notes" /><summary type="html"><![CDATA[Almost everything useful about GoHighLevel lives behind a paywall. That's an operational problem — and operational problems are what I fix.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/why-i-published-ghl-101.png" /><media:content medium="image" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/why-i-published-ghl-101.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Stop Training People. Start Building Systems That Set Them Free.</title><link href="https://suarezaaronroy-sys.github.io/library/notes/stop-training-people/" rel="alternate" type="text/html" title="Stop Training People. Start Building Systems That Set Them Free." /><published>2026-03-15T00:00:00+00:00</published><updated>2026-03-15T00:00:00+00:00</updated><id>https://suarezaaronroy-sys.github.io/library/notes/stop-training-people</id><content type="html" xml:base="https://suarezaaronroy-sys.github.io/library/notes/stop-training-people/"><![CDATA[<p>Every operation I’ve walked into has the same scene playing somewhere: a capable employee asking a senior person a question they’ve asked before, the senior person answering it again, and a manager somewhere concluding that the team “needs more training.”</p>

<p>So the training happens. A workshop, an updated onboarding deck, maybe a quiz. Three weeks later the questions return — same questions, same desk. The diagnosis gets repeated too: they need <em>more</em> training. Nobody questions the model itself.</p>

<p>Here’s the model’s flaw. Training transfers knowledge into a person, and knowledge stored in a person has three structural problems: it decays, it leaves when they leave, and it bottlenecks at whoever holds the most of it. You can pour into the bucket forever; the bucket was never the issue. The environment around the work gives people nowhere to turn except up — so up they go, again and again, and the seniors spend their days as human search engines.</p>

<p>A system stores the knowledge at the moment of work instead. The definition lives on the field label. The checklist lives inside the workflow. The SOP is linked from the task it governs, not filed in a wiki three clicks and a search away. When the answer is closer than the senior person, people stop asking the senior person — not because they were trained to stop, but because the path of least resistance finally points at the right thing.</p>

<p>That’s the distinction that changes how you build: <strong>training optimizes the person; systems optimize the environment.</strong> And environments don’t forget, don’t resign, and don’t mind being asked twice.</p>

<p>The deeper win is the one in the title. People under constant correction become passive — they learn that initiative means risk and questions mean looking slow, so they stop doing both. Put the knowledge in the environment and the dynamic inverts: people act, check themselves, and move. The system doesn’t constrain them. It’s the thing that finally sets them free to work without permission.</p>

<p>When you find yourself scheduling the third training on the same topic, that’s the signal. You don’t have a memory problem in your team. You have a placement problem in your system — and placement problems are fixable this week.</p>

<p>The full investigation of this pattern — and what it does to organizations at scale — is Case 08 in <a href="/library/grimoires/011-organizational-physics.html">Organizational Physics</a>.</p>]]></content><author><name>Aaron Suarez</name><email>suarezaaronroy@gmail.com</email></author><category term="Systems" /><summary type="html"><![CDATA[When teams keep asking the same questions, the issue is rarely memory — it's the environment around the work. And environments can be redesigned.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/stop-training-people.png" /><media:content medium="image" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/stop-training-people.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">The Escalation Tax: What It’s Costing You Every Day.</title><link href="https://suarezaaronroy-sys.github.io/library/notes/escalation-tax/" rel="alternate" type="text/html" title="The Escalation Tax: What It’s Costing You Every Day." /><published>2026-03-08T00:00:00+00:00</published><updated>2026-03-08T00:00:00+00:00</updated><id>https://suarezaaronroy-sys.github.io/library/notes/escalation-tax</id><content type="html" xml:base="https://suarezaaronroy-sys.github.io/library/notes/escalation-tax/"><![CDATA[<p>Every escalation looks like a five-minute favor. Nobody invoices it, so nobody prices it. Let’s price it.</p>

<p>The senior person pays the five minutes of answering. Then they pay the context they dropped — whatever deep work was open when the interruption landed. Then they pay re-entry: getting back to where their thinking was, which research on task-switching consistently puts far above the interruption itself. Call the realistic total fifteen to twenty minutes of senior capacity per “quick question.” Now multiply: ten escalations a day is three-plus hours of your most expensive attention, daily, spent answering questions the system should have answered. Across a year, that’s months of senior time converted into a human FAQ.</p>

<p>And the asker pays too — waiting, blocked, learning that the fastest path to any answer is a person. That last lesson is the expensive one, because it compounds: every answered escalation trains the next one.</p>

<p>The diagnostic is one week of tally marks. Track every escalation by topic — nothing fancy, a notebook works. Two patterns will appear by Friday. Most questions repeat: the same five topics generate most of the volume. And most repeats are structural: a missing definition (“what counts as qualified?”), a missing default (“what do I do when X?”), or a missing owner (“who decides this?”). None of those are knowledge problems. All of them are one-time fixes — a definition written where the question occurs, a default set in the workflow, an owner named.</p>

<p>Fix the top five and the tax collapses — not because people got smarter, but because the system stopped charging them for what it should have known.</p>

<p>The full mechanics of where the questions come from — and where they should go instead — is the heart of <a href="/library/grimoires/011-organizational-physics.html">Organizational Physics</a>.</p>]]></content><author><name>Aaron Suarez</name><email>suarezaaronroy@gmail.com</email></author><category term="Operations" /><summary type="html"><![CDATA[Ten interruptions a day costs more than ten answers — every escalation bills the switching time too.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/escalation-tax.png" /><media:content medium="image" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/escalation-tax.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Handoffs Are Where Work Goes to Die.</title><link href="https://suarezaaronroy-sys.github.io/library/notes/handoffs-die-here/" rel="alternate" type="text/html" title="Handoffs Are Where Work Goes to Die." /><published>2026-03-01T00:00:00+00:00</published><updated>2026-03-01T00:00:00+00:00</updated><id>https://suarezaaronroy-sys.github.io/library/notes/handoffs-die-here</id><content type="html" xml:base="https://suarezaaronroy-sys.github.io/library/notes/handoffs-die-here/"><![CDATA[<p>Watch where projects actually stall and it’s almost never inside someone’s lane. It’s at the seams — the moment work crosses from one person to the next.</p>

<p>The mechanism is specific: <strong>the artifact passes, the reasoning doesn’t.</strong> A file arrives, a ticket gets reassigned, a thread gets forwarded — but the <em>why</em> stays behind. Why this approach and not the obvious one. What was already tried and failed. Which constraint isn’t written anywhere but shaped every decision. The receiver inherits the output of someone’s thinking with none of the thinking, so they face three options, all bad: start over (waste), guess (risk), or go ask (delay — and now you’re paying the escalation tax on top).</p>

<p>The standard that fixes it fits in one sentence: <strong>a handoff is complete when the receiver can act without asking a question.</strong> Not when the file is sent. Not when the ticket changes owner. When action is possible without a follow-up. Everything required to meet that bar — current state, history, the constraint, the next expected step — travels <em>with</em> the work or the handoff didn’t happen; what happened was a delivery.</p>

<p>In practice this means a handoff template per seam, five lines, filled at the moment of passing: what this is, where it stands, what was tried, what’s decided, what’s next. Thirty seconds for the sender, who has the context loaded; an hour saved for the receiver, who doesn’t. The asymmetry is the whole argument.</p>

<p>One more reason to care now: AI agents inherit your seams exactly as they are, minus the human improvisation that papers over them. An agent receiving a context-free handoff doesn’t walk over to ask — it acts on what it got. The orchestration version of this problem is half of <a href="/library/grimoires/010-orchestration-layer.html">The Orchestration Layer</a>.</p>]]></content><author><name>Aaron Suarez</name><email>suarezaaronroy@gmail.com</email></author><category term="Operations" /><summary type="html"><![CDATA[The artifact passes. The reasoning doesn't. The next person starts over, makes wrong assumptions, or stalls.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/handoffs-die-here.png" /><media:content medium="image" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/handoffs-die-here.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">The Automation Trap: When You Automate a Broken Process.</title><link href="https://suarezaaronroy-sys.github.io/library/notes/automation-trap/" rel="alternate" type="text/html" title="The Automation Trap: When You Automate a Broken Process." /><published>2026-02-28T00:00:00+00:00</published><updated>2026-02-28T00:00:00+00:00</updated><id>https://suarezaaronroy-sys.github.io/library/notes/automation-trap</id><content type="html" xml:base="https://suarezaaronroy-sys.github.io/library/notes/automation-trap/"><![CDATA[<p>The most expensive automation projects I’ve seen all started the same way: a messy manual process, automated exactly as-is. Nobody saw the mess, because humans were quietly absorbing it — catching the duplicate before it mattered, knowing that “urgent” from one client means Tuesday, fixing the malformed entry without mentioning it. Human workflow glue is invisible right up until you remove the humans.</p>

<p>Then the automation ships, and the mess executes at machine speed. Wrong data propagates instantly instead of waiting for someone to notice. Edge cases get handled identically and identically wrong, every time, with total confidence. Errors that a person produced at three per week now arrive at three per minute — and they all look official, because they came from “the system.”</p>

<p>Automation is an amplifier. It has no opinion about what it amplifies. Feed it a clean process and you get reliability at scale; feed it a broken one and you get the same breakage with better throughput and a worse blast radius.</p>

<p>The rule is three words: <strong>fix, then automate.</strong> In practice that means mapping the process as it actually runs — including the workarounds, which are the system’s confessions about where it’s broken — then killing the ambiguity: every exception named, every input validated at the door, every “it depends” converted into a rule or routed to a human. Only then wire it up. The mapping step routinely reveals that half the process shouldn’t exist at all, which is the cheapest automation there is.</p>

<p>And one structural safeguard regardless of how clean you think it is: every automated flow needs an exception path to a person. The cases you didn’t anticipate are the ones automation handles worst — “handles” doing a lot of work in that sentence.</p>

<p>The 25 production patterns — with the idempotency, retries, and dead-letter queues that make amplification safe — are <a href="/library/grimoires/006-automations-101.html">Grimoire 006</a>.</p>]]></content><author><name>Aaron Suarez</name><email>suarezaaronroy@gmail.com</email></author><category term="Operations" /><summary type="html"><![CDATA[Automation amplifies what's already there. If the process is broken, automation breaks it faster and at scale.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/automation-trap.png" /><media:content medium="image" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/automation-trap.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Documentation Nobody Uses Is Just Organized Noise.</title><link href="https://suarezaaronroy-sys.github.io/library/notes/documentation-organized-noise/" rel="alternate" type="text/html" title="Documentation Nobody Uses Is Just Organized Noise." /><published>2026-02-20T00:00:00+00:00</published><updated>2026-02-20T00:00:00+00:00</updated><id>https://suarezaaronroy-sys.github.io/library/notes/documentation-organized-noise</id><content type="html" xml:base="https://suarezaaronroy-sys.github.io/library/notes/documentation-organized-noise/"><![CDATA[<p>The wiki exists. The SOPs exist. Someone spent a whole weekend on the folder structure, and it’s genuinely tidy. And the team still asks the senior person — because asking takes ten seconds and finding takes ten minutes, when it works at all.</p>

<p>This is the part most documentation projects get wrong: they optimize for <em>completeness</em> when the only metric that matters is <em>retrievability at the moment of work</em>. Documentation has exactly one test. When someone is mid-task and stuck, can they reach the right answer faster than interrupting a human? Pass that test and the docs are infrastructure. Fail it and they’re organized noise — accurate, comprehensive, alphabetized, and functionally identical to not existing.</p>

<p>Three failure modes account for most of the noise. <strong>Wrong place:</strong> the answer lives in a knowledge base nobody is inside of when the question occurs; the fix is moving answers into the work surface itself — the CRM field description, the workflow step, the template header. <strong>Wrong moment:</strong> the doc explains everything about the system instead of the one decision the reader is facing; the fix is writing for situations, not subjects. <strong>Wrong trust:</strong> the doc was right once, then the process changed and the doc didn’t, and one stale answer poisons the well — after that, people verify everything with a human anyway, which means the documentation now costs time instead of saving it. The fix is ownership and review dates, same as any other production system.</p>

<p>Write less. Position better. Assign owners. A five-line answer that lives where the question happens beats a forty-page manual that lives where documents go to be archived.</p>

<p>The organizational version of this — what happens to companies whose knowledge can be stored but never retrieved — is Case 11 in <a href="/library/grimoires/011-organizational-physics.html">Organizational Physics</a>: archives are not memory.</p>]]></content><author><name>Aaron Suarez</name><email>suarezaaronroy@gmail.com</email></author><category term="Systems" /><summary type="html"><![CDATA[Most documentation fails not because it's wrong — but because it's not built for the moment someone needs it.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/documentation-organized-noise.png" /><media:content medium="image" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/documentation-organized-noise.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Why Local SEO Beats National for New Businesses.</title><link href="https://suarezaaronroy-sys.github.io/library/notes/local-seo-beats-national/" rel="alternate" type="text/html" title="Why Local SEO Beats National for New Businesses." /><published>2026-02-15T00:00:00+00:00</published><updated>2026-02-15T00:00:00+00:00</updated><id>https://suarezaaronroy-sys.github.io/library/notes/local-seo-beats-national</id><content type="html" xml:base="https://suarezaaronroy-sys.github.io/library/notes/local-seo-beats-national/"><![CDATA[<p>A new rental business will never outrank Rightmove for “flats to rent UK.” Not with great content, not with perfect technical SEO, not in five years. Those terms are owned — permanently — by platforms with millions of indexed pages, decades of accumulated authority, and SEO budgets larger than your revenue. Competing there isn’t ambition; it’s a budget bonfire with a dashboard.</p>

<p>The mechanism worth understanding: search competition isn’t one market, it’s thousands of micro-markets, and the giants are structurally bad at most of them. Rightmove cannot write a genuinely local page about parking permits on one specific street, or which letting agent actually answers the phone in one specific neighborhood. Aggregators aggregate; it’s their whole architecture. Specificity is the one move they can’t follow.</p>

<p>So the realistic path inverts the usual ambition: go where the volume is small and the intent is sharp. “Letting agent [specific neighborhood].” “Landlord compliance [borough].” Street names, local landmarks, the questions only locals ask. Each term might bring ten searches a month — but the searcher is exactly your customer, the competition is often literally nobody, and the conversion rate embarrasses anything a national term would send you. Stack fifty of those pages and you have a channel the platforms can’t take back.</p>

<p>This was the Dual Wing playbook: hyper-local landlord content in one city while competitors chased national keywords they’d never win. Low glamour, compounding results.</p>

<p>The full system — old search fundamentals plus the AI-answer-engine era, with VA-ready SOPs — is <a href="/library/grimoires/008-seo-101.html">Grimoire 008</a>.</p>]]></content><author><name>Aaron Suarez</name><email>suarezaaronroy@gmail.com</email></author><category term="Field Notes" /><summary type="html"><![CDATA[Rightmove and Zoopla own the national terms. The only realistic path for a new business is hyper-local long-tail.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/local-seo-beats-national.png" /><media:content medium="image" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/local-seo-beats-national.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">The Difference Between a Tool and a System.</title><link href="https://suarezaaronroy-sys.github.io/library/notes/system-vs-tool/" rel="alternate" type="text/html" title="The Difference Between a Tool and a System." /><published>2026-02-10T00:00:00+00:00</published><updated>2026-02-10T00:00:00+00:00</updated><id>https://suarezaaronroy-sys.github.io/library/notes/system-vs-tool</id><content type="html" xml:base="https://suarezaaronroy-sys.github.io/library/notes/system-vs-tool/"><![CDATA[<p>A business owner tells me they “have a CRM” the way you’d say you have a gym membership. Technically true. Operationally meaningless.</p>

<p>A tool is capability. A system is capability plus the decisions wrapped around it: who owns each field and what it means, what each pipeline stage requires before a deal may enter it, what fires automatically on every trigger, who gets alerted when something stalls, and who fixes the thing when it drifts — because it will drift. The vendor sells the first part. The second part cannot be bought, because it has to be designed against how <em>your</em> operation actually behaves, including the parts of its behavior nobody admits to.</p>

<p>This is why two companies on identical software get opposite results. One has a tool: a database that reflects whatever people happened to type into it, trusted by no one, updated under duress. The other has a system: an operating model where the software enforces the process, and the process was designed on purpose.</p>

<p>The tell is easy to spot. Ask what happens — automatically, every time — when a lead goes seven days without contact. A tool shrugs. A system answers.</p>

<p>The practical consequence: when an operation is failing, buying a better tool is almost never the fix, because the missing layer was never software. And when someone says “the CRM didn’t work for us,” what usually didn’t work was the set of decisions nobody made.</p>

<p>Buy tools. Build systems. The first is procurement. The second is the actual job.</p>]]></content><author><name>Aaron Suarez</name><email>suarezaaronroy@gmail.com</email></author><category term="Systems" /><summary type="html"><![CDATA[You bought the CRM. You have the tool. You don't have the system. Here's the difference.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/system-vs-tool.png" /><media:content medium="image" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/system-vs-tool.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">CRM Isn’t Just a Database. It’s an Operating System.</title><link href="https://suarezaaronroy-sys.github.io/library/notes/crm-operating-system/" rel="alternate" type="text/html" title="CRM Isn’t Just a Database. It’s an Operating System." /><published>2026-01-25T00:00:00+00:00</published><updated>2026-01-25T00:00:00+00:00</updated><id>https://suarezaaronroy-sys.github.io/library/notes/crm-operating-system</id><content type="html" xml:base="https://suarezaaronroy-sys.github.io/library/notes/crm-operating-system/"><![CDATA[<p>A filing cabinet stores what happened. An operating system decides what happens next. Most CRMs I audit are filing cabinets with subscription fees.</p>

<p>The test is one question: does the data <em>drive behavior</em>? When a deal changes stage, does that fire the follow-up, assign the owner, start the clock, notify the rep — or does it just sit there, a label waiting for someone to remember it means something? When a lead goes quiet, does the system notice, or does noticing depend on whoever happens to scroll past?</p>

<p>In a CRM built as an operating system, the architecture does the managing. The pipeline <em>is</em> the process — stages defined by events, not feelings. The fields <em>are</em> the vocabulary — each one with a single owner writing to it, so the data means one thing instead of three. The automations <em>are</em> the policy — the company’s decisions about follow-up, escalation, and handoff, executing without anyone having to be reminded, in the same way, at 2 p.m. and 2 a.m.</p>

<p>The difference compounds. A filing-cabinet CRM degrades — every week of half-hearted data entry makes it less trusted, and nobody updates what nobody trusts. An operating-system CRM <em>enforces its own accuracy</em>, because the automations only work when the data is right, which makes wrong data immediately visible, which gets it fixed.</p>

<p>The fullest version of this argument is a working build, not a metaphor: 76 fields, 24 automations, lead capture through after-sales, documented end to end as <a href="/library/grimoires/001-asmc-crm-engine.html">Grimoire 001</a>. That system runs a real company. The filing cabinet never did.</p>]]></content><author><name>Aaron Suarez</name><email>suarezaaronroy@gmail.com</email></author><category term="CRM" /><summary type="html"><![CDATA[Most teams use their CRM as a filing cabinet. A well-architected CRM is an operating system for how your team works.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/crm-operating-system.png" /><media:content medium="image" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/crm-operating-system.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Pipeline Stages That Lie to You.</title><link href="https://suarezaaronroy-sys.github.io/library/notes/pipeline-stages-that-lie/" rel="alternate" type="text/html" title="Pipeline Stages That Lie to You." /><published>2026-01-15T00:00:00+00:00</published><updated>2026-01-15T00:00:00+00:00</updated><id>https://suarezaaronroy-sys.github.io/library/notes/pipeline-stages-that-lie</id><content type="html" xml:base="https://suarezaaronroy-sys.github.io/library/notes/pipeline-stages-that-lie/"><![CDATA[<p>Ask three reps what “Proposal Sent” means. You’ll get three answers: <em>I drafted it</em>, <em>I emailed it</em>, and <em>I mentioned pricing on a call and I’m sure I’ll send something this week</em>. All three deals sit in the same column. The forecast built on that column is fiction with a percentage attached.</p>

<p>Stages lie when they describe intentions instead of events. An intention lives in someone’s head, varies by personality, and can’t be audited. An event happened or it didn’t — timestamped, observable, binary. The entire reliability of a pipeline comes down to which of the two your stages are made of.</p>

<p>The fix is definitional, not technical, which is why it never requires new software and always requires an argument. Every stage gets exactly one entry condition, written down, that a stranger could verify: “Proposal Sent” means the document left the building — sent, logged, timestamped. “Qualified” means the four qualification fields are filled, not that the rep has a good feeling. If you can’t write a stage’s entry condition as an observable event, the stage isn’t a stage — it’s a mood, and moods don’t forecast.</p>

<p>Run the cleanup once and two things happen. First, the pipeline gets uglier — deals fall back to where they actually are, and the inflated middle empties out. That’s not damage; that’s the fog lifting. Second, stage changes become automatable, because events can trigger automations and feelings can’t. The lying pipeline couldn’t even be automated honestly — every workflow built on it inherited the lie.</p>

<p>Your CRM is only as truthful as your stage definitions. Define them as events, and the dashboard finally deserves the trust the team keeps refusing to give it.</p>]]></content><author><name>Aaron Suarez</name><email>suarezaaronroy@gmail.com</email></author><category term="CRM" /><summary type="html"><![CDATA[When Proposal Sent means three different things depending on who moved the deal — the stage isn't a stage. It's a conversation.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/pipeline-stages-that-lie.png" /><media:content medium="image" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/pipeline-stages-that-lie.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Reputation Is Written in Small Decisions.</title><link href="https://suarezaaronroy-sys.github.io/library/notes/reputation-in-small-decisions/" rel="alternate" type="text/html" title="Reputation Is Written in Small Decisions." /><published>2025-11-18T00:00:00+00:00</published><updated>2025-11-18T00:00:00+00:00</updated><id>https://suarezaaronroy-sys.github.io/library/notes/reputation-in-small-decisions</id><content type="html" xml:base="https://suarezaaronroy-sys.github.io/library/notes/reputation-in-small-decisions/"><![CDATA[<p>Most people think reputation is built in big moments — landing the major client, launching the product, giving the great presentation. Those matter. But I think reputation actually grows somewhere much quieter: replying when you said you would, naming files consistently, owning mistakes without excuses, following through, writing documentation someone else can actually understand.</p>

<p>Doing the small things well isn’t glamorous. It’s repeatable. And over time those little decisions start telling a story — people begin to predict what it’s like to work with you. That’s what reputation really is. Not what you say about yourself, but what other people quietly expect from you.</p>

<p>The uncomfortable part is that expectations compound, and so do disappointments. A reputation is just the accumulated weight of ordinary days. That’s why I pay more attention to those than to the extraordinary ones. The big moments get remembered, but they’re not where trust is built. Most of it is decided on the days nobody was watching.</p>]]></content><author><name>Aaron Suarez</name><email>suarezaaronroy@gmail.com</email></author><category term="Practice" /><summary type="html"><![CDATA[Most people think reputation is built in big moments. I think it grows somewhere much quieter.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/reputation-in-small-decisions.png" /><media:content medium="image" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/reputation-in-small-decisions.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Preserve the Reasoning, Not Just the Result.</title><link href="https://suarezaaronroy-sys.github.io/library/notes/preserve-the-reasoning/" rel="alternate" type="text/html" title="Preserve the Reasoning, Not Just the Result." /><published>2025-08-19T00:00:00+00:00</published><updated>2025-08-19T00:00:00+00:00</updated><id>https://suarezaaronroy-sys.github.io/library/notes/preserve-the-reasoning</id><content type="html" xml:base="https://suarezaaronroy-sys.github.io/library/notes/preserve-the-reasoning/"><![CDATA[<p>A few years ago, if you’d asked me to explain how I solved a problem, I’d have struggled. Not because I didn’t know — because most of it lived in my head. That’s more common than people admit. We remember the conclusion and forget the path. This library started as a place to store information, and slowly became something else: a place to store reasoning. I wanted somewhere a future version of me could visit and understand not just what happened, but why. The unexpected part is that other people seem to find value in that too — maybe because polished success stories are everywhere and messy thinking isn’t. I’m not trying to build the biggest knowledge base on the internet. I’m trying to build the one I wish existed when I was learning: one that admits uncertainty, shows revisions, keeps mistakes, and leaves enough breadcrumbs that someone else can follow the same trail.</p>

<p>The same instinct shows up when I design a system. A question I keep coming back to is: “if I disappeared for a month, what would break?” It sounds dramatic until you realise it’s a good design question. Every dependency is a clue. If one person has to explain the same process over and over, the system depends on memory. If a spreadsheet only makes sense because its creator remembers the formulas, it depends on a person. If a business stops moving because one employee is on holiday, it isn’t running on process — it’s running on individuals. People will always matter; that’s not the point. The point is to make their knowledge transferable. Documentation, clear naming, consistent process, reasoning written down — those aren’t just productivity habits. They’re acts of preservation. A good system shouldn’t need its creator standing next to it to defend it. It should quietly keep doing its job. That’s when you know you’ve built something larger than yourself.</p>

<p>It’s also changed what I try to write. The internet is full of things designed to be consumed once — read it, like it, forget it. When I write now I ask a different question: would I want to read this again in five years? That reframes everything. Instead of chasing trends I look for principles. Instead of collecting tips I look for patterns. Instead of explaining software I explain reasoning. The goal isn’t viral, it’s durable — something still useful after the tools have changed. That’s the quiet philosophy behind this whole library. Not to publish more. To publish things worth coming back to. If even I find value revisiting these years from now, they’ll have done their job.</p>]]></content><author><name>Aaron Suarez</name><email>suarezaaronroy@gmail.com</email></author><category term="Systems" /><summary type="html"><![CDATA[We remember the conclusion and forget the path. This library exists to store the reasoning, not just the results.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/preserve-the-reasoning.png" /><media:content medium="image" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/preserve-the-reasoning.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Knowledge Is a Moving Horizon.</title><link href="https://suarezaaronroy-sys.github.io/library/notes/knowledge-is-a-moving-horizon/" rel="alternate" type="text/html" title="Knowledge Is a Moving Horizon." /><published>2025-05-13T00:00:00+00:00</published><updated>2025-05-13T00:00:00+00:00</updated><id>https://suarezaaronroy-sys.github.io/library/notes/knowledge-is-a-moving-horizon</id><content type="html" xml:base="https://suarezaaronroy-sys.github.io/library/notes/knowledge-is-a-moving-horizon/"><![CDATA[<p>When I was younger, learning felt like filling an empty room. Every new skill made me feel more knowledgeable. These days it feels more like exploring a map. Every new area I reach reveals three more I haven’t visited. The map keeps expanding — not because I’m lost, but because I’m finally seeing the scale of it. Which is strangely comforting. I don’t feel pressure to know everything anymore; nobody does. I just try to stay near the edges of my understanding, because that’s where the interesting questions live. Knowledge isn’t a destination. It’s a moving horizon — and the more you walk toward it, the further you can see.</p>

<p>Tools are part of how I explore it, which is why “what software do you recommend?” is usually the wrong question. Every tool teaches you something. Business Pilot taught me that pipelines have to mirror reality. GoHighLevel taught me how powerful automation becomes when the underlying process is sound. Xero taught me that accounting is really an exercise in traceability. HTML reminded me that the simplest technologies often have the longest lives. Even the tools I stopped using weren’t wasted — they taught me what I didn’t like, which is sometimes the more valuable lesson. So I’ve stopped hunting for the perfect software and started paying attention to what each tool reveals about the problem it’s trying to solve. Software comes and goes. Patterns stick around. The patterns are what I’m actually trying to learn.</p>

<p>None of this looks impressive from the outside. No promotion, no announcement, no celebration — just that quiet moment when something finally clicks. A workflow suddenly makes sense. A stubborn bug reveals its cause. A business problem that seemed chaotic turns out to have structure. I don’t think we celebrate those moments enough. Understanding changes how you see everything that comes after it, and it’s one of the few things nobody can take away from you. That’s what’s kept me interested in technology — not gadgets, not trends. Understanding. The tools are just excuses to explore bigger ideas. Maybe that’s also why I enjoy writing things down: sometimes I document because I already understand something, but more often I finish documenting because I finally do.</p>]]></content><author><name>Aaron Suarez</name><email>suarezaaronroy@gmail.com</email></author><category term="Practice" /><summary type="html"><![CDATA[Every new area I learn reveals three more I haven't. The map keeps expanding — and that's the part I've come to enjoy.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/knowledge-is-a-moving-horizon.png" /><media:content medium="image" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/knowledge-is-a-moving-horizon.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">The Second Version Is the Real One.</title><link href="https://suarezaaronroy-sys.github.io/library/notes/the-second-version-is-the-real-one/" rel="alternate" type="text/html" title="The Second Version Is the Real One." /><published>2025-02-11T00:00:00+00:00</published><updated>2025-02-11T00:00:00+00:00</updated><id>https://suarezaaronroy-sys.github.io/library/notes/the-second-version-is-the-real-one</id><content type="html" xml:base="https://suarezaaronroy-sys.github.io/library/notes/the-second-version-is-the-real-one/"><![CDATA[<p>The first version of almost everything I build is an experiment. I’m not trying to make it perfect; I’m trying to understand the problem. Version one captures my assumptions. Version two captures what I got wrong. Version three usually looks nothing like version one — and that’s the interesting part.</p>

<p>People judge systems by the final result. I judge them by how much they changed while being built. If nothing changed, I probably wasn’t paying enough attention. Iteration isn’t an admission of failure; it’s evidence that reality taught you something. The first version is your assumptions, the second is your learning, the third starts becoming your experience — and that’s usually the one people assume was obvious all along.</p>

<p>There’s a side effect I’ve made peace with: I’m almost never fully satisfied with anything I’ve built. After a while I stop seeing what a thing <em>is</em> and start seeing what it <em>could become</em>. For a long time I thought that meant I was chasing perfection. Now I think it’s just proof that learning happened. If I looked at something I built two years ago and thought “I wouldn’t change a thing,” I’d be more worried, not less. Growth has a habit of making old work feel unfinished. That’s fine. The old version wasn’t wrong. It was simply built by an earlier version of me.</p>]]></content><author><name>Aaron Suarez</name><email>suarezaaronroy@gmail.com</email></author><category term="Practice" /><summary type="html"><![CDATA[The first version of almost everything I build is an experiment. The second version is where the design actually starts.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/the-second-version-is-the-real-one.png" /><media:content medium="image" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/the-second-version-is-the-real-one.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">The Best Systems Disappear.</title><link href="https://suarezaaronroy-sys.github.io/library/notes/the-best-systems-disappear/" rel="alternate" type="text/html" title="The Best Systems Disappear." /><published>2024-11-19T00:00:00+00:00</published><updated>2024-11-19T00:00:00+00:00</updated><id>https://suarezaaronroy-sys.github.io/library/notes/the-best-systems-disappear</id><content type="html" xml:base="https://suarezaaronroy-sys.github.io/library/notes/the-best-systems-disappear/"><![CDATA[<p>The first automation I built, I wanted everyone to notice. Notifications, dashboards, elaborate workflows. It felt satisfying. Now I have the opposite goal: if someone notices the system, something probably went wrong.</p>

<p>Customers don’t care that an automation sent them a reminder. They care that nobody forgot about them. Staff don’t care how many workflows run behind the scenes. They care that they didn’t have to chase information for half an hour. Good systems don’t ask for attention; they remove friction. It’s true outside software too — roads, electricity, running water. You only notice them when they stop. Business systems aren’t much different. The highest compliment I’ve ever received wasn’t about an automation. It was someone saying, “Oh… it just works.” That’s the whole point. Not to impress people with complexity, but to make complexity disappear.</p>

<p>Which sounds simple, and isn’t. I used to think simple systems were built by simple people. Now I think the opposite. Complexity grows on its own — just keep adding buttons, settings, exceptions. Anyone can make something complicated. Simplicity has to be designed. It’s what’s left after someone spends an unreasonable amount of time removing what isn’t needed. If someone explains a hard idea clearly, there’s a good chance they spent years understanding it. Simple isn’t the absence of complexity. It’s what remains after someone has wrestled with it. That’s why I don’t trust solutions that look clever on day one; the ones that survive are the ones that quietly become obvious in hindsight.</p>

<p>The same instinct shows up in how a thing explains itself. Every project reaches a moment with two choices: add another explanation, or simplify the thing itself. I’ve started preferring the second. Documentation matters — I probably write more of it than most people — but it shouldn’t be an excuse for confusing design. If every new user needs a thirty-minute walkthrough, maybe the system isn’t as intuitive as we think. So wherever I can, I make the interface answer its own questions: good folder names, clear status labels, predictable navigation, consistent terminology. Every tiny decision reduces someone’s cognitive load — and that someone might be me, six months later. The best explanation is often the one you never had to write.</p>]]></content><author><name>Aaron Suarez</name><email>suarezaaronroy@gmail.com</email></author><category term="Systems" /><summary type="html"><![CDATA[The first automation I built, I wanted everyone to notice. Now I have the opposite goal: if someone notices the system, something probably went wrong.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/the-best-systems-disappear.png" /><media:content medium="image" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/the-best-systems-disappear.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Understand Before You Build.</title><link href="https://suarezaaronroy-sys.github.io/library/notes/understand-before-you-build/" rel="alternate" type="text/html" title="Understand Before You Build." /><published>2024-09-17T00:00:00+00:00</published><updated>2024-09-17T00:00:00+00:00</updated><id>https://suarezaaronroy-sys.github.io/library/notes/understand-before-you-build</id><content type="html" xml:base="https://suarezaaronroy-sys.github.io/library/notes/understand-before-you-build/"><![CDATA[<p>When I started working, I was obsessed with answers. The right software, the right workflow, the right way to do a thing. It took me a while to notice that answers have an expiry date and questions don’t. “What’s the best CRM?” is an answer waiting to become obsolete. “What problem am I actually trying to solve?” still works five years from now.</p>

<p>So I started collecting questions instead of answers. What assumption am I making? What changed? What information is missing? What happens if nobody touches this for a year? Is this solving the problem or just treating the symptom? Those questions have saved me more time than any tutorial ever did.</p>

<p>This is also why experienced people often look slower than beginners. Not because they are — because they’re looking at a different problem. A beginner starts building immediately. An expert spends more time asking questions, which looks inefficient right up until you realise they’re preventing work instead of producing it. Someone asks for a solution and expects action; instead they get questions. The questions <em>are</em> the work. Anyone can build quickly. Building the right thing is harder, and experience teaches you that deleting unnecessary work is often more valuable than completing it. Speed is impressive. Precision ages better.</p>

<p>Automation makes this trap easy to fall into, because it’s so satisfying to build. Whenever a business says “we should automate this,” my next question is usually “why do you do it this way in the first place?” Sometimes nobody knows. The process has simply existed for years; people inherited it and nobody questioned it. That’s dangerous, because automation faithfully preserves assumptions — good ones and bad ones. I’ve watched businesses automate duplicate work, unnecessary approvals, confusing communication. None of those problems disappeared. They just happened faster. You end up with a very efficient machine nobody actually needed.</p>

<p>So I’ve become suspicious of any solution that appears too quickly, because quick solutions tend to answer the first problem that showed up instead of the real one. A client asks for automation; maybe they need a better process. Someone wants another report; maybe they don’t trust the data they already have. A team asks for more meetings; maybe the issue isn’t communication, it’s ownership. I’ve learned to ask one more question: “What happens if we don’t do this?” It’s surprising how often that changes the conversation — and how often the best outcome is discovering the original problem never needed solving. Eliminating unnecessary work is still progress.</p>

<p>There’s one last phrase I used to find frustrating and now rely on: “it depends.” I wanted clear rules and checklists. But experienced people don’t say “it depends” to dodge the question — they say it because they’re seeing variables. Different customers, constraints, priorities, risks. Every “it depends” has a pattern hiding underneath it. The goal was never to eliminate judgement; it’s to understand what changes the decision. That’s all a framework really is — not a replacement for thinking, but a way to organise it. So when someone tells me “it depends,” my next question isn’t “on what.” It’s “what are the variables?” That’s usually where the real lesson starts.</p>]]></content><author><name>Aaron Suarez</name><email>suarezaaronroy@gmail.com</email></author><category term="Practice" /><summary type="html"><![CDATA[When someone asks for a solution, my instinct is to understand the problem first. Over time I've realised the questions are often the work.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/understand-before-you-build.png" /><media:content medium="image" url="https://suarezaaronroy-sys.github.io/library/assets/og/notes/understand-before-you-build.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>