Generate a personal website automatically from an uploaded resume or LinkedIn PDF export.
Self host a personal site builder instead of relying on a paid, closed source service.
Study a working example of PDF upload, AI extraction, and dynamic page generation with Next.js.
| nutlope/self.so | pmndrs/use-cannon | vercel-labs/wterm | |
|---|---|---|---|
| Stars | 2,980 | 2,948 | 2,937 |
| Language | TypeScript | TypeScript | TypeScript |
| Setup difficulty | moderate | moderate | moderate |
| Complexity | 3/5 | 3/5 | 3/5 |
| Audience | vibe coder | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires creating accounts and API keys for Together AI, Upstash, and AWS before it will run.
Self is an open source tool that turns a LinkedIn profile into a personal website. Instead of building a site by hand, a user uploads a PDF, typically a resume or exported LinkedIn profile, and the app extracts the relevant information and publishes it as a personal site the user can view and share. The flow works like this: a visitor creates an account using Clerk for authentication, then uploads a PDF, which is stored in Amazon S3 and first passed through a safety check using Llama Guard. The PDF is then sent as context to a language model, Qwen3 Coder Next, which extracts structured information from it using JSON mode. That extracted information is placed on a dynamic route so the user can view their generated site and publish it. The project is built with Together.ai for the underlying language model calls, using Vercel's AI SDK as the framework layer, with a Next.js app router frontend. Upstash Redis serves as the database, Helicone provides observability into the AI calls, and the whole thing is deployed on Vercel. To run it locally, a developer needs to create accounts with Together AI, Upstash, and AWS, set the resulting API keys in a local environment file, then install dependencies and start the development server with pnpm. The README also lists a set of open tasks the maintainer has not yet completed, including better error logging, a preview page for users who already have a site, the ability to edit links and sections after generation, selectable themes, and a way to delete a previously uploaded resume when a new one is uploaded. This suggests the project is still actively evolving rather than a finished, polished product. Tests can be run locally with pnpm test commands in a few different modes, including a watch mode and a UI mode.
An open source app that turns an uploaded resume or LinkedIn PDF into a personal website using AI extraction.
Mainly TypeScript. The stack also includes TypeScript, Next.js, Clerk.
The README does not state a license.
Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.
Mainly vibe coder.
This repo across BitVibe Labs
Verify against the repo before relying on details.