Open primaries with ranked choice voting.
Top two to general.
Done.
The current model, in a "safe" dem seat (45% R / 55% D) whoever wins D primary wins everything. This means the D primary (with 20% of voters - most activist) are deciding things. Same on the right.
With open primaries, you will get 2 D's potentially in general, but now the R vote actually matters. This drives towards the middle.
Additionally RCV in the primary (ie pick 3 in order) also allows votes for less well known folks without as much wasted voting.
Another method is RCV with a multi-seat election. So you rate 5 candidates and their are 5 winners in the larger geo area. This tends to give even groups with let's say 20% makeup of voter pool a seat at the table. Traditional winner takes all does not.