Applied machine learning

NUCoop

Make the job search explain itself.

A browser extension that helps students explore co-op roles with transparent skill matching and optional on-device semantic scoring.

Fictional jobs and sample résumés run through the extension’s keyword matcher. This demo does not load the optional semantic model or connect to NUWorks.

Browser extension + interactive demoSemantic matching · Concept illustration
résumé parsing & inference
Local
eligibility + relevance
2 layers
semantic model download
Opt-in
Contribution
Personal product & implementation

01 / The problem

Make the job search explain itself.

Students face a long list of co-op postings with different eligibility rules and inconsistent wording. A relevance score is only useful if the student can see why a role matches and what is missing.

I built an extension that adds scoring and a full-page Job Explorer to NUWorks. It separates eligibility from relevance, shows matched and missing skills, and keeps the search usable while optional semantic inference runs in the background.

02 / In practice

Follow the workflow.

Try the matching demo ↗
  1. Choose a sample résumé or edit its skills and experience.

  2. Filter fictional roles and inspect the matcher’s evidence for each score.

  3. Compare promising roles, build a shortlist, and export it.

NUCoop interface with example inputs and results
Actual interface · Example data. Open the demo to change the inputs and inspect the results.
A working interface, ready to explore.

Fictional jobs and sample résumés run through the extension’s keyword matcher. This demo does not load the optional semantic model or connect to NUWorks.

Launch demo ↗

03 / Under the hood

How the pieces fit.

  1. 01

    Read locally

    The extension extracts résumé text with pdf.js and reads job postings in the user’s existing NUWorks session.

  2. 02

    Check eligibility

    Server-provided eligibility takes priority. A local rules engine provides a fallback for class and graduation requirements.

  3. 03

    Score & explain

    Skills, aliases, directional implied skills, required/preferred weighting, and keyword overlap produce an explainable match.

  4. 04

    Refine optionally

    Transformers.js and ONNX run semantic inference in a Web Worker. Keyword results remain available while it works.

04 / Engineering judgment

Decisions & tradeoffs.

Keep eligibility separate from similarity

Text can be semantically similar while a hard requirement is unmet. Eligibility and visible skill evidence keep a high relevance score from disguising that distinction.

Make inference an explicit choice

The semantic model is an opt-in download. Résumé and job text are processed on the device; the base search does not depend on model availability.

Show the ingredients

The extension exposes keyword and AI scores separately and lets the user adjust their blend. The public demo isolates the keyword engine so it is quick to try and easy to inspect.

05 / Inspect the work

Evidence, with context.