JT Book a call

AI featuresOne LLM feature live for your users in two weeks.

Scope and price agreed before we start, a plain-English report every Friday, the code in your repository.

Book a call

Your board or your biggest customer wants an AI feature, and your team already has a full roadmap. We add one LLM feature to the app you have, live for your users in two weeks once it passes the questions agreed in the scope, on Sprint terms. The model is an API call from the app you already run, in the language it is written in.

A straight answer first: we haven’t shipped an LLM feature for a client yet. We have shipped them in our own product: elital reads a pasted job description, finds candidates with vector search and has an LLM score and explain each match. What we know is in public write-ups (below), and the pass rule for this Sprint is written into the scope, not left to our judgement.

How an AI feature answersA user asks your app; the app retrieves your own records, an LLM drafts the answer, the evals check it against the agreed questions, and the answer goes back.UserYour appRetrievalLLMEvalsAnswer How an AI feature answersA user asks your app; the app retrieves your own records, an LLM drafts the answer, the evals check it against the agreed questions, and the answer goes back.UserYour appRetrievalLLMEvalsAnswer
Solid: what you already run. Outline: what the Sprint adds. Ruby: the outcome, answers that pass the questions agreed in the scope.

What fits in a Sprint

A model reads text your app already holds and hands back something useful:

  • Search over your own records that finds “invoices Acme disputed last spring” even when nobody typed those words.
  • A chat that answers from your help docs, with a link to the page it used.
  • Summaries of long threads - support tickets, call notes, case files - shown where your team already works.
  • An agent step in a flow you already run: sorting incoming email, say, or drafting a reply a person approves before it goes out.

We won’t train or fine-tune a model. Each feature calls one from a provider such as OpenAI or Anthropic, through code that lives in your app.

How the two weeks run

Scoping is free: one 30-minute call and a read-only look at your repo, with a written scope within 2 working days. The scope names the feature, the data it reads, and a list of real questions your users ask, each with the answer you’d accept.

Those questions become a test that runs on every change, so you see the answers get better or worse instead of taking our word for it. The scope also sets how many of those questions must pass on production; the second half of the price is due only when they do, with the extra days from the slip terms if they don’t by day ten.

A staging link in week one, a plain-English note every Friday and one mid-sprint call. See a sample Friday report.

What it costs

$3,200 per Sprint. The scope is agreed in writing before we start. Anything new becomes a second Sprint at the same $3,200. The model provider bills its usage to your own account.

Questions founders ask first

Does our customer data leave the app? The scope lists which fields each request sends to the provider, and you approve that list before we start.

What does each request cost? It depends on the model and how much text each request sends. Providers bill by tokens; we measure them on your test questions during the Sprint, so you see an estimate from your own test questions before you decide to launch.

What if the model gets it wrong? It will, sometimes. That is why the test questions run on every change, and why an agent step that sends or changes data waits for a person to approve it. For timeouts and outages, see what RubyLLM retries, and for how long.

Who owns the prompts and the code? You do. Prompts are plain files in your repository, next to the code that calls them. Yours from the first commit, IP included.

Read our work before you call

A shared elital shortlist for ruby on rails developer: an anonymised Software Developer in New Delhi with 12 years, a match score of 98, and the start of a Why This Match paragraph
elital, our own product, not client work. An LLM gives each candidate a 0-100 match score and writes the Why This Match note.

Tell us what you need built

JetThoughts has been building software since 2008. Book a call, or write to sales@jetthoughts.com. You'll leave the call with a written one-page scope within 2 working days.

#01 Paul Keen
Paul KeenChief Technology Officer & Open Source Contributor

A 30-minute call; pick a time.