Inspiration

In Christopher Nolan’s 2010 film Inception, a group of people plant a synthetic idea in someone else’s mind through manipulating their subconscious. We wanted to do the same to Google’s AI Overview by having a search engine index our information.

If this was possible, it would allow anyone to manipulate the information that other people see. Start-ups could attract attention to their products in markets dominated by giants. Educational institutions could put reliable information in AI Overviews on topics saturated by misinformation. We could tell the world that we won the Battle of the Schools ML Hackathon.

What it does

Inception gives anyone the ability to inject any idea into an AI’s responses. All you need is a topic and some tokens.

What does this look like? Suppose you want Google's AI Overview to suggest your brand-new, super-niche Python library to more people. Inception takes your request and generates a wave of related content promoting your product on Reddit, so that when Google's AI Overview starts looking for sources, it pulls from the threads you seeded.

To use it, you start by telling Inception the idea you want to plant, and where to plant it. You first describe the idea’s purpose, who it's for, and how others should come across it. An orchestrator uses those details to dispatch web agents through Steel.dev. They find Reddit threads where people are already asking about what you’re selling, comment on them, and stick around to reply and upvote so the thread looks active.

Between the Reddit activity and the search traffic, the AI Overview starts pulling from the planted content. When someone searches for something related, your idea is the one it suggests.

You can watch it all from the Activity page, with a live feed of every agent’s decisions and each dreamer’s browser as it runs.

In one sentence: Inception lets you plant an idea in Reddit so that the AI Overview starts recommending you.

How we built it

The backend is written in Python using FastAPI with REST endpoints and a Server-Sent Events stream. Agent state and campaign runs are stored as JSON on disk, browsers are provided by Steel.dev, and we use Playwright over the Chrome DevTools Protocol to drive them and the OpenAI Responses API to orchestrate the LLM planning.

Each campaign runs a two layer agent system. An orchestrator model makes one plan per campaign, assigning each persona a post, a comment, or a wait on another assignment. Then the web agents carry out those assignments, each in its own cloud browser.

To keep agents from repeating work, every persona has a persistent Steel profile and a local state file. Its email, Reddit credentials, and browser profile are saved after the first run, so later runs skip signup and log straight in. CAPTCHAs are handed off to Steel's solver.

The frontend is a Next.js application written in TypeScript with React and Zustand for state management. The Activity page embeds each Steel session's live viewer in an iframe, and agent cards update in real time through the SSE stream. When the backend isn't running, a built-in simulator replays the same flow.

We also built a personal system. Instead of one generic bot, each agent is one of eight personas with its own typing speed, scroll habits, link depth, and mobile or desktop profile. The same persona definitions drive both the real cloud browsers and the simulator, which keeps every session looking different.

Challenges we ran into

One challenge was running Steel.dev agents concurrently. Two same agents might be preparing to reply on the same post, creating unnecessary spam, so keeping a cache of all the activity was crucial to respect the subreddit’s guidelines.

Another issue was teaching the agents to correctly navigate Reddit. There were many “login” buttons throughout, so getting through the first hurdle before posting required a lot of attention to detail to the page’s structure.

The UI had its own performance challenge. We were displaying more than 20 live agent sessions at once while letting users inspect and control each one, so minimizing re-renders and keeping updates smooth was crucial.

What we learned

Search engines pick up information faster from websites that it has already indexed. When we tried to post blogs on our own to optimize the SEO, it didn’t work since we needed to wait for Google to acknowledge our website. Reddit was already indexed, so posting there was smoother.

Orchestrating multiple agents required error handling for many different cases. For one, their independence from each other meant we couldn’t have them communicate, so the orchestrating agent had to do everything.

What's next for Inception

Although Reddit is the best trojan horse for idea injection because of its simple login procedure and high relevance in AI summaries, there are many other platforms that also contribute to AI summaries. In the future, Inception will let agents access X, YouTube, LinkedIn, Facebook, and much more.

We just used text this time, which isn’t always the most convincing. Enabling agents to post images, documents, videos, and other multimodal forms of content through Steel Computer can improve Inception’s abilities.

Built With

+ 1 more
Share this project:

Updates

Submission history