[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74429":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":16,"starSnapshotCount":16,"syncStatus":15,"lastSyncTime":30,"discoverSource":31},74429,"InterviewOS","Kail-Fu\u002FInterviewOS","Kail-Fu","Replace coding puzzles with real-work simulations.","",null,"JavaScript",1517,139,97,2,0,41,107,360,123,104.44,"MIT License",false,"main",true,[],"2026-06-12 04:01:15","# InterviewOS\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fgifs\u002F01-create-assessment.gif\" width=\"800\" alt=\"Create an assessment\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>Replace coding puzzles with real-work simulations.\u003C\u002Fstrong>\u003Cbr\u002F>\n  Open infrastructure for production-grade technical assessments.\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\".\u002FLICENSE\">\u003Cimg alt=\"License\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg\">\u003C\u002Fa>\n  \u003Ca href=\"#run-locally-in-one-command\">\u003Cimg alt=\"Docker\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocker-required-blue.svg\">\u003C\u002Fa>\n  \u003Cimg alt=\"Version\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fversion-1.0.0-informational.svg\">\n\u003C\u002Fp>\n\n---\n\n## What is InterviewOS?\n\nInterviewOS helps teams evaluate candidates through job-relevant tasks instead of algorithm puzzles.\n\nCandidates complete realistic assignments using their normal tools. InterviewOS records the full workflow and generates structured evaluation reports so reviewers can see:\n\n- what the candidate shipped\n- how they approached the work\n- how they debugged, used tools, and made tradeoffs\n- how they explained decisions along the way\n\nNot just output. The process.\n\n---\n\n## How it works\n\n### 1) Create an assessment\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fgifs\u002F01-create-assessment.gif\" width=\"800\" alt=\"Set up an assessment\">\n\u003C\u002Fp>\n\nDefine the task, add follow-up questions, and configure reporting requirements.\n\n### 2) Invite a candidate\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fgifs\u002F02-invite-and-accept.gif\" width=\"800\" alt=\"Invite and accept\">\n\u003C\u002Fp>\n\nSend a secure link. No account setup required.\n\n### 3) Candidate completes the work end-to-end\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fgifs\u002F03-workflow-recording.gif\" width=\"800\" alt=\"Candidate completes assessment with recording\">\n\u003C\u002Fp>\n\nCandidates work normally using their preferred tools. InterviewOS captures the workflow and responses.\n\n### 4) Review a structured report\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fgifs\u002F04-generated-report.gif\" width=\"800\" alt=\"Generated report\">\n\u003C\u002Fp>\n\nReviewers get a high-signal summary plus the underlying evidence needed for calibration.\n\n---\n\n## Why InterviewOS exists\n\nHiring is still optimized for puzzle performance. Modern engineering is not.\n\nReal work involves:\n\n- debugging unfamiliar code\n- reading and applying documentation\n- using AI tools responsibly\n- working through ambiguity\n- communicating tradeoffs and decisions\n\nShort algorithm challenges rarely measure these skills. InterviewOS is opinionated: real work beats rehearsed tricks.\n\n---\n\n## InterviewOS vs traditional coding interviews\n\n| Traditional puzzle interviews | InterviewOS |\n|---|---|\n| tests memorization and prep | tests job-relevant execution |\n| output-focused | workflow and decision-focused |\n| easy to game | harder to fake |\n| no realistic context | realistic tasks and constraints |\n| weak reviewer calibration | evidence-rich review (recording + report) |\n\n---\n\n## Run locally in one command\n\nPrerequisite: Docker Desktop running.\n\n```bash\nmake dev\n````\n\nThis starts:\n\n* Frontend: [http:\u002F\u002Flocalhost:5173](http:\u002F\u002Flocalhost:5173)\n* Backend API: [http:\u002F\u002Flocalhost:8000](http:\u002F\u002Flocalhost:8000)\n* Local email inbox (Mailpit): [http:\u002F\u002Flocalhost:8025](http:\u002F\u002Flocalhost:8025)\n\nA bundled sample assessment is included so you can test the full flow immediately.\n\n---\n\n## What works today\n\n* end-to-end invite flow with frontend + backend\n* `POST \u002Fassessments\u002Fstart` plus legacy `POST \u002Fstart-assessment`\n* invite lifecycle APIs: bulk send, resend, verify token, and mark-taken\n* local out-of-box mode (no AWS account required)\n* bundled sample assessment archive for immediate testing\n* local SMTP inbox via Mailpit in Docker Compose\n* admin dashboard foundation at `\u002Fdashboard` backed by:\n  * `GET \u002Fapi\u002Fassessments`\n  * `GET \u002Fapi\u002Fcandidates?assessmentId=\u003Cid>`\n* assessment creation flow foundation:\n  * `\u002Fnew-assessment` (title + context)\n  * `\u002Fselection-questions` (question pick + create)\n  * `GET \u002Fapi\u002Fquestions`, `GET \u002Fapi\u002Fassessments\u002Fcheck-title`, `POST \u002Fapi\u002Fnew-assessments`\n* assessment result + invite-management foundation:\n  * `\u002Fassessment_result\u002F:id`\n  * `GET \u002Fapi\u002Fassessments\u002F{id}`\n  * `POST \u002Fapi\u002Finvite\u002Fbulk` and `POST \u002Fapi\u002Finvite\u002Fresend` now support `assessmentId` \u002F `candidateId`\n  * resend UX polish: success toast + status label rendered as `resent at \u003Ctimestamp>`\n* candidate flow baseline at `\u002Ftake-assessment?token=...` using copied `Assessment.js` recording pipeline with compatibility endpoints:\n  * `GET \u002Fapi\u002Fpublic\u002Fassessment\u002F{id}`\n  * `GET \u002Fapi\u002Freflection\u002Fsections`\n  * `POST \u002Fget-presigned-upload-url`, `PUT \u002Flocal-upload\u002F{key}`, `POST \u002Fnotify-recording-upload`\n  * `POST \u002Fapi\u002Frecording\u002Fstart-multipart-upload`, `POST \u002Fapi\u002Frecording\u002Fupload-part`, `POST \u002Fapi\u002Frecording\u002Fcomplete-multipart-upload`\n  * `POST \u002Fupload-zip`, `POST \u002Fdownload-assessment`\n* report experience baseline:\n  * report route at `\u002Freport\u002F:id` backed by persisted candidate report payloads from local artifacts\n  * report API compatibility endpoint: `GET \u002Freport\u002F{id}`\n  * assessment-result action now includes `View Report`\n  * `POST \u002Fupload-zip` now triggers assessment-linked background scoring dispatch and persists report records in local SQLite\n  * local screen-time analyzer hook is enabled for uploaded workflow recordings (duration-based baseline in OSS mode)\n  * candidate completion now lands on a loading screen that polls report readiness and auto-redirects to `\u002Freport\u002F:id`\n  * assessment4 dual-artifact upload path is supported via `POST \u002Fupload-assessment4` (submission zip + notebook)\n\n---\n\n## Architecture (high level)\n\nInterviewOS is split into:\n\n* `frontend\u002F`: candidate and admin UI\n* `backend\u002F`: API, invite lifecycle, local SQLite state, assessment packaging, and report scoring pipeline\n* `docker-compose.yml`: local end-to-end dev environment (including Mailpit)\n\nFor development details, see [CONTRIBUTING.md](CONTRIBUTING.md).\n\n---\n\n## Roadmap\n\nPlanned next steps:\n\n* recording reliability hardening for multipart and resume\u002Ferror handling\n* deepen report parity (`newreport`) with richer diff\u002Fcode-review panels and media playback\n* tighten candidate-to-report linkage so completion always resolves to the correct report id\n* expand evaluator parity from baseline checks to old-repo full autograder\u002Ftest-case flows by assessment type\n* automated evaluation and rubric scoring\n* ATS and webhook integrations\n\n---\n\n## Status\n\nInterviewOS `v1.0.0` is production-ready for the open-source local workflow. Core migration includes invite, dashboard, assessment creation\u002Fresult, candidate assessment flow, recording upload, and generated report viewing with readiness polling.\n\nIf you try it and hit sharp edges, please open an issue. Feature requests and PRs are welcome.\n\n---\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n\n---\n\n## Security\n\nSee [SECURITY.md](SECURITY.md). Please report sensitive issues responsibly.\n\n---\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n","InterviewOS 是一个用于技术评估的平台，通过模拟实际工作场景来替代传统的编码谜题。其核心功能包括创建真实工作任务、记录候选人完成任务的全过程以及生成详细的评估报告，让评审者能够全面了解候选人的工作方法、调试过程、工具使用情况及决策依据。项目基于JavaScript开发，并采用Docker进行本地环境部署。适用于希望以更贴近日常工作的方式来评估开发者能力的企业和技术团队，在招聘过程中提供比传统算法测试更为全面和真实的评价依据。","2026-06-11 03:50:08","high_star"]