If you're not already familiar with the problems with "First Past the Post" voting systems (aka what we do in the US all the time) i strongly suggest checking out CGP Grey's video series on voting systems, starting with the aptly named "The Problems with First Past the Post Voting Explained": https://www.youtube.com/watch?v=s7tWHJfhiyo
I think anyone who really cares about the issue agrees that anything would be better than first past the post, but past that the merits of the different systems vary. So here's a system that seems pretty good to me. It would only be applicable to the House of Representatives, but would do an excellent job in that arena.
This method would really only work for the House of Representatives, but i think it would work admirably for that purpose.
(And i suppose i should insert a disclaimer here, none of this is particularly original. It's just me piecing together bits of ideas that others have come up with into the structure that seems most appealing to me.)
First, each state has one seat that everyone can choose to vote for, via some non-FPTP method. The other seats are all determined via a modified Single Transferable Vote (STV) (basically the same as Alternative Vote or Instant Runoff, https://www.youtube.com/watch?v=3Y3jE3B8HsE) from amongst a theoretically unlimited number of "ideological" candidates. Each voter in the state has to choose between voting for the state seat or the other seats.
For the ideological seats, each candidate states their positions before the election and the voters who want to participate in that half of the election ranks all their favorite choices. Every candidate that passed the threshold, very approximately 350,000 given the current number of Representatives and registered voters, would get a seat. That value could be higher or lower based on a larger number of factors, so we'll call the threshold value X.
The idea is that the end each elected Representative, aside from the one designated State representative, would represent a specific X people. Ideally that Rep would share exactly the same views as their constituency, at least on their main issues, and even in a realistic non-ideal world they ought to be pretty close.
What i imagine this would result in would be, for example, a Rep who believed the most important issue was copyright reform and took a strong stance on it, and their constituency would be people who also thought that was an important issue, agreed with the candidate's views on it, and felt that the Rep's views on secondary issues was not anathema to their own. This could very easily lead to self-identifying groups, "this is the candidate who used to be a software engineer and supports positions that most liberal people with a technical background would support, so their constituency is mostly liberal techies." And that seems fine to me.
The tricky bit is the actual representation. On the one hand as long as the candidates clearly state their position before the election then in theory getting the votes they need indicates a mandate to move forward on those positions. However if some new issue comes up then in theory their constituency ought to be able to write to them about their views. That means that the voters need to know who their vote actually went up going to, and the Representative needs to know who is in their constituency.
That means that there needs to be a record maintained of how each vote was allocated. One could attempt to keep that record restricted to the people who needed to know it, but the practicality of that is debatable. This would be the reason for the State Representative. That Rep would represent everyone in the state who voted for that seat, regardless of who they voted for. Since it doesn't matter who those people voted for their vote can be fully anonymous. In order to stick to "one person, one vote", when that Rep receives a letter they need to check two things. "Is this person from my state" and "did they vote for any specific candidate" (as opposed to voting for one of the general State Rep candidates.) Since records need to be maintained for the Ideological candidates it should be easy to verify that they are not assigned to any specific candidate, and if so then they are part of the State Rep's constituency.
So during the election process the people running for the State Rep's process would be going through an election process very similar to the ones we see now, with all the pros and cons that entail. In theory they would be getting elected by something other than FPTP, so that might modify the tactics of both the candidates and the votes somewhat, but possibly not in a significant manner.
The rest of the candidates would be modifying their platform to appeal to a specific X number of people. They need to appeal to that many people to get elected but, in theory (see below) do not need to appeal to any larger demographic. They wouldn't want to pigeonhole themselves too much (lest they fail to get the requisite number of votes) but a certain amount of specificity is actually desired in order to make themselves stand out.
There are two big questions that remain open.
1: Should these elections be restricted to a state-by-state basis, or should they actually be run at a national level?
I actually feel a national level would be better, the more candidates you have running at once then, in theory, the better the ideological fit between the voters and who they end up voting for. If there are only 10,0000 people in every state who feel that changing National Pie Day to March 14th is the highest priority issue then they are not going to get a candidate as their first choice given the current rough estimate of X. But if the election is run at a national level then they would likely get at least one first choice Representative. However that would require a higher degree of coordination between the states which might or might not be feasible.
2: How should overflow votes be decided?
If a candidate got more than 2X votes then in theory you could allocate them two virtual seats. And in theory you could do so for 3X votes as well, and etc. You could even allow Reps to have fractional seats for any value above 1 X. (Allowing fractional values below the threshold would be a very bad idea, since then you could quickly result in everyone in the country running for office, everyone voting for themself, and everyone having a 1/X vote for every issue. Direct democracy is not a fundamentally bad idea, but it kind of defeats the purpose of trying to have a Representative system.)
One could argue that that is reasonable, if a Rep supports a position that 2X people agree with then those 2X people deserve more representation, right? The problem is that encourages people running for office to adopt vaguer and more widely appealing positions to get as many votes as possible so as to have more power. If you combined this with nation-wide elections then eventually you might have, to pick a totally random example, someone who runs for office as a Representative on the platform of *cough* "let's kick out all the immigrants and build a wall" and gets 51% of the people to vote for them, thus having 51% of the votes in the House of Representatives, and thus effectively become a second President.
So we want to cut them off at a constituency of X size with 1 vote in the House, so what do we do with the extras? The mathematically favored solution is some form of fractional transfer. "If 55% of the people who voted for Candidate A had B as their second choice, and A got 100,000 more votes then they needed, then candidate B should get 55,000 more votes", and etc. The problem is that each Rep is supposed to represent a specific set of people, which doesn't really work with fractions. I mean, you could tell a voter after the election "you are 45% represented by candidate A, 30% represented by candidate B, and 25% represented by candidate C", but that seems potentially confusing.)
So you need to "randomly" select some votes to get transfered, but it needs to be the kind of random that can be reproduced later for verification purposes. Sorting based on some kind of hash of their voter ID with the candidate's ID?
(You could in theory give priority to people who didn't have second choices, but that could encourage people to vote for only one choice, which would be the opposite of what we want.)
(You could also in theory give priority based on how highly they were ranked on the ballots. But in that case do you prioritize the people who have them ranked higher, and thus presumably care about the person more? Or the people who have them ranked lower, and are more likely in danger of running out of choices?)
(And if people do run out of choices how do you handle that? If you do nothing by default they will get assigned to the State Rep, but you could have a "runoff" election for everyone who fell off the end of their ballot, possibly restricted to some smaller set of the more popular losing candidates.)
In any case, that would help encourage candidates to differentiate themselves more. If there are 2X people who believe in copyright reform then running as generic copyright reform guy might not be an entirely safe bet anymore. That would mean there were enough people in that demographics for there to potentially be a Pro-Copyright Reform & Pro-Dog candidate and a Pro-Copyright Reform & Pro-Cat candidate, each of whom might get 1X of the 1st choice vote, leaving the generic candidate out in the cold.
And if you really wanted to go crazy you could actually roll the Senate and Representative elections together, treating the Senate seats as the State Rep in the examples above. The upside is that this would make a lot of philosophical sense since that's really want a Senator actually is. The downside is that you'd then in order to vote or an idealogical Representative you'd have to give up your vote for the Senator(s), who proportionately wield a lot more political power. Unless you're willing to just allow everyone to vote for a Senator and a Representative have everyone just accept that if want to vote anonymously they'll have to skip the Representative race.
If you wanted to go all out on embracing the non-anonymity however you could actually make lists of who each Representative represents public. The obvious benefit to this is that it would make vote manipulation much harder to pull off. There would probably also be a lot of unexpected benefits from data analysis of who voted for who. On the downside you'd almost certainly have some assholes harassing people on their votes all the time. (Rather than just when the government servers got hacked and the lists got leaked =P) Prominent public figures in particular (celebrities, politicians, etc) would probably have their voting record poured over.
Finally, one small modification to the normal STV system that i think would be necessary would be to modify the elimination process. Under the "normal" system after each round if there aren't enough votes left for a seat to be determined then the people who got the least votes are eliminated and people who had that candidate as their top choice are redistributed.
There is the potential that a candidate who was everyone's second choice but no one's first choice could get eliminated early that way. It's very unlikely in an election with a "small" number of candidates, but in this case there would be a potentially huge number of candidates, especially if it was nation-wide.
I think a better system would be when it comes time for elimination to award each candidate fractional points for everyone who had them on the ballot at all. 1 point for a first choice, 1/2 point for a second choice, 1/3rd for a third choice, etc. Or something along those lines. Thus the first people eliminated would be the ones that almost no one would vote for, no matter how many iterations the process ends up having to go through. (It's possible that the Meek system already does that, since it is apparently considered the "best" STV system by a lot of people, but i got confused trying to read through the description =P)
Realistically speaking though, i'd be pretty darn happy if we could just get STV implemented for our current election system. (Not that that's likely to happen either =P)