Inspiration

It’s easy to spend an hour scrolling through opportunities and still have no idea what to do next. We built OneThing to turn that moment into a small, achievable action.

What it does

Users choose their interests, goals, and preferences, then browse a feed of opportunities and self-guided tasks. OneThing explains why an item appears, lets users save it, and breaks preparation into quests they can complete. Finished steps earn points and reveal progress on an interactive achievement map. A personal recap turns recorded activity into a story of what they actually accomplished.

How we built it

We built the interface with React and Vite and the API with Python and Flask. A cached catalog supplies opportunities, while the backend handles matching, saved items, quests, and progress. Activity can be stored in SQLite or MongoDB. Gemini can generate a recap from completed quests; the app also has a local recap when Gemini is unavailable.

Challenges and lessons

Our biggest challenge was making recommendations feel useful rather than merely related to a keyword. We added preference filters and explanations for why items appear. We also kept preparation separate from real-world outcomes: completing a step toward an internship does not mean someone applied.

What’s next

We want to improve recommendation quality, add individual accounts, and refresh opportunity sources more frequently.

Share this project:

Updates

Submission history