finds.dev← search

// the find

Nutlope/self.so

★ 3,005 · TypeScript · MIT · updated Jul 2026

LinkedIn -> personal site generator

Upload a PDF resume, get a personal site at self.so/username. The LLM parses your resume into structured JSON and renders it as a public page. Built for people who want a live URL without touching HTML.

Llama Guard safety check on uploaded PDFs before passing to the LLM is a thoughtful detail most side projects skip. Using Redis (Upstash) as the primary datastore keeps the ops surface tiny — no RDS to babysit for what's essentially a key-value workload. The structured output extraction via Qwen3 Coder with JSON mode is the right tool for this job: deterministic schema, no prompt-hacking to parse freeform text. Tests exist and run in CI, which is more than most 3k-star weekend projects bother with.

Redis as the only persistence layer means the data model is essentially flat — adding relations (multiple resumes, revision history, per-section themes) will require a real database migration that Redis won't help with. The editing experience is still half-baked by the maintainer's own admission: links and sections aren't fully editable yet, so what you get from the PDF parse is largely what you're stuck with. Five external SaaS dependencies (Together, Clerk, S3, Upstash, Helicone) means five things that can break or charge you before you've served a single user — the self-hosting story is genuinely painful. No export: once your site is there, there's no way to take your data and leave.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →