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.
翻譯準備中
正在載入完整 README。 以下為已儲存的摘錄。
Sourcing, ranqueamento e gestão de candidaturas para uma busca de vaga conduzida por IA. Encontra vagas em APIs públicas de ATS e agregadores, pontua cada uma contra um perfil estruturado de forma determinística e auditável, e gerencia o funil — do backlog à proposta. Roda localmente e na Vercel: CLI + dashboard Next.js. O runtime usa PostgreSQL explícito; localmente, o caminho suportado é uma instância Docker. O snapshot SQLite legado só entra pelo harness de migração/importação.檢視完整 README ↗
Sourcing, ranqueamento e gestão de candidaturas para uma busca de vaga conduzida por IA.
Encontra vagas em APIs públicas de ATS e agregadores, pontua cada uma contra um perfil estruturado de forma determinística e auditável, e gerencia o funil — do backlog à proposta.
Roda localmente e na Vercel: CLI + dashboard Next.js. O runtime usa PostgreSQL explícito; localmente, o caminho suportado é uma instância Docker. O snapshot SQLite legado só entra pelo harness de migração/importação.
pnpm install
docker compose -f docker-compose.local.yml up -d
export DATABASE_URL=postgresql://supabase_admin:[email protected]:5433/master_jobs_local
export DATABASE_MIGRATION_URL="$DATABASE_URL"
pnpm jho db migrate # cria o schema PostgreSQL
pnpm jho db seed # plano de posicionamento + baseline
pnpm jho fx refresh # cotações do BCE, para comparar salário entre moedas
pnpm jho jobs sync # busca todas as fontes e pontua
pnpm dev # dashboard em localhost:3000
DATABASE_URL é obrigatória para o runtime e DATABASE_MIGRATION_URL para
aplicar migrations. Um .env local pode guardar os dois valores; não versione
credenciais.
O Compose local usa a imagem oficial supabase/postgres com pgmq e
pgvector habilitados. Ele sobe somente o banco; o stack completo do Supabase
continua sendo uma escolha separada. Consulte o guia do PostgreSQL local
para verificar as extensões e resetar o volume.
Dez adapters contra endpoints públicos e sem autenticação, todos verificados contra respostas reais da API — não contra documentação, que estava errada em vários casos.
ATS — Greenhouse · Lever · Ashby · SmartRecruiters · Recruitee Agregadores — Himalayas · Remotive · Arbeitnow · RemoteOK · Adzuna (opcional) Marketplace — Braintrust, o único com elegibilidade por país estruturada
Acervo atual: 6.239 vagas abertas, 1.031 empresas, 13 fontes ativas.
O scorer é determinístico, não um LLM. Decisão de produto, não limitação: roda sobre milhares de vagas em segundos, é reproduzível o bastante para ter teste de regressão, e — o que importa — é possível discordar dele.
$ pnpm jho jobs show 6439
Lead AI & Data Platform Engineer #6439
Stealth Company · North America / Asia / Brazil / Europe / ...
Fit 83.8 / 100 (cluster: ai_lead)
title 24.9 · keywords 26.9 · seniority 12 · geo 15 · comp 5
· Explicitly open to LATAM/Brazil
· Asks for 7+ years — matches seniority
· $70/hour — entre o piso e o alvo
Remuneração é comparada com moeda: faixas independentes por moeda, projeto de preço fechado, e conversão via cotações do Banco Central Europeu quando não há faixa declarada. Bloqueios estruturais — autorização de trabalho nos EUA, presencial, W2-only — limitam a nota em vez de zerá-la.
Hoje: 1.207 vagas acima de 45, 175 acima de 60, 23 acima de 70.
O menu Comparar vaga aceita uma descrição colada ou um arquivo PDF, TXT ou Markdown. O conteúdo vira uma vaga manual de primeira classe — entra no mesmo acervo, passa pelo mesmo scorer do cockpit e pode seguir para o funil — sem criar uma candidatura automaticamente.
Além da nota canônica, a tela compara a linguagem da vaga com o currículo atual
salvo em /candidate: separa termos já cobertos, experiência escrita sob outro
sinônimo e requisitos ainda não evidenciados no documento. O arquivo original
não é armazenado; só o texto extraído e a proveniência da extração.
pnpm jho jobs verify # checa se as vagas do topo ainda existem
Na última verificação: 25% dos links do Jobgether estavam mortos (404) e zero em todas as outras fontes. 314 vagas fechadas.
O dashboard filtra por corte, cluster, fonte, busca textual, e três critérios que importam neste caso: sem bloqueio, empresa identificada (agregadores que ocultam o empregador impedem pesquisa e uso de rede) e recentes (publicadas há menos de 3 dias respondem muito mais).
pnpm jho track 42 applied --channel referral
pnpm jho pipeline
pnpm jho report # markdown pro vault Obsidian
O histórico de candidaturas é a única coisa que o sistema não consegue recriar. Por isso nenhuma ingestão escreve nele, e vagas que somem da fonte são marcadas como fechadas em vez de deletadas.
pnpm jho mail import ~/mail
pnpm jho mail suggestions
Job alerts do LinkedIn viram vagas; e-mails de ATS viram sugestões de mudança de funil, que você aceita ou descarta. Isso fecha a lacuna da ADR 0001 sem tocar a plataforma — ver ADR 0008.
pnpm jho contacts seed # empresas onde você já trabalhou
pnpm jho referrals
Referrals são ~7% dos candidatos e ~40% das contratações. Nenhuma outra alavanca do sistema chega perto.
Este projeto não faz scraping do LinkedIn (ADR 0001).
O caso hiQ terminou com o LinkedIn ganhando por quebra de contrato — US$ 500 mil e injunção permanente. A CFAA saiu do caminho para dado público; o contrato não.
Publicação usaria a API oficial (w_member_social). Comentários e conexões são
assistidos. E job alerts por e-mail são a via legítima, porque o e-mail é
sua correspondência e nada toca a plataforma.
Node 24 com type stripping nativo — sem build step, só sintaxe TypeScript apagável (ADR 0006). TypeScript 7 · Drizzle ORM · PostgreSQL · Zod · Commander · Vitest. Dashboard em Next.js 16 com shadcn/ui e Tailwind v4, em Server Components por padrão; JavaScript de cliente fica restrito aos controles realmente interativos.
PostgreSQL é o banco de runtime em todos os ambientes. O snapshot SQLite que existia antes do corte Turso → Supabase é uma fonte de importação controlada, não um fallback silencioso (guia de deploy).
| Trilha | O que responde |
|---|---|
| GitHub Project 3 | Fila, prioridade, estado e responsáveis das tarefas, vinculadas a issues reais |
| Referência | Como o sistema funciona |
| ADRs | Por que cada decisão foi tomada |
| Produto | Visão, contratos de produto e histórico de discovery |
| Benchmark | Concorrentes, mercado e riscos |
| QA vivo | Personas, jornadas, cenários, charters, bugs e relatórios |
| Skills de desenvolvimento | Catálogo instalado, origem e integração no fluxo |
| MIGRATION.md | Antes de criar arquivo novo em src/ |
Agentes de IA leem AGENTS.md; CLAUDE.md é um symlink para essa fonte única.
Toda tarefa é registrada em uma issue de andreustimm/master-jobs no
Project 3. Antes de começar
ou retomar, consulte a issue e siga o fluxo de tarefas.
Backlogs e arquivos Compozy antigos preservam contexto; seus estados e ordens
locais são snapshots históricos. O relatório de migração
registra os vínculos e as lacunas ainda em reconciliação.
rtk pnpm check # changelogs + tracker de QA + typecheck + Vitest/cobertura + contratos das skills de QA
rtk pnpm test:e2e # browser isolado + axe WCAG 2.2 AA
rtk pnpm qa:browser:install # instala uma vez o Chrome do QA de jornada
rtk pnpm db:generate # após editar src/core/db/schema.ts
rtk pnpm db:studio # inspeção visual do banco
Mudança de runtime exige rtk pnpm check verde e o E2E aplicável conforme
AGENTS.md. Documentação e ferramentas de desenvolvimento seguem a
validação proporcional ao risco.
Mexeu no scorer ou no profile.yaml? Suba o SCORER_VERSION e rode
rtk pnpm jho jobs score --all.