Heat 1 tablespoon oil in a skillet over medium heat and cook the onion for 15 to 18 minutes until soft and deeply browned.
Shape the beef into 4 thin oval patties slightly larger than the bread and season both sides with the salt and black pepper.
Heat the remaining oil on a griddle over medium-high heat and cook the patties for 3 to 4 minutes per side until they reach 160°F.
Layer 1 rye slice, 1 Swiss slice, a patty, onions, another Swiss slice and a second rye slice for each sandwich.
Spread the outer bread with butter and griddle the melts over medium heat for 3 to 4 minutes per side until crisp and the cheese is fluid.
Rest for 2 minutes, then cut each patty melt diagonally.