Warm the olive oil in a large pot over medium heat. Add the onion and garlic, cooking until the onion is soft and fragrant, about 3–4 minutes.
Add the beef broth and bring to a gentle simmer. Stir in the diced potatoes, sauerkraut, corned beef, caraway seeds, and thyme. Cook for 15–20 minutes, or until the potatoes are tender.
Lower the heat to a gentle setting. Stir in the heavy cream and Swiss cheese, mixing until the cheese is fully melted and the soup is rich and creamy.
Taste and adjust the seasoning with salt and pepper if needed.
Serve the soup in bowls, garnishing with freshly chopped parsley.