Italian Dense Bean Salad for Meal Prep

Most meal prep salads decline daily. This one doesn’t, and the reason comes down to what’s actually in the bowl. Canned beans are already fully cooked and hold their shape for days in a way lettuce never could. A vinegar-based dressing — oil and acid, not dairy — doesn’t separate or break down the way a ranch or Caesar dressing does after a few days of sitting in the fridge; if anything, the acid keeps working on the raw onion and vegetables the whole time, which is why a portion eaten on Wednesday often tastes more balanced than one eaten an hour after mixing.
The uniform, small dice matters just as much as the ingredients themselves. Cutting everything to roughly the same ¼-inch size means the dressing coats far more surface area than it would on big chunks, and it means nobody’s digging through a mostly-bean bite before hitting the cheese and salami. That density is the entire personality of the dish — cut everything large and it turns into a chopped salad that eats completely differently.
Ingredients
For the salad:
- 1 (15 oz) can chickpeas, drained and rinsed
- 1 (15 oz) can cannellini beans, drained and rinsed
- 1 (15 oz) can kidney beans, drained and rinsed (rinsing all three matters here — the canning liquid is starchy and salty, and skipping this step makes the finished salad taste flat and slightly metallic)
- 1 cup diced English cucumber (about ½ a cucumber; a regular cucumber works too — scrape out the seedy center first so it doesn’t water down the salad)
- 1 cup diced bell pepper, any color
- ½ cup finely diced red onion (about a quarter of a medium onion)
- 1 cup cherry tomatoes, halved
- 4 oz Genoa salami, diced small (about ¾ cup) — adds protein and a cured, savory note; leave it out for a vegetarian version and add an extra half-can of beans in its place
- 8 oz fresh mozzarella, diced small (about 1½ cups) — fresh mozzarella has a cleaner bite than the low-moisture shredded kind, which tends to dry out and turn slightly rubbery after a few days in the fridge
- ¼ cup chopped fresh basil, plus more for serving
- ¼ cup chopped fresh parsley
For the dressing:
- ⅓ cup olive oil
- ¼ cup red wine vinegar
- 1 tbsp Dijon mustard
- 2 garlic cloves, minced
- 1 tsp dried Italian seasoning
- ½ tsp kosher salt
- ¼ tsp black pepper

What You’ll Need
- A large mixing bowl — big enough to hold and toss about 10 cups of salad without everything spilling over the sides
- A cutting board and a sharp knife — most of this recipe is dicing, and a dull knife makes small, even cuts slower and messier
- A small jar or bowl with a lid, for shaking the dressing together
- Five 2-cup storage containers, glass or BPA-free plastic
The Uniform Dice Is the Whole Point
Cut the cucumber, bell pepper, onion, salami, and mozzarella to roughly the same size before anything gets combined — somewhere around ¼ inch works well, close to the size of the beans themselves. Rushing this step and leaving some pieces twice the size of others is the single biggest reason a dense bean salad ends up tasting uneven, with some bites all onion and others all bean.
Dice the red onion smaller than everything else if raw onion bite is a concern — finer pieces have more surface area exposed to the vinegar and mellow out faster during the rest period.
Building the Salad, Bowl to Container
Drain, rinse, and dice everything first — about 20 minutes. Drain and rinse all three cans of beans and let them sit in a colander while everything else gets prepped. Dice the cucumber, bell pepper, onion, salami, and mozzarella to a uniform small dice, and halve the cherry tomatoes. Chop the basil and parsley, keeping a small handful of basil aside for serving later in the week.
Whisk the dressing — 5 minutes. In a small jar, combine the olive oil, red wine vinegar, Dijon mustard, minced garlic, Italian seasoning, salt, and pepper. Shake or whisk until it looks uniform and slightly thickened — Dijon is what keeps the oil and vinegar from separating right back out.

