The reason AI copy reads like AI copy is that nothing told it how you write. Here, the voice, the claims you are allowed to make and the words you never use live in your repo as a skill — versioned, reviewed, and loaded into every session before a word is written.
The voice is a file · the claims are a file · every draft is a diff
The strategy is not the bottleneck. The bottleneck is that one positioning decision turns into nine assets, and by the third one the register has drifted and nobody has time to notice.
A launch note, the page section, the changelog entry, the social copy, the email. Written from the same source of truth in one session, so they agree with each other — which is usually the actual failure, not the quality of any single one.
What has been published on the subject, what your own site already says about it, what you have said before that this would contradict. The brief starts from what exists rather than from a blank page.
It reads every page and finds where the copy claims something the product does not do, or says it three different ways. This is the job nobody schedules and everybody needs, and it is a diff when it is done.
A scheduled session reads what has publicly changed and reports what is genuinely new — and says plainly when nothing is. A weekly digest that invents a headline every week gets muted by week five.
The talk becomes a post, the post becomes the thread, the thread becomes the email. Each one written for its surface rather than the same text pasted four times with the line breaks moved.
It pulls what ran and what happened, writes the honest version including the parts that did not work, and drafts what it would change. Attribution stays a judgement call — it presents the numbers, it does not decide what caused them.
Marketing work is normally reviewed by pasting a document into a comment thread and losing track of which version won. Here every draft is a commit, so the review is a diff and the history is real.
A trigger fires at 07:00. A session starts, does the work on its own machine, and opens a change request before anyone is at a desk. That is the whole feature.
Two lines in this draft are flagged, not written: a throughput figure and a comparison to a competitor’s scheduling. Neither traces to a source in the repo, so the agent left the claim marked rather than filling the sentence in.
Banned by the voice file and therefore absent: “seamless”, “unlock”, “revolutionary”, and every superlative except the one form the file permits.
When a draft comes back wrong, you edit the skill file, not the prompt. Every future session in every project that loads that skill inherits the correction — and you can see in the history exactly when the register changed.
A claims file lists what you are allowed to say and what needs a source. An agent that hits an unsupported claim marks it rather than writing a confident sentence — which is the single most useful behaviour you can configure in this function.
Two drafts of the same page are two commits. What changed between them is a diff you can read in ten seconds, instead of a document with eleven suggestion bubbles and no clear current version.
Connect each source once for the whole project. The raw credential is decrypted on our side and attached to the outbound call — it never lands in the machine the model is driving.
Easy connect covers 3,000+ apps through their own OAuth screens. Where a tool is not in the catalogue, it is reachable through OpenAPI, a Postman collection, GraphQL, raw HTTP or a remote MCP server — the same three-minute setup, one step less magic.
The same session machinery started three ways. In marketing the automated mode is the one to be most careful with, because the output is public.
Ask in a thread and the session reads the source, the voice file and the claims file, then comes back with the drafts in the same thread.
Set the publish and send actions to Ask. The run pauses at the call with the exact payload in front of you — the list, the subject, the body — and resumes from that point when you approve.
Run the competitive watch and the claim audit on a cron and let them land as change requests. Automating the reading is a clear win; automating the publishing is how a wrong claim goes out at 03:00 with nobody awake.
Marketing is where an autonomous mistake is permanent and public. State the defaults precisely rather than reassuringly.
One project, one set of connectors, one memory that compounds. Each team writes the skills for its own work; nobody stands up a second system.
Open source and self-hostable. Any model, your keys. Kortix Cloud, your own VPC, or your own on-prem network.