← Projetos

Jobscope

Rastreador de candidaturas que transforma um link de vaga em dados acionáveis: um pipeline assíncrono na AWS lê a página, extrai as skills exigidas e cruza com o seu currículo para mostrar o gap entre o que o mercado pede e o que você tem.

2026
login de teste: user1 / user1GitHub →
AWS CDKTypeScriptNode.jsAWS LambdaAPI GatewayDynamoDBAmazon S3CloudFrontAmazon SQSGitHub ActionsOIDCReactViteGoogle Gemini
Jobscope - dashboard com perfil e skills mais pedidas pelo mercado

O Contexto e o Desafio

A busca por emprego é cega: você aplica para dezenas de vagas sem saber quais skills se repetem no mercado que está mirando, e adaptar o currículo para cada vaga à mão é caro demais para ser viável. O Jobscope resolve isso invertendo o fluxo — você cola a URL da vaga e um pipeline assíncrono lê a página, identifica empresa e cargo e extrai as skills exigidas. Ao enviar seu currículo, o dashboard cruza o que o mercado pede com o que você tem.

O desafio técnico foi rodar tudo isso 100% serverless, com a infraestrutura inteira versionada como código e custo mensal zero, dentro do free tier da AWS.

Destaques Técnicos e Engenharia

O diferencial do projeto não está no CRUD, mas na engenharia ao redor: extração via LLM sem scraper, processamento fora do caminho da requisição e uma infraestrutura inteira definida em código, com deploy automático sem chaves de acesso.

Intake por URL

Você cola o link e o modelo (Google Gemini com url_context) busca e lê a própria página da vaga — não há scraper para manter nem formulário para preencher. O currículo em PDF é lido nativamente pelo mesmo pipeline e vira um perfil estruturado: nome, cargo, localização e skills.

Pipeline Assíncrono

Tanto a vaga quanto o currículo são processados fora do caminho da requisição via SQS + Lambda, com DLQ e partial batch failures para retries seguros. A UI responde imediatamente e os resultados vão preenchendo conforme chegam. O upload do currículo vai por presigned PUT direto para o S3, sem passar pelo API Gateway.

Dashboard de Skill Gap

As skills pedidas pelas vagas são cruzadas com o seu perfil: o que você tem, o que falta ranqueado pela frequência com que o mercado pede, um score de aderência por vaga e as skills que você domina e ninguém pede.

cv-maker

Gera currículo e carta de apresentação escritos para uma vaga específica, selecionando conteúdo de um perfil-mestre — nada inventado, para que toda afirmação sobreviva à entrevista. Ambos respeitam regras de ATS e o limite de uma página, com preview A4 lado a lado mostrando a ocupação real da página medida pelo navegador e um relatório de cobertura do que entrou, do que faltou e do que foi cortado.

Infraestrutura 100% Código

Toda a stack é AWS CDK em TypeScript: CloudFront + S3 privado (OAC), API Gateway HTTP API, Lambda em Node 22 e DynamoDB single-table on-demand. Um comando sobe tudo. Custo mensal: zero, dentro do free tier da AWS e do Gemini.

CI/CD sem Chaves de Acesso

O deploy é automático via GitHub Actions assumindo uma role IAM por OIDC — nenhuma credencial guardada no repositório. Isso rendeu um bug de produção real: o subject claim do OIDC do GitHub embute IDs numéricos, e a trust policy só passou a casar depois de ser escopada para a forma com IDs, diagnosticada via CloudTrail.

Próximos Passos

O aplicativo hoje é single-user. As próximas etapas abrem a plataforma para mais gente sem mudar a arquitetura.

Autenticação e Multiusuário

Integração com Amazon Cognito para login e suporte a múltiplos usuários, cada um com seu perfil e suas candidaturas.

LLM Intercambiável

O módulo de extração é agnóstico de provedor: trocar o Google Gemini por Amazon Bedrock não exige mudanças no resto da stack.