DeepSeek Harness Remote
DeepSeek Harness Remote: DeepSeek Harness 실행 PC와 모바일·PC를 안전하게 연결해 어디서나 작업 이어받기
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗AI-Powered Resume Optimization & Career Intelligence Platform
Upload your resume. Paste the job description. Get back an ATS-optimized resume, a recruiter-grade shortlist assessment, a skills gap analysis with a closure roadmap, and a personalized cover letter — in seconds.
Most people lose jobs before a human ever reads their resume. ATS systems filter out 75%+ of applicants automatically. Resu-Dog fixes that — and goes further. We don't sugarcoat. We give candidates a brutally honest, actionable picture of where they stand: what's working, what's missing, and exactly how to fix it.
The ethical line we hold: We help users present what they have more powerfully. We never fabricate skills, credentials, or experience. Trust is the product.
Responsible for, Helped, Assisted) explicitly banned in prompts"12 matched · 3 transferable · 2 gaps"/build)refineWithAssessment() applies quick wins + critical gaps back into the resumechanges_made list shows both optimize + refinement improvementsGapAnalysis.tsx card below ShortlistAssessmentFlow:
localStorage → user redirected to /p/preview/p/a1b2c3d4e5Page layout (Udemy-inspired, two-column):
Hero: Avatar (initials) · Name · Title · Location · Open to Work badge · ATS score
Main (scrolls): What I bring · Experience timeline · Education · Skills pill grid
Sidebar (sticky): Stats · Hire Me CTA · Share/Copy Link · Download CV · LinkedIn · "Made with resu-dog"
Animations (Framer Motion):
Export As — same optimized content, different formats:
| Format | What changes |
|---|---|
| ATS PDF (current) | Clean plain text, ATS-parsed — 10pt body, 18pt name, neutral grey dividers |
| ATS DOCX | Calibri font, 0.75in margins, industry-standard formatting |
| LinkedIn Profile | Splits into Headline, narrative About, Experience, Skills, recommendation request templates |
| WES / Immigration CV | Credential equivalency framing, Canadian format, Month Year date ranges, GPA/honours |
| UK / EU CV | 2-page norm, UK date format, hobbies only if present (never fabricated), "references available" |
Each format = one extra GPT call with different formatting rules. Architecture: POST /api/v1/export with format field.
localStorage and sticks across visitsnew Date().getHours() which respects the browser's local timezoneTimeBasedDefault child component inside ThemeProvider checks localStorage.theme on mount — only applies time-based default if no manual preference existsisPaid={true} hardcode, real subscription tier| Mode | Target Market |
|---|---|
| North American Resume (ATS) | Core product — Phase 1 ✅ |
| LinkedIn Profile Optimizer | 1B+ users, massive TAM |
| WES / Credential Evaluation | Immigrants, international students |
| UK / AU / CA CV Format | International job seekers |
| ATS-specific (Workday, Greenhouse, Lever) | Power users, recruiters |
Each mode is a separate feature/upsell tier. The architecture already supports a profile_mode field in the data model.
Model: Product-Led Growth (freemium → subscription)
The user experiences the value before being asked to pay. They see their low score and the improved score — then hit the paywall exactly when the pain of not getting the result is highest.
| Feature | Access |
|---|---|
| Upload resume + paste JD | ✅ Always free |
| Compatibility score before | ✅ Visible |
| Score after optimization | ⚡ Teased / blurred |
| Optimized resume download | ❌ Locked |
| Cover letter | ❌ Locked |
| Keyword breakdown detail | ⚡ Partial |
| Optimizations per month | 1–2 |
| Feature | Access |
|---|---|
| Full optimized resume (PDF + DOCX) | ✅ |
| Full cover letter | ✅ |
| Complete keyword breakdown | ✅ |
| Resume history & versions | ✅ |
| Unlimited optimizations | ✅ |
| Multiple job applications tracked | ✅ |
| Public profile page (Phase 2) | ✅ |
| Profile view analytics | ✅ |
| Platform modes (LinkedIn, WES, etc.) | ✅ |
User uploads resume → sees score: 42/100
↓
System optimizes → shows score: 87/100
↓
"Download your optimized resume" → [Sign up / Upgrade]
They have already seen the improvement. The pain of not getting it drives conversion.
Subscription note: Job hunting is not a daily activity, but when someone is actively hunting they apply to 10–30 jobs. A monthly subscription during that window is natural. Subscription beats one-time payment for LTV.
| Layer | Technology | Notes |
|---|---|---|
| Frontend | Next.js 16 (App Router) | TypeScript, Tailwind CSS v4 |
| Auth | Supabase (planned) | Email + Google OAuth — Phase 4 |
| AI / LLM | OpenAI GPT-4o | JSON mode, called via Next.js Route Handlers |
| File Parsing | mammoth + pdf-parse | PDF, DOCX, TXT — server-side in Route Handlers |
| PDF Output | jsPDF | Client-side dynamic import |
| DOCX Output | docx + file-saver | Client-side generation |
| Profile Storage | Upstash Redis | Shareable profile links, 90-day TTL |
| Scroll Animations | Framer Motion | Profile page + landing page |
| Database | Supabase (planned) | Phase 4+ |
| Payments | Stripe (planned) | Phase 4+ |
| Hosting | Vercel | Auto-deploy from GitHub, dev → main |
User Input
├── Resume (PDF / DOCX / TXT)
└── Job Description (paste)
│
▼
Next.js Route Handlers
├── mammoth → DOCX text extraction
├── pdf-parse → PDF text extraction
└── plain text → TXT passthrough
│
▼
AI Processing Layer (OpenAI GPT-4o) [parallel where possible]
├── Score BEFORE optimization
├── Rewrite resume (action verbs + JD keywords, no fabrication)
├── Score AFTER optimization
├── Generate cover letter
├── Shortlist assessment
└── Assessment-driven refinement (quick wins + gaps applied back)
│
▼
Output Layer
├── Score card (before / after)
├── Optimized resume (download PDF + DOCX) — paid
├── Cover letter (download / copy) — paid
├── Shortlist assessment + gap analysis
├── Export As (LinkedIn / WES / UK)
└── Shareable profile page (/p/[slug])
│
▼
Storage Layer
├── localStorage → profile preview + resume text (owner)
└── Upstash Redis → published shareable profiles (90-day TTL)
asyncio.gather (speed)resu-dog/
├── frontend/ Next.js 16 app
│ └── app/ App Router
├── backend/
│ ├── main.py FastAPI entry point
│ ├── requirements.txt
│ └── app/
│ ├── api/routes/
│ │ ├── optimize.py Full pipeline (parse → score → rewrite → cover letter)
│ │ ├── score.py Score only
│ │ ├── cover_letter.py Cover letter only
│ │ └── profile.py Phase 2 — public profile page
│ ├── services/
│ │ ├── ai.py All OpenAI calls
│ │ └── parser.py File text extraction
│ ├── models/schemas.py Pydantic models (profile_mode field included)
│ └── core/config.py Settings / env config
└── .github/workflows/
├── ci.yml Lint + type check on all pushes
├── deploy-preview.yml dev branch → Vercel preview URL
└── deploy-production.yml main branch → Vercel production
| Branch | Purpose | Deploys To |
|---|---|---|
dev | Active development | Vercel Preview URL |
main | Stable production releases | Vercel Production |
Workflow: all work on dev → PR to main → auto-deploy to production.
cd frontend
npm install
cp .env.local.example .env.local # fill in NEXT_PUBLIC_API_URL
npm run dev # http://localhost:3000
cd backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # add OPENAI_API_KEY
uvicorn main:app --reload # http://localhost:8000/docs
frontend/ as root directoryVERCEL_TOKEN to GitHub → Settings → Secrets → ActionsOPENAI_API_KEY to backend environment variablesNEXT_PUBLIC_API_URL (backend URL) to Vercel environment variables