Make multiple versions of your resume, each of which emphasizes a different aspect of your skillset, and use the one that most closely matches the job description when you apply. When I am really interested in a job, I usually make a new version of my resume just for that one job application. It's not as much work as it sounds, because I just include or exclude different bullet points depending on the main skills required in the job description, so that when the person reviewing my resume reads it, they will say "I'm looking for an experienced C# developer... and this is an experienced C# developer! It's a match!". If I include too much info about my other skills, then they wonder if I'm much of a C# developer at all. It's about reducing what the hiring manager would see as "noise" so that they clearly receive the "signal" that they are looking for.
Also, leverage recruiters - give your resume to as many professional recruiters as you can. They're often better than applying directly now. Also apply at staffing companies, that's a good way in.