Inspiration

I was inspired by the news media and the alarm over jobs. Everyone today is concerned about the rapidly improving AI capabilities that could replace workers across many job skills. Everyone wants to know whether their job is safe or if they need to prepare for new opportunities. The Automation Horizon helps clarify future choices.

What it does

Horizon is a single full-stack web application that does two things at once. It is a global dashboard of how automation will reshape the next fifteen years across humanoid robotics, autonomous vehicles, orbital infrastructure, and AI white-collar displacement, drawn from a dataset of year-by-year speculative projections from 2026 to 2040. And it is a personalization engine that takes any visitor's job title, country, age, and income protection target and re renders that entire dashboard as a forecast of their own life. A grounded chat panel called Ask the Horizon lets the user interrogate the data and explore counterfactual scenarios. A free tier lets every user save one scenario and email themselves a one-page PDF briefing with a ninety-second voice narration. A premium tier adds unlimited saved scenarios, a quarterly news tracker that pulls live headlines and aligns them against the user's personal timeline, and a printable infographic poster of their own horizon, generated as an image. The whole thing was built on MeDo in two weeks by one person, using natural language alone.

How I built it

Horizon began as a single static HTML artifact, a Chart.js dashboard with hand-tuned typography in DM Sans and Space Mono, a dark and light theme, and a fifteen-year dataset across nine distinct chart views. I brought that artifact into MeDo as the visual seed and the data core, then built the rest of the application through five sequential conversations with the platform.

The first conversation converted the dataset into a server-side JSON document, preserved every visual token from the original artifact, and added the "Build my Horizon" call to action. The second conversation built the four-question onboarding flow as a chat-style modal and instructed ERNIE to convert each user's answers into a strict JSON overlay containing a displacement year, a wage crossover year, a regional GDP share, a risk score, and a reskilling priority. The third conversation installed the Ask the Horizon panel as a retrieval-augmented chat grounded in the full dataset, with explicit instructions to refuse questions the data could not answer and to cite the specific chart and year range for each answer. The fourth conversation wired the briefing pipeline, generating the one-page PDF and producing the poster through the image plugin. The fifth conversation gated the premium tier behind Stripe and connected the web search plugin to the news tracker.

I wrote no code. I described the product I wanted, in plain English, in five passes. MeDo handled the scaffolding, database schema, API wiring, auth, and deployment.

Challenges I ran into

The first real challenge was grounding. Early versions of the Ask the Horizon panel hallucinated numbers that were close to the dataset but not in it. The fix was to constrain the system prompt to require the model to quote the specific array slice it was drawing from, and to lower the temperature on every call below 0.2.

The second challenge was determinism in the personalization step. The same user inputs were producing slightly different overlay coefficients on each run, which is a credibility killer in a demo. I added a strict JSON schema, validated it server-side before re-rendering, and built a retry path that falls back to a deterministic mapping table for the twenty most common job titles when validation fails twice in a row.

The third challenge was the demo persona. I rewrote the four-question onboarding three times before I found the version that produced an emotionally legible result on the first try. The lesson was that the friction in onboarding is not the form. It is the framing of the questions.

Accomplishments I am proud of

Horizon exercises every meaningful capability MeDo offers, multi-turn chat, ERNIE language model, image generation, web search, and full-stack persistence, inside one product, without any of those capabilities feeling padded or decorative. Every one of them solves a real product problem the user can name. I am proud that the global dashboard preserves the design integrity of the original artifact down to the color tokens and the font pairings, and that the personalized view inherits all of it for free. And I am proud that a stranger can land on the home page and feel something specific about their own future in just 30 seconds.

What I learned

The thing I learned most clearly is that constraint is the feature. The reason Ask the Horizon feels trustworthy is that it can only speak in numbers from a fixed dataset. The reason the personalization step feels convincing is that it converts free-form user input into a strict JSON schema before it ever touches a chart. The MeDo platform makes it tempting to ask for everything at once, because everything is available. The discipline of asking for one capability at a time, in five sequential conversations, produced a coherent product rather than a feature pile.

What is next for Horizon

The next milestone is widening the dataset. The current projections are speculative composites drawn from public analyst reports as of February 2026 and need to be replaced with a live data layer that pulls from the BLS, the World Bank, the OECD, and SEC filings on a quarterly cadence. The second milestone is expanding the personal overlay model beyond a static mapping table into a fine-tuned ERNIE adapter trained on occupation-level adoption curves. The third is a small B2B tier for HR and workforce planning teams who want to run Horizon against their own employee population to model reskilling investments. The fourth is translation. The dashboard is currently English only, and the four largest non-English markets for this product are likely Mandarin, Spanish, Portuguese, and Bahasa Indonesia, in that order.

Built With

Share this project:

Updates