ai-startup-skills
AI 제품을 만드는 스타트업을 위한 7단계 에이전트 스킬: 검증 → 비즈플랜 → 정책 → 로드쇼 → 고객 확보 → 가격 책정 → 등록
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Apply jobs for the job seekers, including refining resume, online mock interview, feedback, learning...
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
AI candidate-facing job-application app — extracted from the RoboHire monorepo into a standalone, Vercel-deployable system.README 전문 보기 ↗AI candidate-facing job-application app — extracted from the RoboHire monorepo into a standalone, Vercel-deployable system.
roboapply.io).server/, served on Vercel as a single Serverless Function via api/index.ts (export default app).interview-agent/ LiveKit voice worker for mock interviews (a separate always-on process; cannot run on Vercel serverless — host it on Render/Railway/Fly).docs/ENGINEERING_PLAN.md for the DB-split path).See docs/ENGINEERING_PLAN.md for architecture & rationale and docs/TASK_PLAN.md for the phased execution checklist.
On the feat/jobright-clone branch this codebase serves two product brands, resolved per request from the Host header: RoboApply (roboapply.io, the international market including Taiwan) and GoApply (goapply.top, mainland China). Both have the same functions and run on the same shared stack: one set of credentials for models, email, voice, storage and web push serves both. A China-specific provider (CN_<NAME> in .env.example) is an optional override of <NAME>, never a prerequisite, so GoApply works with no variable of its own. What differs is what follows from the market: job sources and job-search providers, language, currency and prices, the payment rail (Alipay for GoApply, Stripe for RoboApply), extra sign-in methods and legal lines. Neither brand ever submits a job application for the user. A deployment serves both brands unless ALLOWED_BRANDS narrows it (ALLOWED_BRANDS=roboapply keeps GoApply closed). The plans are indexed in docs/jobright-clone/README.md; the parity rules are in docs/jobright-clone/GOAPPLY_PARITY_PLAN.md. Locally, ./scripts/dev-clone.sh starts both brands at http://localhost:3621 and http://goapply.localhost:3621.
cp .env.example .env # fill in DATABASE_URL, JWT_SECRET, LLM keys, …
npm install # installs deps + runs `prisma generate`
npm run dev # Express API (.env PORT, default :4607) + Next.js :3611 (concurrently)
Open http://localhost:3611. The Next dev server proxies /api/* → the local Express API (NEXT_PUBLIC_API_URL).
To also run the mock-interview voice worker:
cd interview-agent && cp .env.example .env.local # LiveKit creds
npm install && npm run dev
| Script | What it does |
|---|---|
npm run dev | Express API + Next.js together (dev) |
npm run dev:server | Express API only (tsx watch) |
npm run dev:web | Next.js only (:3611) |
npm run build | The exact Vercel build: prisma generate && tsc -p server && next build |
npm run build:server | Compile the Express backend to server/dist |
npm run typecheck:server | Type-check the backend (no emit) |
npm run db:push | Push the Prisma schema (uses DIRECT_DATABASE_URL) |
npm run test | Frontend vitest |
. Next.js app (app/, components/, hooks/, lib/, i18n/, …)
├─ api/index.ts Vercel function entry → re-exports the Express app
├─ server/ Standalone Express backend
│ ├─ src/app.ts The Express app (roboapply + interview-engine + cron routes)
│ ├─ src/roboapply/ Extracted /api/v1/roboapply/* routers + V2 + engine
│ ├─ src/interview-engine/ Mock-interview control plane
│ ├─ src/cron/handlers.ts Vercel-Cron HTTP endpoints (CRON_SECRET-gated)
│ ├─ src/{lib,services,agents,middleware,types,brands,utils}/ shared closure
│ └─ prisma/schema.prisma (generates client to server/src/generated/prisma)
├─ interview-agent/ LiveKit voice worker (deploy separately)
├─ prisma.config.ts Points prisma at server/prisma/schema.prisma
└─ vercel.json rewrites (/api/v1/* → the function) + crons + function config
.env.example) — leave NEXT_PUBLIC_API_URL empty in production so the browser calls same-origin /api/v1/*. Set CRON_SECRET, DATABASE_URL (pooled), DIRECT_DATABASE_URL, JWT_SECRET, COOKIE_DOMAIN=.roboapply.io, LLM/Stripe/LiveKit/S3 keys.vercel.json already wires the rewrite, the function (maxDuration: 300), and the 7 cron jobs.interview-agent/ on an always-on Node host and give it the LiveKit creds + NEXT_PUBLIC_API_URL → the deployed API.Full deploy runbook + known follow-ups: docs/ENGINEERING_PLAN.md.