Practice: resume review drill
50 min · Intermediate
Need help? Ask a tutor on WhatsApp (opens in a new tab)Reviewing other resumes is the fastest way to see your own mistakes. Each drill gives a flawed sample to fix, the way an interviewer or a senior would spot it.
Drill 1: spot the problems in three sample resumes
Review lenses are the four ways to read a resume like a busy reviewer: missing facts, filler, layout risks and honesty risks. Reading with one lens at a time finds problems you would otherwise skip.
Three typical samples follow: an old template, a fancy two-column page and an over-claiming one. List every problem before you read the answers.
Example 1 · Three sample resumes and their problems
Resume A (old template) "CURRICULUM VITAE" | photo | Career objective: to work in a reputed organisation Personal details: DOB, father's name, religion | B.Tech 2026 (no CGPA) Skills: C, Python, MS Office, hard working | Project: "Library management" (no details) Declaration and signatureResume B (fancy two-column) Left column: skill bars (Python 90%, SQL 75%), icons for phone and email Right column: projects with good bullets | Two pages | File: resume_final(3).pdfResume C (over-claiming) Skills: 28 technologies incl. Kubernetes, Kafka, TensorFlow, Rust "Developed a complete ERP used by 10,000 users" (team of 6, college demo only) "Improved efficiency by 70%" (no measurement)A: remove photo, objective, personal details, declaration; add CGPA and Class 12/10;
group skills and drop MS Office and "hard working"; give the project tech, bullets and a link.
B: switch to one column; replace skill bars with plain skills; write phone and email as text;
cut to one page; rename to First_Last_Resume.pdf.
C: keep only skills that pass the three-question rule; state your own part of the ERP and
the real scale ("college demo for 40 users"); replace 70% with a measured fact or remove it.What this code does
- Each resume fails in a different way: A has filler and missing facts, B has layout risks, C has honesty risks. C is the most dangerous, because it fails in the interview, not just at screening.
- Every fix is specific: remove X, add Y, replace Z with a fact. Vague advice like "make it better" helps nobody.
A resume review reads a page the way a busy reviewer does: top to bottom, quickly, asking "what can this person do, and can I check it?". C is the most dangerous sample, because it fails in the interview, not just at screening.
The four lenses:
- Missing facts: no CGPA, no links, no technologies, no dates.
- Filler: objective, declaration, personal details, adjectives.
- Layout risks: columns, icons, skill bars, two pages.
- Honesty risks: skills with no evidence, team work claimed as own, made-up percentages.
Drill 2: rewrite ten weak bullet points
Ten weak bullets follow, each with the true facts in brackets. Rewrite them with the formula, then compare with the answers.
Example 2 · Ten weak bullets rewritten
1. Responsible for login. [Python, salted password hashes, 2 roles]2. Worked on database. [MySQL, 8 tables, foreign keys]3. Did testing. [pytest, 40 tests, service layer]4. Made a tool. [Python, college fest registration, 900 registrations, CSV export]5. Learned pip. [requirements.txt and a virtual environment, so the project runs anywhere]6. Handled orders. [12 functions for the order workflow, Python]7. Fixed bugs in internship. [9 bugs, attendance service, a test per fix]8. Part of hackathon team. [built data and report functions in 24 h, top 10 of 120]9. Improved speed. [query 2.4 s to 0.3 s, index, 50,000 rows]10. Used Git. [branches + pull requests, 4-member team]1. Added customer and admin roles to the login module with salted password hashes in Python. 2. Designed an 8-table MySQL schema with foreign keys for the project's core data. 3. Wrote 40 pytest tests for the service layer. 4. Built the college fest registration tool in Python with a CSV export; 900 students registered. 5. Added requirements.txt and a virtual environment setup so the project runs on any machine. 6. Implemented 12 functions for the order workflow in Python. 7. Fixed 9 bugs in an attendance service during my internship, adding a test for each fix. 8. Built the data and report functions in 24 hours for a hackathon team that placed in the top 10 of 120. 9. Reduced a report query from 2.4 s to 0.3 s with an index, measured on 50,000 rows. 10. Used feature branches and pull requests in Git for a 4-member team project.
What this code does
- Every rewrite starts with an action verb and uses only the bracketed facts. No number was invented.
- Bullet 10 stays modest because Git use alone is weak evidence; on a real resume it might merge into a project bullet instead.
A weak bullet describes a duty or a feeling instead of an action and a result. Use the formula from this module: action verb + what you built + technology + result or scale. Use only the facts in brackets; do not invent numbers.
Drill 3: match a resume to a job description
A weak skill is a skill listed in the skills section but not shown in any project line. It needs proof, while a missing skill, one that is not on the resume at all, needs learning.
This program marks each job-description requirement as matched, weak or missing.
Example 3 · Matching a resume to a JD
jd = ["Python", "SQL", "File handling", "MySQL", "Unit testing", "Docker", "AWS"]skills_line = ["Python", "SQL", "MySQL", "Docker", "C"]project_text = [ "Built a library system in Python with SQL queries on MySQL", "Wrote 40 pytest tests (unit testing) for the service layer", "Saved and loaded data with JSON files (file handling)", "Solved 300 problems in Python",]
result = {}for need in jd: in_projects = any(need.lower() in line.lower() for line in project_text) in_skills = need in skills_line result[need] = "MATCHED" if in_projects else "WEAK" if in_skills else "MISSING"
for need, status in result.items(): print(f"{need:<13} {status}")matched = sum(1 for status in result.values() if status == "MATCHED")print(f"Proven in projects: {matched} of {len(jd)}")Python MATCHED SQL MATCHED File handling MATCHED MySQL MATCHED Unit testing MATCHED Docker WEAK AWS MISSING Proven in projects: 5 of 7
What this code does
- MATCHED means a project line proves the skill; WEAK means it is only listed; MISSING means it is nowhere. Docker is weak here: add a project bullet if you really used it in a project.
- AWS is missing, so it becomes a learning item. The text search is simple on purpose; you still read each line yourself.
JD matching compares what the job asks for with what the resume proves. For each requirement, find the line that shows it: matched, weak or missing. Then tailor: reorder skills, pick the most relevant project bullets and use the JD's words for true skills. Missing items become a learning plan, not resume lines.
Drill 4: review a sample GitHub and LinkedIn profile
A reviewer's findings on one student's GitHub and LinkedIn profiles. Decide the fix for each, most urgent first, then compare.
Example 4 · Profile review findings
GitHub - Pinned: dsa-practice, test123, python-tutorial-copy (resume projects not pinned) - online-store-api: no README; .env has DB_PASSWORD=Root@123 - 41 public repos, most with 1 commitLinkedIn - Headline: "Student at XYZ College" - Internship title "Software Engineer" (resume and offer letter: "Intern") - Project links point to a deleted repoGitHub fixes - Pin online-store-api and library-management first; unpin tutorial and test repos. - Change the MySQL password now, move it to an environment variable, commit a .env.example file. - Add a README with what, tech, setup, usage and tests. - Archive, make private or delete weak repos. LinkedIn fixes - Headline: "Aspiring Python Developer | Python, MySQL | B.Tech CSE 2026". - Title: "Python Developer Intern", matching the offer letter. - Update project links to the live repositories and test them.
What this code does
- The committed password is the most urgent fix: rotate it before anything else, because the old commit still contains it.
- The title mismatch is the most serious honesty risk; it is exactly what background checks compare.
An online profile review checks whether GitHub and LinkedIn back up the resume. Open each link the resume gives and check: do the projects exist, do they have READMEs, do names, dates and titles match, and is there anything risky such as committed passwords?
Drill 5: peer-review checklist and score
A peer review is swapping resumes with a friend and scoring each other against the same checklist. Fresh eyes catch typos, unclear lines and claims you stopped noticing.
Score each checklist item 0 or 1. The program prints the zeros as a to-do list and the total.
Example 5 · Peer-review scoring sheet
sheet = { "One page, single column, text PDF": 1, "Header: name, +91 phone, email, LinkedIn, GitHub": 1, "Education with exact CGPA and percentages": 1, "Skills grouped, all defendable": 0, "Every bullet: verb + what + tech + result": 0, "Numbers are measured or counted": 1, "No photo, DOB, objective, declaration": 1, "All links open; repos have READMEs": 0, "Resume, LinkedIn and GitHub match": 1, "No typos (read aloud once)": 1,}
total = 0for item, score in sheet.items(): total += score if score == 0: print("FIX:", item)print(f"Score: {total}/{len(sheet)}" + (" - ready to send" if total == len(sheet) else " - fix and swap again"))FIX: Skills grouped, all defendable FIX: Every bullet: verb + what + tech + result FIX: All links open; repos have READMEs Score: 7/10 - fix and swap again
What this code does
- Each item is scored 0 or 1 by your peer. The program lists the zeros as a to-do list and prints the total with
sum-style counting in a loop. - Aim for 10 out of 10 before you apply; then do the "explain every line" test from the bullet-points lesson.
Fix every 0, swap again, and keep the version that scores full marks and that you can defend line by line. Aim for 10 out of 10 before you apply; then do the "explain every line" test from the bullet-points lesson.
Next step
Check your understanding
12 quick questions