So you didn't get the promotion. Before you look for a new job, ask why. It's possible you're missing something critical for that role.
Many years ago, I was working as a “senior member of the technical staff.” I was a tester, had coordinated beta tests, much of the testing work for the last couple of releases, and was working as the tester-project-manager and helping the project manager realize what her job was. My boss left the company. I was “obviously” the next one in line for his job. I didn't get the job. When I asked why not, I was told “You're too valuable where you are.”
That's a non-answer. But I did talk to my new boss, and told her I wanted to know what I needed to learn to get the promotion. She smiled and said, “people skills.” Ok. Clearly not my strengths, but I figured I could learn. I told her I wanted her to teach me. She agreed.
I put away my resume and stayed at the company another 4 years. I learned how to be a great manager. I learned how to be a great program manager. I learned how to do strategic planning, both the stupid way and ways that made sense. I doubt I would have learned how to do any of those skills that quickly without my new boss' coaching and mentorship.
Managers, telling people they're “not ready” or “too valuable” is a cop-out. Provide authentic feedback, offer to teach/coach/mentor, and you will have a loyal employee who will amaze you.
I stayed because I asked why and because I learned what I needed to learn. If you're frustrated with your job, maybe it's time to ask why, before you go look for a new one. Ask. What can you lose?