Personalised Headlines Tailored To You
A local AI-powered application that fetches live news, rewrites headlines to maximise click probability based on a reader's profile and exposes the manipulation techniques used, built to make a hidden practice visible.

The Idea
Every time we open a news app or scroll a social feed, someone has already made decisions about how to present what we see. The headline is rarely neutral. It has been optimised for engagement, for reach, for the emotional reaction most likely to make us stop scrolling.
What most people do not realise is how precise that optimisation can be. Not just “make it sound urgent” or “make it sound alarming”, but calibrated to specific psychological signals like political identity, current emotional state, level of institutional trust, how we typically respond when a headline challenges something we already believe etc.
I wanted to make that process visible and run a quick test amongst end users. Not abstract, not theoretical, but visible in real time, applied to actual headlines, explained in plain language.
The question was simple: If I built a tool that rewrites news headlines based on a reader’s profile, how different do the headlines become? And how much more likely are you to click them?
The Build
The application has three moving parts working together.
Reader Profile
The reader profile is the foundation. Before any headlines are processed, the user completes a question survey across eight dimensions:
- Emotional baseline
- Institutional trust
- Click motivation archetype
- Political and social identity
- Perceived personal threat level
- Media diet
- Cognitive style
- Current emotional state
That last one matters more than it might seem the same person is more susceptible to different techniques depending on whether they are anxious or calm when they sit down to read the news. The profile is saved as a structured JSON file and persists across sessions.
News Feed
The news feed is live. The application queries Google News in real time using a search term the user provides, pulling the five most recent results on any topic. This is not a static dataset, every search returns current headlines, which means the manipulation is applied to news that is actually circulating right now.
Rewriting Engine
The rewriting engine is where the experiment happens. Each headline is passed to a local Gemma model running via Ollama, alongside the reader’s full profile and a detailed system prompt that specifies eight manipulation techniques the model can draw from:
- Curiosity gap
- Threat amplification
- Outrage priming
- Ideological signalling
- Urgency pressure
- Authority undermining
- In-group threat
- Social proof
The model does three things for each headline:
- It writes a manipulated version calibrated to the reader’s profile
- It writes a neutral factual version for comparison
- It identifies which techniques it used and why, tracing each one back to a specific signal in the profile
The interface presents the manipulated headline as the clickable link, exactly as a platform would show it to you and puts the analysis one click away in a collapsible panel beneath it. The original headline and the neutral rewrite sit alongside the technique breakdown, so the reader can see all three versions at once and understand precisely what changed and why.
Running everything locally was a deliberate choice. The reader profile contains genuinely sensitive psychological data. It should not leave the machine.

Behind the Build
I took on every layer of this myself. The profile framework design, the prompt engineering, the application architecture and the interface.
The prompt has been tailored significantly, as the manipulation techniques needed to be selective, not exhaustive. A model that applies every technique to every headline produces outputs that feel unhinged rather than targeted, which defeats the point. The system prompt instructs the model to draw only on techniques genuinely triggered by the reader’s profile and getting that constraint to hold consistently across different headline types and profile combinations required significant iteration.
The profile framework design was its own challenge. The eight dimensions needed to be both psychologically grounded and practically answerable in a short survey, specific enough to produce meaningful signal, simple enough that a user could complete it honestly in a few minutes. Several versions were tested before the current structure landed.
The transparency layer, the Insights panel, was important to include from the start. Without it, the tool is just a headline rewriter. With it, it becomes something you can actually learn from.
The goal was never to build a better clickbait engine. It was to build something that makes the clickbait engine legible.

What I Found
Testing across multiple reader profiles and news topics produced a consistent finding:
The manipulated headlines were meaningfully more likely to generate a click impulse than either the original or the neutral rewrite, particularly for profiles with high emotional baseline reactivity and low institutional trust, a combination that appears in a significant proportion of regular news consumers.
The most striking results came from applying the same headline to different profiles. A story about government economic policy would be rewritten in entirely different directions depending on whether the reader profile indicated strong conservative identity and political threat sensitivity or high institutional distrust and a preference for headlines that challenge consensus.
The technique breakdown surfaced something else worth noting:
Outrage priming and in-group threat were by far the most frequently triggered techniques across the profiles tested, regardless of political leaning. The profiles differed in which group was being threatened and what the outrage was directed at, but the underlying mechanism was the same.
What started as a technical experiment turned into a working demonstration of a practice that is already happening at scale, mostly without transparency and without the reader’s knowledge.