cd /news/artificial-intelligence/find-the-pokemon-you-are-w-pokeapi-y… · home topics artificial-intelligence article
[ARTICLE · art-56012] src=dev.to ↗ pub= topic=artificial-intelligence verified=true sentiment=↑ positive

🤗 Find the Pokemon you are w. PokéAPI, your resume & embeddings

A developer built an open-source tool that matches a person's resume to a Pokémon character using embeddings and a reranker. The project, hosted on Hugging Face Spaces, uses the BAAI/bge-m3 model to embed resume sections and Pokémon data from the PokeAPI, then applies cosine similarity and a cross-encoder for precise matching. The tool runs entirely on a laptop with no GPU, relying on pure open-source software.

read2 min views1 publishedJul 12, 2026

*This is a submission for *Weekend Challenge: Passion Edition

#

❔ What I Built

These two last weeks, my team mates started to to use Claude Code together with they yearly review :

to discover which Pokemon they are... and why.

I found that really really fun... and started to wonder

if I could automate that with only onPrem resources, with embeddings, ML... only with a simple laptop without GPU, a simple core i5 and 8 Gib. And of course, only with pure Open Source software ❣️

What you'll discover below is how I started to prototype it and make it happen.

#

🍿 Demo

#

🤗 Code

The whole code source is available as a HF Space, see rastadidi/resume-to-pokemon

for more... or to play wth it 🤓

#

🧰 How I Built It

To achieve this first prototype I :

Used the data I already prepared with my registry.jsonresume.org/adriens

Bundled dataset (built once). build_dataset.py

fetches every species from the PokeAPI — name, types, base stats, sprite, genus and English Pokedex flavor text. For each Pokemon it also derives a professional-archetype profile from its types and stat spread (e.g. a Steel type → "a disciplined, precise, robust engineer of structured systems"), so career resumes and monster biology meet in the same trait vocabulary. Description + profile are embedded with BAAI/bge-m3

and committed as data/pokemon.json

  • data/embeddings.npy

— so the app makes no PokeAPI calls at runtime. #

Resume → phrases. Sections that carry semantic signal — basics.summary

, skills

, work

/volunteer

, projects

, interests

— are each turned into a short phrase and embedded with the same model. (Administrative sections like education, certificates and languages are skipped.) #

Retrieve → rerank. Cosine similarity over the embeddings retrieves a shortlist of the closest Pokemon; a cross-encoder

(`BAAI/bge-reranker-v2-m3`

)

then re-scores the (resume, Pokemon) pairs jointly for much sharper precision than cosine alone. The tool explains why by quoting the matched resume phrase and the Pokemon's own profile + Pokedex text. #

Ranking + relative fit. Pokemon are ranked by a blend of the rerank match and their base stats (adjustable). Because a broad resume matches many Pokemon similarly, raw scores cluster tightly and are unreadable — so the reported score is a relative fit: rerank scores are standardized across the shortlist and spread through a sigmoid, so the top clearly stands out (~100%) and the tail drops off. It's a fit relative to the candidate pool, not an absolute probability. The two best-fitting types are derived from the same shortlist, so they always agree with the ranked Pokemon. #

Calibrated confidence. Instead of a raw similarity number, a read-out reports how far the top match stands out from the field (a z-score over the shortlist), flagging decisive vs. diffuse, multi-type profiles. Type scores and the ranked Pokemon are derived from the same reranked shortlist, so the "best-fit typing" always agrees with the cards.

── more in #artificial-intelligence 4 stories · sorted by recency
── more on @pokeapi 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/find-the-pokemon-you…] indexed:0 read:2min 2026-07-12 ·