Wenlan
Wenlan is a source-backed AI knowledge base and LLM wiki for AI work: organize documents and decisions into pages you can find, inspect, and review.
Never rebuild your resume again. Build your career profile once, update it forever, and share it as a link.
ProductivityTypeScript · HTMLGitHub @Elev8Ai-15OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Interactive, organic resume webapp that expands true work experience
Translation pending
Loading the full README.
Read the full README ↗Never rebuild your resume again. Careerory turns a resume into a living career profile: build it once, update it forever, share it as a link in any job application.
Canonical product decisions live in the PDR (dev/my-assistant/notes/webume-build/00-PDR-canonical.md on Brad's machine). Read §5 locked rules before changing product behavior. Headlines: NOT social media (no feed/posts/likes), public profiles have no signup wall, users own and can delete their data, employer-side AI is decision-support only.
Next.js 16 (App Router, Turbopack) · React 19 · TypeScript · Tailwind v4 + shadcn/ui · Prisma 7 + Neon Postgres · Clerk (auth) · Vercel Blob (uploads) · Stripe (subscriptions) · Claude Opus 5 via @ai-sdk/anthropic (resume parsing, tailoring)
Experience, ExperienceMetric, Document, MediaAsset.experienceId), not JSON — so media/metrics/testimonials attach per-job and future employer search can query them. Header data (basics, skills, education, achievements, certifications) stays in User.profileData JSON. src/lib/profile/profile.service.ts assembles the combined ProfileData shape all renderers consume.vcJwt signature slot) per PDR amendment A7. UI ships at Gate C; the shape is locked now.ActionState pattern: Clerk auth() check first, zod validation, revalidatePath after writes.npm install
cp .env.example .env.local # fill in real values
npx prisma generate
npx prisma migrate deploy # or: npx prisma db push (dev)
npm run dev
If the database predates prisma/migrations/0001_init (it was managed with db push), baseline it once instead of running deploy blindly:
npx prisma migrate resolve --applied 0001_init
npx tsc --noEmit
npm test # vitest — pure-function checks (profile assembly)
npm run build
/api/webhooks/clerk (svix-signed, CLERK_WEBHOOK_SECRET)/api/stripe/webhook (STRIPE_WEBHOOK_SECRET)