·4 min read

Building an AI Content Engine for a Gov Contracting Platform

build-in-publicai-agentsgovtechcontent-systemsclaude-api|
PostLinkedIn

A complete AI-powered blog and content system — from research to generation to multi-channel publishing. Here's why I built it and how it all fits together.

Why a Gov Contracting Platform Needs a Content Engine

GovChime helps companies discover government funding opportunities. The problem is that government contracting is confusing, jargon-heavy, and constantly changing. Our users need to understand things like NAICS codes, SAM registration, set-aside programs, and procurement timelines — and most existing content about this stuff is either buried in government PDFs or locked behind enterprise paywalls.

I analyzed over 20 competitors — GovTribe, Deltek, BGOV, Govly, HigherGov, GovDash, and others — to understand what content they produce and where the gaps are. Most of them treat content as an afterthought: generic blog posts, recycled press releases, and thin SEO pages. There's a real opportunity to build content that actually helps people navigate the system.

The Architecture

The system has four main layers:

AI Generation. Claude API powers the content creation. But it's not just "generate a blog post." There's a research agent that gathers context — current contract opportunities, regulatory changes, industry trends — and feeds it into Jinja2 prompt templates. Each piece of content gets scored against 10 quality rubrics before it enters the approval queue. The whole pipeline runs on Celery/arq async jobs so it doesn't block the main application. Content Management. Full admin CRUD with an approval queue. Every AI-generated piece gets reviewed before it goes anywhere. The post editor supports rich content, and there's a history system so you can see how a piece evolved. I built this on top of the same Pydantic-to-JSON-Schema-to-TypeScript pattern we use in Melio — type safety from the database all the way to the frontend. Distribution. This is where it gets interesting. Content doesn't just go to a blog page. There are personalized email digests segmented by NAICS code — a construction company gets different content than an IT services firm. The Twitter bot we already had gets new templates for content promotion, and we added LinkedIn publishing. Each channel has its own formatting and scheduling logic. Frontend & SEO. Next.js with ISR for the public blog, mobile-first design, RSS feed, and a proper sitemap. On the SEO side: JSON-LD structured data, FAQ schema markup, and a keyword strategy targeted at the long-tail queries people actually search for when trying to understand government contracting.

The Infrastructure Side

This wasn't just application code. I added a dedicated govchime-ai Docker service with its own Dockerfile, production and staging compose files through Komodo, and a Redis container for the job queue. The CI pipeline got Python linting with ruff added to the pre-commit hook. The test plan covers 200+ test cases across pytest, Mocha, and Playwright.

What I Actually Learned

The hardest part wasn't any single component — it was making them work together cleanly. An AI content system is deceptively complex because every piece touches every other piece. The rubrics affect what gets generated, the NAICS segmentation affects distribution, the SEO requirements constrain the content format, and the approval queue has to sit in the middle of all of it.

I also wrote a specialized Claude agent configuration (content-system.md) to handle all the GOV-92 implementation work going forward. Having an agent that understands the full architecture makes the next phases dramatically easier.

What's Next

This PR was the architecture and first implementation. The next phases are about tuning — improving rubric accuracy, expanding the prompt templates, building out the email campaign analytics, and getting real user feedback on what content actually helps them win contracts.

The bet is simple: if we can consistently produce content that helps small businesses navigate government contracting, they'll trust us with the rest of their workflow too.

Oleksandr Yusypenko

Oleksandr Yusypenko

Senior Full-Stack + AI Engineer. Building in public — AI agents, LangGraph, production systems.