Inspiration

Talented students across Ghana and Africa often miss scholarships, competitions, fellowships, research programmes, internships, and summer programmes—not because they lack ability, but because opportunities are scattered across different websites and difficult to evaluate.

OpportunityMap was created to make opportunity discovery more organised, transparent, and actionable. The goal is to help students find credible opportunities, understand why an opportunity may align with their profile, and manage the steps required to prepare an application.

What it does

OpportunityMap is an educational opportunity discovery and application-planning platform designed around African student journeys.

The platform currently allows students to:

  • Browse a curated directory of verified opportunities.
  • Search and filter opportunities by category and other relevant information.
  • Create a private student profile stored locally in their browser.
  • Generate personalised opportunity rankings based on represented profile and opportunity data.
  • View transparent explanations showing what influenced each profile-match score.
  • Keep profile matching separate from eligibility guidance.
  • Save opportunities from either the public directory or personalised results.
  • Manage saved opportunities in a private application workspace.
  • Change application statuses from Saved through Researching, Preparing, Ready to Apply, Submitted, Outcome Received, or Archived.
  • Follow generated preparation checklists.
  • Add, edit, and delete custom tasks.
  • Store private notes and track application progress.
  • Access the official source for every listed opportunity.

The current demonstration contains nine carefully structured opportunities across scholarships, competitions, fellowships, research programmes, summer programmes, and internships.

How the matching system works

OpportunityMap uses deterministic and explainable relevance scoring rather than an unexplained recommendation result.

It compares available factors such as:

  • Education stage
  • Fields of interest
  • Preferred opportunity category
  • Geographic relevance
  • Funding preference
  • Travel or relocation preference
  • Experience level
  • Career or study goal keywords

Unknown information is excluded instead of being treated as a negative match. Each result displays a profile-match percentage, the number of comparable factors used, and clear explanations of what shaped the ranking.

The score measures represented profile alignment. It is not an eligibility, admission, selection, or funding probability.

Eligibility guidance is calculated separately and checks only explicit structured requirements represented in the dataset, such as verified age ranges, education stages, or minimum experience. Students are always directed to confirm current requirements on the official programme website.

Privacy and responsible design

OpportunityMap does not currently require an account.

Student profiles, saved opportunities, tasks, statuses, progress, and notes remain in the browser's local storage on the user's device. The interface warns users not to enter identification numbers, passwords, financial details, or other sensitive information.

The project also includes keyboard navigation, visible focus indicators, accessible labels, responsive layouts, reduced-motion support, validation summaries, confirmation dialogs, and clear status messaging.

How I built it

OpportunityMap was developed as a modular browser application using HTML, CSS, JavaScript, JSON, browser local storage, GitHub, and Vercel.

The application is divided into separate modules for:

  • Profile creation and persistence
  • Opportunity data
  • Relevance matching
  • Eligibility guidance
  • Saved opportunities
  • Application plans
  • Application-workspace interfaces
  • Storage validation and migration
  • Responsive and accessible user-interface behaviour

Development was organised into three Build Week phases:

Phase 1 — Student profile foundation

I implemented the browser-local student profile, required-field validation, profile completeness, editing, clearing, persistence, privacy messaging, and accessibility behaviour.

Phase 2 — Explainable opportunity matching

I developed deterministic scoring, confidence information, ranking explanations, separate eligibility guidance, personalised result views, filtering, and profile-aware result regeneration.

Phase 3 — Saved opportunities and application tracking

I added synchronised Save and Saved controls, the My Applications workspace, application statuses, generated checklists, custom tasks, private notes, progress tracking, filtering, archiving, confirmation behaviour, and storage-schema migration.

How Codex and GPT-5.6 were used

Codex with GPT-5.6 was central to the Build Week development process.

I used it to:

  • Audit the existing project architecture before making changes.
  • Define clear phase boundaries so the original project remained protected.
  • Design the modular profile, matching, eligibility, storage, and application-planning architecture.
  • Implement and refactor JavaScript modules.
  • Develop transparent scoring and eligibility logic.
  • Identify edge cases involving missing data, neutral answers, corrupted storage, duplicate saved records, and migration safety.
  • Improve responsive design and accessibility behaviour.
  • Generate and expand automated tests.
  • Perform syntax, browser, data-integrity, accessibility, and responsive-overflow checks.
  • Review repository documentation, licensing, privacy claims, and submission readiness.

GPT-5.6 also helped evaluate product decisions, including keeping eligibility separate from profile relevance, excluding unknown factors from score denominators, preserving browser-local privacy, and avoiding unsupported claims.

The deployed application makes no runtime OpenAI API calls. Codex and GPT-5.6 were used as development and engineering tools rather than as a hidden production dependency.

Challenges I faced

One major challenge was creating recommendations that were useful without presenting uncertain information as fact. I addressed this by separating profile alignment from eligibility and showing the evidence behind both.

Another challenge was safely extending an existing application. I maintained a documented baseline, developed the new functionality on a separate branch, used additive data changes, and verified that the original nine records and their existing display fields remained intact.

Browser-local persistence also required careful handling. I implemented versioned storage, validation, safe migration, duplicate prevention, corrupted-data protection, and confirmation before deleting meaningful application work.

Finally, responsive application cards, detailed eligibility sections, checklists, filters, and forms had to remain usable at desktop and mobile widths without horizontal overflow.

Accomplishments

I am proud that OpportunityMap developed from a searchable opportunity directory into a coherent student workflow:

discover → understand → save → prepare → track → apply

The completed project includes explainable matching, evidence-limited eligibility guidance, private application planning, accessible interfaces, responsive design, production deployment, structured documentation, and an MIT licence.

The automated suite reached 93 passing tests, with additional browser integration, syntax, JSON validation, HTTP, accessibility, storage, and responsive-layout checks.

What I learned

This project taught me that responsible educational technology requires more than producing recommendations. A useful platform must explain its reasoning, acknowledge uncertainty, protect user information, preserve source attribution, and support the practical work that happens after discovery.

I also learned how structured development phases, tests, Git branches, pull requests, documentation, and deployment checks can transform an idea into a more reliable product.

What's next

Future development could include:

  • A larger continuously maintained opportunity directory.
  • Accounts and secure cross-device synchronisation.
  • Automated opportunity-verification workflows.
  • Deadline reminders and calendar integration.
  • Advanced semantic recommendation models.
  • Multilingual and low-bandwidth support.
  • Opportunity submission and moderation tools.
  • Analytics on the geographic and educational distribution of opportunities.
  • Partnerships with schools, counsellors, nonprofits, and opportunity providers.

OpportunityMap's long-term purpose is to ensure that students are not excluded from life-changing opportunities simply because they did not know where to look.

Built With

Share this project:

Updates