Preheat your oven to 350°F (175°C). Line two baking sheets with parchment paper or silicone baking mats.
In a medium bowl, whisk together the ground almonds, all-purpose flour, baking powder, and salt. Set aside.
In a large bowl, cream together the softened butter and granulated sugar until light and fluffy.
Beat in the egg, followed by the vanilla extract. If using, add the lemon zest for extra flavor.
Gradually add the dry ingredient mixture to the wet ingredients, mixing just until combined.
Divide the dough into two parts, wrap in plastic wrap, and refrigerate for at least 1 hour or until firm.
On a lightly floured surface, roll out the chilled dough to about ¼-inch thickness.
Using a round cookie cutter, cut out as many circles as you can from the rolled-out dough. These circles will serve as both the bottoms and tops of your Linzer cookies.
Take half of the round cookies you've just cut and use a smaller cookie cutter (this could be a smaller circle, a star, a heart, etc.) to cut out a shape from the center of each. These cookies with the cut-outs will serve as the "tops" of your Linzer cookies. The remaining full rounds will serve as the "bottoms."
Place the cut cookies on the prepared baking sheets, spacing them about an inch apart.
Bake for 10-12 minutes, or until the edges are lightly golden. Remove from the oven and let them cool on the baking sheets for a few minutes before transferring to a wire rack to cool completely.
Once the cookies are completely cool, spread a small amount of jam on the whole cookies. Place the cookies with the cut-out centers on top, pressing lightly to adhere.
Dust the assembled Linzer cookies with powdered sugar just before serving.