I recommend Occupational Employment Statistics. Includes approximately 800 job categories/titles (Standard Occupational Classification). Reports estimated employment, average wages and 10th/25th/50th/75th/90th wage percentiles.
The upside is that it's pretty easy to download or hit the API. The downside is that there are quite a few "holes" in the data, either due to confidentiality issues (e.g., one large company in an area employing the majority of, say, Aerospace Engineers can lead to those values being blanked out) or insufficient sample size.
But for free / publicly available, geographically detailed stats on occupations in the US, it's pretty much the only game in town.
XLS files for metro and multi-county nonmetro areas here: http://www.bls.gov/oes/tables.htm.
For API access, it's similar for most BLS data. Example:
The last component is the BLS "seriesID". Breaking it down:
- OE: dataset ID
- U: not seasonally adjusted
- M: area type is metro
- 0010180: area code for metro area of Abilene, TX
- 000000: industry code "total", all types of businesses
- 291141: occupation code for Registered Nurses
- 03: statistic code - get the mean hourly wage
For additional info on codes, see http://download.bls.gov/pub/time.series/oe/ (esp. the "oe.area" and "oe.occupation" files). It's a little misleading because this dataset is not actually a timeseries; only the latest year (currently 2014) is available at any given time.