Some (ok a lot) of comments from a non-application driver:

For a very long time (late 90's to late 2000's) almost all of the Chicago job postings specified local candidates only. While I was more than qualified and willing to relocate I had no desire to submit my resume when I knew it would be tossed aside once they got to the third line. I took a quick look on Dice and it seems that's no longer the case, but I and perhaps others have simply given up on Chicago due to this practice. I haven't casually browsed Chicago job listings for at least half decade because based on repeated past experiences it wasn't worth the mouse clicks.

Along those lines, I notice the pay isn't too hot. From what I understand Chicago is a very expensive, congested city and these gigs are offering the same as or lower than what I am currently making in a city that is less congested and has a lower cost of living. If a Chicago based company is truly willing to pay say 150/year (high, I know) for the best of the best then their postings need to trumpet it. I would take a chance and apply for a position that says "pays up to 150/year" knowing full well they probably won't pay that much, but unless it's THE dream job I don't have much desire to apply for something listed at 60/year and then have to haggle with the company to try to get them to pay me twice the posted rate. If a company is willing to pay top dollar then make it crystal clear because low salary job posting make me immediately click the back button, but something that pays well makes me want to read more - I won't see all those perks you offer if the posted salary is bad!

Another issue is separation of duties. While I can build packages and write shell scripts I, and probably 98% of others like me, can't write complex ruby/python/perl programs or debug C and C++ applications, let alone port them. As a sysadmin I can run traces for the programmers, help with things such as permissions and access issues, send them core files and dumps, ensure network communications, and check logs but actual C debugging is far beyond my skills. Without a vendor or in-house programmer I simply don't have the skills to solve the problem of why your daemon is crashing. I can monitor it, I can restart it, I can use my root access to assist the programmer/vendor, but I can't look at a core dump and figure out the whys. This is a fairly common gripe among sysadmins because it kinda boils down to us mumbling "damn programmers learn how to program because we aren't going to learn C so we can do your job for you, debug it yourself." The sysadmin+programmer all-in-one job posting is more common with smaller companies and if they are serious about growth they will need to break it into two distinct positions. Out of all the sysadmins I know there is only ONE guy that could do this and I doubt any amount of money or perks could get him to move away from his children and friends.

Cast a wide net when looking at people who are not currently employed. Some may be downsized because regardless of talent they have zero chance of keeping their position once management has made the decision to outsource/offshore/downsize/stop using technology X. I was let go from one gig when the company decided to cut their highest paid (and most talented) in a desperate bid to save money - they folded a year later. At another gig I quit because I wasn't too keen on the environment and getting a new (bad) boss pushed me over the edge. I understood that my skills are in high demand, finding something new wouldn't be a problem, and it wasn't worth the stress of searching while employed. I consider myself very lucky to be in a field where I can do this.

re: training.

Organizations do indeed need to step up and train when necessary. If they need an existing employee to learn something new they can't force them to study after hours, can't force the employee to buy classes, and can't forecast any type of timeline to implement the technologies they need. By paying to train an existing employee they can ensure they have instant access to a person with the skills they need, do not have to wait months/years to find a qualified person, AND get a huge ROI.

Generally a company's concerns with training are about the ROI and the risk of the person leaving after the training is complete. If a person is going to leave your company it's not the training that's going to make them do it, it's other factors. People aren't likely leave a job that has good pay and and good work environment after they are trained, but training a person who is underpaid and works in a bad environment may make them consider leaving with their new skill set. If this is the case, then the company must fix the environment and pay rates because these factors make everyone want to leave - trained or untrained.

If poaching is the concern then again, I feel this goes back to the pay, environment, opportunities, and perks that your company offers. Keep your people happy and they will have no reason to leave regardless of the pay and perks offered by other companies, period.

As for ROI, I'm not a numbers guy but I'm pretty sure paying $3k for training is a pretty good investment if implementing technology X is going to make or save the company 100x that amount. 100x is not an unrealistic number and could even be as big as 1000x or 5000x in a large organization. How much will the company lose while they attempt find a qualified candidate over the course of months or even years? Why not roll the dice and pay a few thousand dollars to train a bright, existing employee rather than trying to find a new person who may never come or won't be as qualified as their resume and interview make them out to be? If your business can't spare the relatively small amount to train an existing employee then you need to either re-check your ROI calculations, reconsider using technology X, or you have serious cash flow problems.

As a geek I consider annual training an essential perk because it allows me the opportunity to learn new things - and that's something we love to do by nature. Being forced to learn a new technology off-hours increases my job dissatisfaction and also increases the chance that my unstructured learning will cost the business more money down the road.

As far as I'm concerned training is frequently a win/win situation with minimal financial risk for the organization.