Demand File · Platform preview
APG The Demand File
← Back to File
House board Public Shop OS Start this File
HouseOperator file

Revenue · House · Shop OS

A shop OS you own

The problem The business lives in a CRM, a chat, and someone's head. Nothing compounds. Every week you start over. You are renting tools. You do not have a platform.

Does You stand up one platform for your shop. First room: recorded calls land, stay raw, get a structured page, and feed objections, reports, and the next asset. You can run that room from a folder tomorrow. Later the platform pulls new work at night and writes the monthly backlog.

Achieve The shop has a system that gets smarter. Next month's assets come from last month's real work. You own it.

Fit Agency, advisory, B2B. You want your own OS, not another chat. You have work (calls, jobs) that should compound.

Unfit A local shop that only needs the calendar full. That is Ugly ads or Recover. Or someone who will not write the first room down.

The File

Stand up a shop OS. First room is the work you already do.

The problem

The business lives in a CRM, a chat, and someone's head. Nothing compounds. Every week you start over. You are renting tools. You do not have a platform.

Once it is in

One platform for the shop. First room: recorded calls land, stay raw, get a structured page, and feed objections, reports, and the next asset. You can run that room from a folder tomorrow.

What a good month looks like

The shop has a platform folder. Room one is live. One recurring pattern became an asset. Next month starts from this month's file.

Once it is installed

  1. 01

    Name the platform. One folder. That is the shop OS.

    desktop first
  2. 02

    Open room one: inbound work (calls). Raw never gets edited.

    room one
  3. 03

    Every item gets a structured page the platform can reuse.

    by hand today
  4. 04

    Knowledge rooms fill: objections, outcomes, language, next steps. Every line has a source.

    source every claim
  5. 05

    The platform writes a daily pulse and a monthly backlog.

    pulse · backlog
  6. 06

    Recurring patterns must ship an asset (email, slide, VSL). The platform is not a graveyard.

    email · slide · VSL
  7. 07

    Later rooms (ads, delivery, content) plug into the same tree. Same rules.

    same tree

The picture

What you get: a shop OS you own.

Not a chat. Not a CRM. One system of record that compounds. Tools plug in. They do not own the record.

One tree

One folder is the shop OS. Rooms live inside it. You name it. You own it.

Rooms

Each room is a kind of work. Room one is inbound work (calls). Later: ads, delivery, content.

Raw vs structured

Raw never gets edited. Every item gets a page the platform can reuse.

Source every claim

Every line in knowledge has a source: the item, the date, the exact words.

Assets must move

A list that sits there is a graveyard. Recurring patterns ship an email, a slide, or a VSL.

The journey

Start here
The platform folder shop OS · desktop first
Fathom or any notetaker room one intake · not the platform
02

Open room one: inbound work

A recorded call is the first work that lands. Copy the transcript or download the text. Save it in rooms/calls/raw/. Raw never gets edited. Fathom is intake. The folder is the platform. Later: API key in a .env. Not today.

You export or copy Bot later API key, .env
Structured page on this page · copy-paste phrases
After every item
03

Write the structured page

Every item in room one gets a page the platform can reuse. What they want. Why they hesitate. Exact lines. Next step. You copy-paste their phrases. Bot later: structured output into the same fields.

You fill the template Bot later structured output

Fields

Outcome · criteria · hesitation · exact quotes · stakeholders · next step

Rule

Copy their words. Do not clean them up. The asset later needs the real line.

The lock

No API? You still fill the page. The platform is the same folder.

Knowledge rooms exact language · source · date
04

Fill the knowledge rooms

Objections, outcomes, language, next steps. Add one line. Date, call, stage, the exact quote, a theme. Every line has a source. You paste. Bot later: merge new lines. Never overwrite raw. Never delete an old line.

You paste the line Bot later merge, never overwrite raw
Daily pulse 5 lines · next morning
05

Daily pulse, or next morning

If room one took work, one new structured page is already in the folder. Write five lines: items in, new knowledge, themes, next steps owed, asset moved Y/N. Bot later: a nightly scheduled task. Same outline.

