Treat potential candidates like people, rather than interchangeable pegs that you try and fit in whatever square hole you're trying to fill at the moment.<p>This means:<p>- Spend time to build real connections and relationships with the people you're trying to recruit. Find out what the look for in a job, and if you none of your clients fit the bill, say so point blank, but that you'll get back to them when you find one that does.<p>- Build a tribe (in the Seth Godin sense of the word). Build a group of people that look to you about finding jobs and hiring. Organize events that get lots of smart technical people together, that isn't just a recruiting event. Think about the 37 signals blog and the conferences they've organized. Think Super Happy Dev House.<p>- Don't cold call. Speaking personally, I'm much more likely to talk to you if you email me. Aggressive phone calls are a major turn off. If you must call, don't call before 10am in my time zone.<p>- Being open about the companies and positions you're trying to fill. No caginess about what the company is, and being open about any potential downsides you know of.<p>- Don't recruit for companies you don't believe in.<p>- Know what you're talking about technically. This means not recruiting people for positions that don't match the experience they list on their resume. It means not recruiting them for positions they're highly unlikely to be interested in, based on past positions.<p>In general, recruit people like you would want to be recruited. In the short term, this will likely be less effective than more traditional approaches. In the long run, as you start building a network and reputation for integrity, I bet it's significantly more effective.