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.