Inspiration
We are both graduating seniors and always struggle with the question "What is your salary expectation?" As new grads, or even people changing roles, it can be difficult to know how much you should get paid, how to advocate for yourself, and whether a salary offer is actually livable in a new city. We wanted to build something we genuinely needed, so we made WageWise.
What it does
WageWise has two core tools. The Salary Estimator takes your job title, seniority, years of experience, company type, and location, then returns a recommended salary range and negotiation tips backed by real Bureau of Labor Statistics OEWS 2024 data. You can also see wage percentile distributions for your specific occupation and metro area so you know exactly where an offer stands. The City Affordability Calculator lets you plug in a salary and a US city to see if the pay is actually livable. It estimates your take-home pay, breaks down monthly expenses like rent, groceries, transport, and healthcare, and gives you a plain-language verdict: comfortable, tight, or difficult.
How we built it
We built WageWise as a full-stack Next.js 15 app using React 19 and TypeScript, styled with Tailwind CSS and Shadcn/UI. BLS wage data is seeded into a PostgreSQL database using a Python script hosted on Supabase and queried via Drizzle ORM. For AI-generated salary rationale, negotiation tips, and affordability commentary, we used Google Gemini Flash. Cost-of-living estimates are calculated using a city index across 54 US cities, and we used Nominatim for geocoding.
Challenges we ran into
Working with the BLS OEWS dataset was one of the bigger challenges — it required significant cleaning and normalization before it could be usefully queried by occupation code and geography. We also had to design a thoughtful fallback system (metro → state → national) to handle cases where granular local data wasn't available. Prompting Gemini to return consistent, structured, and genuinely useful salary advice, rather than generic responses, took a lot of iteration as well.
Accomplishments that we're proud of
We're proud that WageWise uses real, citable wage data rather than crowdsourced estimates or vague AI returns, which makes the recommendations meaningfully more trustworthy. We're also proud of how polished the final product feels for a hackathon timeline, and that we built something we would actually use ourselves.
What we learned
We learned a lot about working with government datasets and the quirks that come with them. We also got much more comfortable with full-stack architecture decisions, particularly around database schema design and structuring API routes in Next.js. On the AI side, we deepened our understanding of how to write prompts that produce reliable, structured outputs.
What's next for WageWise
We'd love to incorporate more granular cost-of-living data for the affordability tool. We also plan to add user accounts so people can save and compare multiple offers over time. We also want to build out more negotiation resources, like email templates, scripts, and potentially even a mock negotiation feature using AI voice technology.
Built With
- drizzle
- gemini
- next.js
- python
- shadcn
- sql
- supabase
- tailwindcss
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.