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

Ihor_Kostyniuk_CV.pdf
1

A file goes in

PDF or DOCX, however it was formatted. This one is the owner's own CV.

Ihor_Kostyniuk_CV.pdfParsed
2

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

full_nameIhor Kostyniuk
roleSenior AI Engineer | LLM Agents & Orchestration, MCP, RAG, Voice AI
locationOdesa, Ukraine
experience4 positions
skills75 skills
languages3 language versions
3

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.

Match82

Found in the CV

LLM orchestrationRAGPythonDocker

Missing

Kubernetes
4

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.

PDFATS
DOCXATS

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.

Published CV page: name, headline, summary, experience and skills
Real page, not a mock-up — cv.kossflow.com/u/ihor-kostyniuk. Email and phone are blurred on the screenshot; on the page itself they are visible.

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.

Ihor Kostyniuk

Senior AI Engineer · Odesa, Ukraine

Open my CV

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.

Your turn

Same page, your CV.

Start
Koss Flow CV
Individual Entrepreneur Kostyniuk Ihor Valeriiovych · TIN 3593802718 · Odesa, Ukraine