Recruiters Open Your GitHub Before Your CV
When you apply for your first internship or junior role, the person reading your application does something your CV cannot control: they open your GitHub. A CV says you know Python; a profile shows whether you have ever finished anything in Python. The students who get replies are the ones whose profile answers, in about thirty seconds, the only question a recruiter really has: can this person finish something?
Most student profiles fail that test without their owner knowing: an empty profile, a graveyard of half-finished tutorial repos named test-final-v2, or one big project with no README and a single commit called "done". That is not a verdict on your ability. It is a packaging problem, fixable in an afternoon. You need three good ones, presented properly.
The 30-Second Test: What a Recruiter Actually Sees
A recruiter will not read your code line by line — they do not have time. They scan for signs. First, the pinned repositories: two or three finished projects, or a wall of half-started tutorials? Then the descriptions: does each one say what the project does in plain words? Then the README: does it explain the project in under a minute? Finally, the last commit date: touched this month, or abandoned a year ago?
Notice what is not on that list: the green contribution squares, the number of repositories, and the list of languages. Recruiters glance at the squares, but they know they are easy to game, and a hundred repos prove nothing if none is finished. What convinces them is finished work you can explain: three projects, finished, explained, and runnable.
Pick Three Projects and Finish Them
Choose three projects that show different strengths. One should be a useful tool — something that solves a real problem, like a flashcard quiz you actually study with. One should work with real data — a program that reads a file or turns messy input into a clear answer. And one should be built for other people — a tool a classmate uses, anything with a user who is not you.
Then finish them, which means something specific: the program runs without errors, the README explains it, and a stranger can try it in under a minute. Unpin everything else, and rename the vague repos — "project-2-final" tells a recruiter nothing, while "flashcard-quiz" tells them everything. Each pinned project should be one you can talk about for two minutes: what it does, why you built it, and what was hard.
A README That Answers Four Questions
The README is the most valuable file in your portfolio, because it is the only part a recruiter is guaranteed to read. A good one answers four questions. What does it do — one sentence, plain words, no jargon. Why did you build it — the problem you were solving, in one or two sentences. How do I run it in sixty seconds — the exact commands, with no step left out. And what did you learn — one honest, specific thing, like "I learned that an empty list needs a guard, because my first version crashed on it."
Keep it short. A recruiter will not read five hundred words about a student project, and a long README usually means the writer is hiding the fact that the project does very little. Aim for a page a stranger can skim in under a minute, ending with a link to a live demo. If writing the README is hard, the project itself is unclear — simplify the project, do not write more.
A Runnable Link Beats a Screenshot
Screenshots prove your program looked right once, on your machine, on the day you took the picture. A runnable link proves it works right now, and lets the reader try it themselves. A project with a live demo link is a project its author is confident about — put the link at the top of the README, not buried at the bottom.
The easiest way to make one is to save the core of each project as a runnable snippet. Paste it into the browser editor — Python is one of the 34+ executable languages on CoderFile (120+ syntax-highlighted) — run it, save it, and paste the snippet link into your README. A reader who clicks it sees your code run in their browser, with no install and no setup. The Lab courses can help too: their small finished projects are worth pinning once you have made them your own.
Score Your Own Profile With the Portfolio Checker
Before you rewrite anything, score what you have. The checker below grades each project the way a recruiter scans it: two points for a README, two for a runnable demo link, one for a plain-words description, and one for three or more recent commits. Run it in the browser editor with your own projects filled in — it tells you which to pin first, and which needs work.
# portfolio_check.py — score your projects like a recruiter would
projects = [ {"name": "flashcard-quiz", "readme": True, "demo_link": True, "description": True, "recent_commits": 5}, {"name": "tutorial-follow-along", "readme": False, "demo_link": False, "description": False, "recent_commits": 0}, {"name": "weather-app", "readme": True, "demo_link": False, "description": True, "recent_commits": 2},
] def score(project): points = 0 if project["readme"]: points += 2 if project["demo_link"]: points += 2 if project["description"]: points += 1 if project["recent_commits"] >= 3: points += 1 return points for project in projects: print(f"{project['name']}: {score(project)}/6") best = max(projects, key=score)
print(f"Pin this one first: {best['name']} ({score(best)}/6)")The three examples score 6 out of 6, 0 out of 6, and 3 out of 6: the flashcard quiz has everything, the tutorial copy has nothing, and the weather app has a README and a description but no demo link and only two recent commits. That middle case is where most student projects live. Fix the missing thing before you add a fourth project, and be honest with the inputs: a demo link only counts if a stranger can click it and run the code, and commits only count if they are real work.
Honest Commits Beat a Painted Grid
The commit history in a pinned project is the closest thing a recruiter gets to watching you work. Small commits with honest messages — "add quiz scoring", "fix empty-deck crash", "write README" — show how you think: you break work into steps, you test as you go, you fix what breaks. One giant commit called "final version" hides all of that. Commit as you go, and never fake activity or copy someone else's project — a recruiter who finds the original will not forget it.
When Your Portfolio Outgrows Free, That Is the Upgrade Moment
Stay on Free ($0: 20 executions a day, 10 AI requests a day, 10 saved snippets, 3 private snippets, 3 collaborators per snippet) while it fits — three demo snippets and the checker from this article fit easily. But a portfolio grows: each new project adds a demo snippet, each README draft becomes a saved snippet. That is when Pro earns its $9/month or $69/year — unlimited saved snippets and executions, 100 AI requests a day, 10 collaborators per snippet, unlimited private snippets, and GitHub integration, which Free does not include. Team ($19/user/month, or $15/user/month billed annually) covers a class building portfolios together.
Your next step is small, and it starts tonight. Run the checker on your own three best projects, fix the weakest README first, and pin the three that score highest. Then save each project's runnable core as a snippet and paste the link at the top of its README. A recruiter opens your profile tomorrow — make sure the first thing they see is work they can run.