DeepSeek Harness Remote
DeepSeek Harness Remote 可将手机或另一台电脑与你运行 DeepSeek Harness 的电脑安全连接,随时随地继续你的工作,方便随时查看进度并继续工作。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 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