<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Vekt blog</title><description>Notes on privacy-first hiring, GDPR and the EU AI Act from the people building Vekt.</description><link>https://vekt.eu/</link><language>en</language><atom:link href="https://vekt.eu/blog/rss.xml" rel="self" type="application/rss+xml"/><item><title>Open-source and self-hosted ATS options in 2026, compared</title><link>https://vekt.eu/blog/open-source-ats-compared/</link><guid isPermaLink="true">https://vekt.eu/blog/open-source-ats-compared/</guid><description>Nine open-source ATS you can self-host, compared on licence, stack, scope and upkeep, with every licence checked in its repo, including when Vekt isn&apos;t the fit.</description><pubDate>Sun, 25 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;If you want an &lt;strong&gt;open-source ATS&lt;/strong&gt; you can &lt;strong&gt;self-host&lt;/strong&gt;, you have more choice in 2026 than most roundups suggest, and the options differ more than their feature lists show. Some are dedicated applicant tracking systems, some are recruitment modules inside a full HR or ERP suite, and a few are new AI-first projects. Their licences range from MIT to AGPL, which matters if you plan to change the code.&lt;/p&gt;
&lt;p&gt;This guide compares nine of them. We wrote it as the people behind &lt;a href=&quot;https://vekt.eu/self-hosted-ats/&quot;&gt;Vekt&lt;/a&gt;, one of the nine, so read our section with that in mind. To keep it fair, every licence below was read from the project’s own repository on 25 October 2026, every other fact links to its source, and each section says who the project suits best, including where that isn’t us.&lt;/p&gt;
&lt;h2 id=&quot;the-short-answer&quot;&gt;The short answer&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;th&gt;Licence&lt;/th&gt;
&lt;th&gt;Stack&lt;/th&gt;
&lt;th&gt;Scope&lt;/th&gt;
&lt;th&gt;Last commit on main*&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/opencats/OpenCATS&quot;&gt;OpenCATS&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;A classic ATS on PHP hosting&lt;/td&gt;
&lt;td&gt;MPL 2.0&lt;/td&gt;
&lt;td&gt;PHP, MySQL&lt;/td&gt;
&lt;td&gt;Dedicated ATS&lt;/td&gt;
&lt;td&gt;22 Oct 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/freeats/freeats&quot;&gt;FreeATS&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;A conventional ATS with an optional hosted plan&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;td&gt;Ruby on Rails, Docker&lt;/td&gt;
&lt;td&gt;Dedicated ATS&lt;/td&gt;
&lt;td&gt;13 Oct 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/Behnoudmst/vekt&quot;&gt;Vekt&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;AI screening with human review and data deletion, EU teams&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;td&gt;Next.js, SQLite, Docker&lt;/td&gt;
&lt;td&gt;Recruiting platform&lt;/td&gt;
&lt;td&gt;18 Oct 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/maxig/vellum-oss&quot;&gt;Vellum&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;An AI-first ATS with a shared inbox&lt;/td&gt;
&lt;td&gt;AGPL 3.0&lt;/td&gt;
&lt;td&gt;Next.js, PostgreSQL, Docker&lt;/td&gt;
&lt;td&gt;Dedicated ATS&lt;/td&gt;
&lt;td&gt;4 Aug 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/horilla-opensource/horilla&quot;&gt;Horilla&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;One open-source system for all of HR&lt;/td&gt;
&lt;td&gt;LGPL 2.1&lt;/td&gt;
&lt;td&gt;Django, PostgreSQL, Docker&lt;/td&gt;
&lt;td&gt;HR suite&lt;/td&gt;
&lt;td&gt;21 Oct 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/frappe/hrms&quot;&gt;Frappe HR&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Teams already on ERPNext&lt;/td&gt;
&lt;td&gt;GPL 3.0&lt;/td&gt;
&lt;td&gt;Frappe (Python)&lt;/td&gt;
&lt;td&gt;HR suite&lt;/td&gt;
&lt;td&gt;25 Oct 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/orangehrm/orangehrm&quot;&gt;OrangeHRM&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;An established HRIS with recruitment&lt;/td&gt;
&lt;td&gt;GPL 3.0&lt;/td&gt;
&lt;td&gt;PHP&lt;/td&gt;
&lt;td&gt;HR suite&lt;/td&gt;
&lt;td&gt;29 Jun 2026&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/odoo/odoo&quot;&gt;Odoo Recruitment&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Teams already on Odoo&lt;/td&gt;
&lt;td&gt;LGPL 3.0 (Community)&lt;/td&gt;
&lt;td&gt;Python, PostgreSQL&lt;/td&gt;
&lt;td&gt;ERP module&lt;/td&gt;
&lt;td&gt;Very active&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/OSSAdmiral/Recruit&quot;&gt;Recruit (OSSAdmiral)&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Laravel developers who want a base to build on&lt;/td&gt;
&lt;td&gt;AGPL 3.0&lt;/td&gt;
&lt;td&gt;Laravel, Filament&lt;/td&gt;
&lt;td&gt;Dedicated ATS&lt;/td&gt;
&lt;td&gt;13 Nov 2024&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;*Date of the latest commit on the default branch, checked 25 October 2026. Odoo’s main repository was not checked commit by commit; it receives changes daily.&lt;/p&gt;
&lt;h2 id=&quot;how-we-compared-them&quot;&gt;How we compared them&lt;/h2&gt;
&lt;p&gt;Five questions decide whether a self-hosted ATS works for a team:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Licence.&lt;/strong&gt; Can you change the code without publishing your changes? MIT, MPL and LGPL are permissive enough for most in-house changes; GPL and AGPL ask you to share modified source in some situations (see &lt;a href=&quot;#what-the-licences-mean-in-practice&quot;&gt;the licence note&lt;/a&gt; below).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scope.&lt;/strong&gt; Do you want a dedicated ATS, or recruitment as one module of an HR or ERP system?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hosting effort.&lt;/strong&gt; Is there a maintained Docker setup, or do you assemble a LAMP or Python stack yourself?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI and data.&lt;/strong&gt; If the tool uses AI on CVs, which providers can it use, can it run on a local model, and what happens to the data?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Upkeep.&lt;/strong&gt; Is the project actively maintained, and does it say whether it is ready for production?&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;opencats&quot;&gt;OpenCATS&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.opencats.org/&quot;&gt;OpenCATS&lt;/a&gt; is the name most people know when they search for an open-source ATS. It is a dedicated applicant tracking system written in PHP with MySQL, and it includes a careers page. The repository has a &lt;code&gt;docker&lt;/code&gt; folder, and the project is still receiving commits in October 2026.&lt;/p&gt;
&lt;p&gt;The licence is split: OpenCATS code is under the Mozilla Public License 2.0, while the original CATS code it grew from is under its own licence (both explained in the repository’s &lt;code&gt;LICENSE.md&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; teams and agencies that want a classic ATS feature set and are comfortable hosting PHP. Try a test install first to check that its interface fits how your recruiters work today.&lt;/p&gt;
&lt;h2 id=&quot;freeats&quot;&gt;FreeATS&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.freeats.com/&quot;&gt;FreeATS&lt;/a&gt; is an MIT-licensed ATS built with Ruby on Rails, with a Docker Compose setup for self-hosting. It also sells a hosted version: on its site today, the free cloud plan allows 3 open positions and 3,000 candidate profiles with unlimited users, and Pro costs $99 a month.&lt;/p&gt;
&lt;p&gt;Its feature list is that of a conventional ATS: custom pipelines, scorecards, a LinkedIn import browser extension, email sync, tasks, duplicate detection and a career site.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; small teams that want a familiar ATS and like having a hosted plan to fall back on.&lt;/p&gt;
&lt;h2 id=&quot;vekt&quot;&gt;Vekt&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://vekt.eu/self-hosted-ats/&quot;&gt;Vekt&lt;/a&gt; is our project: an MIT-licensed, &lt;a href=&quot;https://vekt.eu/&quot;&gt;self-hosted recruiting platform&lt;/a&gt; built with Next.js, SQLite and &lt;a href=&quot;https://www.inngest.com/&quot;&gt;Inngest&lt;/a&gt; for background jobs, deployed with Docker Compose. It covers job listings, a careers page, applications with screening questions, a candidate pipeline and candidate emails.&lt;/p&gt;
&lt;p&gt;What sets it apart is how it handles AI and personal data. CVs can be scored by OpenAI, OpenRouter or a local model through Ollama. Names, contact details and other direct identifiers are removed from the CV text before any model sees it. A low score never rejects anyone on its own: those candidates are marked &lt;em&gt;needs review&lt;/em&gt; until a recruiter decides. Every evaluation records the provider, model, prompt hash and evaluator version, and a daily job deletes candidates and their CVs once the retention period you set has passed.&lt;/p&gt;
&lt;p&gt;We also publish &lt;a href=&quot;https://vekt.eu/blog/what-vekts-ai-cant-do/&quot;&gt;what its AI can’t do&lt;/a&gt;: the scores have never been measured against real hiring outcomes, so Vekt claims no accuracy figure.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; teams hiring in the EU that want AI screening with a human in charge, candidate data on their own servers, and code they can read.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Not a fit:&lt;/strong&gt; if you need interview scheduling, job-board multiposting or single sign-on today. Vekt has none of these yet.&lt;/p&gt;
&lt;h2 id=&quot;vellum&quot;&gt;Vellum&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/maxig/vellum-oss&quot;&gt;Vellum&lt;/a&gt; describes itself as “an open-source, AI-first applicant tracking system”. It is built with Next.js, PostgreSQL and Prisma, and ships a Docker Compose setup that includes a reverse proxy. Its README lists a hiring pipeline, branded career sites, a shared inbox, multi-tenancy, and “bring-your-own (or local) AI”.&lt;/p&gt;
&lt;p&gt;The README marks its own status as an “actively developed MVP”. It is licensed under the AGPL 3.0.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; teams that want a modern, AI-first ATS with a shared inbox and are comfortable with an MVP and the AGPL’s terms.&lt;/p&gt;
&lt;h2 id=&quot;horilla&quot;&gt;Horilla&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.horilla.com/features/recruitment/&quot;&gt;Horilla&lt;/a&gt; is a complete open-source HR system: recruitment sits next to onboarding, employee records, attendance, leave, payroll, helpdesk and more. It is built with Django and PostgreSQL, has Docker Compose files, and is licensed under the LGPL 2.1.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; organisations that want one open-source system for all of HR, with recruitment as one part of it.&lt;/p&gt;
&lt;h2 id=&quot;frappe-hr&quot;&gt;Frappe HR&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/frappe/hrms&quot;&gt;Frappe HR&lt;/a&gt; is the HR and payroll app of the Frappe and ERPNext ecosystem, licensed under the GPL 3.0. Recruitment covers job openings, applicants and interviews, inside the same system as the rest of HR.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; companies already running ERPNext, or happy to adopt the Frappe framework.&lt;/p&gt;
&lt;h2 id=&quot;orangehrm&quot;&gt;OrangeHRM&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/orangehrm/orangehrm&quot;&gt;OrangeHRM&lt;/a&gt; is a long-established HR system written in PHP. The open-source edition, under the GPL 3.0, includes a recruitment module; the company also sells paid editions with more features.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; teams that need an HR information system first and recruitment second.&lt;/p&gt;
&lt;h2 id=&quot;odoo-recruitment&quot;&gt;Odoo Recruitment&lt;/h2&gt;
&lt;p&gt;Recruitment is one of the apps in &lt;a href=&quot;https://github.com/odoo/odoo&quot;&gt;Odoo&lt;/a&gt;, the open-source ERP. The Community edition is licensed under the LGPL 3.0; some features are part of the paid Enterprise edition only.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; businesses already running Odoo, where recruiting next to accounting, sales and HR outweighs having a dedicated ATS.&lt;/p&gt;
&lt;h2 id=&quot;recruit-ossadmiral&quot;&gt;Recruit (OSSAdmiral)&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/OSSAdmiral/Recruit&quot;&gt;Recruit&lt;/a&gt; is a corporate recruitment system built with Laravel and FilamentPHP, under the AGPL 3.0. Its README says it is “under hard development and not yet ready for production”, and its last commit on the default branch was in November 2024.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Laravel developers who want a starting point to build their own recruiting tool, rather than a finished product.&lt;/p&gt;
&lt;h2 id=&quot;what-the-licences-mean-in-practice&quot;&gt;What the licences mean in practice&lt;/h2&gt;
&lt;p&gt;All nine are open source, but they ask different things of you if you change the code:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Licence&lt;/th&gt;
&lt;th&gt;Who uses it here&lt;/th&gt;
&lt;th&gt;If you modify the code and run it internally&lt;/th&gt;
&lt;th&gt;If you offer your modified version to others over the web&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;td&gt;Vekt, FreeATS&lt;/td&gt;
&lt;td&gt;No obligations beyond keeping the notice&lt;/td&gt;
&lt;td&gt;Same: no obligation to publish&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MPL 2.0&lt;/td&gt;
&lt;td&gt;OpenCATS&lt;/td&gt;
&lt;td&gt;Fine&lt;/td&gt;
&lt;td&gt;Changed files must stay under the MPL if you distribute them&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LGPL 2.1 / 3.0&lt;/td&gt;
&lt;td&gt;Horilla, Odoo Community&lt;/td&gt;
&lt;td&gt;Fine&lt;/td&gt;
&lt;td&gt;Mainly affects distributing modified copies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPL 3.0&lt;/td&gt;
&lt;td&gt;Frappe HR, OrangeHRM&lt;/td&gt;
&lt;td&gt;Fine&lt;/td&gt;
&lt;td&gt;Distributed copies must include the source&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AGPL 3.0&lt;/td&gt;
&lt;td&gt;Vellum, Recruit&lt;/td&gt;
&lt;td&gt;Fine&lt;/td&gt;
&lt;td&gt;You must offer the modified source to the users of your hosted service&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;This is a summary, not legal advice. If you plan to build a product on top of any of these, read the licence itself.&lt;/p&gt;
&lt;h2 id=&quot;a-note-on-gdpr-compliant-labels&quot;&gt;A note on “GDPR-compliant” labels&lt;/h2&gt;
&lt;p&gt;Some ATS products, open source and hosted, describe themselves as GDPR-compliant. No software is compliant on its own. Self-hosting lets you decide where candidate data lives and when it is deleted, but the lawful basis for processing, the privacy notice, the DPIA and your answers to candidate requests are still your organisation’s work.&lt;/p&gt;
&lt;p&gt;If an ATS uses AI to screen applications, that is also a high-risk use under the EU AI Act. We explain what that means on our &lt;a href=&quot;https://vekt.eu/ai-act/&quot;&gt;AI Act page&lt;/a&gt; and what GDPR asks of a hiring system on our &lt;a href=&quot;https://vekt.eu/gdpr/&quot;&gt;GDPR page&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;how-to-choose&quot;&gt;How to choose&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;You want a dedicated ATS and a familiar workflow:&lt;/strong&gt; start with OpenCATS or FreeATS.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;You want AI screening, but with a human deciding and the data under your control:&lt;/strong&gt; Vekt, or Vellum if a shared inbox and multi-tenancy matter more to you.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;You want recruiting inside a full HR or ERP system:&lt;/strong&gt; Horilla, Frappe HR, OrangeHRM or Odoo, ideally whichever matches what you already run.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;You want a codebase to build on:&lt;/strong&gt; pick by language and licence first. MIT gives you the most freedom.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Whichever you pick, run it with real job postings for a week before you move live candidates into it.&lt;/p&gt;
&lt;h2 id=&quot;faq&quot;&gt;FAQ&lt;/h2&gt;
&lt;h3 id=&quot;what-is-the-best-open-source-ats&quot;&gt;What is the best open-source ATS?&lt;/h3&gt;
&lt;p&gt;There isn’t one best option; it depends on scope. For a dedicated ATS, OpenCATS and FreeATS are the most established. For AI screening with human review and automatic data deletion, Vekt. For recruitment inside a full HR suite, Horilla, Frappe HR, OrangeHRM or Odoo.&lt;/p&gt;
&lt;h3 id=&quot;which-open-source-ats-is-easiest-to-self-host&quot;&gt;Which open-source ATS is easiest to self-host?&lt;/h3&gt;
&lt;p&gt;The projects with a maintained Docker Compose setup: Vekt, FreeATS, Vellum and Horilla. Vekt also has a one-line setup script that generates secrets and starts everything.&lt;/p&gt;
&lt;h3 id=&quot;is-there-a-free-open-source-ats-with-no-user-limits&quot;&gt;Is there a free open-source ATS with no user limits?&lt;/h3&gt;
&lt;p&gt;Yes. Self-hosted open-source software has no seat limits: Vekt, OpenCATS, FreeATS’s self-hosted version and the others here all let you add as many users as you like. Limits only apply to hosted plans, such as FreeATS Cloud.&lt;/p&gt;
&lt;h3 id=&quot;can-an-open-source-ats-use-ai-without-sending-cvs-to-openai&quot;&gt;Can an open-source ATS use AI without sending CVs to OpenAI?&lt;/h3&gt;
&lt;p&gt;Yes, if it supports a local model. Vekt can score CVs with a model running in Ollama on your own hardware, and Vellum also supports local AI.&lt;/p&gt;
&lt;h3 id=&quot;whats-the-difference-between-a-self-hosted-ats-and-an-open-source-ats&quot;&gt;What’s the difference between a self-hosted ATS and an open-source ATS?&lt;/h3&gt;
&lt;p&gt;Self-hosted describes where it runs: on your servers. Open source describes the licence: you can read and change the code. Most tools here are both, but a hosted service can be open source, and some proprietary software can be self-hosted.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Found an error, or a project we should add? &lt;a href=&quot;https://github.com/Behnoudmst/vekt/issues&quot;&gt;Open an issue on GitHub&lt;/a&gt; and we will update this page.&lt;/p&gt;
</content:encoded><category>open-source-ats</category><category>self-hosted</category><category>comparison</category><author>Behnoud Mostafaie</author></item><item><title>Why we publish what Vekt&apos;s AI can&apos;t do</title><link>https://vekt.eu/blog/what-vekts-ai-cant-do/</link><guid isPermaLink="true">https://vekt.eu/blog/what-vekts-ai-cant-do/</guid><description>Vekt&apos;s repo lists four limits of its AI scoring before any feature list. Here is what they are, and why a hiring tool should be easier to question, not harder.</description><pubDate>Sun, 25 Oct 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Vekt is an open-source recruitment orchestration engine for privacy-first hiring. It runs on your own servers, structures how candidates are evaluated, and uses AI to rank applications against the job description so a recruiter knows what to read first. It does not decide who gets hired.&lt;/p&gt;
&lt;p&gt;Before the feature list, the repo has a &lt;a href=&quot;https://github.com/Behnoudmst/vekt/tree/main/docs/compliance&quot;&gt;compliance folder&lt;/a&gt; that names what the AI scoring can’t do. This post explains those four limits and why they come first.&lt;/p&gt;
&lt;h2 id=&quot;why-lead-with-limits&quot;&gt;Why lead with limits&lt;/h2&gt;
&lt;p&gt;In the EU, using AI to screen job applications is classed as a high-risk use under Annex III of the AI Act. Those obligations now apply from 2 December 2027, after the Digital Omnibus moved the original date. GDPR already applies today: candidates have rights over decisions based solely on automated processing, and they have to be told how their data is used.&lt;/p&gt;
&lt;p&gt;It is easy to answer that with a “compliant” badge. We think a tool in this space should be easier to question instead, and that starts with saying plainly where it falls short.&lt;/p&gt;
&lt;h2 id=&quot;limit-1-no-accuracy-has-been-measured&quot;&gt;Limit 1: no accuracy has been measured&lt;/h2&gt;
&lt;p&gt;Vekt has never been tested against a labelled set of CVs and hiring outcomes. There is no precision, recall or agreement-with-reviewer figure. Any number we gave you today would be invented.&lt;/p&gt;
&lt;p&gt;If a vendor gives you an accuracy figure, ask what it was measured on, and whether it was measured on hiring like yours.&lt;/p&gt;
&lt;h2 id=&quot;limit-2-redaction-removes-names-not-every-clue&quot;&gt;Limit 2: redaction removes names, not every clue&lt;/h2&gt;
&lt;p&gt;Before any text reaches the model, Vekt removes direct identifiers: name, email, phone, links, date of birth, and lines that state nationality, citizenship, marital status or gender.&lt;/p&gt;
&lt;p&gt;It does not remove proxies. University names, languages spoken, military service, career gaps and writing style can all carry signals of origin, age and gender, and a language model can pick them up. Redaction reduces the risk; it does not remove it. That is why a person makes the final call.&lt;/p&gt;
&lt;h2 id=&quot;limit-3-scores-arent-comparable-across-setups&quot;&gt;Limit 3: scores aren’t comparable across setups&lt;/h2&gt;
&lt;p&gt;The score comes from a general-purpose language model asked for a number from 0 to 100. Change the model, the provider or the prompt, and the same CV gets a different number. Even the same CV scored twice can drift by a few points.&lt;/p&gt;
&lt;p&gt;So scores are only comparable within one configuration, and the threshold you choose sits on a noisy signal. Write down why you picked it.&lt;/p&gt;
&lt;h2 id=&quot;limit-4-running-it-yourself-doesnt-make-you-compliant&quot;&gt;Limit 4: running it yourself doesn’t make you compliant&lt;/h2&gt;
&lt;p&gt;Self-hosting answers one important question: where the data is. With a local model, CV text never leaves infrastructure you control. With a hosted provider such as OpenAI or OpenRouter, the redacted text does go to that provider, which becomes a processor and possibly a transfer outside the EU.&lt;/p&gt;
&lt;p&gt;What self-hosting does not answer is whether your hiring process is lawful and fair. That depends on your criteria, your human review, what you tell candidates and how you handle their requests. Those stay with the organisation that hires.&lt;/p&gt;
&lt;h2 id=&quot;what-were-doing-about-it&quot;&gt;What we’re doing about it&lt;/h2&gt;
&lt;p&gt;The biggest gap is the first one. We’re looking for two or three EU organisations willing to measure Vekt on their own past applications, on their own servers, with their data never leaving them. We’ll help set it up, and with your agreement the method and aggregate results get published, so the next team doesn’t start from zero.&lt;/p&gt;
&lt;p&gt;If that’s you, &lt;a href=&quot;https://github.com/Behnoudmst/vekt/issues&quot;&gt;open an issue on GitHub&lt;/a&gt; or message us on LinkedIn.&lt;/p&gt;
</content:encoded><category>accuracy</category><category>eu-ai-act</category><category>gdpr</category><author>Behnoud Mostafaie</author></item></channel></rss>