Place a cast iron skillet over high heat. Once the skillet is hot, add the sliced bacon and cook, stirring occasionally until golden and crisp. Remove from skillet and set aside.
Note: you don't have to add any oil to the skillet, the bacon releases its own fat and it will cook in it. If you are NOT using bacon when making this recipe, add 1 tablespoon of canola oil to the skillet, before adding the ham.
Discard half the bacon fat and add the cubed ham to the skillet. If the ham has some water from the packaging, use paper towels to absorb it. Otherwise it will make cooking very messy when added to the hot bacon fat. You can also discard the bacon fat completely and cook the ham in 1 tablespoon of canola oil. Cook for about 4-5 minutes. Remove from skillet and set aside.
Discard the remaining bacon fat (if used), wipe the cast iron skillet clean. Place it back on the stove, on medium heat.
Smoother two slices of bread with mayo on one side only and set aside.
Smoother two slices of bread with cranberry jam on one side only and set aside.
Once the skillet is hot, add 1 tablespoon of butter and melt it.
Add one slice of bread that was topped with mayo to the skillet, mayo side up.
Top with 3 slices of American cheese, followed by about 1/4 cup of cooked ham and 1/4 cup of cooked bacon. Top with 1/4 cup of shredded gruyere cheese.
Top with a slice of bread that was smothered with cranberry jam, cranberry jam side down.
Press the sandwich slightly. Cook for a few minutes, careful not to burn.
Gently flip on the other side and cook for a few more minutes. Pressing slightly.
You can also cook the sandwiches on the griddle.
Remove the sandwich from the skillet, and crack an egg onto the hot skillet. Season with salt and pepper. Fry for about 2 minutes, the yolk should be runny, while the white cooked. Watch the egg closely so you cook it to the desired consistency.
Place the sandwich on a plate, top it with the runny egg.
Garnish with red pepper flakes and fresh, chopped parsley.
Serve immediately and enjoy!