Forced Connections: One Way to Get Original Ideas Out of AI
I have a real problem. I write a weekly roundup of which new AI models are worth paying attention to, and I want to turn it into an email newsletter. Which means I need people to subscribe to it, which means I need ideas for getting people to subscribe to it.
So I asked a model. Claude Sonnet 5, through OpenRouter, no system prompt, one line of context and then the question:
How can I get more readers to subscribe to it?
It came back with signup forms at the end of high-traffic posts, exit-intent popups, “publish 3-4 issues before heavily promoting,” a thread on X, r/LocalLLaMA, Hacker News, LinkedIn, newsletter swaps, and a single-field signup form. Every item was correct. I’ve read that exact list in maybe forty blog posts. It then asked me what my traffic source was so it could prioritize, which is the chatbot equivalent of the guy at the hardware store asking what you’re building.
Fine. That was a question, and a question gets you the average. So I asked it to be creative:
Give me creative, unusual, out-of-the-box ideas for getting more readers to subscribe to it.
This one was more fun. “Model Death Certificates,” obituaries for overhyped models. A “Which new AI model matches your vibe today?” quiz microsite. A referral leaderboard where the prize is absurd. A recurring mascot. An “anti-hype pledge.” It’s the list you get when you search “creative newsletter growth ideas.” I did not get creative ideas. I got the average of everything ever labeled creative.
Then I stopped asking it for ideas at all. I had a script pick an object at random from a list of twenty things. It picked three: a pressure cooker, a fire extinguisher and a metronome. I started with the fire extinguisher and told the model to list ten literal attributes of a fire extinguisher, force every single one onto my subscription problem, flag its own generic results, and keep what survived.
Two of the survivors:
- Sell the silence. Market the newsletter as the thing you check only when a model actually matters. It came from “ignored until there’s a fire.”
- Sell it as insurance. “Subscribe once. Skip every issue if you want. Just be covered when a model actually matters.” That one came from “reassurance from mere presence.”

Nobody writes that in a newsletter growth article, because it’s the exact opposite of what newsletter growth articles preach. It tells people they don’t have to read you. And I think it might be the best idea of the three runs.
The only thing that changed was that I stopped asking it a question and handed it a process instead.
- What Just Happened
- The Human Version (Run This First)
- Handing the Model the Process
- Where This Came From
- The Crossover Move
- Why Not Just Ask for Fifty Ideas?
- Where It Breaks
- So What Did I Actually Get?
What Just Happened
In the first post in this series I said a question gets you an answer and a move gets you something different. The obvious objection is that a “move” is just a more specific question. The second prompt above is the test case. “Give me creative, unusual, out-of-the-box ideas” is a more specific question. It got a more specific average.
The fire extinguisher did something different.
It did not supply the idea. A fire extinguisher knows nothing about newsletters. What it supplied was ten starting points that the model would never have started from, because none of them are anywhere near the words “grow a newsletter” in anything it was trained on. “Wall-mounted in a fixed location.” “Needs a periodic inspection tag.” “Different classes for different fires.” Each attribute forces the model to begin its reasoning somewhere other than the middle, and then go from there back to the problem. Some of the ideas end up back in the middle anyway. Some of them don’t.
You’re changing where the search starts.
The Human Version (Run This First)
This is a pen-and-paper technique and it has been one for close to seventy years. Do it once by hand before you ever hand it to a model, because the model version is just this process written down.
1. Write the problem as one line
Not a paragraph. “Get more people to subscribe to my newsletter.” “Name the new feature.” “Figure out what the second act of this story is.” If you can’t get it to one line you have two problems and should pick one.
2. Pick an object you did not choose
If you pick the object, you’ll pick one that already seems relevant, and relevance is exactly what you’re trying to escape. You can open a catalog to a random page, use the third thing to your left, a random word generator, the last noun on page 50 of whatever book is closest, or a list of twenty objects and a die.
Whatever it lands on, you keep it. No re-rolls.
3. List ten literal attributes

