In a large mixing bowl, cream together the softened butter and cream cheese until smooth. Gradually incorporate the granulated sugar until blended.
Slowly add the all-purpose flour and salt to the mixture, mixing until a cohesive ball forms. Flatten into a disk, wrap in plastic wrap, and chill for at least 2 hours.
In a small bowl, combine the hazelnut spread, chopped hazelnuts, and vanilla extract until smooth. Set aside.
Divide the chilled dough into four parts and roll one piece into a circle about 1/8 inch thick on a floured surface.
Spread one-quarter of the hazelnut mixture over the dough circle, leaving a small margin along the edges.
Slice the dough circle into 8 equal triangles and roll each triangle from the wider base to the point, placing them on a parchment-lined baking sheet.
Preheat the oven to 350°F (175°C) and brush the tops of each rugelach with the beaten egg.
Bake for 20-25 minutes until golden brown and fragrant.
Allow to cool slightly on a wire rack and dust with powdered sugar before serving.
Notes
For an elegant touch, serve on a wooden platter or decorative cake stand.