Bops
AI 봇 팀이 업무 운영을 담당, 메일·파이프라인·청구·보고서 관리, 각각 컴퓨터·이메일·전화번호 보유, 모든 정보를 기억
HandshakeOS는 명함 교환만으로 끝난 대화를 실제 근거가 있을 때만 기회로 전환합니다
Isaac leaves a networking event with handshakes and no date. HandshakeOS turns the conversation into an opportunity, then counts a step only when the evidence is real.
비즈니스GitHub @naimkatiman온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
Turn Startup ASEAN conversations into verified partnership outcomes.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Stop collecting contacts. Start closing opportunities.
HandshakeOS turns networking conversations into verified partnership outcomes for the Startup ASEAN ecosystem. Paste meeting notes, a WhatsApp thread or a photo of a business card; Gemma 4 extracts the deal, commitments, deadlines and next steps. Then the Outcome Evidence Engine decides what actually counts as progress.
Built for the Cradle Outcome Conversion challenge.
Pitch video (2:27): assets/video/handshakeos-pitch.mp4 · Live demo: https://handshakeos.m-naim.workers.dev
Upload conversation → Extract opportunity → Generate actions → Verify milestone → Update conversion metrics
| Screen | What it does |
|---|---|
| Capture | Paste text, paste/drop an image (business card, screenshot, handwritten notes). Any ASEAN language. |
| Action Plan | Parties, key terms, contacts, next actions with owners and deadlines, an editable follow-up (copy / WhatsApp / email), and every extracted claim with its verbatim source quote. |
| Outcomes | Cumulative funnel (Introduced → Meeting → POC → Partnership), conversion rates, corridor breakdown, CSV/JSON export. |
Most "AI CRMs" let you mark a deal as won. HandshakeOS doesn't trust anyone, including the model.
npm install
cp .env.example .env.local # add your OPENROUTER_API_KEY
npm run dev # http://localhost:3000
Get a key at https://openrouter.ai/keys. Default model: google/gemma-4-26b-a4b-it (open weights, fast MoE, vision). google/gemma-4-31b-it is the stronger alternative. Set GEMMA_MODEL to switch. Use the paid id. The :free pool returns 429 when several people click at once.
If that call fails, the server tries GEMINI_API_KEY with gemini-flash-lite-latest. The result says which provider answered. Gemma 4 on the Gemini API is listed, and it often returns 500, so it is not the fallback.
No key? The app runs in Demo mode: the built-in samples return pre-recorded outputs so you can walk the whole flow. With a key, if the live call fails mid-demo on a sample, the app serves the sample result and labels it "Offline fallback" so your demo never dies on stage.
OPENROUTER_API_KEY (and optionally GEMMA_MODEL) as environment variables.app/
page.tsx Capture
opportunity/[id]/page.tsx Action plan + Evidence Engine + audit trail
dashboard/page.tsx Outcome funnel
api/analyze/route.ts Gemma 4: conversation → structured opportunity
api/verify/route.ts Gemma 4: evidence → milestone findings
lib/
gemma.ts OpenRouter client for Gemma 4, robust JSON parsing, grounding check
prompts.ts Extraction + evidence-audit prompts
normalize.ts Validates model output, enforces evidence rules
store.ts Browser-local persistence (swap for Supabase)
funnel.ts Conversion math
samples.ts / seed.ts Fictional demo scenario + illustrative funnel data
lib/store.ts with Supabase (one opportunities table holding the same JSON).| Time | Do | Say |
|---|---|---|
| 0–15s | Open Outcomes (20 → 7 → 3 → 1) | "Startup ASEAN creates connections. But how do we measure what they produce?" |
| 15–35s | Capture → MY → SG logistics → Analyse | "Raw notes from a mixer. Gemma extracts the deal, the 14-day pilot, the 10 vehicles, Sarah's deadline." |
| 35–55s | Scroll the plan | "Every claim is quoted from the source. It's marked proposed, not confirmed. Follow-up is drafted; I send it, not the AI." |
| 55–75s | Evidence Engine → meeting + pilot agreed → Verify → Confirm | "Sarah replies. Gemma proves the meeting happened but the pilot is only committed. I confirm. Watch the funnel." Then try hearsay: "Rumours don't count." |
| 75–90s | Outcomes (now 20 → 8, 40% / 5%) → GitHub | "Verified conversion, open source, ready for the whole ecosystem." |
Bonus: run the Johor retail (Bahasa Melayu) sample to show the follow-up drafted in Malay.
MIT. All companies and people in the samples are fictional.