Sandesh Shrestha
Sandesh Shrestha
Feb 2026 - Present/Advanced
Live DemoArrow Up Right
LockCodebase is confidential

Case Study: CTD AI - AI Growth Platform for Dental Clinics

Project at a Glance

  • Role: Full-Stack / AI Platform Engineer
  • Duration: Feb 2026 - Present
  • Live: ai.connectthedoc.com
  • Stack: React, Vite, TypeScript, Node.js, Express, Prisma, PostgreSQL, Redis, BullMQ, OpenAI/OpenRouter, Google Places, BrightLocal, DataForSEO, WordPress, Google Business Profile, AWS S3, Docker, Nginx
  • Scale: ~280,000 lines of code, 54 Prisma models, background worker pipeline + product UI
  • Team: Product engineering for Connect The Doc - I built and extended the AI growth system end to end

Problem

Dental clinics know they need local SEO, Google Business activity, and consistent content, but they do not have a marketing team. Existing tools give them dashboards or disconnected AI writers. CTD AI turns clinic onboarding into an automated growth engine: discover the practice, map competitors, generate on-brand content, publish it, and keep ranking/content intelligence fresh.

What I Built

Guided clinic onboarding that creates real data, not empty accounts

  • Google Places-powered clinic search and confirmation
  • AI practice summary + service guesses, neighbourhood targeting, and keyword selection with volume/difficulty signals
  • Competitor discovery and first content/savings report so value shows up before the clinic "figures out the product"

Competitor intelligence

  • Auto-discover nearby competitor clinics
  • Local map-pack rank checks across target neighbourhoods and keywords (BrightLocal)
  • Competitor GBP/blog activity tracking with weekly refresh jobs so rankings do not go stale

Content pipeline (plan -> draft -> queue -> review -> publish)

  • Topic planning from services, keywords, and competitor gaps
  • AI drafting for blog posts and Google Business posts in the clinic's voice (Practice DNA)
  • Scheduled review queue so content ships steadily instead of dumping 20 drafts at once
  • Publish to WordPress and Google Business Profile via real integrations

AI assistant grounded in live clinic data

  • Chat that answers using clinic context, rankings, and content state - not a generic chatbot wrapper
  • Practice DNA brand-voice profile so generation stays consistent across posts and chat

Platform engineering

  • Express/TypeScript API with Prisma + Postgres
  • BullMQ workers for enrichment, competitor scans, content generation, crawling, and scheduled jobs
  • Docker Compose staging/production with Nginx TLS on ai.connectthedoc.com
  • Production DB sync tooling so local debugging can use real-shaped data safely

Architecture Highlights

Clinic UI (React + Vite)
        |
        v
 Nginx TLS  --->  API (Express + Prisma + Postgres)
                        |
                        +-- Onboarding / Places / Keywords
                        +-- Competitor intelligence
                        +-- Content + Practice DNA
                        +-- WordPress / GBP integrations
                        |
                        v
                 Redis + BullMQ workers
                        |
                        +-- Rank scans / SEO crawls
                        +-- Content generation jobs
                        +-- Publish + refresh schedules

Hard Problems I Solved

  • Onboarding that must feel magic and still be correct: Places confirmation, service inference, neighbourhoods, and keyword metrics have to compose into a coherent clinic graph on day one.
  • AI that is operational, not theatrical: Drafts enter a queue with review and publish paths. Nothing "AI-generated" ships without clinic/admin control.
  • Local SEO data is multi-vendor: BrightLocal, DataForSEO/SerpApi, Places, WordPress, GBP. Designed service boundaries and workers so failures in one provider do not take down the product.
  • Brand voice at scale: Practice DNA keeps hundreds of posts on-brand without rewriting prompts by hand for every clinic.

Results & Impact

  • Production system live at ai.connectthedoc.com
  • Clinics go from login -> discovered practice -> competitor map -> first content batch in one guided flow
  • Recurring weekly intelligence + content cadence without hiring a marketing ops person
  • Large, maintainable codebase with clear product docs for every major feature area

What This Shows About Me

  • I build AI products that plug into real business workflows (SEO, GBP, WordPress), not toy chat demos
  • I can design long-running worker systems and multi-API orchestration
  • I care about operator UX: queues, review, scheduling, and trust controls around generation
  • I document and ship production platforms at serious scale (~280k LOC)

Links

Note: The codebase is confidential and not publicly available.