Job Application Tracker with a Keyword Gap View
Final year students apply to dozens of internships and graduate roles through LinkedIn, company career pages and job boards, then track them in a spreadsheet they stop updating after week two. Build a job application tracker with a pipeline board, deadline and follow-up reminders, and a simple view that lists the keywords a job description uses that a resume does not. No machine learning: a clear, dependable tool that students on your own campus will actually use.
Beginner
Achievable by one student in a semester with familiar tools.1 semester · 2 students
7 to ship
4 optional extrasSuggested stack
What you should ship
- A pipeline board with drag and drop stages and a full record for each application
- Resume uploads with versions, with the version used linked to each application
- Email reminders for deadlines, assessments and follow-ups, with an unsubscribe link and a daily limit
- A keyword gap view built on a curated skills dictionary with synonyms
- A statistics page showing response rate by source and time spent in each stage
- An evaluation of keyword extraction against 30 job descriptions labelled by hand
- A three-week trial with at least ten students, with usage data and feedback in the report
If you have time left
- A browser extension that saves the current job page into the tracker
- Calendar sync for interview and assessment dates
- A read-only view a student can share with a mentor or the career office
- Import from a spreadsheet so students can bring their existing records
Problem
Applying for jobs is a pipeline, and most students manage it from memory. They miss an online assessment deadline, forget which version of their resume went to which company, never follow up after an interview, and cannot tell whether referrals work better than cold applications because nothing was recorded.
What you build
- A pipeline board with stages such as Saved, Applied, Assessment, Interviewing, Offer, Rejected and Withdrawn, with drag and drop between them.
- An application record: company, role, link, source (referral, LinkedIn, career page, job board or campus drive), dates, contacts, notes and the resume version used.
- Email reminders for application deadlines, assessment dates, and follow-ups after a set number of days without a response.
- A keyword gap view: paste a job description, choose one of your uploaded resumes, and see which skills and terms from the description appear in the resume and which do not.
- Personal statistics: applications per week, response rate by source, and time spent in each stage.
This is a tracker, not a matching model. The keyword view uses a curated skills list and plain text processing. It tells the user what is missing, not whether they will get the job.
Suggested architecture
- Next.js with TypeScript and PostgreSQL. A single app with server routes is enough.
- Extract resume text from PDFs on the server. Support text-based PDFs only, and say so on screen.
- Build keyword matching from a curated dictionary of skills and tools with synonyms (JS and JavaScript, Postgres and PostgreSQL), plus frequent terms in the description, without an external AI service.
- A scheduled job that sends reminder emails, with an unsubscribe link and a daily limit.
- Store resumes privately. They contain phone numbers and home addresses.
Milestones by month
- Month 1: interviews with ten final year students about how they track applications, data model, authentication, application records.
- Month 2: pipeline board, resume uploads with versions, reminders.
- Month 3: keyword gap view with the skills dictionary, statistics page.
- Month 4: a three-week trial with at least ten students during real applications, fixes, report and demo.
How it will be assessed
- A demo of one application moving from Saved to Offer, with reminders firing and the resume version recorded.
- An evaluation of the keyword view: for 30 job descriptions, compare the terms it extracts with terms picked by hand, and report what it misses and what it wrongly includes.
- Usage evidence from the trial: applications tracked, features used, and what testers said.
- Tests for reminder scheduling and data access rules.
Pitfalls
- Scraping job sites. Most prohibit it in their terms. Let users paste a link and the description instead.
- Encouraging keyword stuffing. The view should suggest adding a term only where the student has real experience, and say so on screen.
- Building a job board. Listings are out of scope.
- Weak privacy. No user should be able to open another user's resume by changing an id in the URL.
Ideas and guidance, not finished projects
These are project ideas and scoping guidance, published free for students to use as a starting point. I do not build, write, or sell final-year projects, and I do not complete coursework for anyone. Take an idea, make it yours, and build it.
Not sure this one fits you?
I help students pick an idea that matches their skills and their deadline, then scope it down until it is finishable. Guidance only, never done for you.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.