personalization made easy

Metarank is a service that can personalize any type of content: product listings, articles, recommendations and search results in 3 easy steps with a few lines of code.

  Join Slack   Contact us


Why Metarank?

Building personalized ranking systems is hard.

It’s often considered "too risky" to spend 6+ months on an in-house moonshot project to reinvent the wheel without an experienced team and no existing open-source tools.

Metarank makes it easy not only for Amazon to do personalization, but for everyone else.

Try it out!


How It Works?

Load historical data

Ingest historical item listings, clicks and item metadata so Metarank can find hidden dependencies in the data using our simple JSON format.

Train the Machine Learning model

No Machine Learning experience is required, run our CLI tool with a set of features in a YAML configuration.


Run Metarank API service, feed it with real-time events and receive personalized ranking for your items that will boost conversion, click-through rate or any other business-critical metric you define.

YAML configuration


No Coding Required

Metarank is not your basic run-of-the-mill vendor locked Python Machine Learning framework: it just needs a YAML definition of your events and data to work.

  • YAML based format for describing events metadata and feature extractors
  • Strict JSON schema for events & metadata messages
  • Command-line interface for data import, model training and model serving
  • Local mode: try it out without deploying it to a cluster
  • Distributed data import and model serving: run on a cluster to work with large datasets
See the YAML config example


Fully Open Source

Metarank is built on top of the shoulders of giants and integrates popular Machine Learning and data processing libraries into a human-friendly personalization tool:

  • Apache Flink: leverages a vast ecosystem of connectors to external data sources like Kafka, Pulsar, AWS Kinesis and S3
  • XGBoost and LightGBM LambdaMART implementations for the Learn-to-Rank Machine Learning model
  • Cloud native by design: can be deployed on Kubernetes and AWS
See our Github
open source
JSON response


Explainable and open

Metarank is not vendor-locking your data: in "explain mode" it can show you all the data used to compute the final ranking.

  • Dumps contents of visitor's profile
  • Dumps feature values used as input for the Machine Learning model
  • Visitor profile is just a Protobuf message and can be accessed from outside
See our documentation


Simple Questions


How it is different from ES-LTR ranking?

Metarank not only does ranking, but also helps with full data preprocessing like initial bootstrapping, model training and has more advanced feature extractors.


Do I need a cluster to try it out?

Metarank supports Flink-based clustered mode for both data import and inference, but it can also be run in a local self-contained mode from command-line, using local disk for storage and bundled single-node cluster.


Can I use it in production?

Metarank is an Alpha: it's early days of development. It is well-covered with tests and runs in production several systems serving real traffic, although we don't recommend yet to run it without developer support.


When should it be used?

Metarank cannot replace a proper Data Science team, and probably will not outperform a custom-made solution. But like in a Paretto principle, it can provide you a 80% value with 20% effort. With Metarank you can be up and running with state-of-the-art personalization in a matter of hours.


How can I contribute?

As we're only shaping the form of the final software right now, you can contribute by trying to run Metarank on your dataset and report bugs. You can also contact us to describe your personalization use case, so we can tune our development priorities according to your feedback.