You 5 lines Bot later nightly scheduled task
Monthly backlog + one asset pick #1 · ship one file
06

Monthly backlog, then ship one asset

Rank recurring patterns by frequency, stage, buyer type, pipeline value. What appeared, disappeared, increased. Pick #1. Write the email, slide, or VSL from the template. Bot later: a first-of-month job writes the prompt pack. The platform is not a graveyard. An asset must move.

You pick #1, write the asset Bot later first-of-month job
File log · later rooms items in · knowledge · assets
Done

The File is closed

The shop has a platform folder, room one is live, and one recurring pattern became an asset. Not a smarter chat.

Guide

Stand up the platform

This is the how-to. Stand up the folder. Open room one. You do not need Codex. You do not need an API. First rungs are by hand. AI is a later rung. Paid installer is last.

Fit gate

  • If you are agency, advisory, or B2B, you want your own OS, and you have work (calls, jobs) that should compound, stay.
  • If you are a local shop that only needs the calendar full, stop. Open Ugly ads that book the town, or Recover the job they turn down.
  • If you will not write the first room down, stop. A chat will not be the platform next month.

The lock · you can do this today

You can stand the platform up as a folder tree and run room one by hand. No Codex. No API. No agent. You still get the result. APIs, scheduled jobs, and agents are later rungs. Paid installer is last.

  • Name the platform. Create the folder tree on the desktop. Exact names below.
  • Open room one. Export or copy the transcript from Fathom (or any notetaker). No API required to start. Fathom is intake. The folder is the platform.
  • After every item: fill the structured page by hand. Copy-paste exact phrases.
  • Add the line to the knowledge room with the source and the date. Every line has a source.
  • Next morning: one new structured page if room one took work. Write the five-line daily pulse.
  • First of the month: rank the list. Pick the #1 recurring pattern. Ship ONE asset (email, slide, or VSL). The platform is not a graveyard.
  • Later: Fathom API + a model API + a .env + scheduled nightly and monthly tasks. Same files. Same names. Then an installer.

You = login / 2FA / pay when a tool needs it. The rest is the platform.

Tools in order

  1. The platform folder (desktop first)
  2. Room one intake: Fathom or any notetaker (export / copy)
  3. Structured page (on this page)
  4. Knowledge rooms
  5. Daily pulse · next morning
  6. Monthly backlog + one asset
  7. File log
  8. Later: .env, Fathom API, model API, scheduled tasks, then an installer

Fathom is a room's intake, not the platform. The folder is the platform. A model, Codex, or Grok Bot can walk the same folder later. A chat is not a tool on this list. A chat can run a skill. It does not hold the system of record. No Cal.com. No GHL sales calendar. Sales books stay on iClosed if they book sits. No funding.

Folder tree · the platform

Name the platform. The File uses shop-os/ so the names stay exact. Create this on the desktop today. Do not rename the rooms until a month has run.

shop-os/
  rooms/calls/raw/
  rooms/calls/enriched/
  knowledge/objections.md
  knowledge/outcomes.md
  knowledge/criteria.md
  knowledge/winning-language.md
  knowledge/stakeholders.md
  knowledge/risks.md
  knowledge/stages.md
  knowledge/next-steps.md
  reports/daily/
  reports/monthly/
  prompts/
  MEMORY.md
  AGENTS.md

This is the platform. Room one lives at rooms/calls/. Raw is immutable. You drop the transcript in. You never edit it. Enriched is one structured page per item. Knowledge is the living list. Every line has a source. Reports are the daily pulse and the monthly backlog. Prompts hold the one-shot VSL, deck, email, and content prompts. MEMORY.md gets a line only when a pattern repeats. AGENTS.md gets a line only when a rule actually changes.

Next rooms · map only

Do not build these today. They plug into the same tree later. Same rules: raw vs structured, source every claim, assets must move.

Room one · live

Calls. Inbound work you already do. Built on this File.

Ads · later

Spend, hooks, winners. Same tree. Same rules. Not built here.