Combine and toss — 3 minutes. Add the drained beans, diced vegetables, salami, mozzarella, and herbs to the large bowl. Pour the dressing over everything and toss thoroughly, scraping the bottom of the bowl a few times to make sure nothing’s sitting undressed at the base.
Rest before portioning — at least 30 minutes. Cover the bowl and refrigerate. Thirty minutes is the minimum for the onion to lose its raw bite and the flavors to start coming together; resting it a few hours, or overnight, gives a noticeably deeper result. This is the step most people skip, and it’s the one that separates a good dense bean salad from a great one.
Portion into containers — 5 minutes. Divide evenly among five containers, about 2 cups each. Hold back the reserved basil until the day each portion gets eaten — mixed in from day one, it darkens and turns slightly bitter by day three or four.
Keeping It Crisp Instead of Watery
These keep 3 to 5 days refrigerated. The acid in the dressing does real work here — it’s part of why this holds up longer than most prepared salads with fresh produce and dairy in them — but it doesn’t make the food shelf-stable, so the same fridge rules apply as anything else with cut vegetables and fresh cheese: keep it at or below 40°F and don’t leave a portion sitting out for more than about 2 hours before it goes back in the fridge.
Freezing isn’t recommended. Cucumber and tomato both release water as they thaw and turn the whole salad watery and limp, the beans go mealy, and fresh mozzarella turns rubbery once it’s been frozen. This one’s genuinely better made fresh for the week than frozen ahead.
There’s no reheating step — this is meant to be eaten cold or at room temperature, straight from the container. If a portion has been in the fridge for a day or two, give it a quick toss before eating; the dressing settles toward the bottom of the container and a stir redistributes it evenly.
Where This Slips Between Monday and Friday
The salad turns watery by day 4. Cucumber and tomato both release liquid over several days, even without freezing. Fix: salt the diced cucumber and let it sit in a strainer for 10 minutes before adding it to the bowl, pressing out the excess liquid first.
The onion stays too sharp even after resting. Usually the dice was too large, giving less surface area for the vinegar to work on. Fix: dice it smaller next time, or soak the diced onion in the vinegar alone for 10 minutes before building the rest of the dressing.
The mozzarella tastes dense and slightly rubbery. Cold fridge temperatures firm up fresh mozzarella more than people expect. Fix: let the portion sit at room temperature for 10 to 15 minutes before eating rather than eating it straight from the fridge.
The dressing pools at the bottom of the container. Normal — oil and vinegar settle out of suspension over time even with Dijon helping to hold them together. Fix: give each container a firm shake or a quick toss with a fork before eating.
Basil mixed in on day one looks dark and bruised by day three. Cut herbs oxidize fast, especially sitting in an acidic dressing. Fix: hold reserved basil separately and add it fresh to each portion right before eating.
Four Ways to Change the Bowl
Vegetarian: Skip the salami and add an extra half-can of chickpeas or a cup of diced artichoke hearts in its place for texture and heft.
Spicier: Stir in ¼ cup diced pepperoncini or banana peppers along with 2 tablespoons of their brine, added with the dressing — the brine adds tang without needing extra vinegar.
Lower-carb: Cut the beans to two cans instead of three and add an extra cup of diced vegetables — zucchini, celery, or radish all hold their crunch well in the dressing.
Different cheese: Swap the mozzarella for an equal amount of cubed provolone or crumbled feta — feta brings more tang and pairs particularly well with the red wine vinegar.
Dense Bean Salad Questions, Answered
Can I make this without any of it touching a stove?
Yes — that’s the entire point. The canned beans are already fully cooked, and everything else is either raw produce, cured meat, or fresh cheese, none of which needs to be cooked before eating.
How long does this actually keep in the fridge?
Three to five days, kept at or below 40°F. The vinegar-forward dressing slows things down compared to a creamy dressing, but fresh mozzarella and cut produce still set the real limit.
Can I freeze it?
It’s not recommended. The cucumber and tomato turn watery on thaw, the beans go mealy, and the mozzarella turns rubbery. This one holds up far better made fresh each week than frozen ahead.
Do I have to let it rest before eating it?
For the best flavor, yes — at least 30 minutes, ideally longer. It’s technically fine to eat right after tossing, but the onion will taste sharper and the flavors won’t have had a chance to come together yet.
Can I use dried beans instead of canned?
Yes — about 1½ cups dried beans, cooked and cooled, replaces one 15-ounce can. Just make sure they’re fully cooked through and cooled before mixing, since warm beans can wilt the vegetables and make the salad go watery faster.
What can I substitute for the mozzarella if I don’t eat dairy?
Skip it and add an extra ½ cup of diced vegetables or a can of drained, diced artichoke hearts to keep the texture varied — the salad loses some richness but keeps its structure.
Is it safe to eat cold straight from the container, with no reheating?
Yes. Nothing in this recipe requires heating for safety — it’s meant to be a cold, marinated salad from start to finish, the same way a classic pasta salad or bean salad would be served.
One Bowl, No Stove, Five Lunches
There’s something genuinely useful about a meal prep recipe that asks nothing of a stove — no timing, no internal temperature to hit, no reheating step to get wrong on a busy morning. The work here is all in the dice: cut everything small and even, let the vinegar do its job overnight if there’s time for it, and the salad holds its texture and gets better through most of the week instead of worse. Keep the basil separate until serving, and this is about as low-maintenance as meal prep gets.
