One of the hard parts of working in the software development industry is that, generally speaking, you can expect to face some portion of this problem for the rest of your career. The industry is changing fast enough that if you sit still you find yourself more and more left behind. (Consider where, eg, Windows 3.1 programming skills would help you out in todays job market, for example.)
As a new graduate, many employers are realistic, and understand that you don't have a long history of industry skills to draw on. Certainly, over the last ten years of hiring at a range of companies, and in talking to peers who are part of the hiring process elsewhere, this is true both in the US, and in Australia, and Europe.
The standard things you can bring to the table as a new graduate are:
- enthusiasm for the company, the industry, the problem space, and the job itself.
- a passion for learning, and proof that you are able to learn on the fly.
- proof that you have actually mastered the basic skills of the course you took.
Those are more or less the "pass/fail" level: there are enough graduates who are enthusiastic about the job, and who have a demonstrable passion for learning, that if you come across as "just after a job" you are less likely to sell yourself well.
Beyond that, the things that make a candidate most compelling when we hire at the intern or new graduate level are both reasonably easy and reasonable hard in their own ways:
We look for someone who demonstrated both passion and success outside the requirements of the course - good past internships, competition wins, industry membership, a blog that documents their learning and experiments, participation in the open source community, a visible and competent presence on the StackExchange family, and so on.
We also look for someone who can do the job - and nothing convinces like doing it. My current employer has an open source project, so contributing to that is a big help getting a job - since that exactly maps to a part of the job we care about.
For closed companies, demonstrating that you can write code, and well, is good though. We would absolutely favour candidates who had code available publicly that we could read through and understand their general competence.
The two main paths to that are to contribute to an existing open project, or to start your own - even if it isn't wildly successful - in visible places like GitHub, or other online code repositories, or in visible open source projects.
Finally, remember two depressing things:
One, most employers are going to look for your online presence. You should check that reflects what you do want them to know, like your technical skills, and that it doesn't reflect things you don't want to emphasise, like the story of the day you skipped an exam because your hangover was too big. (Which, sad but true, a tiny proportion of our rejected candidates get kicked out on.)
Two, your are going to graduate in a terrible job market for people without industry experience. Right now there are lots of people who have one, two, five, even ten years experience who can't find a job.
Especially in the US that means they are hungry for full time anything (with benefits) and are willing to consider anything - even internships - in order to be able to work.
So, right now you will get lots of rejections. Don't be mistaken - you could be amazing, and you would still get lots of rejections. The competition is incredible, so don't be discouraged. Keep plugging away with honesty, and work on improving your skills by learning bits and pieces of those things the job adverts list.