Rails Site & AI Article Generator.
A Ruby on Rails lead-generation site for a sister developer-hiring brand, where I added a CMS-backed blog and a five-stage AI article generator.
I synced the blog from Strapi by webhook, with a table of contents, reading progress, editor's picks and author cards, and added 150 developer profile pages and styled XML sitemaps. The AI writer is one background job, started from a Strapi panel. It runs five stages (web-search research, writing, expansion only if the draft is under 2,500 words, a strict review and a deterministic clean-up), logs the token cost of every call and saves the article back to Strapi as a draft.
- Role
- Sole active developer · Softaims
- Time
- 2026
- Stack
- Ruby on Rails · Turbo · Stimulus · GoodJob
- Access
- Private: company project
Constraints
Articles had to be long, accurate and on-brand, with the AI spend visible, and nothing could reach the live blog without an editor's sign-off.
Key decision
I took the hard rules away from the model: a plain-code clean-up makes sure no tool is listed twice, the counts in the title and the list agree, the slug follows one pattern, outside links are nofollow and there are no dashes. A model misses these however the prompt is worded. The job only ever writes a Strapi draft, never the published article, and the Strapi panel shows its progress.
- Research: Started from a Strapi panel, one background job begins by researching the topic with web search. The call's token usage is kept for the cost log.
- Write: The same job then writes the article from that research.
- Expand: If the draft is under 2,500 words, it's expanded. Otherwise this stage is skipped.
- Review: A strict AI editor checks it against the house rules and fixes what it finds.
- Clean-up: A deterministic clean-up finishes it: plain code, no AI call, so nothing to cost.
- Done: Five stages in one background job. The article is saved back to Strapi as a draft, and the cost of every AI call is logged.
Research. Started from a Strapi panel, one background job begins by researching the topic with web search. The call's token usage is kept for the cost log.
150 developer profile pages · a five-stage AI writer with every call costed
Stack
Ruby on Rails · Turbo · Stimulus · GoodJob · Strapi · OpenAI · Tailwind CSS
Want to talk about this build?
I'm open to remote full-time roles and freelance work, and happy to walk through the decisions behind it.