Inspiration

As engineers, we love solving complex problems, but the modern job market felt like an unsolvable algorithm. We quickly realized that the technical challenge wasn't just passing the interview; it was the manual, repetitive labor required to even get a seat at the table.

Our team felt the friction firsthand while managing our own applications. We found ourselves trapped in a loop of:

  • Market Scanning: Spending hours scouring fragmented job boards.
  • Lead "Cooking": Manually vetting roles and identifying the right hiring managers.
  • Cold Outreach: Drafting endless personalized emails and LinkedIn messages.

The process was tedious, tiring, and increasingly overwhelming. We were spending more time managing spreadsheets and tracking referrals than we were writing code. We realized that while the rest of the world was automating with AI, the job search remained a prehistoric manual grind.

JobNexus was born from this frustration. We decided to stop complaining about the broken pipeline and start building the automation layer to fix it, creating an end-to-end engine that handles the noise so developers can focus on building.

What it does

JobNexus transforms the job search from a manual chore into an automated, intelligent process. Our platform acts as an AI-powered agent for job seekers, handling the entire top-of-funnel so they can focus on what matters: preparing for interviews and landing the job.

Here’s how it works:

  1. Automated Resume Analysis: A user uploads their resume, which is instantly processed by our resumeagent. This agent doesn't just parse text; it uses a Gemini-powered LLM to understand the user's skills, experience, and qualifications, converting the unstructured PDF into a structured ProfileSchema. This profile is then used to generate a semantic vector embedding, which is stored in our Pinecone vector database.

  2. Intelligent Job Sourcing & Matching: Triggered by a simple, natural language command (e.g., "Find me senior python jobs in London"), our main orchestrator (mainAgent) kicks into gear.

    • It scrapes job boards like LinkedIn for roles matching the user's request.
    • Instead of basic keyword matching, it leverages the user's resume embedding to perform a semantic search, comparing the user's deep profile with the requirements of thousands of job descriptions.
    • The result is a highly-curated list of the most relevant job opportunities, ranked by how well they match the user's actual skills and experience.
  3. Autonomous Hyper-Personalized Outreach: Once the leads are identified, JobNexus handles the "last mile" of the application process.

    • It automatically drafts and sends cold emails and DMs to the respective hiring managers or recruiters.
    • To maximize the potential for a callback, the system goes beyond templates. It personalizes every message based on a deep analysis of the recipient's profile—including their company news, specific position, personal interests, and alma mater.
    • It aligns these details with the sender's specific intentions, crafting outreach that feels human, researched, and high-signal rather than spammy.
  4. Live AI-Powered Interview Practice: JobNexus includes a state-of-the-art interview simulation platform to prep candidates once they get the call.

    • Users can practice for interviews in a live, conversational video setting.
    • The interviewer is a conversational AI agent, real-time and low-latency communication.
    • To make the experience truly immersive, we drive a realistic digital avatar, moving beyond a simple voice bot to a life-like interaction. This allows candidates to practice their verbal and non-verbal communication skills in a pressure-free environment, complete with AI-generated quizzes and flashcards for review.

How we built it

JobNexus is a full-stack application built with a modern, AI-first architecture, designed for scalability and performance.

  • Backend: The core of our application is a powerful and asynchronous backend built with Python and FastAPI. We use uv for lightning-fast package management.

  • AI and Orchestration: We leveraged LangChain and LangGraph to construct sophisticated, stateful AI agents. This allows us to create complex workflows for tasks like resume analysis and job matching, utilizing models from both Google (Gemini) and OpenAI.

  • Data Scraping and Processing: To automate market scanning, we developed a scraping module using Playwright and BeautifulSoup. For resume understanding, we built a data pipeline with pdfplumber and pypdf to extract and analyze information from candidate CVs.

  • Vector Search and Matching: We integrated Pinecone as our vector database. This enables us to create vector embeddings from resumes and job descriptions, allowing for highly accurate semantic search and matching, far beyond simple keyword filtering.

  • Database & Auth: User data, job listings, and application state are managed in a robust PostgreSQL database, powered by Supabase for ease of use and scalability.

  • Frontend Web Applications: We developed two distinct frontends using Next.js, React, TypeScript, and Tailwind CSS:

    1. A central dashboard for users to manage their job search, track applications, and view analytics.
    2. A dedicated portal for our AI-powered interview feature.
  • Real-Time AI Interviewer: A standout feature is our conversational AI interviewer, built using LiveKit Agents. This provides a real-time, low-latency voice experience, simulating an actual screening call. The frontend is built with modern UI built using shadcn/ui and Radix.

Challenges we ran into

