Platform build · Retail and publishing

Book recommendations at scale, with a self-hosted LLM

A hybrid recommendation engine over more than 10 million titles and a goal-based recommendation chatbot on a self-hosted Llama 3 model.

Client
A US publishing group
Engagement
Recommendation platform, data pipeline and conversational assistant
Our role
Data engineering, recommendation modeling, LLM deployment, APIs
Status
Delivered
Higher click-through on recommendations

60%

Book records normalized from three sources

10M+

API cost avoided with self-hosting

~$10K/mo

Test coverage on FastAPI services, 50 RPS under k6 load

95%

In brief

A US publishing group wanted personalized book discovery across more than 10 million titles without paying thousands of dollars a month in model API fees. Involabs normalized catalog records from Amazon, Ingram and Goodreads into one catalog, built a hybrid recommendation engine on PostgreSQL and Qdrant, and added a recommendation chatbot on a self-hosted Llama 3 model that explains each pick. Recommendations reached 60 percent higher click-through, and self-hosting avoided about $10,000 a month in API costs.

Architecture

How it works

  1. Ingest

    Catalog ETL

    • Amazon, Ingram, Goodreads
    • 10M+ records normalized
  2. Retrieve

    Hybrid engine

    • PostgreSQL and Qdrant
    • Collaborative and content signals
  3. Converse

    Recommendation chatbot

    • Goal-based questioning
    • Explains each pick
    • Self-hosted Llama 3
  4. Serve

    Private cloud

    • FastAPI services
    • Docker deployment
    • Load tested

The situation

A US publishing group wanted personalized book discovery across more than 10 million titles, without paying thousands of dollars a month in model API fees.

What we built

  • An ETL pipeline normalizing catalog records from Amazon, Ingram and Goodreads into one clean catalog of more than 10 million records.
  • A hybrid recommendation engine over PostgreSQL and Qdrant, combining collaborative and content-based filtering. A related build used a two-tower deep learning model that adapts to live user interaction rather than an overnight batch.
  • A goal-based recommendation chatbot that establishes intent through guided questions before recommending, and explains why each book was chosen. It runs on a self-hosted Llama 3 model. The model is served with Ollama.
  • FastAPI services deployed with Docker to a private cloud, with 95 percent test coverage and 50 requests per second validated under k6 load testing.

Results

  • 60 percent higher click-through on recommendations
  • About $10,000 a month in API costs avoided by self-hosting the language model
  • More than 10 million book records normalized

Why it matters

Self-hosting is not always cheaper, but at this volume it avoided roughly $10,000 a month in API fees and kept the model running in the client’s private cloud.

Have a similar problem?

Send us the problem and the constraints. We will tell you what it would actually take, starting with a fixed-scope assessment.