Project Info
Project name Scout - Repository Interviews Elevator pitch Scout replaces LeetCode-style coding rounds with browser-based repository interviews, benchmarks, and evidence-based scoring. Built with Next.js, React, TypeScript, Node.js, SQLite, Docker, code-server, Python, C++, OpenAI Codex, GPT-5.6, Vercel AI SDK Try it out Source code: https://github.com/Navigam1108/BuildWeekProject Demo video: https://youtu.be/Tb3L3NIe17w About the project
Inspiration
Most engineering interviews still test isolated puzzles in a blank editor. That makes it easy to optimize for memorized patterns or a single AI-generated answer, while missing the work engineers actually do: understand an unfamiliar system, find the important bottleneck, preserve behavior, test the change, and explain the trade-off. Scout turns that work into the interview.
What it does
Scout gives candidates a realistic, browser-based VS Code workspace backed by an isolated Docker container. Each session starts from a production-shaped repository, engineering ticket, tests, benchmark, and intentional TODO seams. The prototype includes nine Python, TypeScript, and C++ interview repositories with 45 measurable optimization opportunities across routing, caching, scheduling, matching, payments, recommendations, search, log processing, and risk allocation. Candidates are not expected to finish every mission. The scorecard rewards meaningful progress: correctness, benchmark improvement, progress toward a golden reference, and hidden-test confidence. Two or three strong improvements can be a strong interview result. Interviewers can view elapsed time, the live candidate VS Code workspace, submissions, test evidence, benchmark deltas, mission scores, and the data-structure concepts demonstrated.
How we built it
Scout uses Next.js, React, TypeScript, SQLite, Docker, and code-server. Starting a session copies a candidate repository, applies a reproducible workload variant, launches the matching language container, and opens VS Code in the browser. The terminal and hidden grader use the same workspace, so candidate tests, benchmarks, and the submitted code run in one toolchain. The grader runs hidden invariants and benchmarks, parses a structured report, and generates the interviewer scorecard. Each pack has a candidate version, golden reference, visible tests, hidden tests, and calibrated mission rubric. The AI interview guide is honestly shown as Coming soon. This demo focuses on the working repository workflow and deterministic evidence rather than presenting an unfinished assistant as a completed feature. How we used OpenAI Codex and GPT-5.6 I used OpenAI Codex with GPT-5.6 as a development collaborator. It helped decompose the work, iterate on the Next.js and Docker workflow, structure challenge packs, improve the UI, troubleshoot grading and build issues, and refine documentation and tests. I set the interview philosophy, designed the repository missions and scoring rubric, reviewed the implementation, ran the validation checks, and made the final product decisions. GPT-5.6 is not Scout's runtime interviewer or grader: current scores are deterministic and come from tests and benchmarks. Challenges and learnings The main challenge was balancing realism with reproducible evaluation. Scout uses persisted replay variants to change workload shape and ticket framing while keeping the public API and rubric comparable. We also avoided an all-or-nothing grade because real candidates will not optimize every path in one interview. We learned that the best interview evidence is not a pass/fail label. It is a clear record of what the candidate changed, what they tested, how performance moved, and what opportunities remained.
What's next
Next steps are authentication, protected grader storage, read-only live observation, more calibrated repositories, and a constrained AI guide for repository navigation rather than solution generation.
Scout - repository interviews for the AI era
An OpenAI Builder Week project that replaces puzzle-style coding rounds with realistic, browser-based codebase investigations.
Scout gives a candidate a production-shaped repository instead of an isolated algorithm prompt. They identify and improve the bottlenecks they can reach; the interviewer receives reproducible tests, benchmark evidence, and mission-level progress. The AI interview guide is intentionally presented as a coming-soon preview while the repository experience takes center stage.
The goal is not to make interviews "AI-proof." It is to make engineering judgment visible: how someone maps an unfamiliar system, chooses a bottleneck, checks invariants, improves performance, and explains the trade-offs.
What judges can try
| Capability | What it provides |
|---|---|
| 9 repository environments | Python, TypeScript, and C++ services spanning logs, payments, caching, matching, scheduling, recommendations, search, routing, and risk allocation. |
| 45 measurable missions | Every pack has five independent performance opportunities, distributed across a multi-file codebase rather than exposed as named DSA exercises. |
| Partial-success grading | Completing two or three missions well is a strong result. The scorecard shows correctness, benchmark progress, and proximity to a golden reference. |
| Browser-native workspace | Each session creates a fresh repository inside a Docker-backed code-server IDE, with an integrated terminal for make test and make bench. |
| Replay variants | A persisted per-session seed changes workload shape and ticket framing while keeping the public API and mission rubric comparable. |
| AI interview guide (coming soon) | The demo previews a planned, constrained codebase guide instead of exposing an empty chatbox. The repository, scoring, and browser workflow are available today. |
| Interviewer evidence | The live view shows elapsed time, submissions, visible and hidden test totals, benchmark deltas, mission cards, concepts, and the session log. |
| Open-ended sessions | Tasks are designed for roughly an hour, but Scout never hard-stops a session; the interviewer sees elapsed time and ends it manually. |
Fastest judge path
The shortest end-to-end demo starts the Python LogScope interview. It requires
Node.js 22.6+, Git, ripgrep (rg), and a Docker daemon running Linux
containers. Use Docker Desktop on Windows or macOS, or Docker Engine on Linux.
On Linux, make sure your current user can run docker without sudo. Python
is included in the candidate image, so it is not needed on the host for this
flow.
Windows PowerShell
git clone <repository-url>
Set-Location openai_interview_platform
Copy-Item .env.example .env
npm ci
# Builds the image needed for the LogScope Python task.
docker build -t challenge-py images/challenge-py
npm run dev
Linux / macOS Bash
git clone <repository-url>
cd openai_interview_platform
cp .env.example .env
npm ci
# Builds the image needed for the LogScope Python task.
docker build -t challenge-py images/challenge-py
npm run dev
Open http://localhost:3000/admin, click Start session on LogScope, then open the candidate workspace link shown by the app. Enter the generated IDE password when code-server asks for it. In the browser terminal, run:
make test
make bench
Click Submit, then open the interviewer view to inspect the grade report. Use End session when finished to remove the container.
The first image build downloads the pinned code-server bundle and can take a little longer. Docker Hub and GitHub access are needed during that build.
Run the entire portfolio
Build all three language images before starting TypeScript or C++ tasks:
npm run images:build
This is equivalent to building challenge-py, challenge-ts, and
challenge-cpp individually. The images run code-server as a non-root
candidate user and include only the language runtime, compiler/tooling, Git,
Make, and support needed for the browser workspace and grader.
PUBLIC_HOST in .env is a hostname or IP only. Keep the default
localhost for a local demo; do not include the Next.js port in that value.
A 90-second judge demo
For the clearest walkthrough, prepare one baseline session and one improved submission rather than asking a judge to implement a change live.
- Start a LogScope session and show the task ticket, multi-file tree, and browser terminal.
- Run
make testandmake benchto establish the candidate baseline. - Open the AI guide tab to show the intentional coming-soon preview rather than an unconfigured chatbox.
- Open the interviewer view to show the matching coming-soon status alongside the session controls and replay profile.
- Reveal a prepared candidate improvement, rerun the benchmark, and submit.
- In the interviewer view, show hidden-test totals, mission-level timings, the replay seed/profile, elapsed time, session pulse, and session log.
Why these interviews feel like engineering work
Each pack contains a candidate repository with correct-but-inefficient paths, visible tests, a benchmark workload, and intentional TODO extension seams. The candidate can improve a coherent subset without rewriting the service. Golden implementations and hidden grader assets are included in this hackathon checkout so the evaluation is reviewable; in a real deployment they belong in private grader storage.
The following labels are for interview calibration and follow-up; candidates see product tickets and service vocabulary rather than a list of DSA topics.
| Pack | Scenario | Language | Interviewer-calibration concepts |
|---|---|---|---|
logscope-py | Time-range log analysis | Python | Binary search, hashing, inverted index, heap, sliding window |
payfix-py | Nightly payment reconciliation | Python | Hash maps, composite keys, grouping, memoization, heaps |
gateway-cache-ts | Bounded API response cache | TypeScript | Hash maps, linked list, reverse index, fan-in, batching |
orderbook-py | Exchange matching engine | Python | Price levels, hash maps, heaps, ordered lookup, deques |
dispatch-scheduler-ts | Dependency-aware job scheduling | TypeScript | Graphs, in-degree, priority queues, min-heaps, interval search |
recofeed-py | Recommendation feed assembly | Python | Hash sets/maps, top-K heaps, cache invalidation, batching |
route-mesh-ts | API route resolution | TypeScript | Tries, prefix maps, prefix sums, binary search, cache invalidation |
inventory-search-py | Commerce inventory search | Python | Tries, inverted indexes, hash joins, binary search, pagination |
risk-router-cpp | Low-latency risk allocation | C++20 | Secondary indexes, prefix sums, binary search, versioned caches |
Grading philosophy
Scout is deliberately not a "finish every TODO or fail" system. Each mission has an equal default weight, and the automated score combines:
- correctness and invariant evidence (35%),
- improvement from the candidate baseline (35%),
- progress toward the golden benchmark (20%), and
- hidden-test confidence (10%).
The interviewer still evaluates code quality, prioritization, communication, and trade-offs. As a guide, one meaningful mission is progress; two or three well-executed missions is a strong interview; broad, correct improvement is exceptional. See INTERVIEW-FRAMEWORK.md for the full challenge and scorecard contract.
How the browser workflow works
flowchart LR
C[Candidate browser] --> W[Scout web app<br/>Next.js]
W --> S[Fresh session repository<br/>Docker container]
S --> I[code-server IDE<br/>integrated terminal]
C --> I
W --> D[(SQLite<br/>sessions, reports, transcript)]
C -. future AI guide .-> P[Deterministic policy gate]
P -. guarded navigation .-> A[Planned guide model + read-only<br/>repository tools]
W --> G[Hidden grader]
G --> S
Creating a session copies the candidate repository, writes a deterministic
replay profile, starts its language-specific Docker image, and embeds
code-server in the candidate page. The candidate terminal and hidden grader
run in the same container, so make test, make bench, and the submitted
workspace use the same toolchain.
On submission, Scout copies only the hidden grader into that container. The
grader emits a structured REPORT_JSON record, which Scout stores in SQLite
and turns into an interviewer scorecard.
AI interview guide: coming soon
The candidate UI intentionally does not expose a chatbox in this demo. The future AI interview guide will be a constrained navigation layer, not an autonomous coding agent.
- A deterministic pre-flight policy rejects common prompt injection, solution, diagnosis, debugging, implementation, and optimization requests, as well as oversized messages, before they are sent to a model.
- Its tool surface is limited to scoped directory listing, symbol search, text search, and file reads within the candidate repository. It has no write, shell, network, or grader tools.
- The policy and tool layer is staged behind the coming-soon experience while the live demo focuses on repository work and grading evidence.
The core workspace, grading, and scorecard run without an LLM provider. An Ollama-compatible endpoint or Anthropic configuration is only needed while developing the future guide.
Replay variants
Every new session receives a random, persisted seed. It selects a pack-specific replay profile, changes benchmark fixture shape and ticket wording, and records the profile with the session. The public API, mission IDs, and grading thresholds remain stable so benchmark evidence stays comparable.
This makes rote answer reuse less useful while retaining reproducibility for the interviewer. It does not prove that someone did not use an external assistant. Read VARIANT-CALIBRATION.md for calibration and host-specific benchmark guidance.
Verify a checkout
These checks do not need Docker or an LLM provider:
npm run verify
The expanded equivalent is:
npm run typecheck
npm run lint
npm run build
node tests/test_grading.mjs
npm run variant-test
npm run test:public-host
After building the Docker images, use the browser flow above for the full container-backed smoke test.
Built for OpenAI Builder Week
Scout is built with Next.js, React, TypeScript, SQLite, Docker, code-server, and the Vercel AI SDK. Codex and GPT-5.6 accelerated implementation of the Next.js/Docker scaffolding, challenge-pack structure, replay variants, and deterministic guardrail/evidence design. The human builder set the interview safety boundary, reviewed the code paths, and made the final product decisions.
GPT-5.6 is not Scout's runtime interviewer model. The staged guide supports an Anthropic model or an OpenAI-compatible local endpoint during development. The submission outline and 3-minute demo script live in DEVPOST-SUBMISSION.md.
Project map
app/ Next.js pages and API routes
lib/ SQLite, Docker session lifecycle, grader, variants, Scout policy/tools
challenges/ 9 candidate/golden repository packs, graders, variants, and metadata
images/ Minimal Python, TypeScript, and C++ browser-workspace images
scripts/ Image build, challenge indexing, and replay calibration checks
Demo boundaries and production follow-up
This repository is intentionally a local hackathon demo, not a public multi-tenant deployment.
- App and session APIs currently have no enforced access control. Do not expose this demo on a public network.
- The IDE is embedded over HTTP for local use. A public deployment needs authentication, HTTPS/reverse-proxy handling, and a deliberate browser-origin design.
- Docker resource limits help contain a session, but production outbound-network controls need host/firewall policy; the demo is not a claim of complete egress isolation.
- The staged AI guide policy layer and replay variants are useful layers of interview evidence, not a formal guarantee against every adversarial prompt or unauthorized tool.
- Golden repositories, hidden tests, and benchmark calibration need to move to protected infrastructure for a real assessment product.
For the task design and delegation record, see INTERVIEW-FRAMEWORK.md and HANDOFFS.md.
Analysis
View
Metric
- 12
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- AnthropicIn code
- C++In code
- CSSIn code
- Next.jsIn code
- PythonIn code
- ReactIn code
- TypeScriptIn code
- Vercel AI SDKIn code
- DockerClaimed
- JavaScriptClaimed
- Node.jsClaimed
- VercelClaimed
8 of 12 appear in the indexed code. 4 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
221 KB
Source files
167
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
Navigam1108/BuildWeekProject
259 files · 565 KB · @ 2426aec
Structure
Interface
6 files · 2%Screens, components and styles rendered to the user.
API & routing
11 files · 4%Request entry points: routes, handlers and controllers.
Application logic
161 files · 62%Domain rules, services and shared utilities.
+6 more
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- TypeScript35%
- Python24%
- Markdown13%
- Shell9%
- CSS9%
- YAML6%
- Other (1)5%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 20- @ai-sdk/anthropic
- @ai-sdk/openai-compatible
- ai
- better-sqlite3
- dockerode
- js-yaml
- nanoid
- next
- react
- react-dom
- zod
- +9 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.