The film centers on Rob Gordon (John Cusack), a self-confessed audiophile whose flair for understanding women is less than par for the course. After getting dumped by his current girlfriend, Laura (Iben Hjejle), he decides to look up some of his old flames in an attempt to figure out what he keeps doing wrong in his relationships.
He spends his days at his record store, Championship Vinyl, where he holds court over the customers that drift through. Helping Rob in his task of musical elitism are Dick (Todd Louiso) and Barry (Jack Black), the "musical moron twins," as he refers to them. Armed with an encyclopedic knowledge of all things musical, they compile "top five" lists for every conceivable occasion, openly mock the ignorance of their customers, and, every so often, actually sell a few records.
Rob and the staff have a strong dislike for two shoplifting skateboarder teenagers, Vince (Chris Rehmann) and Justin (Ben Carr). One day, he listens to a recording that they did and offers them a record deal, starting his own label called "Top 5 Records". During his off hours, he pines for his lost girlfriend Laura and does his best to win her back.
Rob soon hears that Laura's father, who liked Rob, has passed away, and attends his funeral with Laura. Shortly after the reception, Rob realizes he never committed to Laura and always had one foot out the door. This made him realize he neglected his own future in the process. Afterwards, he and Laura move back in together again, and she organizes a celebration of the recently released single by the two delinquents, where Barry's band plays "Let's Get It On" and is delightful (to everyone's surprise). In the final scene, Rob finishes his advice about making the perfect mix tape, and says that he is now making one for Laura.