A fit score that explains itself
Every percentage breaks down by skill: Machine Learning at 40% because, even though you don't have it, you know generative AI, which is close.
Internships for Guadalajara students: how well you fit each opening, skill by skill, and what you still need to learn.
ROUTE · L5 City · 2 stations
Jalisk gathers tech internship openings in the Guadalajara Metropolitan Area, works out how well each student fits each one, skill by skill, and builds them a study path to close the gap.
PostgreSQL computes the score, not the AI. Each requirement gets a membership degree between 0 and 1 (partial level, sibling technology, semantic equivalent via pgvector), and the final recommendation comes from Mamdani fuzzy inference. That makes it reproducible and explainable: "you're at 67% because you're missing Intermediate PostgreSQL". Claude only turns free text into data and writes the prose.
In PL/pgSQL, that engine took 26.3 s over 20,000 rows. Written in Rust and loaded as a PostgreSQL extension with pgrx, it takes 86 ms, with identical results. The app runs on Rust with Axum and SQLx, uses RLS so nobody can read anyone else's data, and deploys itself to jalisk.lat, rolling back automatically if something fails.
Finding an internship in Guadalajara right now is quite the adventure. I've been through it: since the start of the year I wanted to get into Intel, and I even made myself a roadmap of what I knew and what I was missing. If it worked for me, why not for everyone else?
The project was for Databases, and the idea was mine. I focused on the metro area because that's where most of the tech companies are, and because then the database doesn't have to carry thousands of openings from all over the world. Sometimes limiting scope isn't a lack of ambition: it's optimization.
It was called TechHub, but that domain cost 30 dollars and jalisk.lat cost 2. We had no choice. I build the project; XomiDessu, my teammate, presents it.
Agents built it, with a single mission from me: this has to run in Rust and it has to be blazing fast. That's how the fuzzy engine ended up living inside PostgreSQL, 300 times faster than in SQL.
The professor has a strange system for homework. He's given up on AI, so you ask two AIs for the assignment with the same prompt, paste their answers and add your own conclusions at the end. The assignments are the foundation of the project and can't be removed, but nobody has read them, not even the professor; one reached 100 pages. They live in the repo, in a folder called ai-slop-nobody-reads-but-keeps-the-project-alive.
We have the foundations and the tests pass, but we don't know if it actually works. We need users, and permission from companies like Intel to use their job posting systems. The plan is for CUCEI students to use it, though that's still up in the air.
Every percentage breaks down by skill: Machine Learning at 40% because, even though you don't have it, you know generative AI, which is close.
Steps come out in prerequisite order. Mark one complete and a trigger raises your level and your fit.
Fuzzy inference as a Rust extension: 307 times faster than PL/pgSQL, with the same results row by row.
Even if the app had a bug, the database won't return another student's rows. Public analytics use a read-only role.