About the author

Jan Vrána, the author of HoroscopePrompt

My name is Jan Vrána and I am from the Czech Republic — a programmer and an astrologer in one person. HoroscopePrompt is where both of my trades meet.

In brief, by year

Why I do it

I practise astrology so that it helps people find their bearings on their own path — to discover their calling and their talents. That is why karmic astrology speaks to me most of all: I am not interested in what will "happen" to someone, but in where they come from and where they are meant to grow.

Fascinated by the symbol

What fascinates me most about astrology is the symbol: how a simple sign — the Sun, the Moon, Saturn — can open so many different readings. We are defined by the boundaries of symbols, but it is up to us how we grasp them and how we bring our life to fulfilment.

And that is exactly what I love about programming: a program is also just symbols composed into a structure that means nothing by itself. The content is supplied by whoever uses it — through their data, their decisions. In that sense a chart is a program that a person fills in by their own deeds.

Why this app exists

Language models are reasonably good at reading a chart. They clearly did not skip the astrological literature. What they cannot do is the numbers: they often hallucinate planetary positions. Hence the split: a custom core computes the chart from NASA/JPL ephemerides, the AI writes the interpretation. What the app can do and how exactly it computes is on the About page.

The second reason is teaching. You do not learn astrology from finished sentences but from seeing how a reading is built — which is why every mode has an "astrology teacher" variant that walks you through it step by step and explains the terms it touches. Of course an AI will not teach you what a living teacher does: passing on the unteachable part is beyond it, and it will never affect you the way a person does — even one who does nothing but be present.

Get in touch

A wrong number, an unclear sentence, a reading that is missing — all welcome: