Inspiration
Graduate recruitment gives candidates more information than ever, but very little decision clarity. Job posts are fragmented across company sites, titles are inconsistent, deadlines change, and a candidate still has to answer a much harder question: Which roles are genuinely aligned with what I have actually done, and what should I do next?
We surveyed 48 target users. Thirty-one named finding timely, suitable openings as a major difficulty. Sixteen had experienced AI inventing or overstating resume facts, while thirteen disliked repeatedly copying the same JD and personal history into an AI chat. At the same time, 44 of 48 were willing or very willing to let a product assemble trustworthy context and then continue in an AI assistant they already use.
That changed our direction. We stopped treating a long AI matching report as the product. Real Need Job became a trusted context and decision layer: current job intelligence, a user-confirmed fact base, transparent requirement–evidence alignment, and a portable handoff to external AI.
What it does
Real Need Job ingests job descriptions from public recruitment sources and passes them through a publication gate. After a user uploads a resume, Gemini parses PDF or image content into candidate facts and experience candidates. Model output is not automatically treated as truth: an experience becomes authoritative only after confirmation, and confirmation is invalidated when its content changes.
For recommendation, RNJ first asks whether a job is the right role, then how well it matches. A two-axis classification separates role intent—product, engineering, algorithm, operations/testing, hardware and other functions—from domains such as AI/agents or data. This prevents an AI product candidate from seeing wireless-protocol or operations roles merely because both JDs contain technical keywords. The current live database contains 10,177 jobs; 7,772 meet the application's current active/published/non-empty-JD predicate.
When a user opens a job, the system decomposes its JD into requirements, retrieves relevant confirmed evidence, and assigns one of four evidence states: supported, partially supported, not supported or insufficient information. Hard requirements such as graduation year are decided by deterministic rules. Gemini handles semantic extraction and alignment, but it cannot override an explicit conflict or write invented experience into the user's profile.
The result is rendered as a readable Battle Card: an overall decision, core strengths, important gaps, recommended resume changes and the next action. Internal requirement/evidence IDs remain available for audit but do not dominate the user experience. A Prompt Pack then combines the original JD, confirmed facts, alignment results and collaboration instructions so the user can continue in GPT, Claude, Gemini or another assistant without rebuilding context.
How we built it
The MVP is a modular monolith: React and Vite on the frontend; FastAPI, Pydantic, SQLAlchemy and SQLite on the backend. Gemini is the primary runtime AI. It performs multimodal resume parsing, structured extraction, semantic alignment, grounded company/job research and selected interview/reflection tasks. An optional DeepSeek route handles eligible text-only JSON tasks and provides a cross-provider fallback. Capability gates keep multimodal and Google Search-grounded work on Gemini.
We built safety and observability into the workflow. Model outputs are schema-validated and versioned. Telemetry records provider, model, latency, status and token metadata but rejects prompt, resume, JD, email, phone, raw body and content fields. The GPT Action interface is read-only; a caller cannot switch user identity in request parameters. Future write actions follow proposal -> user confirmation -> commit.
Challenges and learning
Our hardest challenge was balancing rigor with usability. Early outputs were traceable but looked like audit reports. In a small A-versus-C evaluation, our structured system won 8 of 12 pairs, the raw baseline won 3, and 1 tied—but direct user review showed that a technically safer answer can still feel worse if it is repetitive or difficult to scan. We redesigned the output around a 30-second decision card and moved detailed evidence into an optional layer.
Another bad case exposed a deeper ranking flaw: an AI-product resume produced operations and wireless-protocol recommendations because keyword overlap outweighed role intent. We converted that failure into a role-aware retrieval architecture and a regression guard requiring zero forbidden-role jobs in the default Top 20 for an AI-product profile.
We currently maintain 48 manually reviewed resume fixtures, 12 Golden JD cases with 143 audited requirement atoms, and a broad automated test suite. The frozen workspace passed 559 backend tests. These assets do not prove hiring outcomes, but they make system behavior reproducible and stop known trust failures from returning.
What's next
The next phase is behavioral validation, not adding more report length. We will measure whether users find a relevant job faster, copy the Prompt Pack, continue the task externally, and complete a real action such as saving, tailoring, preparing or applying. We will also expand third-party blind evaluation, add a strong-prompt baseline, and convert the current read-only Action interface into a permissioned skill in which external AI can retrieve current RNJ state and propose—but never silently commit—changes.
Log in or sign up for Devpost to join the conversation.