Delivery · later

Jobs, handoff, the work after the yes. Same tree. Not built here.

Content · later

Pages, posts, the public file. Same tree. Not built here.

If the work is repo and ops folders for an agency, that is a sibling File: The agency in a folder. This File is the shop OS. That File is the agency OS.

Room one intake · no API

  1. Open Fathom in the browser (or your notetaker). You: login / 2FA if it asks. Fathom is intake. It is not the platform.
  2. Open the call you just ran.
  3. Copy the transcript, or download the text export.
  4. Save it as rooms/calls/raw/YYYY-MM-DD-company-person.md. Example: 2026-08-12-acme-jordan.md.
  5. Do not edit that file after you save it. If you need a clean version, that is the structured page, not raw.

Any notetaker works the same way. Export or copy. Drop it in raw. The platform does not care which app recorded it. Human: the filename is the date plus the name, so you do not drop the same export twice. Bot later: track IDs in processed.json.

Room one · structured page

Every item gets a page the platform can reuse. Copy into rooms/calls/enriched/YYYY-MM-DD-company-person.md. Fill the brackets. Copy-paste exact phrases. Do not polish their English.

Blank

Date: [YYYY-MM-DD]
Call: [company] / [person] / [title]
Stage: [discovery / demo / proposal / close / other]
Buyer type: [founder / operator / finance / other]
Desired outcome (their words): "[ ]"
Buying criteria (their words): "[ ]"
Why they hesitate: "[ ]"
Exact lines (copy-paste, 2 to 5 quotes):
1. "[ ]"
2. "[ ]"
3. "[ ]"
Stakeholders named: [name · role]
Risks they named: "[ ]"
Next step: [what, by when]
Asset this call should move, if any: [email / slide / VSL / none]

Filled example

Date: 2026-08-12
Call: Acme / Jordan / VP Ops
Stage: discovery
Buyer type: operator
Desired outcome (their words): "Get the Friday forecast out without me in the room."
Buying criteria (their words): "It has to live in the files we already have. I will not log into another dashboard."
Why they hesitate: "We already have a CRM. I do not want another tool."
Exact lines:
1. "We already have a CRM. I do not want another dashboard."
2. "If I take Friday off the forecast dies."
3. "Show me the page, not a login."
Stakeholders named: Jordan · VP Ops. Priya · founder (signs).
Risks they named: "If this is another login, my team will ignore it."
Next step: Send one page that shows last Friday’s report from a file. By Thursday.
Asset this call should move, if any: none yet. Log the objection. Wait for a repeat.

After you fill it, lift the exact quotes into the knowledge files they belong in: outcomes, criteria, winning language, stakeholders, risks, stages, next steps. One or two lines each. Do not rewrite the call into a novel.

Knowledge line format · objections

Append one line to knowledge/objections.md. Newest at the bottom. Never delete an old line. Never overwrite raw.

Format

date | call | stage | exact quote | theme

Examples

2026-08-12 | acme-jordan | discovery | "We already have a CRM. I do not want another dashboard." | another-tool
2026-08-19 | northside-lee | demo | "If I take Friday off the forecast dies." | founder-in-the-room
2026-08-26 | acme-jordan | proposal | "Show me the page, not a login." | another-tool

Theme is a short tag you reuse. That is how you see a repeat. Two lines with the same theme is a pattern. One line is a one-off. A one-off does not go in MEMORY.md.

Knowledge rooms · one line each, their words

What goes where

  • outcomes.md · what they said they want. Quote. Source call. Date.
  • criteria.md · how they said they will decide.
  • winning-language.md · a line they leaned into. Keep it exact.
  • stakeholders.md · name, role, what they own on the deal.
  • risks.md · the fear they named.
  • stages.md · where this account is, in your words, one line.
  • next-steps.md · the promised next move and the date.

Line format (same idea as objections)

date | call | quote or fact | note

MEMORY.md and AGENTS.md

  • MEMORY.md: a line only when a pattern repeats (same theme on 2 or more calls). A one-off does not get promoted.
  • AGENTS.md: operating rules. Only edit when a rule actually changes. Example first lines you can paste:

