Heat olive oil in a large skillet over medium heat. Add chopped onion and cook until softened, about 5 minutes.
Stir in minced garlic, ground cumin, smoked paprika, and cayenne pepper. Cook for another 1-2 minutes, stirring constantly, until fragrant.
Pour in the can of diced tomatoes along with its juices. Stir well and let the mixture simmer for about 10 minutes, allowing the flavors to meld together.
Add the drained and rinsed white beans to the skillet. Stir to combine and season with salt and pepper to taste.
Make 4 small wells in the mixture and crack an egg into each well. Cover the skillet and cook until the eggs are cooked to your liking, about 5-7 minutes for runny yolks.
Remove the skillet from heat and garnish with freshly chopped cilantro. Serve immediately.