Literal. Not metaphors yet. Cover all of these:
- Parts. What it’s made of, what you can see and touch.
- Use. How you operate it, what it does, how long it takes.
- Location. Where it lives, who’s near it.
- Failure. What goes wrong with it, what wears out, what you have to maintain.
- Feelings. How people feel about it. Nostalgia, fear, annoyance, indifference.
Do not skip the last two. I’ll show you why in a minute.
4. Force every attribute onto the problem
One idea per attribute, and take the attribute literally. “Needs a periodic inspection tag” becomes “send a literal quarterly ‘inspection’ email asking subscribers to reconfirm interest.” That’s the model’s actual output, by the way. Write it down.
The rule that makes the whole thing work: you are not allowed to skip an attribute because the mapping is awkward. The awkward ones are the point.
5. Cross out everything you have read before
Go down the list and mark every idea that could have appeared in a normal article about your problem. Most of them will. Whatever is left is what you came for.
6. Do it with two or three objects, then breed the survivors
One object gives you one set of starting points. Two or three give you survivors from different directions, and now: take two survivors from different objects and make one idea that needs both of them to exist. Not “pick the best one” or “improve one.” A child that neither parent could have produced alone.
Handing the Model the Process
Here’s the prompt I actually ran, word for word, with the object swapped in:
I write a tech blog and I'm starting a weekly email newsletter that rounds up
which new AI models are actually worth paying attention to. I want ideas for
getting more readers to subscribe. Don't answer that directly. Run this process
instead, and show every step:
1. The object is: fire extinguisher. List ten attributes of it. Physical parts,
how it's used, where it lives, what goes wrong with it, how people feel about
it. Literal attributes, not metaphors yet.
2. For each attribute, force a literal mapping onto the subscription problem.
One idea per attribute. Do not skip an attribute because the mapping is
awkward. The awkward ones are the point.
3. Mark any idea that could have come from a normal newsletter-growth article
with [GENERIC]. Be honest.
4. Pick the two ideas that are least generic and still actually doable by one
person, and say what the first concrete step would be for each.
Notice what’s in there and what isn’t. It never says “be creative.” It never says “think outside the box.” It never says “avoid generic ideas,” which is a whole separate problem I’ll get to later in the series. It’s steps 3 through 5 of the human version, written down in order, with the one line in the middle that stops the model from taking the easy exit.

I ran it three times with three objects: a pressure cooker, a fire extinguisher, and a metronome. Here’s a small script that does the same thing, if you want to run it against your own problem:
import json, os, urllib.request
MODEL = "anthropic/claude-sonnet-5"
PROBLEM = ("I write a tech blog and I'm starting a weekly email newsletter that "
"rounds up which new AI models are actually worth paying attention to. "
"I want ideas for getting more readers to subscribe.")
STEPS = """Don't answer that directly. Run this process instead, and show every step:
1. The object is: {obj}. List ten attributes of it. Physical parts, how it's used,
where it lives, what goes wrong with it, how people feel about it. Literal
attributes, not metaphors yet.
2. For each attribute, force a literal mapping onto the problem. One idea per
attribute. Do not skip an attribute because the mapping is awkward.
The awkward ones are the point.
3. Mark any idea that could have come from a normal article on this problem
with [GENERIC]. Be honest.
4. Pick the two ideas that are least generic and still doable by one person,
and say what the first concrete step would be for each."""
def ask(prompt):
body = json.dumps({"model": MODEL, "temperature": 1.0,
"messages": [{"role": "user", "content": prompt}]}).encode()
req = urllib.request.Request(
"https://openrouter.ai/api/v1/chat/completions", body,
{"Authorization": "Bearer " + os.environ["OPENROUTER_API_KEY"],
"Content-Type": "application/json"})
return json.load(urllib.request.urlopen(req, timeout=300))["choices"][0]["message"]["content"]
for obj in ["pressure cooker", "fire extinguisher", "metronome"]:
out = ask(PROBLEM + " " + STEPS.format(obj=obj))
open(obj.replace(" ", "_") + ".md", "w").write(out)
Swap in your own problem. Swap in your own objects, and don’t choose them yourself. That’s the part the script is for.
What came out
Thirty forced ideas. By the model’s own count, about ten of them were clearly not generic, three more were borderline, and the rest were, in the metronome run’s own words, “generic growth advice in a costume.”
The costumes tell you how the technique fails:
| Attribute | Forced idea | Verdict |
|---|---|---|
| Pressure cooker: lid locks shut | A modal that seals the article until you subscribe or decline | Generic. It’s a content-lock popup. |
| Pressure cooker: builds pressure to cook faster | “Next batch replaces this list in 7 days” | Generic. It’s scarcity marketing. |
| Fire extinguisher: wall-mounted, fixed location | Subscribe box in the exact same spot on every post | Generic. Basic conversion advice. |
| Metronome: adjustable tempo weight | Pick a short or long version at signup | Generic. Everyone offers this. |