AGENTS.md · start with these

Never overwrite files in rooms/calls/raw/.
Never dump the platform into one chat as the system of record.
Never promote a one-off into MEMORY.md.
Every recurring pattern must ship an asset. The platform is not a graveyard.
Later rooms plug into the same tree. Same rules.
Only process work we are allowed to send to a model.

MEMORY.md · example after a repeat

2026-08-26 · another-tool · two calls (acme-jordan discovery, acme-jordan proposal) · they will not take another dashboard. Next asset must be a page, not a login.

Daily pulse · 5 lines

Save as reports/daily/YYYY-MM-DD.md. Next morning is fine. If room one took no work, write "no item" and stop.

Five lines

1. Calls in: [count · names]
2. New objection lines: [count · themes]
3. Themes that showed up: [ ]
4. Next steps owed: [ ]
5. Asset moved: yes / no · [file name or none]

Monthly backlog · first of the month

Save as reports/monthly/YYYY-MM.md. Rank the knowledge list. Then pick #1 and ship one asset. The report is the backlog. It is not the result. The asset is the result. The platform is not a graveyard.

Outline

Month: [YYYY-MM]
Calls in this month: [ ]
Rank by frequency: [theme · count]
Rank by stage: [theme · stage it hits]
Rank by buyer type: [theme · founder / operator / finance]
Pipeline value if you track it: [theme · $ or deal count]
Appeared this month: [themes that are new]
Disappeared: [themes that went quiet]
Increased: [themes that grew]
#1 pick: [theme · exact quote we will answer]
Asset updated: [email / slide / VSL / case study / content] · [file name]
Sourced to: [call filenames and dates]

Asset update rule

Top objection becomes one of: a VSL prompt, a deck slide, a case study, a sales email, or a content piece. Pick one. Write it from the template. Save it in prompts/ or wherever the live asset lives, and log the path.

Sales email

Objection we are answering: [exact quote]
Source calls: [filenames · dates]
Subject: [one line, their words if you can]
Body: name the hesitation in their language. Answer it in one page. One next step. No extra offer.

Deck slide

Slide title: [their hesitation, shortened]
One sentence: [the answer, in their words]
Proof we can name: [a call, a result, a page]
What this slide replaces: [the slide that did not answer it]

VSL prompt

Open with the exact quote. Do not clean it up.
Then: the outcome they named. Then: the one page or move that answers the hesitation.
Length: 60 to 90 seconds. No new claim. CTA is the next sit or the next file you will send.
Source calls: [filenames · dates]

Case study / content

The hesitation: [exact quote]
Who said it: [role, not a secret name if you cannot use it]
What we did: [one move]
What changed: [one line]
Do not invent a number. If you do not have proof, write the email or the slide instead.

Every recurring pattern must ship an asset. A list that sits there is a graveyard. The platform is not done until an asset moved.

processed.json · do not duplicate raw

Human path: the filename is the date plus the name. Look in rooms/calls/raw/ before you save. If 2026-08-12-acme-jordan.md is already there, do not drop it again.

Bot path: keep a small index so a nightly pull does not write the same meeting twice.

{
  "raw_files": ["2026-08-12-acme-jordan.md"],
  "meeting_ids": []
}

Bot may add meeting IDs when the API is on. Human can ignore this file. Never use it as a reason to edit raw.

Keys, later · security in plain words

  • If you later use keys, put them in a file named .env at the root of the platform folder (shop-os/).
  • Add .env to .gitignore so it never goes to GitHub.
  • Never paste keys into a chat. Never paste keys into a File on this site. Never put a key in MEMORY.md, AGENTS.md, or an enrich page.
  • Only process calls you are allowed to send to a model. If the buyer did not agree, or your shop does not allow it, keep that transcript in raw and enrich it by hand. Do not send it out.

.env · later, not today

FATHOM_API_KEY=
MODEL_API_KEY=

.gitignore

.env
.env.*
!.env.example

