About the Project: JobJam
Inspiration
Career preparation often feels impersonal and overwhelming—especially for students and job seekers who aren’t sure where to start. I realized that most platforms prioritize resumes, job listings, and polished profiles, leaving little room for genuine conversation or exploration. I wanted to create a tool that let people talk—casually, honestly, and anonymously—about jobs and interests. That’s where JobJam was born: a way to connect people through real-time conversations based on shared career goals.
What I Learned
Building JobJam taught me how to:
- Implement anonymous authentication using Firebase
- Use text embeddings and cosine similarity for natural language matching
- Manage real-time state updates in SwiftUI
- Integrate Agora’s video SDK for low-latency video calls
- Handle role-based logic, mute/video state, and room lifecycle across clients
I also deepened my understanding of natural language processing—particularly how embedding models like intfloat/e5-large-v2 convert job descriptions into high-dimensional vectors where similarity is measured by:
$$ \text{cosine_similarity}(A, B) = \frac{A \cdot B}{|A| |B|} $$
This allowed me to match users even if their descriptions used different wording but conveyed similar intent.
How I Built It
JobJam was built using:
- SwiftUI for the iOS app interface
- Firebase Authentication & Firestore for anonymous logins and real-time data
- Hugging Face Inference API (via Python backend) for generating job description embeddings
- Agora for real-time video calls with role-based control and mute/video toggle logic
I deployed the embedding + token server using Render, enabling quick and secure matching + video connection initialization.
Challenges
Some key challenges included:
- Cosine Matching: Initially, many job descriptions failed to match. I had to carefully tune input prompts and formatting to ensure embeddings reflected true intent.
- Real-Time Sync: Coordinating video state across users (mute, join/leave, etc.) with Firestore was tricky, especially with anonymous users.
- Agora Integration: Handling role-based permissions and token security for guest users required careful planning.
Despite the challenges, building JobJam was a rewarding experience that showed me how powerful simple conversations can be—and how tech can make them more accessible.
Log in or sign up for Devpost to join the conversation.