Paste a link.
Watch a chatbot get built.
Drop in any website below and I'll build a working chatbot from it, right here, in about a minute. It reads the site, learns what's on it, and comes out ready to answer questions. When it's done, it's yours to keep: chat with it, change how it looks, or add it to your own site. Free, and no sign-up needed.
The pipeline, taken apart.
Five stages turn a URL into something you can talk to. None of them are magic. Here is each one, slowed down enough to see, using an imaginary bookshop as the example.
A site becomes passages.
The scraper pulls your pages down to clean text, and the text is cut into overlapping passages. The overlap matters: it stops an idea from being sliced in half at a chunk border and lost.
Firecrawl returns each page as structured markdown. LangChain's RecursiveCharacterTextSplitter then cuts it into 2,000-character passages that overlap by 150 characters, so no sentence gets stranded at a boundary.
Passages become coordinates.
An embedding model turns each passage into a long list of numbers: a point in a space where meaning is distance. Passages about shipping land near other passages about shipping, whatever words they use.
Each passage goes through OpenAI's text-embedding-3-small and comes back as a 1,536-dimensional vector. The vectors are stored in Pinecone under one namespace per bot, so retrieval never crosses between customers.
A question reaches into the space.
When a customer asks the bot something, the question is embedded into the same space, and the nearest passages are pulled out and handed to the model. The model can only answer from what retrieval gives it, which is why retrieval quality decides answer quality.
The question is embedded the same way, and Pinecone returns the passages with the highest cosine similarity. We also built a hybrid retriever that adds keyword matching (BM25), then measured it against the simple one. Those numbers are in the next section.
The widget learns to dress like you.
Every pixel of a site's screenshot is a point in color space. Cluster those points and the cluster centers are the brand palette. That's k-means, the same algorithm from any ML 101 course, doing design work. This demo runs it live in your browser.
In production this ran as a Puppeteer service: screenshot the site, sample the pixels, cluster with k-means (k=3), keep the dominant center as the accent. We retired the service to cut hosting costs, and the widget now reads colors from the page HTML instead. The algorithm lives on in this demo.
It wakes up knowing who it works for.
Last step: GPT reads what was scraped and writes the bot's constitution, a system prompt that fixes its tone, scope, and fallbacks, plus the first words it will ever say. When you build a bot above, the prompt you can inspect in the editor is this step's real output.
Two gpt-4o-mini calls run in parallel, one writing the system prompt and one writing the welcome message, both in the language the site was detected to use.
You just watched a chatbot get built. Here are a few ways to see how these things really work.
A chatbot answers questions. An agent goes a step further: it can look things up, check a calendar, even book an appointment. This one runs a pretend dental clinic. Give it a job and some tools, then watch every step it takes, including the moments it gets stuck and has to find another way. Nothing is real, so it all runs right in your browser.
Try the agent sandbox →There's more than one way for a bot to find the right answer. Here are three, run on the same questions and scored side by side, including the times the fancy one loses.
See the comparison →Understand how AI works, from a single token to a team of agents, in simple, beginner-friendly language.
Read the crash course →Measured, not assumed.
A chatbot is only as good as the passages it retrieves. Hand the model the wrong context and it answers confidently from the wrong facts. So before trusting this pipeline, we built an eval harness: a set of questions with known correct sources, scored against every retrieval strategy we considered shipping. Three results shaped the product.
The fancier retriever lost, so we don't use it.
| metric | dense | hybrid |
|---|---|---|
| hit rate | 1.000 | 1.000 |
| MRR | 0.975 | 0.829 |
| recall@1 | 0.950 | 0.700 |
| recall@3 | 1.000 | 0.950 |
recall@1 answers a simple question: how often is the correct passage the first one handed to the model? Plain embedding search managed 95%. Adding keyword search (BM25, fused by rank) pulled lookalike passages up and knocked the right one down to 70%. So the bots this page builds run plain dense retrieval, and the hybrid stays off until a corpus actually needs it. Measured on 53 chunks, 20 questions.
We had to fix the test before it measured anything.
Same pipeline, same corpus, three question sets. The first set was written from imagination and scored 24%, not because retrieval failed but because the answers we expected didn't exist in the corpus. Only after reading what was actually indexed and writing questions against it did the score mean anything. Every eval since starts by verifying the test data, and that habit is why the numbers on this page are worth showing.
Graded on its actions, not just its answers.
The agent version of the bot can check a calendar, send a WhatsApp alert, and place a call. Each test scenario lists the tools it must use and must not use. The first run failed 17% of scenarios: on hot leads the agent invented a booking date and skipped the required follow-up call. A two-line prompt fix took it to 100%, and because the whole suite costs about $0.002 to run, it reruns on every change.
In practice: a bot built on this page starts its answer from the right passage about 95 times in 100, and that number is checked, not hoped for.
Built by Ishan Sharma.
Ex-Amazon engineer, UofT computer science. I owned Bloort end to end as founder and product lead, from the ingestion pipeline and retrieval stack to the agent, the eval harness, the dashboard, and this page, with a small part-time team alongside me. It ran as a paid product on live client sites and still works, which is why the homepage lets you use it instead of telling you about it.
The full picture of what I build lives on my portfolio.
ishan.website