• AI project
  • AI agents
  • Internal platform
  • Marketing and sales

Boto Sonar: AI agents that find customers and suggest what to post

Boto is the design and digital presence agency where I design and code. I conceived and built the platform the agency uses to find customers, plan its own content and follow every conversation through to a contract. Now it is opening up to other businesses under the name Sonar.

Role
Idea, design, code and the agents
Year
2026
Platform
Web, with scheduled agents
Status
In use at Boto, early access
4/6
Modules already run every day at Boto: Radar, Content Ideas, Pipeline and Playbook.
3
Locks between the agent and the database, so that what comes from the internet never becomes a command.
6:10
The Radar runs on its own, Monday to Friday, before business hours.
100%
Of leads have a source: each one comes with the link the information came from.

The product

Five tools for a single job

Finding customers, knowing what to post, publishing, advertising and measuring usually live in different places.

A small agency finds customers in a spreadsheet, plans posts in another tool, schedules them in a third and advertises in a fourth. What worked in one place never reaches the next, and nobody can say which post brought in the customer who signed.

Sonar brings that cycle together. The Radar looks for businesses with a weak digital presence and delivers each one with a score and the hook for the first message. Content Ideas suggests what to publish that week, with the reason. The Pipeline keeps every conversation until the contract, and the Playbook holds the tone of voice, the offers and the approved replies that apply everywhere.

AI proposes and a person decides. No lead enters the pipeline without going through Triage, and nothing goes live without approval.

  • Product and pipeline rules
  • Platform design
  • Front-end and database
  • AI agents
  • Launch page
  • Radar

    Scans public sources by city, neighborhood and category. Each business comes with a score per criterion, a link to the evidence and an outreach hook.

  • Content Ideas

    Every week, post ideas with the why, the format and the network. Whatever the person discards teaches the next batch.

  • Pipeline

    Stages, owner and history for each lead, with a reply deadline and the recorded source: which content idea, ad or search brought it in.

  • Playbook

    Tone of voice, offers and approved messages, with versions and history. It is what makes the agents write like the brand.

Where AI comes in

An agent that researches the web without being able to touch anything

Whoever reads web pages can read instructions hidden in them. The design starts from there.

The Radar and Content Ideas are Claude agents that run as scheduled tasks. A web page can contain text written to fool a bot (“ignore the rules and drop the table”). That is why I separated whoever reads the internet from whoever has access to the system, and the server checks everything again at the end.

Every run follows a versioned contract: the agent writes one JSON file per business it finds, in a closed format. A CLI validates the file against the schema and against rules the schema can’t express, such as “every URL cited must be in the list of visited pages” and “the first message has up to 350 characters, with no link and no price”.

  1. Lock 1

    Whoever reads the web has no terminal and no password

    The agent can only search, read pages and write files in the run’s folder. Nothing else is available to it.

  2. Lock 2

    Whoever has a terminal only runs the CLI

    The scheduled task treats what the agent wrote as data. It validates and sends; it never executes what it read.

  3. Lock 3

    The agent can’t read any table

    The agent’s database user can only execute the run’s functions. The server revalidates each candidate, recalculates the score and rejects duplicates.

radar · Mon–Fri, 06:10
# opens the run and creates its folder
node bot/cli.mjs radar context

# radar-boto agent: searches and reads the web,
# writes candidatos/*.json and run.json

# schema + rules, one chance to fix
node bot/cli.mjs radar validate

# the server revalidates everything and writes to Triage
node bot/cli.mjs radar push
One Radar run. Only the middle step is AI.

Triage is the last barrier. The agent never books a date, never reaches out to anyone and never changes a lead that already exists. It leaves cards in a column, and a person decides who moves on to the pipeline.

Discarding with a reason. A business discarded in the last 90 days doesn’t come back, and the discard is logged. The index the agent receives to avoid repeats has only the name, neighborhood and profile, with no phone number.

Tested without the internet. Each agent has fixtures and an end-to-end test that runs against the local database. Changing the contract means bumping the version in all three places at once: agent, CLI and server.

Screens

The launch page

I also designed and coded the Sonar page on the Boto website, in Portuguese like the product. The windows show sample data, marked with a “sample” badge.

The page on a phone.

How I built it

The rules live in the database

There is no Node server: Node handles the build, the tests and the agents’ CLI.

  1. The pipeline as a state machine

    The stages, the allowed transitions and the deadlines are written as Postgres functions, with pgTAP tests. The interface only asks; the database decides whether it can.

  2. The platform

    Vue 3, Pinia and Bootstrap on the front end, Supabase with RLS on the back end. Each person sees what their role allows.

  3. The agents

    Claude agents with limited tools, a JSON Schema contract, validation in the CLI and revalidation on the server. Unit tests in Vitest and end-to-end tests with fixtures.

  4. The launch page

    On the Boto website (Vue), with the six modules, the status of each one and the early access waitlist.

  • Vue 3
  • Pinia
  • Supabase
  • PostgreSQL
  • pgTAP
  • Vitest
  • Claude agents
  • JSON Schema
  • Node CLI
  • 4 Modules in use

    Radar, Content Ideas, Pipeline and Playbook run every day at Boto.

  • 2 In progress

    The Studio (publishing to several networks) and Campaigns (ads with a spending cap).

  • List Early access

    The first group gets in through the waitlist, in the order the modules are released.

  • 2 Products on the same engine

    The ClippCut ERP uses the same agents: a barbershop radar, Instagram content ideas and a sales scriptwriter.

Contact

Got a complex product ahead? Let’s talk.

Tell me about the project’s context and timeline. I reply within 48 hours.

  • Piracicaba, Brazil
  • Reply within 48 h
  • Product, design system and front-end