PassionPay – AI in Action Hackathon
Inspiration
Finding a career you love shouldn’t require knowing an exact job title. Most keyword-driven job boards miss intent. I wanted a tool where you start with your passions and quickly see real, high-pay, well-matched roles.
What it does
- The user types what they enjoy doing.
- Google Vertex AI turns that text query into an embedding.
- MongoDB Atlas vector search finds job descriptions with similar meaning.
- The app shows job title, salary range, key skills, a short YouTube “day-in-the-life” video, and education paths as well as professional certificates.
How I built it
- Collected 35 k job postings (Kaggle: Data Science and Linked In Job Postings Datasets).
- Generated detailed job description roles with Gemini API for all 35 k jobs.
- Generated 768-dim embeddings for every job description using Vertex AI
text-embedding-005. - Stored docs and vectors in MongoDB Atlas with a cosine-similarity index.
- GCP serverless API embeds user text, queries Atlas, and merges the extras.
- Front-end is vanilla JS with HTMX + Tailwind, deployed on GCP at https://passionpay-584832529029.us-central1.run.app/
Challenges I ran into
- Getting useful matches from passion text. High tech AI jobs might not be everyones passion. Broad Linked In Job Postings gave better results, but job title search alone did not give good results, so I generated fuller job descriptions with Gemini API for more meaningful search results.
- Dataset import pain. Shoving 35 000 docs into Atlas kept timing out. I ended up batching with delays between calls. Slow, but stable.
- Keeping similarity tight. Tweaked thresholds to avoid near-duplicates.
- YouTube and course links. In a perfect world I’d pull these live, but hackathon time was short. For now the app drops in hard-coded “best guess” videos and education degrees and professional certifications.
Accomplishments I'm proud of
- Users can find high paying jobs with what they love doing, using AI to help users interact and understand data that shapes our world.
- Sub-5 second semantic search across thousands of roles.
- One clean results page that mixes jobs, videos, and courses.
- Fully serverless stack—cheap to run and easy to fork.
What I learned
- Embeddings + vector search beat keywords for career discovery.
- Short, conversational prompts boost engagement.
- Easy to see and explore information is informative for someone who is interested to find a high paying job by using their passions.
What’s next for PassionPay
- Resume upload with skill-gap analysis.
- Personal dashboards for saved searches and course progress.
- Industry/location filters with local salary data.
- Dynamic and live scraping for recent jobs, videos, and courses instead of hard-coding.
Log in or sign up for Devpost to join the conversation.