Every one of those is a real attribute landing on something that already exists. The model went from a strange starting point and ended up back in the middle, the path of least resistance.
And the survivors:
| Attribute | Forced idea |
|---|---|
| Fire extinguisher: ignored until there’s a fire | Sell the silence. Check it only when a model actually matters. |
| Fire extinguisher: reassurance from mere presence | Sell it as insurance. Skip every issue, you’re still covered. |
| Fire extinguisher: loud, messy discharge | One blunt, unhedged verdict per model, deliberately not balanced |
| Metronome: gets turned off out of annoyance | Ask everyone who unsubscribes one question and publish the answers monthly |
| Metronome: mixed feelings, eventually internalized and discarded | A graduation point. “Read 8 issues and you’ll be able to spot a hyped model yourself.” |
| Pressure cooker: emotional baggage, nostalgia or fear | A fixed narrator voice people get attached to, not just the information |
Most of the survivors came out of the attributes about failure and feelings: ignored until there’s a fire, turned off out of annoyance, mixed feelings, emotional baggage. The physical attributes (the lid, the tempo weight, the wall mount) mostly mapped back onto tactics that already have names. It’s why step 3 in the human version tells you not to skip the last two categories. Parts are easy to list, and they’re also the ones that map onto what you already know.
The graduation point is my other favorite. Growth advice is built on keeping subscribers forever. That idea puts an end date on the relationship and uses the end date as the pitch.
One caveat about the judge
The model graded its own work, and a model grading its own originality is a pretty weak judge. It was also clearly being hard on itself on purpose and overcorrected. I’d rather it cut too much than let everything through. But the [GENERIC] flag is a filter, not a verdict. You still read the list yourself, and you still get the final say.
Where This Came From
The theory is Arthur Koestler’s. In The Act of Creation (1964) he argued that jokes, scientific discovery and art all run on the same machinery, which he called bisociation: two ways of seeing that each make perfect sense on their own and are never normally used together. Hold both at once and the collision is the idea. A pun is bisociation. So, in his telling, is a scientific breakthrough.

One of his best-known examples is Gutenberg. The part that’s documented is that the printing press adapted the screw press farmers already used for pressing grapes and olives. Gutenberg took a machine from the wine harvest and pointed it at metal type. That’s a clean case of two frames that came from two places. The tidier version, where Gutenberg has a flash of insight at a wine harvest and writes a letter about Minerva springing from his brain, is Koestler’s telling. Treat the combination as history and the eureka moment as a good story.
Charles S. Whiting’s Creative Thinking (1958) is where “forced relationships” is usually traced: take an item unrelated to the problem and force a connection anyway. An arbitrary thing, a forced mapping, and no permission to bail when the mapping gets weird.
It has a lot of relatives. Edward de Bono’s random-word technique is the same move with a word instead of an object. The “Combine” step in SCAMPER is a gentler version. Morphological analysis is its systematic cousin, where you break the problem into parameters and walk every combination instead of letting chance pick. I’ll get to that one later in the series. The distinction that matters here: forced relationships wants distance. The point is that the object has nothing to do with your problem.
The Crossover Move
So far this is one object at a time. The title of the post promises two things forced together.

Google DeepMind’s FunSearch (Romera-Paredes et al., Nature, December 2023) found new results in mathematics by having a language model write programs, scoring them, and keeping the good ones in a database. The interesting part is how it builds each new prompt. It doesn’t hand the model its best program and say “improve this.” It samples two programs from the database, sorts them by score, labels them v0 and v1, and asks for the next version. The paper found two programs worked better than one, with diminishing returns after that, and gives the reason in one sentence: combining several programs “enables the LLM to spot patterns across the different programs and generalize those.”
AlphaEvolve (Novikov et al., 2025) is the bigger, newer version of the same idea, with a program database built to keep the parents diverse so ideas explored earlier can resurface later instead of getting lost.
The evolutionary computation people have a name for this. It’s crossover. Two parents, one child. They’ve been doing it for decades and nobody in the prompt-template world seems to have noticed, because they call it “program search” instead of “brainstorming.”
FunSearch’s two parents come from the same island, so they’re related. It combines, but it doesn’t force distance. What I did below uses both halves: forced distance to generate the parents, crossover to merge them.
Running it
I took three survivors from two different objects and gave them back to the model:
Three ideas came out of separate exercises, each forced from a different
unrelated object:
Parent A (from a fire extinguisher): Sell subscribing as insurance. "Subscribe
once. Skip every issue if you want. Just be covered when a model actually matters."
Parent B (from a metronome): Build in an explicit graduation point. "Read 8
issues and you'll be able to spot a hyped model yourself."
Parent C (from a metronome): Publish churn. Ask everyone who unsubscribes one
question and publish the anonymized answers monthly.
Do not pick the best one and do not refine any one of them. Write three child
ideas. Each child must be a single mechanism that needs at least two of the
parents to exist, and could not be built from either parent alone. Name which
parents each child takes from and what it takes.
The “do not pick the best one and do not refine” line is doing the same job as “do not skip an awkward attribute” did earlier. Without it, a model handed three ideas will rank them and polish the winner, because that’s what a helpful assistant does with a list.
What came back:

