I have a bunch of RTL-SDRs, the HackRF, and the AirSpy. I have only done VHF -> UHF work with them, never HF. In my experience, the HackRF receive frontend is pretty poor, at least in comparison. I'd use it if I needed transmit or for local strong signals only. The AirSpy has the best receiver of the bunch, but worse software support. I've had quite a challenging time getting it to work with GNU Radio and GQRX. It works great in SDR Sharp but that is no longer FOSS and must be run on Windows IIRC. The RTL-SDR is cheap and has a receiver at least on par with the HackRF and by far the best compatibility.