OfferGo: Turning Job Offers into Data-Driven Decisions

What Inspired Us

OfferGo was inspired by the uncertainty many new graduates face when stepping into the real world. Some receive their first offer and don’t know how to evaluate it. Others are fortunate enough to be “hot-handed,” juggling multiple offers from different companies. In both cases, decision-making can feel overwhelming and emotional rather than objective.

We wanted to build a system that helps candidates analyze job offers with clarity and confidence. Instead of relying on guesswork or anecdotal advice, OfferGo leverages large-scale historical compensation data, economic signals, and broader world trends to provide structured evaluation and scoring. Our goal is to give users actionable feedback — showing not only whether an offer is competitive, but also where and how they can negotiate strategically.


Main role:

Blake & Danny: Backend(Workflow, Agent system, Databricks , APIs) Sean: Database sourcing, pipeline, building, and logistics Frankie: Frontend design (Lovable)

How We Built It

We built OfferGo as a full-stack system:

  • PDF Ingestion: Users upload offer letters (PDF), which we parse into structured compensation components.
  • Market Benchmarking: We benchmark compensation using Databricks-powered data pipelines.
  • Nemotron Agent /Evaluation Workflow: We use the NVIDIA Nemotron for agent api, reasoning engine to evaluate fairness, competitiveness, and negotiation leverage.
  • Visualization Dashboard: Interactive charts and percentile comparisons help users interpret results.
  • Follow-up Chat: An agentic Nemotron chatbot interface allows users to ask deeper questions about their analyzed offer.

Agentic Evaluation Architecture

Our system combines Nemotron’s agentic reasoning with a Databricks-backed warehouse. The warehouse performs deterministic compensation benchmarking, while Nemotron synthesizes results into contextual scoring and negotiation guidance.

Core Scoring (nemotron_node.py)

Base salary benchmarking:

[ \text{ratio} = \frac{\text{offer_base}}{\text{market_median}} ]

[ \text{salary_score} = \max\left(0,\min\left(4.5,\;3 + (\text{ratio}-1)\cdot5\right)\right) ]

Bonus and equity:

[ \text{bonus_score} = \max\left(0,\min\left(1.5,\;\frac{\text{bonus_pct}}{20}\cdot1.5\right)\right) ]

[ \text{equity_score} = \max\left(0,\min\left(2,\;\frac{\text{equity_value}}{120000}\cdot2\right)\right) ]

Final bounded score:

[ \text{score} = \max\left(0,\min\left(10,\; \text{salary_score} +\text{bonus_score} +\text{equity_score} +\text{fit_score} -\text{risk_penalty} \right)\right) ]

Confidence:

[ \text{confidence} = \max\left(0.3,\min\left(0.9,\; 0.45+\frac{\min(\text{sample},30)}{100} -0.05|\text{missing}| \right)\right) ]

Databricks Benchmarking (databricks_node.py)

[ \text{ratio} = \frac{\text{offer_total}}{\text{market_total_estimate}} ]

with warehouse queries such as:

[ \text{median(base)},\;\text{avg(bonus)},\;\sum(\text{signing}) ]

Overall decision loop:

[

\text{Decision}_{t+1}

\mathcal{R}_{\text{Nemotron}} \left(\text{Offer},\mathcal{Q}(\text{Warehouse})\right) ]

This creates a bounded, reproducible, agent-driven compensation evaluation system grounded in databricks warehouse topped with Offer Go analytics.


What We Learned

We developed a deeper understanding of how to integrate large language model reasoning with structured financial benchmarking pipelines. Bridging Nemotron’s probabilistic reasoning capabilities with deterministic compensation analytics required precise orchestration across model inference, Databricks-backed data queries, and low-latency frontend rendering. Designing this architecture meant balancing throughput, interpretability, and responsiveness while ensuring that market comparisons remained reproducible and grounded in verifiable datasets.

Beyond evaluation, we architected a fully automated agent-driven system powered by Databricks infrastructure. By combining workflow orchestration, tool-calling agents, and persistent conversational state, we enabled dynamic, context-aware analysis rather than one-off static scoring. The system maintains offer-specific memory, adapts to user priorities, and generates personalized negotiation strategies grounded in both structured data and macroeconomic signals. This shifted the platform from a simple benchmarking tool into an intelligent decision-support agent capable of iterative reasoning and tailored guidance.

As 4 of sophomores from NYU, we are so proud of the achievement we've done.


Challenges We Faced

  • PDF Variability: Offer letters differ widely in structure and formatting.
  • Data Quality: Cleaning and normalizing compensation datasets required iterative refinement.
  • Latency vs. Intelligence: Balancing deep reasoning workflows with a responsive UI required optimization.
  • Fair Scoring Design: Defining objective weighting in a subjective domain demanded careful modeling.

Our Mission

We believe career decisions should be data-informed, not anxiety-driven. Too often, people make life-changing choices based on incomplete information, social pressure, or short-term emotion. Compensation is complex — beyond salary, it includes equity, bonuses, company stage, industry momentum, geography, and macroeconomic trends. Without context, it’s hard to know whether an offer is truly competitive or aligned with long-term goals.

OfferGo supports anyone navigating opportunity — new graduates, experienced professionals, career switchers, international candidates, or those balancing multiple offers. By combining historical compensation data, economic signals, and world trends, we transform opaque offer letters into structured insights, transparent scoring, and negotiation guidance.

Our mission isn’t just to rate offers, but to empower confident, informed decision-making — helping users understand their market value, evaluate trade-offs, and choose their next step with clarity and purpose.

Built With

Share this project:

Updates

Submission history