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.
翻訳待ち
Find relevant jobs, check your resume against ATS requirements, and improve every application with Craftiv's AI resume assistant and ATS-friendly templates.
翻訳待ち
生産性TypeScript · CSSGitHub @kaizenicsオンライン所有者未確認
Have you tried it? One tap is enough. No sign-in needed.
📄 AI-powered resume, cover letter, job hunter, and portfolio website builder with built-in templates
翻訳待ち
Loading the full README. The saved excerpt is shown below.
A modern, minimalist resume builder application that helps users create professional, ATS-optimized resumes in minutes.
• Fast Resume Creation - Build a professional resume in under 10 minutes
• ATS-Optimized Templates - All templates are designed to pass through Applicant Tracking Systems
• Professional Templates - Choose from a collection of beautifully designed resume templates
• Modern UI - Clean, minimalist design with smooth animations
• Responsive Design - Fully optimized for mobile, tablet, and desktopRead the full README ↗Craftiv takes a job seeker from "which jobs fit me?" to "I got the offer", without juggling five tools.
| Resume builder | 19 templates, matching cover letters, PDF and Word export that never cost credits, and import from an existing PDF or Word file. |
| ATS checker | Scores a resume against a job ad and shows what a screening system would miss. |
| Job Hunter | Finds roles that match your resume, scores each one and drafts a tailored application. |
| Application tracker | Board, spreadsheet-style table or calendar view. Tags, archive, follow-up reminders, CSV import/export and a weekly goal. |
| Interview prep | Likely questions with answers drawn from your own resume. |
| Share links | Send a resume as a link and see when it was opened. |
| Bring your own AI | Use your own OpenAI, Anthropic or OpenRouter key instead of credits. Keys are encrypted at rest. |
[!NOTE] Craftiv is in beta (
0.x). Features and data shapes may still change between releases.
git clone https://github.com/kaizenics/craftiv.git
cd craftiv
pnpm install
cp .env.example .env.local # then fill in the values below
pnpm dev
Open http://localhost:3000.
.env.example lists every variable with comments. The ones you need to get running:
| Variable | Purpose |
|---|---|
BETTER_AUTH_SECRET, BETTER_AUTH_URL | Session signing and the app's own URL |
TURSO_DATABASE_URL, TURSO_AUTH_TOKEN | Database connection |
OPENROUTER_API_KEY | AI features on credits |
RESEND_API_KEY, AUTH_EMAIL_FROM | Sign-up codes and password resets |
Optional, per feature:
| Variable | Feature |
|---|---|
GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET | Google sign-in. Add <app-url>/api/auth/callback/google as a redirect URI. |
AI_KEY_ENCRYPTION_KEY | "Your own AI" keys. 32+ random characters; changing it makes saved keys unreadable. |
POLAR_* | Credit purchases. Sandbox and production use separate tokens and product IDs. |
CRON_SECRET | Scheduled Job Hunter runs via POST /api/cron/job-hunter. |
TRUSTED_PROXY_HOPS | How many proxies sit in front of the app, for per-IP rate limits. |
Point a Polar webhook at /api/payments/polar/webhook, format Raw, with the order.paid and order.refunded events. POLAR_WEBHOOK_SECRET is shown once when you create it. POLAR_SUCCESS_URL defaults to /dashboard/settings.
Migrations live in db/migrations as plain SQL. Each one says whether to apply it before deploying the code that reads it. Apply new files in order against your database, for example:
turso db shell <database> < db/migrations/0028_application_archive.sql
| Command | What it does |
|---|---|
pnpm dev | Start the dev server |
pnpm build / pnpm start | Production build and server |
pnpm test | Run the Vitest suite |
pnpm lint | ESLint |
pnpm db:studio | Browse the database with Drizzle Studio |
app/ Routes (App Router): landing, auth, dashboard, resume and cover-letter editors, API routes
components/ UI, grouped by area (dashboard, resume, ui = shadcn primitives)
db/ Drizzle schema and SQL migrations
lib/ Domain logic: ATS scoring, credits, tracker stats, CSV, security
trpc/ tRPC routers, one per area
public/ Static assets and template previews
The repo ships a Dockerfile that builds Next.js in standalone mode with Chromium for PDF export. It runs on any container host (production uses Coolify). Apply pending migrations before deploying.
Versions follow Semantic Versioning and are automated by .github/workflows/version.yml. Every push to main bumps the version from the commit messages since the last tag, updates package.json, tags it and publishes a GitHub prerelease:
| Commit | During the 0.x beta | From 1.0.0 |
|---|---|---|
fix:, docs:, chore:, feat: … | patch (0.2.0 → 0.2.1) | feat → minor, others → patch |
feat!: / fix!: or a BREAKING CHANGE: footer | minor (0.2.0 → 0.3.0) | minor until a deliberate 1.0/2.0 |
Commits follow Conventional Commits: feat(scope): …, fix(scope): …, chore: ….
staging.pnpm test and pnpm lint before opening a pull request. The pre-push hook runs a full build.MIT © 2026 Niko