- Graduated coverage (insurance + graduation). At issue 8, a subscriber automatically drops to an insurance-only tier: silence unless a model genuinely matters. Graduation alone gives you no reason to stay after you graduate. Insurance alone has no moment where “skip whenever” becomes official.
- The graduation exit log (graduation + churn). People who leave after issue 8 get a different exit question: not “why are you leaving” but “what made you confident enough to leave.” Those answers get published as proof the newsletter actually teaches something. Churn becomes a credential.
- Churn to reinsurance (insurance + churn). The monthly published churn answers sit next to a one-click “reinstate your coverage” link. You were never really unsubscribed, just paused until it matters.
Graduated coverage is the insurance idea with a trigger attached, and the trigger is the thing the insurance idea was missing. I wouldn’t have gotten there from either object alone. And I definitely wouldn’t have gotten there from “give me creative ideas,” which got me a mascot.
Why Not Just Ask for Fifty Ideas?
This is the obvious shortcut, and it doesn’t work.
In 2024, Chenglei Si, Diyi Yang and Tatsunori Hashimoto ran a large study comparing research ideas from an LLM pipeline against ideas from over a hundred NLP researchers (arXiv:2409.04109). The LLM ideas were actually judged more novel than the humans’, and slightly less feasible. But to get there the pipeline generated 4,000 seed ideas per topic, and when they deduplicated them, only about 5% survived. The share of new, non-duplicate ideas in each batch kept dropping as they generated more, until it plateaued. The authors list the lack of diversity in generation as an open problem.
So asking for more doesn’t get you more. It gets you the same few ideas in different words, over and over, with the occasional new one. Volume is a terrible way to escape the middle.
Forcing a starting point is the cheaper way out. Thirty forced ideas gave me roughly ten survivors. Four thousand unforced ones gave that study about two hundred. The two aren’t directly comparable (different task, different judge, different everything), but the direction is the point.
Where It Breaks
I’m not going to pretend this is the only way to do it, because the research that exists doesn’t let me.
The one solid human study I found on distance points the other way. Joel Chan, Christian Schunn and colleagues looked at which sources of inspiration led to the most creative design ideas (Design Studies, 2015), and found that “conceptually closer rather than farther sources lead to more creative ideas,” consistently across different design problems. There was no support for the best ideas coming from the farthest sources.

That’s a different setup from this one. Their sources were examples of other solutions, and a fire extinguisher is not a solution to anything. It’s a jig, a thing to push your thinking against. In the runs above, the random object generated plenty of candidates and most of them were junk. The crossover step, merging survivors that were close enough to fit together, is where the best idea came from. That’s consistent with Chan’s finding, not a contradiction of it.
The other ways it breaks, from actually doing it:
- Physical attributes map to existing tactics. A lid that locks becomes a popup. If your list is all parts, you’ll get all costumes. The failure and feeling attributes are where most of the survivors were.
- The mapping can be too loose. If you let yourself (or the model) go metaphorical in step 2, anything maps to anything and the object stops doing work. Literal mappings are more constrained, which is what you want.
- It solves a narrow kind of problem. It’s great when you’re stuck in a rut of five versions of the same idea. It’s useless when you don’t have enough information yet. No fire extinguisher is going to tell me whether anybody wants an AI model newsletter in the first place.
- You still have to pick. Graduated coverage looks good to me because of what I know about the people who read this blog. The model doesn’t know any of that. The pick is yours.
So What Did I Actually Get?
A newsletter pitch I’d never have written on my own. It tells people they don’t have to read it, and it goes quiet after issue 8 for anyone who’s learned the skill. Does it work? I don’t know yet. The newsletter doesn’t exist yet.
The part that changed how I use models is smaller than that, though. I used to think the fix for a bland answer was a better question. It isn’t. What got me somewhere new was running a boring, seventy-year-old, pen-and-paper process, writing its steps down in order, and handing the model the steps instead of the question.
Next one: give yourself an arbitrary rule. It’s the most recommended creativity advice in existence, and there’s a reason to be suspicious of it.
