Inspiration
We kept noticing the same thing: when people talk about their goals, AI is usually very good at encouraging them.
"You can do it."
"Here's a 90-day plan."
"Stay consistent and you'll get there."
But what if the plan itself is unrealistic?
We wanted to build something that would do the uncomfortable thing — challenge the plan instead of blindly supporting it.
That idea became CONTRADICTOR AI.
The core thought was simple:
Don't trust the plan. Test it. We wanted to create a system that could take an ambitious goal, compare it with reality, expose the gaps, and still help the person move forward.
What it does
Imagine you have a goal you've been thinking about for a while. Maybe it's:
"I want to get a 15 LPA job in 3 months." The first thing CONTRADICTOR AI needs to understand is what kind of goal you're talking about. That's where our machine learning model comes in. We fine-tuned a DistilBERT-based domain classifier to understand the user's goal and classify it into one of five areas: Career, Education, Startup, Finance, or Fitness. We trained it on 24,566 goal examples, so the system isn't treating every goal as if it belongs to the same category. :contentReference[oaicite:0]{index=0} Once the goal is understood, CONTRADICTOR AI starts doing what makes it different. Most tools would take that sentence and immediately start helping you achieve it. They might give you a study plan, a list of courses, or a motivational roadmap. CONTRADICTOR AI starts somewhere else. It asks: "Before we build the plan... does the plan make sense?" From there, the system puts the user's expectation against real-world evidence and constraints. How much time does the user actually have? What does the real-world benchmark look like? How much effort would the goal require? How difficult is the competition? Is the timeline realistic? Where is the biggest gap between what the user expects and what reality suggests? Instead of hiding all of that behind a single AI-generated answer, the system turns those questions into a Reality Score and a breakdown of the factors behind it. And this is where the experience becomes more interesting. CONTRADICTOR AI doesn't just tell you that something is unrealistic. It shows you why. It identifies the assumptions that are doing the most damage to the plan, challenges optimistic expectations, and lets the user explore different scenarios. For example, what happens if the timeline changes? What happens if the user increases their effort? What would need to change for the goal to move from unrealistic to achievable? The system then takes those insights and turns them into something useful — a Reality Path and a set of Recommended Actions that give the user somewhere to go next. We also wanted to acknowledge something simple: not everyone wants feedback in the same way. So users can choose between Brutal and Kind feedback. The underlying reality doesn't change. Only the way it is communicated does. And then comes the part that makes CONTRADICTOR AI feel less like a report and more like a conversation. After seeing the analysis, the user can open Contradictor AI and start questioning it. They can ask: "Why is my score so low?" "What if I can study 8 hours a day?" "Which part of my plan should I change first?" "What would make this goal realistic?" Instead of starting a completely new conversation, the AI has the context of the analysis and can discuss the actual factors behind the result. That creates a very different experience from simply asking an AI: "Make me a plan." The user first brings an expectation. The ML layer helps the system understand the domain. CONTRADICTOR brings the contradiction. Reality provides the evidence. And the system turns that into an actionable path. Expectation → Understanding → Contradiction → Reality → Action That's the core of CONTRADICTOR AI.
How we built it
We built CONTRADICTOR AI as a full-stack web application with three important layers working together: machine learning, generative AI, and our reality-analysis system. The first layer is our machine learning model. We fine-tuned DistilBERT as a domain classifier using 24,566 training examples covering five domains: Career, Education, Startup, Finance, and Fitness. The model was trained using PyTorch and Hugging Face Transformers and is used to understand what kind of goal the user has provided. The second layer is the reality-analysis engine. Once the goal is understood, our application evaluates the goal against the relevant factors, benchmarks, constraints, assumptions, and scenarios to produce the Reality Score and the rest of the analysis. The third layer is Gemini, which powers the generative reasoning and conversational experience. It helps explain the analysis, challenge assumptions, generate useful responses, and allows the user to question the result through Contradictor AI. The main experience starts with a simple goal input, including speech-to-text, and takes the user through the reality-checking process.
The application includes core features they are:
- Reality Score
- Reality Factors & Explanations
- Assumption Analysis
- Contradiction / Devil AI Reasoning
- Scenario Exploration
- Reality Path
- Recommended Actions
- Brutal / Kind Feedback Modes
- Conversational Contradictor AI
- Speech-to-Text and Voice Interaction
We also spent a lot of time on the interface because we didn't want the project to feel like another generic chatbot. The visual language is built around the idea of a Reality Intelligence System — something that feels analytical, direct, and slightly challenging. The conversational layer also keeps the context of the analysis so users can ask follow-up questions instead of starting from zero every time. The important part is that these technologies aren't separate demos sitting beside each other. The ML model, analysis engine, and generative AI work together as one experience.
Challenges we ran into
Honestly, getting the AI to generate an answer wasn't the hardest part. Getting everything around it to work together was. We ran into plenty of frontend issues while building the project — rendering problems, formatting bugs, disappearing sections, broken feedback layouts, that didn't always behave the way we expected. At one point, fixing one part of the feedback UI managed to break another part of the page. We had to repeatedly simplify things, test them, break them, fix them, and test them again. We didn't want it to feel like a chatbot that simply repeats the same introduction or gives generic motivational answers. It needed to understand the conversation and respond to what the user was actually asking. Voice interaction was another area where we had to balance ambition with reliability. We chose a lightweight browser-based approach rather than turning the project into an overly complicated voice system. A lot of the work ended up being less about adding features and more about making the features we already had actually behave properly together.
Accomplishments that we're proud of
The biggest thing we're proud of is that we turned a simple idea into a complete experience. A user can come in with nothing more than an ambitious goal and leave with: a reality score → an explanation → challenged assumptions → scenarios → a practical path → actionable next steps. We're also proud of the personality of the product. We didn't want CONTRADICTOR AI to feel like an assistant whose job is to make the user feel good. Sometimes the most useful answer is:
"Your goal isn't impossible. Your current plan is the problem." And then actually explaining why. We're especially happy with the combination of the analytical experience and the conversational layer. The analyzer remains the core product, while Contradictor AI gives the user a way to question and understand the result. Most importantly, we built something we would actually want to use ourselves.
What we learned
One of the biggest things we learned is that AI product development is much more than prompting a model. We also learned that using ML and generative AI together can solve different parts of the same problem. Our ML model is focused on understanding the user's domain, while the generative AI handles reasoning, explanation, and conversation. That separation helped us think about AI as a system of components rather than expecting one model to do everything. The model can generate a great response, but if the UI breaks, the conversation loses context, the output is difficult to read, or the user doesn't understand what to do next, the experience still fails. We also learned that contradiction has to be constructive. Telling someone "that's unrealistic" isn't enough. A useful reality check should answer: Why is it unrealistic? Where is the gap? What would need to change? What can I realistically do next? That thinking shaped a lot of the decisions we made while building CON*TRADICTOR AI*. And probably the biggest lesson was simple:
Don't add complexity just because you can. Make the core experience work really well.
What's next for CONTRADICTOR AI
This version is the beginning, not the end. We don't see CONTRADICTOR AI as just a goal analyzer. We see it becoming a system people can use whenever they are about to make an important decision. The current version already takes a goal, challenges the assumptions behind it, uses real-world evidence to evaluate it, and turns the result into a practical action path. The next step is to take that same foundation much further. We want CONTRADICTOR AI to become increasingly personalized and continuously aware of reality — bringing in richer domain-specific benchmarks, more current data, and a user's own progress to make every reality check more useful over time. Instead of asking:
"Is my goal realistic?" once, you could keep coming back to CONTRADICTOR AI and ask: "Has my plan become more realistic since I started?" That opens up a much bigger vision. Career decisions. Startup ideas. Education. Financial decisions. Fitness goals. Major life plans. Anywhere there is a gap between what we expect and what reality demands, CONTRADICTOR AI can become the layer that challenges that gap. We started with a simple question: What if AI didn't just help us achieve our plans, but had the courage to challenge them? That's the direction we want to take CONTRADICTOR AI in. Don't kill the ambition.
Challenge the plan.
Make reality work for you.
Built With
- distilbert
- docker
- fastapi
- javascript
- python
- react
- realworldbenchmarkdata
- scikit-learn
- shap
- sqlalchemy
- sqlite
- vite
- webspeechapi
- xgboost
Log in or sign up for Devpost to join the conversation.