Method
Build the bulgur base
Finely chop 80 g of yellow onion for bulgur. Warm 15 ml of olive oil for bulgur in a medium saucepan over medium heat. Add 80 g of yellow onion for bulgur and cook for 4 to 5 minutes, stirring often. Start checking at 4 minutes; the onion should be softened and lightly golden at the edges. Stir in 30 g of tomato paste and cook for 1 minute, pressing it against the bottom of the pan until it darkens slightly and smells sweet rather than raw.
00:04:0000:01:00Cook and rest the bulgur
Stir 200 g of coarse bulgur wheat into the tomato-onion base until every grain is coated. Add 480 ml of water and 3 g of kosher salt for bulgur, increase the heat, and bring to a steady boil. Cover, reduce the heat to low, and simmer for 12 to 15 minutes. Start checking at 12 minutes; the liquid should be absorbed and the grains should be tender but distinct. Remove from the heat and leave covered for 5 minutes.
00:12:0000:05:00Mix and shape the kofta
While the bulgur cooks, place fresh parsley for serving (optional) and lemon wedges (optional) on a clean serving plate and keep it away from the raw-meat workspace. Finely chop 100 g of yellow onion for kofta and 25 g of fresh flat-leaf parsley for kofta, and mince 2 garlic cloves. Press excess moisture from the onion with clean hands or a clean towel. Add 500 g of 90% lean ground beef, 100 g of yellow onion for kofta, 25 g of fresh flat-leaf parsley for kofta, 2 garlic cloves, 2 g of ground allspice, 1 g of ground cinnamon, 1 g of ground cumin, 4 g of kosher salt for kofta, and 1 g of black pepper to a bowl. Mix just until the mixture becomes evenly seasoned and slightly tacky. Divide it into two equal portions per serving and shape each portion into a compact log about 10 cm (4 in) long. Wash hands thoroughly, then wash and sanitize the bowl, utensils, and work surface before handling cooked food.
Brown and cook the kofta

Heat a large heavy skillet over medium-high heat. Add 15 ml of olive oil for kofta and swirl to coat the pan. Arrange the kofta in a single layer, working in batches if crowding would trap steam. Cook the first side for 4 minutes without moving the logs, then turn and cook for 4 to 6 minutes more, rotating as needed for even browning. Check the thickest log with a food thermometer; the center must reach 71°C/160°F before serving. Transfer the cooked kofta to a clean plate, never the plate that held raw meat.
00:04:0000:04:00Fluff and serve
Uncover the bulgur and fluff it gently with a fork, loosening any grains caught at the bottom without mashing them. Spoon it onto a warm platter, arrange the kofta alongside, and finish with fresh parsley for serving (optional) and lemon wedges (optional). Serve immediately while the kofta edges are crisp and the bulgur is steaming.
Smart Substitutions
- No 90% lean beef? Use 85% lean ground beef and spoon off excess rendered fat as the kofta cooks.
- No coarse bulgur? Use brown rice and follow its package timing and liquid ratio; the finished texture will be less nutty and more separate.
- No tomato paste? Use passata and reduce the water by the same volume so the bulgur does not become soupy.
- No allspice? Use equal parts ground cinnamon and black pepper with a very small pinch of ground cloves.
Tips and Variations
- Pulse the onion and parsley separately in a food processor when you want a finer texture, but stop before either turns watery.
- Moisten clean hands lightly before shaping so the beef mixture forms smooth logs without sticking.
- Leave space between the kofta in the skillet; strong contact with the hot pan creates better browning than a crowded pan.
What Went Wrong?
- Kofta falls apart Press more moisture from the onion and mix the beef only until the mixture becomes tacky enough to hold a clean shape.
- Kofta browns before the center is done Lower the heat to medium, turn the logs more often, and continue cooking until a thermometer reads 71°C/160°F.
- Bulgur is still firm Add a small splash of hot water, cover, and cook over low heat for 3 to 5 minutes before checking again.
- Bulgur is too wet Uncover the pan and cook over low heat for a few minutes, stirring gently, until excess moisture evaporates.
Nutrition Estimate
- Fiber: 11 g per serving
- Sodium: 790 mg per serving
Nutrition disclaimer:This recipe is provided for general cooking information only. Nutrition values are estimates and may vary by ingredients, brands, preparation methods, and serving sizes. Check ingredient labels and follow appropriate food-safety practices. This content is not medical, dietary, allergy, or professional food-safety advice.



