-
-
OfferDecoder transforms an employment offer into a clear snapshot of the role, company, location, base pay, and key terms using GPT-5.6.
-
Guaranteed pay is separated from bonuses, equity, and benefits, followed by a plain-English clarity check.
-
Each finding is grounded in the offer’s exact language, and users select which terms to include in their negotiation draft.
-
OfferDecoder identifies missing information instead of guessing, then suggests practical questions and next steps before signing.
-
Selected findings become a ready-to-edit negotiation email in the user’s preferred tone, without invented offers or market data.
Inspiration
Employment offer letters can look straightforward at first, but important details are often buried in long clauses or described using vague language. A candidate may see a salary, bonus, equity, benefits, and paid time off without immediately recognizing which parts are guaranteed, which are discretionary, and which require clarification.
My background is in marketing, consumer behavior, and data science, and I am especially interested in using AI to make complex information easier for ordinary people to understand. I created OfferDecoder because job candidates should be able to understand what they are agreeing to before signing an employment offer.
What it does
OfferDecoder allows a user to paste the text of an employment offer and receive a plain-English analysis powered by GPT-5.6. The application: Extracts the company, position, location, and base pay when they are stated. Preserves whether pay is hourly, weekly, monthly, or annual. Separates guaranteed compensation from discretionary bonuses, conditional payments, equity, and benefits. Reviews areas such as compensation clarity, workload, termination, severance, intellectual property, post-employment restrictions, and dispute resolution. Grounds every finding in a direct quotation from the submitted offer. Identifies important information that is missing instead of filling the gaps with assumptions. Suggests questions the candidate may want to ask the employer. Allows the user to select specific findings and generate an editable negotiation email in a collaborative, confident, or concise tone. OfferDecoder is an educational clarity tool. It does not determine whether a clause is legal or enforceable and does not replace advice from a qualified professional.
How we built it
OfferDecoder existed before OpenAI Build Week as a static React interface demonstration. The original prototype always returned the same predetermined sample analysis and did not connect to an AI model.
During Build Week, I used Codex to transform that prototype into a functioning GPT-5.6 application.
The new version uses:
React and Vite for the interface Tailwind CSS for the responsive design Vercel Functions for the secure server-side endpoints The OpenAI Responses API with GPT-5.6 Structured Outputs with strict JSON Schema Vercel for deployment GitHub for version control and documentation
The OpenAI API key remains on the server and is never exposed in the browser. API requests use store: false because employment offers may contain sensitive information. The prompt also treats the submitted document as untrusted content and instructs GPT-5.6 not to follow instructions that may appear inside the offer.
Challenges I ran into
My biggest challenge was turning the existing visual prototype into a real product within a short deadline. The original interface looked functional, but its results were hard-coded. I had to replace that simulated behavior with live analysis while keeping the output consistent enough to support a structured user interface.
Another challenge was limiting unsupported conclusions. Employment offers are legal-adjacent documents, so I did not want the application to label provisions as illegal or invent market benchmarks. The analysis prompt requires supporting excerpts, distinguishes observations from legal conclusions, and labels missing information instead of assuming standard terms.
Testing with an incomplete informal offer also uncovered a practical issue. The model correctly extracted “$32 an hour,” but the first version of the interface displayed it under “Base salary.” I corrected the schema and interface so OfferDecoder now preserves and displays the actual pay period.
I am not a professional software developer, so connecting the API, protecting the key, handling deployment, testing live endpoints, and correcting errors as they appeared were all meaningful parts of this build for me.
Accomplishments that I am proud of
I am proud that OfferDecoder is no longer just an idea or visual demonstration. It is now a working application that analyzes the actual text supplied by the user.
I am especially proud of the guaranteed-versus-conditional compensation breakdown, the excerpt-grounded findings, and the complete flow from understanding an offer to preparing a professional response. I also tested the application with both a detailed sample and a deliberately incomplete offer to confirm that it could handle missing information without inventing details.
What I learned
I learned how Codex can support an entire development workflow, including understanding an existing codebase, building server-side API functions, improving the interface, testing edge cases, documenting changes, and deploying through GitHub and Vercel.
I also learned that creating a responsible AI product requires more than getting a model to produce an answer. The output needs structure, supporting evidence, privacy protections, clear boundaries, and testing against imperfect real-world inputs.
What's next for OfferDecoder
I would like to continue improving OfferDecoder by adding secure document upload, support for more offer formats, accessibility testing, and user feedback. I would also like to explore carefully sourced compensation benchmarks while keeping the distinction between documented facts and external comparisons clear.
My longer-term goal is to continue building understandable AI tools that support consumer and worker decision-making.
Built With
- codex
- github
- gpt-5.6
- javascript
- node.js
- openai-api
- react
- responses-api
- structured-outputs
- tailwind-css
- vercel
- vite
Log in or sign up for Devpost to join the conversation.