SignalPop methodology
How SignalPop prevents AI hallucinations in the brief
The five-layer guardrail SignalPop uses so the AI summarizer never invents quotes, sources, or events — and what falls back to a silent skip when something fails.
Every SignalPop brief is drafted by a large language model and reviewed before it is published. The drafting step is the part most readers are skeptical about, and we built five guards into the pipeline so that any failure mode is a quiet skip rather than a confident hallucination.
First, high-trust sources never see the model. Headlines from Reuters, the Associated Press, the BBC, the Wall Street Journal, the Federal Reserve, the Bureau of Labor Statistics, and a handful of other wire services pass through to the brief verbatim, with the original wording preserved. The model only sees second-tier sources where its summarization adds clarity, and even then it is prompted to use the source text rather than paraphrase.
Second, source URLs are reattached server-side. The model never sees the source URL during generation; items are passed as opaque IDs in the prompt and the URL is restored from our database after the model returns. A hallucinated URL is therefore impossible — the model has no way to invent one because it never had access to the real one.
Third, every model response is validated against a strict Zod schema. If the JSON does not match — wrong field, missing field, an extra section, a malformed criticality score — the response is discarded and the system falls back silently to a wire-only summary. There is no partial-trust path.
Fourth, the sanitizer strips known hallucination markers from the output before it is rendered. Exclamation points, ALL-CAPS words, the phrase 'breaking', and Twitter-style snark are removed. The point is not to make the brief duller; it is to remove the rhetorical patterns models reach for when they are about to confabulate.
Fifth, the multi-source corroboration boost. Items present in two or more independent feeds get a substantial ranking lift; single-source items are deprioritized even if the source is high-trust. The brief that ships is biased toward stories the model could not invent because they appeared in multiple places before the model ever saw them.
The combined result is that the brief reads like a human-edited summary because, structurally, that's what it is — the model's job is curation and tone, not fact generation. We publish the methodology in full because reader trust in AI-assisted journalism depends on being able to inspect the guardrails, not just be told they exist.
FAQ
- Has the brief ever hallucinated?
- When the validator catches a malformed response, the system falls back to a wire-only summary, which is what readers see. We've shipped a handful of dry, list-like briefs over the past year for this reason; we'd rather ship a boring accurate one than a polished invented one.
- Why not just have a human write it?
- A human edits the brief before send. The model drafts the prose; the editor approves it. We could write each one from scratch, but readers would lose the consistency of three drops a day in a recognizable voice, and the slot-by-slot ranking that depends on the model processing 18,000 headlines a month.
- Which model do you use?
- Replicate's Llama-3 8b drafts the morning and night briefs; Anthropic's Claude Haiku 4.5 polishes the lunch brief (the one that goes to email). Models are configurable in our admin and can be swapped without code changes.
- What happens if Reuters or the AP misreports a story?
- We carry it. SignalPop is an aggregator, not a verifier of primary reporting. When a wire service issues a correction, our corrections page mirrors it within the same news cycle.
Related