Service
AI-enabled software development
We build web applications and subscription products by directing AI coding agents against written requirements and acceptance criteria. We also build and run our own software products.
What we build
Language-model features
Grading, matching, summarizing, and drafting features that explain each result, with automated checks that generated text is supported by its source. Writing rules keep generated text consistent.
Scheduled data pipelines
Automated imports and processing on a schedule, with retries, data-quality rules, and explicit handling of missing data.
Scoring models
Scoring and ranking models with a published method and stated limits.
Subscriptions and payments
Stripe subscriptions with free trials, multiple billing terms, and self-service cancellation and billing portals.
Security and privacy controls
Content Security Policy and related security headers, email authentication set to reject, bot checks on forms, data export and account deletion, and vulnerability scanning and penetration testing before launch.
Web and Microsoft stacks
React, Vite, Tailwind CSS, and Cloudflare Workers, D1, and Queues for web products. Power Platform and Azure for applications that belong inside Microsoft 365.
Our own products
We build and run our own software
Verasor funds and builds its own software products.
A subscription job-matching platform
Runs a daily automated search across job sources, grades each posting against a user's work history with a language model, and drafts tailored documents that are checked line by line against the user's own resume.
A motorsport data product
Imports race timing data on a schedule and scores each race with a published model, so viewers can decide whether the full race is worth watching without seeing spoilers.
How we build
1. Requirements and acceptance criteria
We write down what the software must do, and how we will know it works, before any code is generated.
2. Build with AI coding agents
We direct AI coding agents against those criteria and track the work in a GitHub issue backlog.
3. Test models and prompts
Where the product uses a language model, we compare prompts across models with repeated runs and choose the combination that gives consistent output. For one of our products, we refined prompts across 14 models from several providers.
4. Harden and test
Security headers, authentication, and data controls go in before launch, followed by vulnerability scanning and penetration testing by our own team.
Released against written readiness criteria
Tell us what you want to build.
We will tell you how we would build it and what it would take to run.