To make the dressing, whisk the olive oil, vinegar, sugar, chili powder, cumin, salt, and pepper together in a large mixing bowl until well-combined.
Add the beans, corn, shallot, bell peppers, and cilantro.
Add a squeeze of fresh lime juice over the top. I use a whole lime (about 2 tablespoons).
Toss to combine.
Cover, and chill until ready to serve. This tastes better once it's had a chance to chill for several hours.
Notes
Olive oil: If you like a lightly dressed salad, reduce the olive oil to 1/4 cup.
Vinegar: If you can't find white wine vinegar, apple cider makes a good substitute as it is milder than regular white vinegar.
Sugar: The sugar can be added to taste. You can omit it if you prefer. I recommend trying it without sugar and then adding to taste from there.
Chili powder: You can use regular or ancho chile powder. I like ancho because it has a bit of smokiness to it. Also, feel free to add more or less to taste.
Salt: You can adjust the salt to taste. Feel free to start with 1/4 or 1/2 teaspoon and then adjust from there.
Corn: You can use regular canned corn or frozen corn in this recipe. If using frozen corn, you'll want to thaw it and use about 1-1/4 cups.
Shallot: I like to use dice shallot because I find the flavor of shallot to be milder than red onion. However, feel free to use 1/2 cup finely diced red onion instead.
Bell pepper: Feel free to use other colors of bell peppers if you prefer.
Other add-ins: You can add in diced Roma tomatoes, diced avocado, diced jalapeños, or any other mix-in that you like.