Combine black pepper, paprika, cayenne pepper, minced garlic, Dijon mustard, brown sugar, onion powder, and salt in a small bowl. Stir in 1 tablespoon olive oil to make a paste.
Spread paste over salmon fillets; set aside to marinate at room temperature for 30 minutes.
Heat remaining 2 tablespoons olive oil in a small pan over medium heat. Stir in onion; cook until tender and golden brown, about 10 minutes.
Heat a separate nonstick skillet over medium-high heat. Cook salmon fillets in the hot skillet until golden brown on each side and no longer translucent in the center, about 4 minutes per side.
Pour caramelized onions and olive oil over salmon fillets to serve.