Place ground beef in a large skillet over medium heat. Cook until evenly browned, stirring to crumble. I like to use a potato masher to even out the lumps. Add onion and celery, cover the pan, and cook until tender and transparent, about 5 minutes. Drain off any grease.
Stir the tomato soup (undiluted), ketchup, vinegar, brown sugar and Worcestershire sauce into the beef mixture. Season with salt and garlic powder. Heat to a simmer over low heat, and cook until thoroughly heated, stirring frequently to prevent it from burning on the bottom.
Spoon the hot beef mixture onto buns, which may be toasted first, and serve.