Dulus
선택한 모델로 데스크톱·터미널에서 동작하는 AI 에이전트, 모델은 Fuel에 호스팅되고 $DULUS로 결제
자신의 에이전트 안에서 방위 기술 역할을 추구하고, 에이전트는 평가 기준·일정·시범 작업을 비공개로 판단합니다. 우리는 답을 보지 않습니다
Pursue defense-tech roles from inside your own agent. Your agent reasons privately on rubrics, timelines, and trial work — we never see your answers.
기타TypeScript · JavaScriptGitHub @JiwaniZakir온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
MCP server + web playground helping people pursue US defense-tech roles from inside their own AI agent
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A stateless remote MCP server + web app that helps people pursue US defense-tech roles from inside the AI agent they already use — Claude, Cursor, ChatGPT, Grok, VS Code — instead of joining yet another platform.
Your agent does the private reasoning. The server is an almost entirely stateless, public-knowledge toolbox. It never asks for, stores, or logs PII, clearance records, or screenshots — and rejects them when they're sent. It takes only general statuses you choose to share (e.g. "green card holder"), and gives your agent rubrics, rules, timelines, and templates to evaluate locally against what it already knows about you. (The one opt-in exception, and exactly what it does and doesn't store: see Architecture below.)
https://clearance-lens.vercel.app/mcpAdd it to your agent (pick one):
# Claude Code — one line
claude mcp add --transport http clearance-lens https://clearance-lens.vercel.app/mcp
// Claude Desktop / claude.ai connectors, Cursor, VS Code, or any client
// that reads a generic mcpServers block — paste this and restart
{
"mcpServers": {
"clearance-lens": {
"url": "https://clearance-lens.vercel.app/mcp"
}
}
}
For ChatGPT: Settings → Connectors → Add custom connector, name it Clearance Lens, paste the URL above, and leave authentication as "No auth."
Then just ask your agent something like:
"I'm a green-card holder — can I work the Anduril Fury role? How long would a Secret clearance realistically take?"
No agent handy? Try every tool directly at /try — it calls the exact same server, no LLM key required.
| Tool | What it's for |
|---|---|
search_defense_roles | Live defense/hard-tech roles from the a16z speedrun Talent Network's companies (not the whole defense market), with requirement signals labeled stated (quoted from the posting) vs inferred (a judgment call to confirm) |
get_role_rubric | An eligibility checklist + skills rubric for your agent to evaluate privately |
estimate_timeline | How long a clearance might realistically take — a real range where the data supports one, a single sourced figure where it doesn't, never an invented number |
readiness_brief | A template your agent fills in locally: eligibility, gaps, a 2-week prep plan, and questions to ask the recruiter |
build_trial_assessment | A 60/90/180-minute ITAR-safe work-sample exercise built only from the public posting |
explain_rule | Plain-English ITAR/clearance rule explanations with primary-source links |
verify_evidence | A GitHub, GitLab, or Cosign profile's already-public signal, via each platform's public API only |
run_job_preview | A 6-scene "first week" realistic simulation — played straight, not sanitized |
fit_debrief | Loved/disliked work-style tags → a summary template and questions to ask the company. Never a score. |
get_company_profile | Published facts + computed work realities — returns gaps, not a guess, when no sourced criteria exist |
prepare_consented_card | A fill-in intro card for only the fields you approve — your agent fills in your answers locally, so they never reach the server |
prepare_signed_attestation | Wraps a self-asserted claim (clearance level, citizenship status, or availability) in a credential your own agent signs locally — proves who signed it and when, never that the claim itself is true |
contribute_anonymous_signal | Opts one role-interest into an anonymous, aggregated signal pool — no name, contact info, or identifier of any kind |
get_aggregated_signal | Reads that pool back as rounded percentages for a role or company — never an individual record, never before at least 5 people have contributed |
Every tool call returns sources[] and, where relevant, a disclaimer. Full specs: PLAN.md §2.
flowchart TB
subgraph clients["Your agent"]
A[Claude / Cursor / ChatGPT / VS Code]
end
subgraph browser["Browser, no agent needed"]
B["/try playground"]
end
A -- "Streamable HTTP" --> MCP["app/mcp/route.ts<br/>(mcp-handler + @modelcontextprotocol/server v2)"]
B -- "POST JSON" --> API["app/api/tools/[name]/route.ts"]
MCP --> Wrap
API --> Wrap
subgraph core["lib/tools/wrap.ts — callTool()"]
Wrap["1. input-size limit<br/>2. PII/CUI guard<br/>3. zod input validation<br/>4. tool handler<br/>5. zod output validation"]
end
Wrap --> Registry["lib/tools/registry.ts<br/>(the one shared list — adding a tool here\nexposes it on BOTH surfaces)"]
Registry --> Handlers["lib/tools/*.ts — 16 tool handlers"]
Handlers --> Speedrun["a16z speedrun Talent\nNetwork public API"]
Handlers --> GitHub["GitHub / GitLab public REST APIs"]
Handlers --> Data["data/*.json\n(rules, timelines, companies,\nfit-tags, job-preview-scenes)"]
style Wrap fill:#2273c3,color:#fff
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗
generate_interview_guide | A structured interview guide for a startup's own human panel, built only from the posting — traced questions and evaluation anchors, never a candidate score |
verify_signed_attestation | The recipient's side of a signed attestation — checks it was really signed by the key it names and hasn't been altered, with a key fingerprint to recognize repeat signers. Never that the claim is true |