Inspiration

Big life decisions switching careers, going back to school, moving countries usually get made on a mix of gut feeling, a few Google searches, and one biased conversation with a friend who's already chosen a side. We wanted to build a "second brain" that does the boring, expensive part properly: pull real data from the live web, model the financial uncertainty with actual statistics, and surface the tradeoffs instead of pretending there's one right answer. Not to make the decision for you to make sure you're seeing the full board before you do.

What it does

PathFinder AI takes a short intake form plus a brief follow-up conversation to build a profile (current situation, values, hard constraints, risk tolerance, time horizon). From that profile it:

Generates 6–8 realistic decision paths tailored to you. Runs 6 targeted web searches per scenario (qualitative + quantitative) via Tavily, embeds the results into a Qdrant vector store, and retrieves only the most relevant chunks for synthesis (RAG, to keep token cost down). Runs a Monte Carlo simulation of 5,000 income trajectories per scenario, producing salary percentiles, 5-year cumulative net projections, and a risk label. Scores each scenario across 8 dimensions (financial, lifestyle, risk, time, etc.) and surfaces named tradeoffs. Ranks the scenarios using a composite of tradeoff strength + probability of positive outcome, and presents them with research bullets, market outlook, and a final decision brief.

Throughout the 2–4 minute analysis run, live progress streams to the UI over Server-Sent Events so the user sees exactly which step is running.

How we built it

The frontend is a React 18 + TypeScript SPA built with Vite, structured as a phase machine (intake => scenarios => analysis => exploration => brief) that mirrors the back end session state, so a page refresh or backend restart cleanly resumes where you left off. The back end is a Fast API service organized as a pipeline of seven LLM agents (intake, scenario generator, research, market outlook, tradeoff analyzer, what-if, orchestrator) plus a pure-Python Monte Carlo engine. Heavy stages fan out concurrently with asyncio.gather research and market outlook run in parallel, and within each, all scenarios run in parallel. Sessions persist as JSON files behind a MemoryStore interface so Redis or SQLite can be swapped in without changing callers.

Challenges we ran into

Token costs ballooned fast. Six searches × eight results per scenario × 6 to 8 scenarios = a lot of raw text. We solved it with RAG: Qdrant stores the embeddings, and we only feed the top-k most relevant chunks into the synthesis prompt roughly a 5× reduction per scenario.

Live progress over a long-running request. A 2 to 4 minute call with no feedback feels broken. We open the SSE stream before kicking off /api/analysis/run so no early progress events get dropped, and each agent emits to a per-session asyncio.Queue.

Getting the LLM to return strict JSON reliably solved with a small JSON-validate-and-retry wrapper around the OpenAI client.

Another major challenge we faced was the tight timeline. Developing the project within just seven days, with only two undergraduate team members, proved to be quite demanding. Despite these constraints, we worked collaboratively to manage the workload and meet the project MVP requirements as effectively as possible.

What we learned

Through this project, we gained valuable hands-on experience in understanding the architecture and workflow of agentic AI systems, as well as the practical aspects of implementing and integrating them into a functional solution.

RAG isn't just an accuracy tool it's a cost tool. Streaming progress is what makes a slow agent pipeline feel acceptable. And the moment you put a probability distribution on a life decision, the conversation around it changes people stop asking "what's the right answer" and start asking "what's the downside I can live with."

What's next

Replace the current general-purpose language model with a model specifically fine-tuned for career guidance and financial decision-making or using a paid subscription of a powerful general purpose LLM.

Extend Monte Carlo simulations beyond financial outcomes to include factors such as happiness, stress levels, and work-life balance. Predict long-term outcomes like career growth, burnout risk, and personal fulfillment. Help users evaluate career paths using both financial and well being metrics.

Collaborate with psychologists, career coaches, and financial advisors to design a more comprehensive assessment to improve the quality and reliability of user profiles, leading to more personalized recommendations.

Connect users with anonymized insights from people who have faced similar career decisions. Enable evidence-based decision-making by comparing potential career paths with actual experiences of similar individuals.

Built With

  • all-minilm-l6-v2
  • asyncio
  • docker
  • fastapi
  • gpt-4o-mini
  • monte-carlo
  • openai
  • pydantic
  • python
  • qdrant
  • rag
  • react
  • sentence-transformers
  • server-sent-events
  • tavily
  • typescript
  • uvicorn
  • vite
Share this project:

Updates