Systems We Have Built and Run

A client platform that replaced two subscriptions, plus the data collection, knowledge base, and analytics infrastructure we built for our own research.

Each one maps directly to a service we offer today.

Start a Project See Services
Client ProjectSaaS ReplacementData Pipeline

Replacing Two Amazon Analytics Subscriptions for an Agency

An Amazon agency managing more than 40 seller and vendor accounts was paying about $31,468 a year ($2,622 a month) for two analytics platforms: one for P&L reporting and one for Buy Box monitoring. The tools were expensive, their data lived in someone else's system, and cancelling meant losing years of reporting history.

A platform the agency owns. A managed data feed pulls Amazon settlement and sales reports into the agency's own PostgreSQL database, where a P&L engine produces per-SKU profit with landed costs and currency handling, reconciled against Amazon's own settlement totals and flagging any missing inputs. Buy Box changes post as alerts in Slack. Staff use a dashboard and API with per-person logins, and nightly backups and health checks run automatically. Before the old subscriptions were cancelled, more than five years of history was exported and kept.

PostgreSQL, Python, managed Amazon data feed, cloud server, Slack alerts, web dashboard and JSON API.

Outcome: Running costs dropped from $2,622 a month ($31,468 a year) to $204 a month ($2,448 a year): a $180 data feed and a $24 server. That saves $2,418 a month, or $29,020 a year (92%), and the client owns the data and the code. All figures in USD; the original NZD $55,207 a year was converted at 0.57 USD per NZD (October 2026).

How SaaS replacement works →

Custom AutomationData Pipeline

CitationScraper: Automated Data Collection Across Four AI Platforms

To study how AI platforms choose which websites to cite, we needed citation data at a scale no off-the-shelf tool provided, collected in a way that removed personalization bias from the results.

A deterministic Python orchestrator that runs a 10-step pipeline with no language model in the control loop. Browser automation agents query ChatGPT, Claude, Perplexity, and Google AI Mode in isolated sessions (40 sessions per query) with tiered authentication, alongside Google and Bing search collectors. Every result lands in Postgres, and client-ready branded reports are generated automatically at the end of each run.

Python, Playwright, FastAPI, PostgreSQL, Jinja2 report templates, Linux server with scheduled jobs and remote recovery tooling.

Outcome: 100,411 citation events and 165,000+ unique URLs collected. The dataset behind six DOI-archived research papers, and the engine that produced automated weekly reports for clients.

Browse the research it powered →

RAG SystemGraph RAG

Research Knowledge Base: Hybrid Vector, Full-Text, and Graph Retrieval

Six papers produced hundreds of findings, each with sample sizes, caveats, and occasional corrections. Every claim in a report or article had to trace back to the right source, and a superseded number could not be allowed to resurface.

A hybrid RAG knowledge base. Documents are chunked and embedded into pgvector for semantic search, indexed with Postgres full-text search for exact terms and statistics, and passed through an LLM that extracts entities and relationships into a KuzuDB knowledge graph. Queries can run in vector, text, graph, or combined hybrid mode, and a correction workflow updates superseded findings in place.

PostgreSQL with pgvector, Postgres full-text search, KuzuDB graph database, LLM triplet extraction, Python.

Outcome: Every research claim we published was retrieved with a traceable source, and corrected findings stopped reappearing in new work.

How we build RAG systems →

SaaS ReplacementAI Infrastructure

BotSight: An In-House Replacement for AI Visibility SaaS

Commercial AI visibility tools charge monthly subscriptions, and standard analytics like GA4 miss most AI crawler traffic because bots do not run JavaScript.

A server-side collector running at the edge (Vercel middleware and Cloudflare Workers) that identifies 15+ AI bots, a relay API and Postgres database for ingestion, and a desktop dashboard with visibility scoring, Search Console, Bing, and GA4 integrations, and MCP tool access so AI agents could query the data. Licensing and billing were handled through Stripe.

Edge middleware, Cloudflare Workers, Node.js relay API, PostgreSQL, desktop application, Stripe.

Outcome: We stopped needing a paid tool for this category and sold BotSight as a commercial product with monthly and lifetime licenses.

How SaaS replacement works →

AI InfrastructureMCPOpen Source

CGC: Context Graph Connector

AI assistants waste their context window, and your money, when they are handed whole databases or documents. They need a way to see the shape of the data first and fetch only what matters.

An open-source data connector and MCP server. It connects to PostgreSQL, MySQL, SQLite, PDF, Word, Excel, CSV, JSON, Markdown, and vector stores (Qdrant, Pinecone, pgvector, MongoDB Atlas), maps the structure first, chunks documents intelligently, and fetches only what the AI needs. Works with Claude Desktop and Cursor.

Python, Model Context Protocol, MIT license.

Outcome: A reusable foundation for the client MCP servers we build today.

View CGC on GitHub →

AI InfrastructureAgent MemoryOpen Source

Orunla: Persistent Memory for AI Agents

AI assistants forget everything between sessions, so users repeat context and agents repeat mistakes.

An open-source memory system written in Rust. It detects facts automatically, stores them as knowledge graph memory, lets unused memories decay naturally over time, and searches instantly with SQLite FTS5. Runs 100% locally and works with Claude Code, Cursor, and other MCP-compatible tools.

Rust, SQLite with FTS5, Model Context Protocol, MIT license.

Outcome: The memory patterns we now bring to client agents and assistants.

View Orunla on GitHub →

Have a Problem Like One of These?

Tell us about it. We will reply within one business day with whether we can help.

Start a Project