Definitely agree that you shouldn't have loyalty to a company. Even if you don't love the job, you should probably give it at least a year since it looks better on resumes to show that you are able to stay somewhere for a while. My first 3 jobs out of college I: left after a year (company wasn't doing well), left after a little over a year (out of my control), and left after a little over a year (contract that didn't get renewed).
I'm finally at a low stress job doing what I want for good pay and good benefits. It's another contract job, but the contract ccompany won a contract to extend it for 3 more years so I'm finally at a job I actually WANT to stay at long term. I want to ask for a raise now that the contract got approved, but other than that I have no complaints for once.
About HR...
It's true they are out to protect the company, but that doesn't mean you can't use that to your advantage in certain situations.
My old job had a boss that was a nightmare for everyone. He was losing us business and he was an asshole to everyone. I didn't know what to do until we got an experienced manager hired and he encouraged us to go to HR with the issues and how it was affecting our work. The company flew the guy to their headquarters and told him to improve or else, and after a few days of showing no improvement that guy was gone.
Companies want their employees to do good work, they want to make money, and they DEFINITELY don't want harassment lawsuits.
Sadly, I'm sort of there.
I work as a manager of a fast food place, and have for about 10 months, the rest as a credit member.
I have zero skills outside my industry, I get paid $3 above federal minimum wage, and I get 40 hours a week.
No matter what I do and what jobs I look for, they all suck since ive basically failed my life at this point.
Try looking into some cheap community college courses (night courses, online, weekends are sometimes available) or, if it applies to your field, try getting some certifications online.
I had a friend who worked for a tech contracting company and he always had great paying jobs and he told me that getting some online Microsoft certifications in programming or IT was a huge help when he could put that on his resume. I think you usually have to pay to take the exam in order to get certified, but there are tons of free resources to study and practice before you actually take the test. And even if you don't have direct experience working in the field you want to go into, it will defintiely make your resume look better if you can say you have the skills required to do the job (being able to code HTML, speak a second language, fast typing, etc.).
I got a ScrumMaster certification (a Project Management thing) and the actual test was easy as hell. My old job paid for the two days of classes, but if I'd just studied the materials and watched the videos online I'd probably have been able to pass the test in less time than that. Having that certification on my resume definitely got me more emails about positions, but I sadly don't have interest in that field (plus I suck at managing people, haha).
Not having direct experience will definitely make it tough to get your foot in the door, but just keep applying. It took me 9 months after graduating college to find a decent job in the field I wanted (honestly one of the worst times in my life, just applying to multiple jobs every day). Eventually there will be a quality entry level position and you'll be able to start building some experience in what you want to do. Even getting a job near what you want can help you transition into something you want.