Overview
Visão geral
People can start with a guided questionnaire or upload an existing CV. AI helps organize and condense what they provide without adding jobs or skills that were never there. Everything stays editable until the PDF is ready to download.
Dá para começar respondendo a um questionário ou enviando um currículo que já existe. A IA ajuda a organizar e resumir o conteúdo sem acrescentar empregos ou habilidades que a pessoa não informou. Antes de baixar o PDF, dá para revisar e editar tudo.
Architecture
Arquitetura
The interface is built with Next.js, while FastAPI handles accounts, CVs, and payments. PostgreSQL stores the application data, Redis coordinates background work, and a separate worker generates the PDFs. The services run with Docker Compose behind Nginx on a VPS I manage.
A interface é feita em Next.js, enquanto o FastAPI cuida de contas, currículos e pagamentos. O PostgreSQL armazena os dados, o Redis coordena as tarefas em segundo plano e um worker separado gera os PDFs. Os serviços rodam com Docker Compose, atrás de Nginx, em um VPS que eu gerencio.
- 01 / appWeb interface
Next.js questionnaire and review editor
- 02 / appApplication API
FastAPI handles accounts, CVs, and payments
- 03 / dataData
PostgreSQL stores application data; Redis coordinates tasks
- 04 / workerPDF worker
Playwright renders PDFs in a separate worker
- 05 / storageObject storage
Finished files are stored in Cloudflare R2
- 06 / edgeServer
Nginx routes traffic on a VPS I manage
- 01 / appInterface web
Questionário e editor de revisão em Next.js
- 02 / appAPI da aplicação
FastAPI cuida de contas, currículos e pagamentos
- 03 / dataDados
PostgreSQL armazena os dados; Redis coordena tarefas
- 04 / workerWorker de PDF
Playwright gera os PDFs em um worker separado
- 05 / storageArmazenamento de objetos
Os arquivos prontos ficam no Cloudflare R2
- 06 / edgeServidor
Nginx roteia o tráfego em um VPS que eu gerencio
Operations
Operação
PDF generation sits outside the web request, so a slower render does not hold up the rest of the application. Finished files go to Cloudflare R2, and database changes are applied through explicit migrations. I can troubleshoot or recover one service without rebuilding the whole deployment.
A geração do PDF fica fora da requisição do site, então uma renderização mais demorada não prende o restante da aplicação. Os arquivos prontos vão para o Cloudflare R2, e as mudanças no banco entram por migrações explícitas. Consigo investigar ou recuperar um serviço sem precisar refazer o deploy inteiro.
Notes
Notas
The AI part is only a small piece of the product. Most of the work is making it clear what changed, letting people correct anything, and making sure the final CV still feels like theirs. Since I also run the service, I tend to feel the infrastructure cost of product decisions pretty quickly.
A parte de IA é só um pedaço do produto. A maior parte do trabalho está em mostrar o que mudou, deixar a pessoa corrigir qualquer coisa e garantir que o currículo final continue sendo dela. Como também sou eu quem mantém o serviço no ar, acabo sentindo bem rápido o custo de infraestrutura de cada decisão de produto.