1. Expensive Enterprise APIs As novice 18-year-old developers, we faced a significant financial barrier. The high-quality data APIs required to power our search and outreach engines were simply out of our budget.

  • The Pivot: To build this MVP without funding, we had to rely heavily on web scraping instead of paid APIs.
  • The Trade-off: This limitation means our automated outreach is currently positioned as a Premium Feature. Since operating and maintaining stable API connections costs money we don't have yet, we couldn't fully integrate the high-volume outreach tools we envisioned, setting us back slightly on that specific module.

2. Web Scraping Issues Relying on scraping meant our pipelines were incredibly fragile. Our scrapers broke multiple times as site structures changed or rate limits were hit.

  • We spent countless late nights debugging broken selectors and migrating between different scraping frameworks to find a stable solution. It taught us patience and the importance of robust error handling.

3. Agentic Architecture & Tool Stability Designing the brain of the operation was harder than expected. Deciding which tools to give our AI agents (and how to prevent them from hallucinating) was a complex architectural puzzle.

  • The PDF Nightmare: Our resume parsing tools failed in unimaginable ways. Handling the infinite variety of PDF layouts required constant tweaking of our "PDF-to-Text" utilities to ensure the LLM received clean, usable data.

Accomplishments that we're proud of

  • Building an End-to-End Automation Engine: We successfully created a system that automates the most frustrating and time-consuming aspects of the job hunt, from role discovery and vetting to initial candidate screening.

  • Developing a Sophisticated Multi-Agent System: We're particularly proud of our agentic AI architecture built with LangGraph. Instead of simple, stateless API calls, we have multiple agents (e.g., "ResumeAgent", "JobMatcherAgent") that collaborate and maintain state, allowing for far more intelligent and context-aware decision-making.

  • Pioneering Real-Time Voice AI for Interviews: Integrating LiveKit to build a low-latency, conversational voice AI interviewer was a significant technical achievement. It provides a fluid, human-like interaction that represents a leap beyond traditional chatbots, offering a truly innovative screening experience.

  • Seamless Full-Stack Integration: We successfully unified a diverse and complex set of technologies—including Python (FastAPI, LangChain), TypeScript (Next.js), multiple AI models, a vector database (Pinecone), and real-time media servers (LiveKit)—into a single, cohesive product.

  • Creating a Highly Scalable and Modern Architecture: By choosing a cutting-edge tech stack, we've not only built a powerful application but have also laid a foundation that is scalable, maintainable, and ready for future innovation.

What we learned

Our journey with JobNexus was filled with significant learning experiences, particularly in navigating resource constraints and technical complexities:

  • Bootstrapping and Resourcefulness: Faced with the high cost of enterprise-grade APIs, we mastered the art of creative problem-solving. This pushed us to develop robust web scraping solutions and strategically plan our feature rollout, prioritizing core functionality while envisioning premium features for future development. We learned how to innovate effectively with limited financial resources.

  • Resilience in Data Extraction: The inherent fragility of web scraping taught us invaluable lessons in building resilient data pipelines. We gained expertise in designing adaptable scrapers, implementing sophisticated error handling mechanisms, and continuously refining our data extraction strategies to cope with dynamic website structures and anti-scraping measures.

  • Nuances of Agentic AI Design: Developing our agentic architecture illuminated the intricate challenges of integrating AI tools and mitigating LLM hallucinations. We deepened our understanding of modular agent design, the critical importance of meticulous data preprocessing (especially for diverse formats like PDFs), and ensuring that our AI agents receive clean, usable data for reliable performance.

What's next for JobNexus

We’ve built the engine, but we’re just getting started. Our vision is to make JobNexus the default operating system for career growth. Here is our roadmap for the future:

  • Transitioning from Scraping to Enterprise APIs: As we move beyond the MVP phase and secure funding or revenue, our first priority is replacing our web scrapers with official, high-reliability data APIs (like LinkedIn and Apollo). This will make our "Premium" outreach features faster, more stable, and accessible to all users without the risk of breaking changes.

  • True "Auto-Pilot" via Browser Agents: Currently, we find the job and draft the outreach. The next evolution is full-cycle automation. We are experimenting with browser-control agents that can navigate complex application portals (like Workday and Greenhouse) to fill out forms and hit "Submit" on the user's behalf.

  • B2B Integration (The "Recruiter" Side): We plan to flip the script and offer our AI Interviewer technology to companies. By allowing HR teams to use our LiveKit-powered agents for initial screening calls, we can drastically reduce hiring time while generating revenue to sustain our B2C student platform.

  • Multi-Modal Portfolio Analysis: We want to go beyond the PDF resume. Future versions of resumeagent will be able to analyze GitHub repositories, design portfolios, and personal websites to build a truly holistic profile of a developer's capabilities.

  • Mobile App & Real-Time Alerts: Job hunting doesn't stop when you leave your desk. We aim to build a mobile companion that delivers real-time push notifications for "Hot Leads"—high-priority roles that match the user's profile instantly, allowing them to be the first to apply.

Built With

Share this project:

Updates