Confidential (SEO platform) · Marketing technology
An AI-powered SEO and content platform. Batching and caching cut keyword tracking spend in half.
Category
SaaS
Year
2024-2025
Industry
Marketing technology
Optimization
Nothing done twice


How it is optimized
Nothing done twice
Batching and caching cut keyword tracking spend in half.
Requests are batched and cached by keyword and locale, so the same data is never bought twice. Bulk generation runs as resumable jobs that retry a single failed item instead of the whole batch, and generation is routed through OpenRouter, so a model can be swapped without touching product code.
What keeps it lean
- 01Cache keyed by keyword and locale
- 02Retry one item, not the batch
- 03Models swapped behind one router
Caching, batching and reuse instead of regenerating the same work.
The challenge
SEO teams switched between five tools to get from keyword discovery to rank tracking, losing hours a day and ending up with numbers that did not agree. Most of those tools also ran on stale data, so teams reacted late to what search was actually doing. The work needed to collapse into one place, run on live data, and cost less than the tools it replaced.
The work
We built one platform: keyword research and rank tracking on live DataForSEO and Google Maps data, an AI content engine routed through OpenRouter so models can be swapped without touching product code, and Trigger.dev running bulk generation as resumable background jobs. Requests are batched and cached by keyword and locale, so the same data is never bought twice.
Inside the product
More than one screen.
The product name and data have been changed at the client's request; these screens recreate Rankloom as it was built.

Keyword research
Live volume, difficulty and intent, with local insights from Google Maps.

Content assistant
Batch article generation as a resumable job, with an SEO score per draft.
Rank tracking
Daily positions, movers and the background jobs that refresh them.
On the phone

Home

Keyword research

Content assistant
Rank tracking
How it is built
Architecture
Next.js App Router with server components for data-heavy views, Supabase and PostgreSQL for storage, and Trigger.dev for durable background jobs. Generation is proxied through OpenRouter so models swap without touching product code.
Key features
Challenges & solutions
Challenge
Keyword API costs scaled linearly with users and quickly became the largest line item.
Solution
Introduced request batching and a caching layer keyed by keyword and locale, cutting tracking spend in half without reducing data freshness.
Challenge
Bulk content jobs exceeded serverless execution limits and failed midway.
Solution
Moved generation onto Trigger.dev as durable, resumable jobs that checkpoint progress and retry individual items rather than the whole batch.
The impact
What became easier, better or more effective.
Rankloom replaced five separate tools with one. Keyword research, drafting and rank tracking run as workflows the team reviews rather than operates, drafts arrive with an SEO score attached, and the largest cost line in the business, keyword data, fell by half without the data getting any older.
The learning
The product team now sees what a tracked keyword and a generated article actually cost. The conversations about which requests would be expensive later happened before anything was built, not after.
“They pushed back when a request would have cost us later, and were right every time. Weekly demos, no surprises on the invoice, and still reachable long after launch.”
3x
lower cost per article
Drafting, optimisation and publishing run as one workflow instead of a chain of tools and hand-offs, so an article costs a third of what it did.
30
articles generated in 10 minutes
A batch that used to take the content team hours is now a resumable background job, with an SEO score on each draft so the editor knows where to start.
50%
lower keyword tracking spend
From $0.18 to $0.09 per tracked keyword, with no loss of freshness. The same data is simply not bought twice.
Stack
Frontend
- Next.js
- TypeScript
Styling
- TailwindCSS
- ShadCN
Backend
- Supabase
- PostgreSQL
- Trigger.dev
APIs & AI
- OpenRouter
- DataForSEO
- Google Maps API
Payments
- Stripe
Deployment
- AWS EC2
- AWS Lambda
Analytics
- PostHog
Optimization
Nothing done twice
Caching, batching and reuse instead of regenerating the same work.
Conscious AILet's talk
Tell us where you are. We'll say plainly what we would do next, and whether we're the right team for it.