A .env is a small local file that holds secrets. Your computer reads it. A chat should never see it. You do not need this file to run the month by hand.

Later rung · API, .env, scheduled tasks

Do this after the platform and room one have run by hand. Same folder. Same names. The human path stays the source of truth. First rungs are stand up the platform and run room one. Later: Fathom API, a model API, a .env, nightly and monthly scheduled tasks, then an installer.

  1. You: Fathom login / 2FA. Open User Settings, then API Access. Generate a key. Put it in .env as FATHOM_API_KEY. Do not paste the key into a chat.
  2. Same for the model you want to use. MODEL_API_KEY in the same .env.
  3. Fathom lists meetings at https://api.fathom.ai/external/v1/meetings with header X-Api-Key. Pull new calls. Write new files into rooms/calls/raw/ only if the meeting ID is not in processed.json. Never overwrite a raw file that is already there.
  4. Schedule the nightly prompt (below) in Codex, Grok Bot, or Claude. Same for the first-of-month prompt.

Nightly prompt · paste into Codex / Grok Bot / Claude

You are walking the shop platform tonight. The folder shop-os/ is the system of record. A chat is not. Fathom is intake. The folder is the platform.

1. Pull new calls. If I dropped files in rooms/calls/raw/, use those. If a Fathom API key is in .env, list meetings and write any new transcript into rooms/calls/raw/YYYY-MM-DD-company-person.md. Skip any meeting ID or filename already in processed.json. Never overwrite rooms/calls/raw/.
2. For each new raw file, write one enrich file in rooms/calls/enriched/ using the structured page template (date, call, stage, buyer type, desired outcome, criteria, hesitation, exact quotes, stakeholders, risks, next step, asset to move). Copy exact phrases. Do not polish.
3. Append new lines to knowledge/objections.md in this format: date | call | stage | exact quote | theme. Merge only. Never delete an old line. Never overwrite raw.
4. Add one or two lines to the other knowledge files when the call named an outcome, criterion, stakeholder, risk, stage, or next step.
5. Write reports/daily/YYYY-MM-DD.md in five lines: calls in, new objection lines, themes, next steps owed, asset moved Y/N.
6. MEMORY.md only if a theme now appears on 2 or more calls. A one-off does not go in. AGENTS.md only if a rule actually changed.
7. Update processed.json with the new filenames and meeting IDs.
8. Write the File log row: calls in, objections added, assets updated.

Only process calls we are allowed to send to a model. If a call is not allowed, leave it in raw and stop. Do not invent an asset tonight. Assets move on the first of the month unless I name one now. No funding. No Cal.com. Do not put sales on a GHL calendar.

First-of-month prompt · paste into Codex / Grok Bot / Claude

You are closing last month on the shop platform. The folder is the system of record. The platform is not a graveyard.

1. Read knowledge/objections.md and the daily reports. Rank objections by frequency, stage, buyer type, and pipeline value if we tracked it. Note what appeared, disappeared, and increased.
2. Write reports/monthly/YYYY-MM.md from the monthly outline on the File.
3. Pick the #1 recurring objection. If nothing repeated, say so and stop. Do not promote a one-off.
4. Write ONE asset into prompts/ from the matching template: VSL prompt, deck slide, case study, sales email, or content. Use the exact buyer quote. Source the call filenames and dates.
5. The job is not done until that asset file exists. A ranked list is not the result.
6. Update the File log: asset name, objection theme, source calls.

Do not overwrite raw. Do not dump the month into one chat as the record. Do not invent proof. No funding. No Cal.com. Sales books stay on iClosed.

