Inspiration

Most internship platforms recommend jobs using resumes and keyword matching — which works, but misses important signals about what students are actually interested in.

Students and early-career applicants often don’t have resumes that reflect their true interests yet, especially if they’re trying to pivot (ex: SWE → Data, Backend → AI, etc.). Traditional platforms keep users stuck in the “past version” of themselves.

So we asked:

What if your internship recommendations were based on your behavior, not just your resume?

That’s how Internity was born — a system that treats job-seeking behavior as a signal of identity.

What it does

Internity is a Chrome extension + backend system that observes how users interact with job postings and continuously improves internship recommendations.

It tracks behavior signals such as:

  • Time spent on a job page (dwell time)

  • Scroll depth (how far down the user scrolls)

  • Job posting visits

  • Explicit feedback outcome: 1) Applied 2) Not Applied

Then it uses analytics + AI to:

  • Turn job interaction behavior into a personalized “interest profile”

  • Identify patterns in what the user consistently reads, revisits, and applies to

  • Recommend internships that align with the direction the user is actively exploring

How we built it

Internity is structured into 3 parts:

1) Chrome Extension (Frontend)

  • Detects job interactions in real-time

  • Tracks events through content scripts + background worker

  • Dashboard displays recommended jobs

Tech Stack

  • JavaScript

  • HTML/CSS

  • Chrome Extension APIs

2) Backend (Data + Analytics Engine)

Stores:

  • job postings

  • user events

  • outcomes

  • analytics queries + recommendation retrieval

Also powers:

  • skill matrix updates

  • top skills selection queries

  • ranked job retrieval

Tech Stack

  • Node.js + Express

  • PostgreSQL

3) AI Engine (Recommendation + Learning Loop)

We use AI to “understand” jobs beyond keywords:

  • Extract skills from job descriptions

  • Combine behavior signals (engagement + apply outcome) into an evolving interest profile

  • Recommend relevant and related roles based on learned skill interests

Tech Stack

  • Python + FastAPI

  • Gemini API Key

Challenges we ran into

Chrome extension architecture: content scripts vs background scripts were tricky to keep consistent

Reliable event tracking: scroll depth, revisits, and timing needed debouncing + edge case handling

Job structuring: cleaning scraped descriptions and extracting meaningful skill signals

Accomplishments that we're proud of

  • Built a working job-behavior tracking system inside a Chrome extension

  • Created a real analytics-ready pipeline (job postings → database → insights)

  • Designed the AI learning loop so recommendations evolve over time

  • Demonstrated a product aligned with identity: career trajectory inferred through behavior

What we learned

Behavioral data is extremely powerful — it tells the truth even when resumes don’t

Funnels and cohorts aren’t just business metrics — they reveal intent and identity signals

Building for “learning over time” changes how you structure your entire data model

What's next for Internity

Planned improvements:

  • Full resume parsing + bootstrap initial recommendations

  • AI explainability (“because you saved/applied to similar roles…”)

  • Personalized dashboards: identity arc, skill gaps, growth insights

  • More job sources (Indeed, Glassdoor)

Share this project:

Updates