<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Thalisson Damião</title>
    <description>The latest articles on DEV Community by Thalisson Damião (@thalisson_damio_8ed19dd6).</description>
    <link>https://dev.to/thalisson_damio_8ed19dd6</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3950869%2Fb4713ab8-33c8-4e3e-a402-458523029d8b.png</url>
      <title>DEV Community: Thalisson Damião</title>
      <link>https://dev.to/thalisson_damio_8ed19dd6</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/thalisson_damio_8ed19dd6"/>
    <language>en</language>
    <item>
      <title>Construí um motor ATS determinístico porque estava cansado de adivinhar por que meu currículo era rejeitado</title>
      <dc:creator>Thalisson Damião</dc:creator>
      <pubDate>Mon, 25 May 2026 23:06:56 +0000</pubDate>
      <link>https://dev.to/thalisson_damio_8ed19dd6/construi-um-motor-ats-deterministico-porque-estava-cansado-de-adivinhar-por-que-meu-curriculo-era-2e1h</link>
      <guid>https://dev.to/thalisson_damio_8ed19dd6/construi-um-motor-ats-deterministico-porque-estava-cansado-de-adivinhar-por-que-meu-curriculo-era-2e1h</guid>
      <description>&lt;p&gt;passei os últimos meses aplicando pra empresas de tech enquanto &lt;br&gt;
trabalhava como dev numa empresa de construção civil. 50+ &lt;br&gt;
currículos. 3 rejeições automáticas. nada mais.&lt;/p&gt;

&lt;p&gt;pedi pra um dev sênior revisar. ele disse que estava bom.&lt;/p&gt;

&lt;p&gt;fui investigar.&lt;/p&gt;

&lt;p&gt;a maioria das empresas médias e grandes roda os currículos num &lt;br&gt;
ATS antes de qualquer humano ver. o sistema compara o texto do &lt;br&gt;
seu currículo com a descrição da vaga e gera um score. abaixo &lt;br&gt;
de um threshold você é arquivado automaticamente.&lt;/p&gt;

&lt;p&gt;meu currículo tinha "PostgreSQL" e "MySQL". a vaga pedia &lt;br&gt;
"bancos de dados relacionais". pra qualquer dev é a mesma coisa. &lt;br&gt;
pro sistema são strings diferentes.&lt;/p&gt;




&lt;p&gt;o motor de scoring&lt;/p&gt;

&lt;p&gt;não queria uma IA "achando" que estava bom ou ruim. queria &lt;br&gt;
métrica real.&lt;/p&gt;

&lt;p&gt;embeddings com voyage-3-lite, cosine similarity no postgres &lt;br&gt;
via pgvector com índice HNSW, mais keyword matching explícito &lt;br&gt;
porque boa parte dos ATS brasileiros ainda usa sistemas simples que não entendem equivalências semânticas.&lt;/p&gt;

&lt;p&gt;score com 5 componentes auditáveis: keywords (40pts), título &lt;br&gt;
e senioridade (20pts), estrutura (20pts), experiência (15pts), &lt;br&gt;
requisitos obrigatórios (5pts).&lt;/p&gt;




&lt;p&gt;a otimização&lt;/p&gt;

&lt;p&gt;o problema de usar LLM pra reescrever é alucinação. você pede &lt;br&gt;
pra injetar "kubernetes" e ele acha um jeito mesmo que você nunca tenha tocado nisso.&lt;/p&gt;

&lt;p&gt;solução: separar classificação de reescrita.&lt;/p&gt;

&lt;p&gt;haiku com temperatura 0.3 analisa os gaps e identifica quais &lt;br&gt;
keywords têm evidência real no currículo. pra keywords sem evidência ele gera perguntas pro usuário antes de otimizar.&lt;/p&gt;

&lt;p&gt;sonnet recebe o currículo filtrado mais as respostas confirmadas &lt;br&gt;
e faz a reescrita. o validador depois confere se cada keyword &lt;br&gt;
declarada no output realmente aparece no texto. score não &lt;br&gt;
melhorou, otimização rejeitada.&lt;/p&gt;

&lt;p&gt;custo por otimização separando os dois modelos: ~$0.059.&lt;/p&gt;




&lt;p&gt;stack: node.js 22 + fastify 5, next.js 15, supabase + pgvector, &lt;br&gt;
redis + bullmq, voyage AI, anthropic API, SSE pra streaming &lt;br&gt;
em tempo real, VPS hostinger 4GB.&lt;/p&gt;

&lt;p&gt;o produto se chama kore, está em beta com plano free. se quiser discutir a arquitetura estou nos &lt;br&gt;
comentários.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>braziliandevs</category>
      <category>webdev</category>
      <category>saas</category>
    </item>
  </channel>
</rss>
