Do recruiters actually look at your GitHub?

Yes, but almost never the person you are picturing, and almost never at the moment you think.

That distinction is the whole answer, and getting it wrong is why so much GitHub advice is useless. People optimize their profile for a recruiter who was never going to read code, and neglect the thing the engineer interviewing them will actually open.

So here is who opens it, when, and what they are doing while they are in there. Then what to change.

Quick context on me

I have been a hiring manager and recruiter for over five years, mostly in tech, and I have hired engineers into Google, Meta, Apple, a lot of the big places. I have reviewed hundreds of thousands of applications.

I should also say plainly what the data on this looks like, because you are going to see confident percentages elsewhere. There is no current survey measuring whether employers open GitHub profiles. The Stack Overflow Developer Survey does not ask. Octoverse does not measure hiring. The closest real number is GitHub's own 2017 survey of 5,500 open source contributors, where half said their open source work was somewhat or very important in getting their current role. That is self-report, from contributors, nine years ago.

Anyone quoting you a crisp percentage on this is making it up. What I can give you is what I watched happen, thousands of times.

Who actually opens it

The recruiterWhile screening, next to your resume

Clicks the link, checks it is not empty, moves on. They are confirming you are real, not reading Go. An empty profile behind a link you volunteered is the only way to lose points here.

The hiring managerDeciding whether to give you a screen

Reads your pinned repos and the top of one README. They are looking for whether you have built something whole, not whether your code is beautiful.

The engineer running your interviewThe night before, or ten minutes before

Actually opens the code. This is the person your GitHub is really for, and the one who will ask you about a decision you made in it.

The founderAny time, at a small company

Reads it properly and often decides off it. At under 50 people this is frequently the whole evaluation, because shipping is the entire test.

Read that top to bottom and the strategy falls out of it. The recruiter needs your profile to not be embarrassing. The engineer needs it to be interesting. Those are different jobs, and almost everyone optimizes for the first one by adding badges and streak graphs, which the first person does not care about and the second person actively discounts.

The job of your GitHub is not to impress a stranger in four seconds. It is to survive an engineer opening it on purpose.

Pinned repos are the whole profile

You get six pins. That is your portfolio, and nobody scrolls past it. Whatever is pinned is what you are saying about yourself, whether you chose it deliberately or not.

Here is what most engineers have pinned:

final-projectNo description, website, or topics provided.JavaScriptUpdated 3 years ago
my-portfolioNo description, website, or topics provided.HTMLUpdated 2 years ago
cs101-assignmentsNo description, website, or topics provided.PythonUpdated 4 years ago
test-repoNo description, website, or topics provided.Updated 3 years ago

Coursework with no description, a half-finished portfolio site, a test repo, all last touched years ago. Nothing here tells me what any of it is or why I would care. And the dates are doing damage on their own: four repos that all stopped at once reads like someone who has not built anything since school.

Here is the same person after an afternoon:

ledgerDouble-entry accounting in Go. Runs 40k payouts a month in production. Design notes and the tradeoffs I made are in DESIGN.md.Go1.2k starsledger.yourname.com
transit-mapLive arrival map for my city's buses. GTFS ingest, 4k riders a month. One command to run it locally.TypeScriptLive demoUpdated last week
pgqueueA job queue on top of Postgres, because I did not want to run Redis for 200 jobs a day. Benchmarks in the README.GoUpdated last month
dotfilesMy editor and shell setup. Not a portfolio piece, but people ask.ShellUpdated last week

Almost nothing was built in between. They unpinned the dead stuff, wrote one sentence on each of the survivors, said what the thing does and how big it is, and put a link where a link was possible. That is most of the gap, and it is an afternoon.

One more thing about that last card. Pinning your dotfiles is fine. Not everything has to be a portfolio piece, and one honest "this is just my setup" reads better than four things pretending to be products.

Write the README like someone else will read it

Because someone will, and they decide in about thirty seconds whether to keep going.

Part of the READMEWhat it should doWhat it usually does
First screenOne sentence on what it is and who it is for, then a screenshot or a live link.A badge wall, then installation instructions for a thing nobody knows the purpose of yet.
Running itThree commands or fewer. If it takes more, that is a bug worth fixing.Twelve steps, two of which assume a database you never mentioned.
The part that winsWhat you chose, what you traded away, and why. This is the section that cannot be faked.A features bullet list that reads like every other README.

The row that matters most is the last one. If you made real decisions, write them down. A short section on what you chose, what you gave up, and why is the single most convincing thing an engineer can read about you, because it is the one part a template cannot produce for you. It is also the thing your interviewer will ask about, which means you have quietly chosen your own interview question.

Same principle as the resume, honestly. The category is "built a job queue." The fact is "built a job queue on Postgres because running Redis for 200 jobs a day was not worth the operational cost." One of those is a line on a page. The other is a conversation.

The green squares do not matter

The contribution graph is the most over-thought thing on GitHub. I have never once seen a hiring decision turn on a streak, and I have never heard an engineer mention one in a debrief.

A wall of green from automated commits is worse than a sparse graph. It reads as someone gaming a number, and once I think that about one part of your profile I read the rest with more suspicion. Same instinct as spotting a resume written entirely by AI.

