* Post the salary in the ad. At least a range.
* Pay folks for their take home assignment time. A few years ago, we paid senior folks $500. It is a token, not a contract, but it shows you care.
* If it is the people that make it great, profile them so that potential hires can see their awesomeness. Help them grow their profile (speaking, writing, OSS) if they want.
* Are you properly developing your junior folks so they can grow into seniors? Giving them autonomy, learning opportunities and salary bumps?
* Have a shorter hiring process. Maybe cut out the recruiter screen?
* As a hard bitten senior engineer, I can tell you that I value equity at zero. If I get an equity win, awesome! But I don't count on it. (You don't mention it, but thought I'd share that.)
* Sponsor a meetup (~$100/month). This is a long term play.
* Any other benefits/things that make you special? Why should anyone want to work there?
That said, I like a saying that I learned when I worked in the real estate industry during the great recession: "there's no problem that price can't fix".
There's no hiring problem that higher salaries can't fix. The higher salaries may cause other issues, but you'll get your hires.