1. Are the companies looking at your transcript? If so, are your marks acceptable?
2. Are you targeting the right jobs?
3. How far are you able to get through the HR process? Do you get interview requests? Do you pass the first interview with HR that usually just measures culture? Do you pass technical interviews?
4. For companies that you've had some sort of convo with, have you asked them for constructive feedback? I've done that successfully many times
5. Make sure your GitHub project clearly demonstrates your programming skills. If you don't have any open sourced projects on your account, that's a serious disadvantage. I had a few private repos that I recently open sourced, I said "ah what the heck, why do I need to keep this code private?" and it's really helped my job search process. Employers don't feel the need to test me so much in technical interviews because they've seen a lot of my code on GitHub.
6. Spray and pray is just one tactic. There are many others. Use LinkedIn and request to connect with people who work at your desired companies. You absolutely must write a personal message <300 chars and sell yourself. Or google those people at your dream companies, find their email address, email them, sell yourself, ask for a convo. Some will respond and have a convo with you or they'll connect you to HR. This got me some great opportunities.
7. You should be working your network. Go through your LinkedIn contact list, use your discretion on who to message, send a short note that you're looking for X role in Y type of company. People will help! Again, this has worked for me.
Find my contact info on my profile, I'm happy to help via email/skype.