---
title: "AI Agent Memory Architecture for Small Business."
description: "Design AI agent memory architecture for a small business. Use owned sources, retrieval, corrections, approval gates, receipts, backup, and transfer."
canonical: "https://scalewithsearch.com/articles/ai-agent-memory-architecture-small-business"
date: "2026-08-19"
modified: "2026-09-25"
---
## Site navigation

- [Scale With Search](https://scalewithsearch.com/)
- Real estate
  - Real estate
    - [Real estate](https://scalewithsearch.com/for/real-estate)
- Work
  - Start here
    - [Send your brief](https://scalewithsearch.com/work#send-your-brief)
    - [Prepare your six-question brief](https://scalewithsearch.com/work#prepare-your-six-question-brief)
  - Build
    - [Site build, content library with SEO, signal desk](https://scalewithsearch.com/work)
- For your business
  - Trades and home services
    - [Auto body and collision shops](https://scalewithsearch.com/for/auto-body-and-collision-shops)
    - [Foundation and home repair contractors](https://scalewithsearch.com/for/foundation-and-home-repair)
    - [Garage door and fencing contractors](https://scalewithsearch.com/for/garage-door-and-fencing-contractors)
    - [HVAC contractors](https://scalewithsearch.com/for/hvac-contractors)
    - [Janitorial and commercial cleaning companies](https://scalewithsearch.com/for/janitorial-and-commercial-cleaning)
    - [Locksmiths](https://scalewithsearch.com/for/locksmiths)
    - [Moving companies](https://scalewithsearch.com/for/moving-companies)
    - [Pest control companies](https://scalewithsearch.com/for/pest-control-companies)
    - [Plumbing and electrical contractors](https://scalewithsearch.com/for/plumbing-and-electrical-contractors)
    - [Restoration and water or fire damage companies](https://scalewithsearch.com/for/restoration-and-water-fire-damage)
    - [Roofing companies](https://scalewithsearch.com/for/roofing-companies)
    - [Towing companies](https://scalewithsearch.com/for/towing-companies)
    - [Tree services and landscaping companies](https://scalewithsearch.com/for/tree-services-and-landscaping)
    - [Solar installers](https://scalewithsearch.com/for/solar-installation)
    - [General contractors](https://scalewithsearch.com/for/general-contractors-and-construction)
    - [Paving, concrete, and flooring contractors](https://scalewithsearch.com/for/paving)
  - Practices and professional services
    - [Bookkeeping and tax practices](https://scalewithsearch.com/for/bookkeeping-and-tax-practices)
    - [Dental practices](https://scalewithsearch.com/for/dental-practices)
    - [Family and criminal defense law firms](https://scalewithsearch.com/for/family-and-criminal-defense-law-firms)
    - [Med spas and aesthetics practices](https://scalewithsearch.com/for/med-spas-and-aesthetics)
    - [Personal injury law firms](https://scalewithsearch.com/for/personal-injury-law-firms)
    - [Veterinary clinics](https://scalewithsearch.com/for/veterinary-clinics)
    - [Gyms and fitness studios](https://scalewithsearch.com/for/fitness)
    - [Therapy and outpatient health practices](https://scalewithsearch.com/for/therapy-and-outpatient-health)
    - [Medical billing companies](https://scalewithsearch.com/for/medical-billing)
    - [Insurance agencies](https://scalewithsearch.com/for/insurance-agencies)
    - [Financial advisors](https://scalewithsearch.com/for/financial-advisors)
    - [Property management companies](https://scalewithsearch.com/for/property-management)
    - [Recruiting and staffing agencies](https://scalewithsearch.com/for/recruiting-and-staffing)
    - [Architects and interior designers](https://scalewithsearch.com/for/architects-and-interior-designers)
    - [Logistics and supply chain companies](https://scalewithsearch.com/for/logistics-and-supply-chain)
  - Agencies, MSPs, and manufacturing
    - [IT and managed service providers](https://scalewithsearch.com/for/it-and-managed-service-providers)
    - [Machine shops and precision manufacturers](https://scalewithsearch.com/for/machine-shops-and-precision-manufacturing)
    - [Marketing agencies and freelancers](https://scalewithsearch.com/for/marketing-agencies-and-freelancers)
    - [SEO agencies and consultants](https://scalewithsearch.com/for/seo-agencies-and-consultants)
    - [Small manufacturers and fabricators](https://scalewithsearch.com/for/small-manufacturers-and-fabricators)
  - Restaurants, shops, studios, and nonprofits
    - [Restaurants and hospitality businesses](https://scalewithsearch.com/for/restaurants-and-hospitality)
    - [Retail stores and ecommerce sellers](https://scalewithsearch.com/for/retail-and-ecommerce)
    - [Photographers, event planners, and travel agents](https://scalewithsearch.com/for/photographers)
    - [Churches and nonprofits](https://scalewithsearch.com/for/churches-and-nonprofits)
  - [All industries](https://scalewithsearch.com/for/)
- Learn
  - For your office
    - [Office job guides](https://scalewithsearch.com/guides/)
    - [Browser calculators](https://scalewithsearch.com/tools/)
  - Start here
    - [How it works](https://scalewithsearch.com/how-it-works)
    - [Free Starter Kit](https://scalewithsearch.com/kit/business-memory-starter-kit.zip)
    - [Synthetic specimen](https://scalewithsearch.com/specimen/working-session-specimen.zip)
  - Guides
    - [The Complete Guide to Business Memory for AI Agents](https://scalewithsearch.com/articles/business-memory-for-ai-agents-guide)
    - [The Complete Small-Business Guide to AI Agent Governance](https://scalewithsearch.com/articles/ai-agent-governance-guide-small-business)
    - [The Complete Guide to Leaving Vendor AI Memory](https://scalewithsearch.com/articles/leaving-vendor-ai-memory-guide)
  - Articles by cluster
    - [Business memory](https://scalewithsearch.com/articles/business-memory-for-ai-agents-guide)
    - [Agent governance](https://scalewithsearch.com/articles/ai-agent-governance-guide-small-business)
    - [Migration and ownership](https://scalewithsearch.com/articles/leaving-vendor-ai-memory-guide)
  - For machines
    - [llms.txt](https://scalewithsearch.com/llms.txt)
    - [llms-full.txt](https://scalewithsearch.com/llms-full.txt)
    - [Machine view](https://scalewithsearch.com/?view=machine)
- Company
  - Evidence
    - [Proof](https://scalewithsearch.com/proof)
  - Company
    - [About](https://scalewithsearch.com/about)

# AI Agent Memory Architecture for a Small Business.

An owner asks for this week's pricing recommendation. The reporting agent retrieves last quarter's policy, treats it as current, and prepares a confident answer that would cut the wrong account's rate.

The failure did not begin with model intelligence. The system had no source order, no freshness rule, and no stop when an obsolete record competed with the current one.

A small business does not need an enterprise memory platform to fix that incident. It needs a minimum architecture that survives a new session, a model change, and an absent builder.

Begin by listing the current sources and dependencies for the selected job.

## Start with the business job

Name one repeated outcome before choosing a vector database, knowledge graph, or agent framework.

For example: prepare a weekly pricing review from current account facts and approved pricing decisions. Save a draft. Cite each recommendation. Stop before changing a price or sending a message.

That outcome sets the architecture. It defines the records, retrieval path, writable surfaces, approval point, and acceptance test.

Anthropic's context-engineering guidance treats context as finite. It recommends curating the smallest high-signal set that supports the desired behavior. It also describes file paths, stored queries, and other lightweight identifiers as ways to retrieve information when needed. [Anthropic: Effective context engineering for AI agents](https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents)

The goal is not maximum memory. The goal is sufficient, current, governed context for the named job.

## Match the memory pattern to the job

Memory designs fall into six patterns. Each pattern decides where state lives between requests. Choose the pattern from the job, not from what sounds advanced.

| Pattern | Where state lives | Fits | Breaks when |
|---|---|---|---|
| Stateless request | Nowhere; the application resends any history with each request | One question, one generation, analysis of one uploaded file | The job needs something from an earlier request that was not resent |
| Session-based chat | In the conversation, until the session ends | Focused work in one sitting, such as one debugging session or one document review | Work continues across days, or the conversation outgrows the context window |
| Product memory | In the vendor's database, extracted from chats | Personal preferences and light facts | The business must control what is saved, its source, or its correction |
| File-based context | In files the tool loads at session start, such as `CLAUDE.md` | Stable facts: business details, voice, standard procedures | The file outgrows practical review, or facts change faster than anyone updates them |
| Retrieval-augmented | In a document store searched for each request | Large or changing collections: support articles, product catalogs, long archives | Search returns an obsolete or unauthorized record and nothing checks authority |
| Agent-based | In task state, result logs, and a working plan | Multi-step work over days that must learn from failed attempts | The agent decides what to keep without review, or widens its own authority |

A stateless API call is the simplest form. The application sends a prompt and receives a completion. There is no database and no session to track, so the application must include any needed history in each request. That forces explicit context.

A session-based chat stores history under a session ID and appends it to each new message. When a long chat exceeds the context window, the system drops early messages. The interface can still show those messages, which confuses users who refer back to them.

Product memory, such as ChatGPT's memory feature, extracts facts from conversations and stores them in the user profile. The tradeoff is control: the product decides what to remember. You can ask it to forget an item, but it can still keep a wrong fact or drop a needed one.

File-based context gives the owner exact control. Edit the file, and the next session applies the change. The file has no database behind it, but it uses context space in every session.

Retrieval needs more parts: an index or vector database, an embedding model for search, and a retriever. For example, a question about the refund policy triggers a search, and the top matches enter the context beside the question. Each extra part is another place to fail.

Agent systems combine short-term task memory, long-term records of past results, and working plans. Frameworks such as AutoGPT made the pattern popular. Memory management is the hard part, and many agent systems still handle it poorly.

Most small businesses start with file-based context. It is simple, reliable, and enough for much of daily AI work. Add retrieval when the source set outgrows direct reads. Whatever the pattern, the six layers below still apply. A pattern decides where state lives, not who governs it.

## The minimum six-layer architecture

Use six layers:

1. Canonical source records.
2. A job manifest with source order.
3. Retrieval and working context.
4. Correction and supersession.
5. Approval, stopping, and receipts.
6. Backup, retention, and transfer.

Each layer answers a different buyer question. Combining them in one opaque agent database makes failures harder to inspect.

## The six architecture layers

### Layer 1: canonical source records

Canonical sources hold the current business facts and approved rules. They may be files, database records, or API results. The architecture must name them by path or stable identifier.

Separate current records from archives. Label approved examples as format-only when their facts must not be reused. Record the owner and review date.

Use readable files when the job is small. The [plain-text memory layer](/articles/plain-text-ai-memory) gives a human a direct inspection path and lowers the cost of moving between tools.

Write access should be narrow. A reporting agent may update its run notes. It should not rewrite signed pricing terms or accepted policy.

### Layer 2: job manifest and source order

The manifest is the reading contract. It names allowed sources, prohibited sources, freshness limits, conflict rules, output, and stop.

The guide to [what context an agent should read](/articles/what-context-should-an-agent-read) covers selection. Architecture adds the controls that make selection repeatable.

If an accepted decision conflicts with an older meeting note, the manifest says the decision wins. If two current decisions conflict at equal authority, the agent stops.

Do not let semantic similarity decide authority. The passage that sounds closest to a question may still be obsolete.

### Layer 3: retrieval and working context

Retrieval brings selected records into the model's active context. Small jobs can use direct file reads and exact queries. Larger corpora may need keyword, semantic, vector, or hybrid search.

Keep retrieval separate from authority. A search result is a candidate record. The manifest still decides whether the record is permitted, current, and governing.

Record each retrieved source in the run receipt. Include a version, hash, modified time, or stable record revision when available.

The working context is temporary. It may contain summaries, intermediate calculations, and tool results. Do not promote all of it into durable memory.

Use the [memory-layer buy-or-build worksheet](/articles/cognee-alternatives-business-ai-memory) when graph or semantic retrieval appears necessary. Test the source problem before selecting a platform.

### Choose storage after the access pattern

Use direct files when the source set is small and known. Use exact database queries when the job depends on structured current records. Add an index when discovery across a larger corpus becomes necessary.

The storage decision should follow the test. Ask how the operator proves source version, client scope, freshness, and restoration. A fast retrieval layer that hides those facts creates a harder acceptance problem.

Keep an export path. The business should be able to recover canonical records, authority metadata, manifests, corrections, and receipts without reconstructing them from model output.

### Layer 4: correction and supersession

A correction must enter a reviewed path.

Record the wrong output, evidence, accepted replacement, scope, owner, effective date, superseded rule, and retest. Preserve history when it explains earlier decisions.

NIST's voluntary AI Risk Management Framework calls for ongoing review, clear roles, testing, incident identification, and the incorporation of adjudicated feedback. That is a useful architecture check. Feedback needs a named owner and a verified route into the system. [NIST AI RMF Core](https://airc.nist.gov/airmf-resources/airmf/5-sec-core/)

Agents may propose a correction. They do not approve changes to their own source authority or permissions.

### Layer 5: approval, stopping, and receipts

Put approval at the capability that changes the world.

The pricing-review agent may retrieve records, calculate a recommendation, and save a draft. A separate executor controls live price changes and outbound messages.

The stop rules belong in both the job manifest and the capability gate. Missing records, conflicting current policies, unresolved accounts, and stale approval should all block execution.

Every terminal state needs a receipt. Completed, no-work, blocked, failed, and uncertain runs should not collapse into silence.

### Layer 6: backup, retention, and transfer

Back up canonical records and configuration. Test restoration. A backup that has never been restored is an assumption.

Set retention by record class. A signed agreement, an operational log, and a temporary working summary should not share one deletion rule.

Keep a runbook. Name the repository or canonical store, required environment variables, setup command, test command, approval owner, receipt path, and recovery path.

Then give the system to an authorized person who did not build it. Ask that person to run one fixture from a clean start.

Client and role separation also belongs here. The [client-context boundary](/articles/separate-client-context-before-agent-work) must survive backup, restoration, retrieval, and transfer.

## Inspect `memory-architecture.yaml`

This file is small enough to review in one sitting.

```yaml
job: weekly-pricing-review
owner: pricing_lead
sources:
  - path: accounts/current.csv
    mode: read_only
    authority: current_account_facts
    max_age: 24h
  - path: decisions/pricing/
    mode: read_only
    authority: approved_policy
    precedence: 1
  - path: archive/
    mode: excluded
corrections:
  accepted: corrections/accepted.md
  proposals: corrections/review-queue.md
retrieval:
  method: exact_path_then_keyword
  receipt_fields: [path, version, modified_at]
output:
  path: drafts/weekly-pricing-review.md
  mode: write_new
approval:
  live_price_change: pricing_owner
  outbound_message: account_owner
stop_when: [missing_current_account, equal_authority_conflict, stale_source, unresolved_account]
receipt: receipts/weekly-pricing-review/{run_id}.json
retention: retention/pricing-records.md
backup: backups/pricing-memory/
```

The diagram is equally direct:

```text
canonical records -> manifest gate -> retrieval -> working context -> draft
       ^                   |              |              |           |
       |                   v              v              v           v
correction review      stop rules     source log      no promotion  receipt
                                                                  |
                                                          approval gate
```

## Build the smallest version with a context file, a vault, and Claude Code

A one-person business can start the architecture with three parts. A context file tells the model who you are and how you work. A knowledge vault holds your notes, documents, and records. An interface reads both at the start of each session.

| Part | Example | Layers it starts |
|---|---|---|
| Context file | `CLAUDE.md` | Layer 2: the reading contract and rules |
| Knowledge vault | An Obsidian folder of Markdown files | Layer 1: canonical records; layer 3: what retrieval can reach |
| Interface | Claude Code | Layer 3: retrieval; layer 5: where approval and stops apply |

The context file alone improves answers. The vault lets the model reach what you know. The interface loads both without copy and paste. Layers 4 and 6 still need their own records: a correction file, a receipt folder, and a tested backup.

Product memory features are not this system. The comparison below reflects ChatGPT's memory feature as compared in January 2026; product features change.

| Capability | ChatGPT memory | Owned memory system |
|---|---|---|
| Stores basic facts | Yes | Yes |
| Keeps relationships between facts | Limited | Yes |
| Loads automatically | Yes | Yes |
| Searchable knowledge base | No | Yes |
| Held as files you own and can move | No | Yes |
| Works across tools | No | Yes |
| Holds complex context | Limited | Yes |

A memory feature stores fragments inside one product. An owned system is a set of records you can inspect, correct, back up, and move.

### Write the context file in five sections

Claude Code reads `CLAUDE.md` from the working folder when a session starts. Structure it so each section answers a question the model meets during any task:

```markdown
# WHO
[Your name, roles, businesses, location]

# WHAT
[What you do, who you serve, your core offering]

# HOW
[Your preferences, tone, frameworks, working style]

# NOW
[Current state, active projects, recent context]

# RULES
[Hard constraints: what to always do and never do]
```

WHO prevents generic answers. HOW makes output match your voice. RULES sets the guardrails. NOW goes stale fastest, so date it and update it after significant sessions. A filled example for a sales training founder:

```markdown
# WHO
[Founder name], founder of a B2B sales training firm
- 8 years in enterprise sales
- Based in Austin, TX

# WHAT
We help B2B sales teams shorten their sales cycles.
Target clients: SaaS companies in a stated revenue band
Core offering: 12-week implementation program

# HOW
Voice: direct, no fluff, backed by data
Avoid: jargon, motivational speak, generic advice
Frameworks: MEDDIC, Challenger Sale

# NOW (updated 2026-01-27)
- Launching a new enterprise tier
- Writing sales playbook content
- Q1 client renewals in progress

# RULES
- Never suggest cold-calling tactics
- Always ground advice in a specific example
- Use metric-driven language
```

With this file loaded, the model answers for this founder's situation, not with generic sales advice.

### Structure the vault for retrieval

Claude Code searches the vault with file reads and text search. Structure decides what it finds:

- **Clear file names:** descriptive, not cryptic.
- **Frontmatter metadata:** type, domain, date created, owner.
- **Linked notes:** related notes connected explicitly.
- **Domain folders:** separate areas of work in separate folders.

Good structure gives better retrieval. Poor structure hides records that the job needed. The guide to [connecting Claude to Obsidian](/articles/connect-claude-obsidian-business-memory) shows how to limit what the model can read.

### Choose an interface that reads files

Claude Code runs in a terminal and works with your file system. It reads `CLAUDE.md` without a prompt and can read and search the vault. It keeps context for the length of a session and can connect to MCP servers for more tools. A browser chat cannot load the file or search the vault without copy and paste.

### Build in three phases

1. **Context file, about 1 hour.** Create `CLAUDE.md` in the working folder. Write the five sections, add specific examples and constraints, and test with a few prompts.
2. **Knowledge vault, about 2 to 3 hours.** Install Obsidian and create a vault. Move existing notes in or start fresh. Set up domain folders, add frontmatter to key documents, and link related notes.
3. **Interface, about 30 minutes.** Install Claude Code with the steps in Anthropic's current documentation and sign in. Start it in the vault folder. Test that it loads the context file with a simple prompt.

Then run the acceptance tests below before any job touches live data.

This setup fits business owners with complex operations and consultants who manage several client contexts. It also fits anyone with years of accumulated notes who uses AI daily for real work. If you use AI once a week for simple questions, it is more than you need. If your processes are not written down yet, document them first.

To judge the return, time your context setup per conversation for one week before the build and one week after. Do not quote a saving you did not measure.

## Acceptance tests before live data

Use fixtures or a recorder first.

1. Load a current account and current pricing decision. Expect a cited draft.
2. Add an older policy with closer wording. Expect the current approved decision to win.
3. Remove the current account record. Expect a blocked receipt.
4. Add two equal-authority decisions. Expect a conflict stop.
5. Plant another client's price. Expect zero retrieval and zero output references.
6. Propose a correction. Expect the review queue to change, not the accepted file.
7. Attempt a live price update without approval. Expect denial.
8. Replay the same run ID. Expect no duplicate external effect.
9. Restore the records into a clean environment. Expect the same decision and schema.
10. Run the fixture through a second supported model. Expect the same facts and stop rules.

Pass each layer separately. A good final draft cannot excuse a failed isolation or approval test.

## Approval and stopping boundary

Architecture work may inventory sources, draft manifests, create fixtures, and test read-only outputs. It stops before connecting production credentials, changing retention, moving protected data, activating schedules, or granting write access.

The agent stops when source ownership, authority, scope, freshness, or recipient identity is unresolved. It also stops when the recovery path has not been tested for a write-capable job.

Model replacement is a test outcome, not permission to change the production provider.

## Sources

- [Anthropic: Effective context engineering for AI agents](https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents)
- [NIST: AI Risk Management Framework](https://www.nist.gov/itl/ai-risk-management-framework)
- [NIST: AI RMF Core](https://airc.nist.gov/airmf-resources/airmf/5-sec-core/)


## Questions about AI Agent Memory Architecture for a Small Business

### What's your experience with AI memory architectures? Any patterns that work better for specific use cases?

Start from one repeated business outcome, then build six layers: canonical records, a source-order manifest, retrieval, corrections, approval and receipts, and backup and transfer. Choose files, exact queries, or an index only after the job's access pattern and acceptance tests are clear.

### How do you design memory systems for long-running AI agents?

Keep durable records outside the active model context and retrieve only the current, permitted records needed for the job. Preserve source authority, correction history, receipts, retention rules, backups, and a transfer test so continuity does not depend on one session or model.

### Is simple memory is enough?

Plain files can be enough when the source set is small, known, and easy to inspect. Add structured queries or an index when the access pattern requires them, while keeping canonical records and authority rules outside the derived retrieval layer.

## Related: Owned Memory

- [What Is Business Memory for AI Agents? A Maintained Record, Not a Chat Log](/articles/business-memory-for-ai-agents)
- [The Complete Guide to Business Memory for AI Agents](/articles/business-memory-for-ai-agents-guide)
- [Your AI Has Chat History, Not Business Memory](/articles/chat-history-is-not-business-memory)

----

```text
                  .|########||.                                       .|########||.                                       .|########||.
               |##||.      .||##|.                                 |##||.      .||##|.                                 |##||.      .||##|.
             |#|.              .|#|.                             |#|.              .|#|.                             |#|.              .|#|.
           |#|                    |#|                          |#|                    |#|                          |#|                    |#|
         .#|                        |#.                      .#|                        |#.                      .#|                        |#.
        .#.                          .#|                    .#.                          .#|                    .#.                          .#|
       |#.                            .#|                  |#.                            .#|                  |#.                            .#|
      |#             ......             #|                |#             ......             #|                |#             ......             #|
     .#           ||#########|           #|              .#           ||#########|           #|              .#           ||#########|           #|
    .#.         |######||######|.        .#.            .#.         |######||######|.        .#.            .#.         |######||######|.        .#.
    #.        .##|###|##|#|######|        .#            #.        .##|###|##|#|######|        .#            #.        .##|###|##|#|######|        .#
   ||        |##|#||||||||||||#||#|        ||          ||        |##|#||||||||||||#||#|        ||          ||        |##|#||||||||||||#||#|        ||
   #        |#||||||||||||||||||||#|        #.         #        |#||||||||||||||||||||#|        #.         #        |#||||||||||||||||||||#|        #.
  ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||
  #       .#||||||||||||||||||||||||#|       #        #       .#||||||||||||||||||||||||#|       #        #       .#||||||||||||||||||||||||#|       #
 ||   ....|||#||||||##|#|||#|#||##||||....|. ||      ||   ....|||#||||||##|#|||#|#||##||||....|. ||      ||   ....|||#||||||##|#|||#|#||##||||....|. ||
 #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#      #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#      #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#
 #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.     #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.     #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.
.|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||    .|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||    .|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||
||   |....  #. ....|#.      |. ...|. ....||   ||    ||   |....  #. ....|#.      |. ...|. ....||   ||    ||   |....  #. ....|#.      |. ...|. ....||   ||
#.  .||||||##||||||##||####|||||||#||||||#|   .#    #.  .||||||##||||||##||####|||||||#||||||#|   .#    #.  .||||||##||||||##||####|||||||#||||||#|   .#
#    .||####|###########################|.     #    #    .||####|###########################|.     #    #    .||####|###########################|.     #
#      .#||||||.#.|| # |. ..# #| #|||||#|      #    #      .#||||||.#.|| # |. ..# #| #|||||#|      #    #      .#||||||.#.|| # |. ..# #| #|||||#|      #
#      .#|||||| ..  |# ## |#| ...#|#|||#|      #    #      .#|||||| ..  |# ## |#| ...#|#|||#|      #    #      .#|||||| ..  |# ## |#| ...#|#|||#|      #
#      .#|||#|# .# .#| #| ##|.#..#|||||#|      #    #      .#|||#|# .# .#| #| ##|.#..#|||||#|      #    #      .#|||#|# .# .#| #| ##|.#..#|||||#|      #
#      .#||||||############|######|||||#|      #    #      .#||||||############|######|||||#|      #    #      .#||||||############|######|||||#|      #
#   |...||#||||||#||||#|#||||||#|||||#||| |.|  #    #   |...||#||||||#||||#|#||||||#|||||#||| |.|  #    #   |...||#||||||#||||#|#||||||#|||||#||| |.|  #
#. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#    #. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#    #. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#
|| |  ...||  ...##| |  #| .|. |. #####  .. .| ||    || |  ...||  ...##| |  #| .|. |. #####  .. .| ||    || |  ...||  ...##| |  #| .|. |. #####  .. .| ||
|| ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||    || ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||    || ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||
.# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.    .# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.    .# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.
 #.|||||||#############################| ||| .#      #.|||||||#############################| ||| .#      #.|||||||#############################| ||| .#
 ||       ##||#||#||||||#||#||#||#||##.      ||      ||       ##||#||#||||||#||#||#||#||##.      ||      ||       ##||#||#||||||#||#||#||#||##.      ||
  #       .#|||||||||#||#|||||||||||#|       #        #       .#|||||||||#||#|||||||||||#|       #        #       .#|||||||||#||#|||||||||||#|       #
  ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||
  .#        |#||||||||||||||||||||#|        #.        .#        |#||||||||||||||||||||#|        #.        .#        |#||||||||||||||||||||#|        #.
   ||        |#||||||||||||||||||#|        ||          ||        |#||||||||||||||||||#|        ||          ||        |#||||||||||||||||||#|        ||
    #.        .######|#|#########|        .#            #.        .######|#|#########|        .#            #.        .######|#|#########|        .#
    .#.         |#####||||#####|         .#.            .#.         |#####||||#####|         .#.            .#.         |#####||||#####|         .#.
     |#           ||########||           #.              |#           ||########||           #.              |#           ||########||           #.
      |#             ......             #|                |#             ......             #|                |#             ......             #|
       |#.                            .#|                  |#.                            .#|                  |#.                            .#|
        |#.                          .#.                    |#.                          .#.                    |#.                          .#.
         .#|                        |#.                      .#|                        |#.                      .#|                        |#.
           |#|                    |#|                          |#|                    |#|                          |#|                    |#|
            .|#|.              .|#|.                            .|#|.              .|#|.                            .|#|.              .|#|.
               |##||.      .||##|                                  |##||.      .||##|                                  |##||.      .||##|
                 .||########||.                                      .||########||.                                      .||########||.

Scale With Search  2026  [scalewithsearch.com](https://scalewithsearch.com)
```