Numbered run

  1. Name the platform. You: create the folders on the desktop from the exact names. That is the shop OS. Bot later: scaffold. Do not live in a ChatGPT project as the system of record.
    You create the foldersBot later scaffolds
  2. Open room one. You: open Fathom or any notetaker, export or copy, save in rooms/calls/raw/ as date-plus-name. Raw never gets edited. Fathom is intake. Later: API key in a .env.
    You download or copyBot later API key, .env
  3. Write the structured page from the template on this page. You: fill it. Copy-paste exact phrases. Bot later: structured output into the same fields.
    You fill the templateBot later structured output
  4. Fill the knowledge rooms. You: paste date | call | stage | exact quote | theme. Every line has a source. Bot later: merge. Never overwrite raw. Never delete old lines.
    You paste the lineBot later merge, never overwrite raw
  5. Daily pulse, or next morning. You: five lines if room one took work. Bot later: nightly scheduled task. Same outline.
    You 5 linesBot later nightly scheduled task
  6. Monthly backlog. You: rank, pick #1, write the email or slide or VSL from the template. Bot later: first-of-month job writes the prompt pack. The platform is not a graveyard. An asset must move.
    You pick #1 and write the assetBot later first-of-month job
  7. File log. Room one items in, knowledge added, assets updated. MEMORY only on a repeat. AGENTS only when a rule changes. Later rooms plug into the same tree.
    You keep the log todayBot later writes the row

File log columns

date · room · item · knowledge added · theme · asset updated (file or none) · memory Y/N · status

Done rule

Stop when the shop has a platform folder, room one is live, and one recurring pattern became an asset. Not a smarter chat.

Do not

  • Do not dump the platform into one ChatGPT project as the system of record.
  • Do not overwrite raw transcripts.
  • Do not promote a one-off into memory.
  • Do not skip the asset. The platform is not a graveyard.
  • Do not treat Fathom, a model, Codex, or Grok Bot as the platform. They plug in.
  • Do not put sales on a GHL calendar. iClosed remains the sales book if they book sits.
  • Do not put this File on Cal.com.
  • Do not talk funding.
  • Do not paste keys into a chat or a File.
  • Do not send a call to a model unless you are allowed to.

Free · Run it in your AI

Prompt pack

Free means they use the AI they already have. Paid is the installer that walks it for them. The folder is the platform. The human path on this page is enough to stand it up and run room one.

Ask AI

FAQ

Questions owners ask

Do I need Codex?

No. Name the platform. Create the folders. Open room one. Fill the structured page. Add the knowledge line. Ship one asset when a pattern repeats. That is the File.

Do I need an API?

Not to start. Copy or download the transcript from Fathom or any notetaker. The API, a .env, and a nightly task are a later rung. Same folders. Same platform.

What is a .env?

A small file on your computer that holds keys, like a Fathom key or a model key. Your tools read it. You add .env to .gitignore. You never paste those keys into a chat or into a File. You do not need a .env to stand the platform up or run room one by hand.

Why not one ChatGPT chat?

You would be renting a brain. Context dies. Tuesday it looks smart. Next month the good line is gone. The platform keeps the raw file, the structured page, and the knowledge rooms. A chat can run one skill. It is not the system of record.

Is Fathom the platform?

No. Fathom is a room's intake. Any notetaker works the same way. Copy the transcript or download the text. Drop it in rooms/calls/raw/. The folder is the platform.

Can I send every call to a model?

Only the ones you are allowed to. If the buyer did not agree, or your shop does not allow it, keep that transcript in raw and write the structured page by hand. Do not send it out.

How is this different from the agency File?

This File is the shop OS. One platform for the business. Room one is the work you already do. The agency File is the sibling for repo and ops folders when the work is running an agency. Local jobs on a calendar are Ugly ads or Recover.

Is this for HVAC?

Not if they only need the calendar full. That is Ugly ads or Recover. Stay if they want their own OS and have work that should compound.

Additional resources

Open the next door

For

  • Agency, advisory, or B2B. You want your own OS, not another chat.
  • You have work (calls, jobs) that should compound.
  • You will write the first room down and ship one asset when a pattern repeats.

Not for

  • A local shop that only needs the calendar full. That is Ugly ads or Recover.
  • Someone who wants one chat to be the system of record.
  • Someone who will not write the first room down, or who will fill lists and never ship an asset.

Next board

Run the agency from one folder

Sibling File for repo and ops folders when the work is running an agency. Local jobs on a calendar are Ugly ads or Recover.