Application fees keep the un-qualified applicants from flooding HR with resumes. I don't know anything about HR, but I suspect that the law probably requires a company to start some sort of file on any applicant. That is a lot of work to waste on someone the company knows they are not going to hire. It's a way to cut down on the workload, weed out the un-qualified applicants, see how badly someone wants to work at the company, and make a little money too.