Hakkan
A content research and creation assistant built to fight AI slop. It researches your topic into a cited report, then helps you create from it in your own voice.
Hakkan (発刊, “to publish”) helps you lead a topic. It researches the real conversation into a report with receipts, treats that report as your source of truth, and helps you create content from it in a voice it learns from you.

The problem: content stopped knowing anything
Since late 2024, more new articles online are written by AI than by people (Graphite, 2025). Fluent text that knows nothing. The tools caused it: every AI writer starts from a blank page and asks the model to fill it.
Hakkan starts from a topic you want to lead, researches the real conversation into a cited report, and you create from that. The model is never the source.
How it works: topic, report, your voice
Give it a topic. It gathers the real conversation and builds a visual report: themes categorised, sentiment weighed, every quote cited. That report is your source of truth.
Then you create from it. Personas learn your voice from your own writing, and a trends module keeps you current. Automation does the gathering; the taste stays human.
Where it listens
Searching everywhere for every question is slow, expensive and mostly noise. The work is picking the right places.
- Per question
- Sources are chosen, not swept blindlyThe sweep breaks your question into sub-queries and keeps only the sources that carry it. A food-delivery topic dropped Polymarket, GitHub and Pinterest on score alone.
- Then deeper
- Routed legs the sweep cannot reachHakkan classifies the topic and adds what the sweep misses: news, reviews, forum threads. A travel question gets review sites; a developer question gets Hacker News.
- Yours
- Depth is a user choiceHow wide and how far back a run reaches is set by the person asking, not by a limit the tool invented.
The hard part: teaching the filter to value people
The promise is “what people actually said”, and the first evidence filter betrayed it. A verbose article restates the topic in its headline, so it scored high. A real reply like “Why need a nanny if I won’t have a job” is short and oblique, so it died as off-topic.
The fix was to judge a comment as a comment: replies answer what they reply to, not your search query. Relevance scored in context.
Human voice in the evidence, measured at every stage
The bar: 40% of everything cited had to be a real human utterance rather than a publication. Getting there took four attempts.
| Stage | Voice ratio | What changed |
|---|---|---|
| First measure | 12% | Invalidated: a test flag was replaying cached data instead of searching live. |
| Live streaming | 29% | Real runs. Better, and still losing voices in the filter. |
| Facts added | 19% | More article evidence diluted the voices. The filter was the bottleneck. |
| Filter rewritten | 57% | Comments judged as comments. Well past the bar. |
Measured on live runs against a 40% bar set before the work started, not tuned to hit it.
Honest by construction
“No slop” is enforced in code, not tone of voice. Three refusals built into the product:
- 3-way
- Every number is classifiedGrounded in the research, drawn from your own writing, or derived by the model. Only the third is flagged, never blocked. The author decides what they stand behind.
- 0
- Virality predictionsRefused outright. With no outcome data to train on, a prediction is a made-up number sitting beside real citations. It shows what did break out instead.
- Scoped
- Every claim names its sample“60% of the voices in this report” is measured and true. “60% of people” is neither.
Same rule inside the business: a hard cost-per-run ceiling enforced in code, so the depth users get stays sustainable on both sides.


