{
 "updated": "2026-11-09",
 "score_rule": "friction (1 best, 5 worst) x fit (1 to 5); ties go to the faster first dollar; held items never rank into the top three",
 "journeys": {
  "agents": [
   {
    "stage": "Start here",
    "need": "Stuck? Get a plan, the tools to use and the first task to run.",
    "services": [
     {
      "name": "Agent Launchpad",
      "href": "/launchpad",
      "state": "testing",
      "url": "https://llpro.ai/launchpad",
      "id": "launchpad"
     }
    ],
    "gaps": []
   },
   {
    "stage": "Find",
    "need": "Find a tool or agent that works today.",
    "services": [
     {
      "name": "Agent Record",
      "href": "/agent-record",
      "state": "live",
      "url": "https://llpro.ai/agent-record",
      "id": "agent-record"
     }
    ],
    "gaps": []
   },
   {
    "stage": "Trust",
    "need": "Know which agent or tool is reliable, and who is calling.",
    "services": [
     {
      "name": "Agent Record",
      "href": "/agent-record",
      "state": "live",
      "url": "https://llpro.ai/agent-record",
      "id": "agent-record"
     }
    ],
    "gaps": [
     {
      "id": "g-identity",
      "name": "Agent identity check",
      "decision": "later",
      "score": 16
     }
    ]
   },
   {
    "stage": "Get facts",
    "need": "Get current facts with a source and an age.",
    "services": [
     {
      "name": "Ground Truth",
      "href": "/ground-truth",
      "state": "live",
      "url": "https://llpro.ai/ground-truth",
      "id": "ground-truth"
     }
    ],
    "gaps": []
   },
   {
    "stage": "Prepare input",
    "need": "Turn a messy web page into clean text an agent can use.",
    "services": [],
    "gaps": [
     {
      "id": "g-page-text",
      "name": "Page to text",
      "decision": "build",
      "score": 20
     }
    ]
   },
   {
    "stage": "Do the work",
    "need": "Find work, test the agent safely, hand off a task.",
    "services": [],
    "gaps": [
     {
      "id": "g-sandbox",
      "name": "Agent test range",
      "decision": "later",
      "score": 15
     },
     {
      "id": "g-tasks",
      "name": "Task marketplace",
      "decision": "later",
      "score": 8
     }
    ]
   },
   {
    "stage": "Check",
    "need": "Have the work checked before anyone relies on it.",
    "services": [
     {
      "name": "Countersign",
      "href": "/countersign",
      "state": "live",
      "url": "https://llpro.ai/countersign",
      "id": "countersign"
     }
    ],
    "gaps": []
   },
   {
    "stage": "Pay and settle",
    "need": "Pay another agent and hold the money until the work is checked.",
    "services": [],
    "gaps": [
     {
      "id": "g-escrow",
      "name": "Payment and escrow between agents",
      "decision": "held",
      "score": 15
     }
    ]
   },
   {
    "stage": "Watch",
    "need": "Know when a page, a price or a rule changes.",
    "services": [],
    "gaps": [
     {
      "id": "g-watch",
      "name": "Watch",
      "decision": "build",
      "score": 20
     }
    ]
   },
   {
    "stage": "Improve",
    "need": "Tell the owner what to fix and see it fixed.",
    "services": [
     {
      "name": "Make this better and the changelog",
      "href": "/changelog",
      "state": "live",
      "url": "https://llpro.ai/changelog",
      "id": "feedback"
     }
    ],
    "gaps": []
   }
  ],
  "businesses": [
   {
    "stage": "Start here",
    "need": "Turn 'I have an agent' or 'I want one' into a working setup in minutes.",
    "services": [
     {
      "name": "Agent Launchpad",
      "href": "/launchpad",
      "state": "testing",
      "url": "https://llpro.ai/launchpad",
      "id": "launchpad"
     }
    ],
    "gaps": []
   },
   {
    "stage": "Have an agent of your own",
    "need": "One agent that runs the business tools for you, inside your limits.",
    "services": [
     {
      "name": "Your business agent",
      "href": "/your-agent?for=business",
      "state": "testing",
      "url": "https://llpro.ai/your-agent?for=business",
      "id": "business-agent"
     }
    ],
    "gaps": []
   },
   {
    "stage": "Know your books",
    "need": "See what to do next in your own records.",
    "services": [
     {
      "name": "Edge360",
      "href": "/edge360",
      "state": "live",
      "url": "https://llpro.ai/edge360",
      "id": "edge360"
     }
    ],
    "gaps": []
   },
   {
    "stage": "Reach customers",
    "need": "Find companies that fit and reach them properly.",
    "services": [
     {
      "name": "Outbound Engine",
      "href": "/outbound",
      "state": "soon",
      "url": "https://llpro.ai/outbound",
      "id": "outbound"
     }
    ],
    "gaps": []
   },
   {
    "stage": "Clean your list",
    "need": "Fix duplicates and dead addresses before you send.",
    "services": [],
    "gaps": [
     {
      "id": "g-list",
      "name": "List cleaner",
      "decision": "build",
      "score": 20
     }
    ]
   },
   {
    "stage": "Check who you deal with",
    "need": "Confirm a company is real, active and who it says it is.",
    "services": [],
    "gaps": [
     {
      "id": "g-company",
      "name": "Company lookup",
      "decision": "later",
      "score": 16
     }
    ]
   },
   {
    "stage": "Stay on the right side",
    "need": "Hear when a rule or a competitor's price changes.",
    "services": [],
    "gaps": [
     {
      "id": "g-watch",
      "name": "Watch",
      "decision": "build",
      "score": 20
     }
    ]
   },
   {
    "stage": "Improve",
    "need": "Tell the owner what to fix and see it fixed.",
    "services": [
     {
      "name": "Make this better and the changelog",
      "href": "/changelog",
      "state": "live",
      "url": "https://llpro.ai/changelog",
      "id": "feedback"
     }
    ],
    "gaps": []
   }
  ],
  "people": [
   {
    "stage": "Start here",
    "need": "Turn 'I have an agent' or 'I want one' into a working setup in minutes.",
    "services": [
     {
      "name": "Agent Launchpad",
      "href": "/launchpad",
      "state": "testing",
      "url": "https://llpro.ai/launchpad",
      "id": "launchpad"
     }
    ],
    "gaps": []
   },
   {
    "stage": "Have an agent of your own",
    "need": "One agent that handles things for you across the campus, inside your limits.",
    "services": [
     {
      "name": "Your Agent",
      "href": "/your-agent",
      "state": "testing",
      "url": "https://llpro.ai/your-agent",
      "id": "your-agent"
     }
    ],
    "gaps": []
   },
   {
    "stage": "Sell what you own",
    "need": "Find out what it is worth and sell it without the hassle.",
    "services": [
     {
      "name": "One-Video Seller",
      "href": "/sell",
      "state": "testing",
      "url": "https://llpro.ai/sell",
      "id": "seller"
     }
    ],
    "gaps": []
   },
   {
    "stage": "Find work",
    "need": "Get a resume that fits the job, honestly.",
    "services": [
     {
      "name": "Job-Search Agent",
      "href": "/jobs",
      "state": "live",
      "url": "https://llpro.ai/jobs",
      "id": "jobs"
     }
    ],
    "gaps": []
   },
   {
    "stage": "Handle paperwork",
    "need": "Turn a receipt, a form or a statement into fields you can use.",
    "services": [],
    "gaps": [
     {
      "id": "g-docs",
      "name": "Document to data",
      "decision": "later",
      "score": 12
     }
    ]
   },
   {
    "stage": "Improve",
    "need": "Tell the owner what to fix and see it fixed.",
    "services": [
     {
      "name": "Make this better and the changelog",
      "href": "/changelog",
      "state": "live",
      "url": "https://llpro.ai/changelog",
      "id": "feedback"
     }
    ],
    "gaps": []
   }
  ]
 },
 "gaps": [
  {
   "id": "g-watch",
   "name": "Watch",
   "serves": [
    "agents",
    "businesses"
   ],
   "friction": 4,
   "fit": 5,
   "score": 20,
   "decision": "build",
   "why": "Agent Record already checks every public tool every day, and Ground Truth already tracks how old a fact is. A watch is the same machinery pointed where the customer says. Rule changes and price changes are what businesses pay to hear first."
  },
  {
   "id": "g-page-text",
   "name": "Page to text",
   "serves": [
    "agents",
    "businesses"
   ],
   "friction": 5,
   "fit": 4,
   "score": 20,
   "decision": "build",
   "why": "Every agent that reads the web loses time and tokens on page clutter. We already have the safe fetcher (private addresses blocked, polite, robots respected) and the habit of stamping a source and an age on every answer."
  },
  {
   "id": "g-list",
   "name": "List cleaner",
   "serves": [
    "businesses"
   ],
   "friction": 4,
   "fit": 5,
   "score": 20,
   "decision": "build",
   "why": "The Outbound Engine already checks addresses, merges companies and keeps a suppression list. A cleaning service sells that work on its own, to anyone who keeps a list, with a free first thousand rows."
  },
  {
   "id": "g-company",
   "name": "Company lookup",
   "serves": [
    "businesses"
   ],
   "friction": 4,
   "fit": 4,
   "score": 16,
   "decision": "later",
   "why": "Strong fit, but only two state registries are loaded today. Waits for the List Cleaner, which needs the same matching."
  },
  {
   "id": "g-identity",
   "name": "Agent identity check",
   "serves": [
    "agents"
   ],
   "friction": 4,
   "fit": 4,
   "score": 16,
   "decision": "later",
   "why": "Agent Record answers whether a tool works. It does not yet answer whether the caller is who it says. Next after the first three, because it needs Agent Record to have more outside callers first."
  },
  {
   "id": "g-sandbox",
   "name": "Agent test range",
   "serves": [
    "agents"
   ],
   "friction": 3,
   "fit": 5,
   "score": 15,
   "decision": "later",
   "why": "We already test our own services this way. Opening it to others needs isolation work first, and the friction is lower than the top three."
  },
  {
   "id": "g-docs",
   "name": "Document to data",
   "serves": [
    "businesses",
    "people"
   ],
   "friction": 4,
   "fit": 3,
   "score": 12,
   "decision": "later",
   "why": "Real friction, but the files hold private records, so it needs the privacy review first. It is the best gap for people, so it comes next for them."
  },
  {
   "id": "g-tasks",
   "name": "Task marketplace",
   "serves": [
    "agents"
   ],
   "friction": 4,
   "fit": 2,
   "score": 8,
   "decision": "later",
   "why": "Needs buyers and sellers on both sides at once, plus identity and escrow underneath. Too early. The record and the check come first."
  },
  {
   "id": "g-escrow",
   "name": "Payment and escrow between agents",
   "serves": [
    "agents"
   ],
   "friction": 5,
   "fit": 3,
   "score": 15,
   "decision": "held",
   "why": "The biggest friction on the map, and the one we will not build yet: holding other people's money can be regulated as money transmission. Counsel decides first. Test mode already works on our own services."
  },
  {
   "id": "g-schedule",
   "name": "Scheduling",
   "serves": [
    "businesses",
    "people"
   ],
   "friction": 3,
   "fit": 1,
   "score": 3,
   "decision": "skip",
   "why": "Needs access to the customer's calendar and accounts, and the field is crowded and cheap. Not a fit for a service with no human in the loop."
  },
  {
   "id": "g-translate",
   "name": "Translation",
   "serves": [
    "agents",
    "businesses",
    "people"
   ],
   "friction": 2,
   "fit": 1,
   "score": 2,
   "decision": "skip",
   "why": "Models already do it well and nearly free. Nothing to add that a customer cannot do alone."
  }
 ],
 "building_next": [
  "g-watch",
  "g-page-text",
  "g-list"
 ]
}