TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
Joben e un editor de CV cu AI, gratuit. Creezi CV-uri și scrisori de intenție optimizate ATS în minute și treci de filtrele automate ale recrutorilor.
Translation pending
ProductivityTypeScript · PythonGitHub @teodor-vladconstantinOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Joben Resume is an AI-assisted resume builder SaaS built with Next.js App Router, TypeScript, Supabase, Clerk, Stripe, Resend, Upstash, and Anthropic.
Core Features
• Resume builder with ATS-focused scoring
• AI review and bullet improvement workflows
• Cover letter generation and PDF export
• Subscription upgrades (Stripe)
• Automated welcome and follow-up emails
• Operational observability via health endpoint, webhook idempotency, and email/event tracking
2) Configure environment variables
Create .env.local and define all required values:Read the full README ↗Joben Resume is an AI-assisted resume builder SaaS built with Next.js App Router, TypeScript, Supabase, Clerk, Stripe, Resend, Upstash, and Anthropic.
npm install
Create .env.local and define all required values:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYCLERK_SECRET_KEYCLERK_WEBHOOK_SECRETNEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEYUPSTASH_REDIS_REST_URLUPSTASH_REDIS_REST_TOKENANTHROPIC_API_KEYSTRIPE_SECRET_KEYSTRIPE_WEBHOOK_SECRETSTRIPE_PRO_PRICE_IDNEXT_PUBLIC_APP_URLRESEND_API_KEYRESEND_FROM_EMAILCRON_SECRETLATEX_SERVICE_URL (optional; defaults to http://localhost:3005/api/compile)npx supabase start
npx supabase db push
Notes:
supabase/migrations/ only.npm run dev
Optional local PDF service (if needed outside Docker compose):
cd latex-service
npm install
npm run dev
npx tsc --noEmit
npm run lint
npm run test
npm run build
e2e/public/** covers unauthenticated flows (marketing pages, legal pages,
sign-up's legal gate, protected-route redirects, wrong-password sign-in) and
needs no extra setup beyond local Supabase running.
e2e/authenticated/** (dashboard, resume CRUD, Stripe checkout) needs a
real signed-in session, which requires test-mode Clerk + Stripe
credentials — see .env.test.local.example. Copy it to .env.test.local
(gitignored) and fill in:
pk_test_/sk_test_ keys (a separate
Clerk app from whatever .env.local points at is safest, but a dev
instance is inherently test-safe)sk_test_ secret key and test price_... id —
never reuse a live Stripe key here, playwright.config.ts refuses to
start if it detects _live_ in any of these three keysE2E_TEST_USER_EMAIL / E2E_TEST_USER_PASSWORD for a throwaway account
e2e/global-setup.ts creates (or reuses) via the Clerk Backend API and
seeds directly into the local users table (no webhook forwarder needed
locally); e2e/global-teardown.ts deletes it again after the run.npm run test:e2e # headless run
npm run test:e2e:ui # interactive UI mode
The Stripe checkout spec only asserts a real Checkout Session URL comes
back — it never completes a purchase. The webhook-driven plan-upgrade
lifecycle is covered separately by tests/api/webhooks-stripe.test.ts.
/api/health200 + status=ok: integrations and DB probe are healthy503 + status=degraded: missing critical integration config or failed DB probe/api/cron/followup-7dAuthorization: Bearer <CRON_SECRET>x-cron-secret: <CRON_SECRET>dryRun=true|falselimit=1..500retries=0..3Examples:
curl -X POST "https://your-domain.com/api/cron/followup-7d?dryRun=true&limit=25" -H "Authorization: Bearer <CRON_SECRET>"
curl -X POST "https://your-domain.com/api/cron/followup-7d?limit=100&retries=1" -H "Authorization: Bearer <CRON_SECRET>"
/api/billing/checkout/api/billing/portal/api/webhooks/stripeSTRIPE_SECRET_KEY (sk_test_... for dev, sk_live_... for prod), STRIPE_PRO_PRICE_ID, STRIPE_WEBHOOK_SECRET.env.prod.example for the full var list and RUNBOOK.md's "Local Stripe Testing" section for stripe listen/stripe trigger usagepublic.webhook_events: idempotency claims for Clerk/Stripe webhook eventspublic.email_events: welcome/followup send outcomes and dedup keys (source_event_id)public.product_events: product funnel instrumentation (resume_created -> ... -> checkout_started)STRIPE_SECRET_KEY and STRIPE_PRO_PRICE_ID are set.NEXT_PUBLIC_APP_URL points to current environment URL.STRIPE_WEBHOOK_SECRET matches webhook endpoint secret.CLERK_WEBHOOK_SECRET is configured.webhook_events.pk_live/sk_live on localhost.pk_test_..., sk_test_...) in .env.localemail_events.status, error, and source_event_id.showUpgrade response.npx supabase db push).npx supabase start).For deployment, incident response, and rollback procedures, see RUNBOOK.md.