There is one genuinely useful setting here, and it is the opposite of the advice you usually get. If you are employed and all your work is in private repos, turn on private contributions so your graph is not blank. Not to look busy. To stop an empty graph implying you stopped writing code in 2022, which is the wrong conclusion from the same evidence.

The profile README

There is an entire ecosystem of generators, badge collections, and animated banners for the profile README, and I want to be careful here, because that ecosystem is optimizing something whose audience nobody has confirmed.

A short one helps. Three lines saying what you work on and what to look at first is genuinely useful, because it tells the engineer where to start instead of making them guess between six pins.

A wall of technology badges, a snake animation eating your commit graph, and eight tracker widgets does not help, and past a certain density it starts to hurt. It is the GitHub version of a resume with skill bars. It signals time spent on decoration by someone who could have spent it building.

If your GitHub is empty

Then it is a projects problem, not a GitHub problem, and the thing I believe most about this is already in the resume post: projects get you the internship, the internship does not get you the projects. People have it backwards and then wonder why nothing lands.

Build one thing you actually wanted to exist. Not a tutorial clone. A thing that annoyed you enough to fix. Put a real README on it, deploy it somewhere clickable if it can be deployed, and pin it.

That is a weekend, and it puts you ahead of most of the people you are competing with, who are still waiting for someone to assign them something.

And if you genuinely cannot show the work, because everything you have built is closed source, say so. A one-line profile README that says what you work on and that the code is private is better than a ghost town, and no reasonable engineer holds a private-by-default career against you.

Where it sits in everything else

Your GitHub is one surface in a chain. The resume gets you looked up. Your LinkedIn is where they look you up, and its job is to survive a fast scan and produce a click. This is one of the places that click lands, and it is the one read by the person who will decide whether you can actually do the work.

So the link has to exist in both places. In your resume header next to your site, and in Featured on LinkedIn rather than buried in a contact panel nobody opens. A profile nobody can find is the same as a profile you never built.

Do this today

  • Unpin everything dead. Coursework, test repos, abandoned clones.
  • Write one sentence of description on every repo that survived.
  • Put a real README on your best one: what it is, a screenshot or a live link, how to run it, what you decided and why.
  • Turn on private contributions if you are employed and your graph looks empty.
  • Add three lines to your profile README saying what you work on and what to look at first.
  • Delete the badge wall and the animated widgets if you have them.
  • Make sure the link is on your resume and in LinkedIn Featured.

The one question

Open your GitHub the way an engineer would ten minutes before interviewing you, and ask: is there one thing here I could ask a good question about?

If yes, you have handed your interviewer a topic you already know cold. If no, they will pick the topic instead, and it will be a take-home.

The profile is the easy half. The resume is the one that has to survive a parser before any of this gets seen at all.

Check your resume, free

Frequently asked questions

Do recruiters actually look at your GitHub?

They click it and check it is not empty. They do not read your code. The people who read it properly are the hiring manager, the engineer running your interview, and at a small company the founder. So it matters, just later in the process and to someone technical. Be skeptical of any percentage you see quoted here: no current survey measures it, and the last real data point is GitHub's own 2017 contributor survey.

Do GitHub contributions and the green squares matter?

No. I have never seen a hiring decision turn on a contribution graph, and a wall of green from automated commits reads worse than a sparse one because it looks like gaming a metric. The useful setting is turning on private contributions if you are employed and your work is all in private repos, so an empty graph does not imply you stopped writing code.

How many repos should I pin?

As many as are actually good, up to six. Three strong pins beat six where half are coursework, because the weak ones set the reader's expectation for the rest. Order matters too: the first pin is the one most people read, so lead with the thing you most want to be asked about.

Does GitHub show contributions to private repos?

Only if you switch it on. Private contributions are off by default, which is why so many employed engineers have graphs that look abandoned. Turning it on shows the activity without exposing any repository names or code. If your day job is closed source, this is the single highest-value setting on your account.

Should I put my GitHub on my resume and LinkedIn?

Yes, if there is something on it. In the resume header next to your site, and in Featured on LinkedIn rather than the contact panel. If it is empty or all coursework, fix it first, because a link you volunteered to an empty profile is worse than no link at all.

Do I need a fancy profile README?

You need a short one. Three lines on what you work on and what to look at first genuinely helps, because it tells a reader where to start. The badge walls, animated commit-graph snakes, and stat widgets do not help and past a certain density they read like decoration in place of work. It is the GitHub equivalent of skill bars on a resume.

Does GitHub matter if I am not an engineer?

Not really, and you should not force it. The underlying principle transfers though: the work has to exist somewhere a stranger can go look at it. For a designer that is a portfolio with real case studies, for a finance person a model or a teardown, for a marketer the campaign and its numbers. The surface changes, the requirement does not.

Will contributing to open source get me hired?

It can, but not the way people attempt it. Drive-by typo fixes to famous repos to farm a contribution count fool nobody. One substantial contribution to a project you actually use, where you can talk about the codebase and why the change was right, is worth more than fifty green squares. Half the contributors in GitHub's 2017 survey credited open source work for their current role, and that is the kind they meant.