Skip to content
Back to case studies

Case study

GoReach

AI platform that turns research and outreach into a single agent-driven workflow. Generates LinkedIn content tailored to your voice from your own writing samples.

Headline metric

[TODO]

metric to highlight

Stack

  • Next.js
  • FastAPI
  • LLMs
  • RAG
  • AWS
  • GitHub Actions

Write-up in progress. Concrete metrics and the architecture diagram drop in soon.

The problem

LinkedIn content tools generate generic AI slop. The output sounds nothing like the person posting it, and most teams either give up after a week or end up rewriting everything anyway. The real problem isn't generation. It's matching voice. And matching voice is a retrieval problem before it's a generation problem.

The approach

GoReach treats every user's past writing as the source of truth. The system ingests your writing samples, builds a personal RAG index over them, and uses that index to ground every generation in your actual phrasing, sentence rhythm, and topic preferences. Prompts are layered: a base writer prompt, a voice-matching prompt grounded in retrieved samples, and a topic-specific prompt for the post angle.

The full stack is mine end-to-end: Next.js on the front, FastAPI on the back, AWS for infra, GitHub Actions for CI/CD with Docker. CI/CD ships changes to production on every merge to main with no manual steps.

Tech decisions worth noting

  • FastAPI over Next.js API routes for the AI layer. Easier to scale the inference and retrieval workloads independently of the UI.
  • RAG over fine-tuning for voice matching. Cheaper to update, easier to debug, and the retrieved context is visible in the output for trust.
  • Self-hosted on AWS rather than a managed AI platform. Full control over latency, cost, and data flow.

Outcome

[TODO: Neeraj] Traction metrics. Sign-ups, posts generated, active users, retention, etc. Even early numbers are fine: "live since July 2025, X users, Y posts generated".

What I learned

The hardest part of building a personalisation product is not the model. It's the cold-start problem. Users land with no writing samples and want quality output immediately. We solved it with a guided "writing sample" onboarding that asks for three short paragraphs in their voice. The flow took longer to design than the rest of the generation pipeline.

Get in touch

Pick the option that fits and I'll reply soon.

I'm reaching out about

I usually reply within a few days. For something urgent, email me directly.