Watch it do the job, then decide.
This is an AI résumé tool, running. Below is one real CV going through it end to end — parsed, scored against a vacancy, exported. Nothing here is a screenshot.
Free, on your own OpenAI or Gemini key. No paid tier, no card, no trial timer.
Drop a CV here
A file goes in
PDF or DOCX, however it was formatted. This one is the owner's own CV.
It comes back as structure
Not text with headings — named fields the rest of the product can score, translate and re-typeset. Read from the database, not typed into this page.
What was in the file
Ihor Kostyniuk
Senior AI Engineer | LLM Agents & Orchestration, MCP, RAG, Voice AI
Odesa, Ukraine
Generative AI Engineer · YT-Wizards
Feb 2026 — present
Scaled AI video production from 3 to 12 client channels by consolidating the work into 6 reusable pipeline skeletons.
What came back
It is measured against a vacancy
Paste a job description and the CV is scored against it, with the gaps named rather than implied. Advisory: the wording stays yours to accept or reject.
Example output — no vacancy was scored to build this page
Job description
Senior AI Engineer. LLM orchestration in production, retrieval-augmented generation, Python, Docker, Kubernetes. Experience owning a service end to end.
Found in the CV
Missing
It leaves as something you can send
ATS-readable PDF or DOCX, or a live link that updates whenever the CV changes and needs no login from whoever opens it.
Public link
Stays current as the CV is edited
The page a recruiter actually opens
Everything above is drawn on this page, so it can be translated and stay sharp on any screen. This one is a photograph: the real public link from step four, opened in a browser.


The rest of it
- Job search across 17 boards
- DOU, Djinni, LinkedIn, Indeed and thirteen more, searched by title or by your CV, filtered by remote, stack and English level.
- Several CVs, one card
- Variants tuned to different roles, with language versions nested inside one card. Translate and re-sync are separate actions, so a fix never overwrites a translation by surprise.
- The writing around an application
- Cover letter, follow-up, salary conversation, interview preparation, LinkedIn rewrite, skills-gap analysis.
- Three languages
- Interface and generated documents in English, Ukrainian and Russian.
Under the hood
For the visitors who came to judge the engineering rather than the résumé.
Everything above ran on one hardened VPS behind Caddy — Next.js and Supabase, self-hosted, with centralised monitoring and nightly backups. There is no managed platform underneath doing the difficult parts.
The CV in step two came out of a database where row-level security means a query physically cannot return another person's rows. That is checked by probing it from a stranger's account rather than asserted, because the difference between those two is the whole point to anyone who has shipped something like this.
The key that would have done step three is yours — encrypted at rest, used for nothing but your own requests. Nothing runs on a shared key, which is why this page can stay switched on indefinitely. And every number the run produced is advisory: the decision stays with the person, and deleting the account removes the stored files along with the rows.
Who built this
One engineer — the product, the infrastructure it runs on, and the CV in step two. If you are evaluating me for a role or a project, this page is the artefact rather than a description of one: open it, break it, ask about it.
Reasonable questions
What is the catch?
You bring your own model key. That is the whole condition. There is no paid tier and no plan to add one — this exists to be used and to be shown.
Why do I need my own key?
Otherwise I pay for your requests, and a demonstration that costs its author money gets switched off. With your key you pay the provider directly, at their price, with no markup from me.
What happens to my data?
It lives in a self-hosted Supabase in the EU. Export everything as JSON from Settings, or delete the account — that wipes the database rows and the stored files, including CVs uploaded through an application form.
Does the AI decide anything?
No. Every score and suggestion is advisory, and the wording stays yours to accept or reject.