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.

free · no signup · ~60 seconds · 3 builds per visitor
how it's made

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.

01 · read & chunk

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.

chunk 1
Page & Spine is an independent bookshop
with over 12,000 titles in store. We are
open seven days a week, 9am to 9pm.
chunk 2
open seven days a week, 9am to 9pm.
Orders over $40 ship free and arrive in
two to four business days. Returns are
chunk 3
two to four business days. Returns are
accepted within 30 days with a receipt.
the highlighted lines belong to two chunks at once
02 · embed

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.

each passage becomes a point
03 · retrieve

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 question lights up its nearest neighbours
04 · color

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.

page pixels, clustered into a palette
05 · voice

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.

system prompt · generated
Hi! I'm the Page & Spine assistant. Ask me about stock, shipping, or returns.
the moment it comes alive
how we know it works

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.

retrieval quality

The fancier retriever lost, so we don't use it.

metricdensehybrid
hit rate1.0001.000
MRR0.9750.829
recall@10.9500.700
recall@31.0000.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.

the test itself

We had to fix the test before it measured anything.

guessed Qs
24%
wrong domain
43%
verified Qs
100%

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.

the agent version

Graded on its actions, not just its answers.

before fix
83%
after fix
100%

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.

missing_expected_toolcalled_forbidden_toolbad_tool_argsover_budget

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.

about the founder

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