Skip to content
Braav Labs — Where human intelligence meets artificial intelligence to build the future.
Braav Labs, internal

Social posts written from cited research

The system that drafts, renders and queues our own social posts every morning. Every claim comes from a fixed library of cited sources, and nothing posts until a person approves it.

Status
Live
Year
2026
Services
Manual admin, Something specific
Published results
None yet

The problem

A clinic owner scrolling past a post has heard every claim about AI already. A post only earns attention if it says something true and specific, and writing that by hand every day is the first thing to stop when the week gets busy.

How it worked before

  • Posts were written when there was time, so there were none in busy weeks
  • Statistics were whatever turned up in a search, with no source kept
  • Every graphic was made by hand

What was in scope.

Deliverables, not outcomes. Anything not on this list was not built, and is not implied to have been.

  • A fact library of cited sources, with a banned-claims list
  • Daily drafting limited to facts in that library
  • Carousel, stat card and reel rendered from brand templates
  • A layout check that rejects a render before anyone sees it
  • One approval email each morning; no reply means nothing posts

The system, stage by stage.

Each stage does one thing and hands off. The marked stages are the ones a person owns: they are in the diagram because they are part of the design, not because nothing else could reach them.

  1. 01

    Fact library

    Every usable claim, its source and its caveat. Anything not in it cannot be written.

  2. 02

    Drafts

    A model writes the day's posts against the library and the banned-claims list.

  3. 03

    Render

    A small server turns each draft into images, a PDF carousel or a short reel.

  4. 04

    Layout check

    Overflowing text or a broken frame fails the render, and it retries itself.

  5. A person approves

    Human decision

    One email at 7 AM with every post. Approve, change or skip.

  6. 06

    Published

    Approved posts go out on schedule. Skipped ones are recorded, not retried.

One stage in this system is owned by a person. It stops there deliberately: those are the points where being wrong is expensive.

Runs on

Tools you can keep without us.

Everything is set up on your own accounts and your own billing, so the system does not stop working if we do.

  • n8nThe workflow layer most of our automation runs on. Self-hostable, which matters when a client wants everything on their own infrastructure.
  • WebhooksHow one system tells another that something happened, without either polling the other.
  • REST & JSON APIsThe documented interface of whatever software you already run. Where one exists, it is how we connect.
  • Google WorkspaceMail, docs and identity where a business already lives there, which is most of them.

These are tools we build with. Braav Labs is not affiliated with, endorsed by or a partner of any of them, and all names belong to their owners.

Why it was built this way.

  1. 01

    The model cannot invent a number

    It is only given facts that are already sourced, and a list of claims it may not make. A draft with a statistic not in the library fails validation before it is rendered.

  2. 02

    Templates, not generated images

    Every graphic is an HTML template filled with text and rendered by a headless browser. It looks the same every day, costs nothing per image and never produces a picture that is almost right.

  3. 03

    Silence means no

    If the approval email is not answered, nothing is published. A missed morning costs a post. A wrong post costs more.

Results

No measured result yet.

This build has not run long enough to produce a number we can stand behind and show you the source of. When it has, the figure and where it came from go here. We would rather this section say nothing than say something we cannot evidence.

On visual evidence

The canvas is drawn from the workflow file in the repository. The posts are real renders from the templates.

The code

Read it yourself.

n8n canvas of the content workflow: schedule, drafting, render calls, approval email and posting
First slide of a rendered carousel in the Braav Labs template
A rendered stat card citing its source
Third slide of the same carousel

What we would change

What we would do differently.

Written down because the next client gets the version of us that already made these mistakes.

  • The layout check should have come before the templates. Text that fits in a sample does not always fit in a real draft.

  • A model version can be retired without notice. The first full run failed on every call for that reason, so the model name now lives in one place.

Want something like this built for your business?

Get my free audit

How an engagement runs.

The same five steps whatever we are building, so you always know which one you are in.

Pricing
Fixed price, quoted after a scope call
You have the number before anything is built. Nothing is billed by the hour.
Timeline
A date at quote time
Stated as a commitment, not an estimate that drifts once work starts.
Ownership
Everything stays in your name
Domains, hosting, inboxes and every account, on your billing, documented.
  1. 01

    Scope call

    Twenty minutes on how inquiries reach you today. No deck, no discovery package.

  2. 02

    Written scope and a fixed quote

    What gets built, when it lands, what it costs. Fixed before anything starts.

  3. 03

    Build and review

    You see it working on your own content, not a screenshot of it working.

  4. 04

    Launch and handover

    Accounts in your name, a written record of what runs where, a walkthrough.

  5. 05

    Support, if you want it

    A separate decision, made after something is already running.