Vibe-Coded Employee Directory: The Three Risks Security Scans Miss

The code is the cheap part of an employee directory. The copy, the credential and the cleanup are where a prompted build fails, and none of them shows up in a demo.

Vibe-Coded Employee Directory: The Three Risks Security Scans Miss

A vibe-coded employee directory can work on the first afternoon. That is the problem with it.

The question we set out to answer: why buy a directory when an AI tool can build one from a prompt?

We sell the alternative, so we tried to answer it against ourselves first.

Definition: A vibe-coded employee directory is an internal staff directory generated mostly by prompting an AI coding tool such as Lovable, Bolt, Replit or Claude Code, with little or no manual code review.
The code is the cheap part. A directory is a copy of your people data, a credential that reads it, and a cleanup job that does not end.

Those three are where a prompted build fails, and none of them shows up in a demo.

Key findings

  • 2,096 of 3,680 checkable databases behind prompted apps had a table readable without a login (Reeve, August 2026).
  • That is at least 6.8% of the 30,998 apps Reeve scanned. The rest could not be tested.
  • UpGuard found 16,326 databases readable from the public internet among about 300,000 domains (October 2026).
  • On the default 180-day setting, the secret behind a directory sync expires about eight times in 4.1 years.
  • Emails about a SOC 2 report, a security questionnaire or a vendor risk review appear on 15 organizations in our CRM since 2020. Seven of them first appear in 2025.
  • We found no documented breach of a vibe-coded employee directory.

The case for building it yourself is real

Retool surveyed 817 builders in late 2025, a group that includes its own customers. In that group, 35% had already replaced at least one SaaS tool with something custom, and 51% had shipped production software built with AI. Internal admin tools were the second most named category under replacement pressure, at 33% (Retool, February 2026). Retool sells a build platform, so read those figures as a ceiling.

People teams are already doing it. Netlify's people team wrote in March 2026 about building five HR tools by prompting, including an onboarding app and a pulse survey that replaced a paid platform. One of the builders said the data security demands pushed her to bring in IT and Security (Netlify).

The directory itself is a stock use case. Lovable publishes a team directory and org chart template. Its page describes built-in sign-in and admin editing of employee records, and does not mention syncing from an identity system (Lovable).

We would rather say this now than have a buyer discover it later: a basic contact list is within reach of a prompt.

The scariest numbers shrink when you check the denominator

We traced five widely quoted statistics to their publishers. Three say less than the headline, and two we could not stand behind at all.

Claim in circulationWhat the source supportsVerdict
"57% of vibe-coded apps have an open database"Reeve scanned 30,998 live apps on August 12 to 14, 2026. 2,096 of the 3,680 Supabase databases it could check had a table readable without a login. That is at least 6.8% of everything scanned, since most apps could not be checked (Reeve).True of checkable databases only
"44% of AI-generated code is vulnerable"Veracode reports a 56% average security pass rate on code generation tasks in its own tests. It measured tasks in a lab, not deployed apps (Veracode, July 2026).True of test tasks only
"91% of vibe-coded apps are vulnerable"Deng, Fan and Meng audited 200 publicly deployed open-source apps and found at least one vulnerability in 91.0%. An earlier version of the paper reported different counts (arXiv 2606.23130, v4).True of that sample; cite the version
"40% of vibe-coded apps leak sensitive data"Attributed to RedAccess research from May 2026. News outlets describe the base three different ways, and we could not open a primary report.Not used here
"68% of tenants have an app secret over a year old"One vendor blog attributes it to IBM's 2024 breach report. We could not find it there.Not used here

No public scan shows that most prompted apps leak data.

The exposure concentrates in apps that keep a database of people

Readable databases: 57% of those checked, at least 6.8% of all apps scanned2,096 of 3,680 checkable databases is 57%. The other apps were not tested.Live vibe-coded apps scanned30,998 (100.0%)Apps that name a Supabase project8,429 (27.2%)Apps whose database could be checked3,680 (11.9%)Apps found with a table readable without a login2,096 (6.8%)
Source: Reeve, The State of Vibe-Coded App Security 2026. Passive scan of 30,998 live apps, August 12 to 14, 2026. Percentages are shares of all apps scanned.
Seven in a hundred scanned apps were found with a readable database. Among the apps whose database could be checked, 57 in a hundred did. Those two numbers are not measuring the same thing.
What the 6.8% does not mean: Reeve could test 3,680 of the 30,998 apps. The rest were not checked, so 6.8% is a floor, not a rate.

Reeve found 394 apps with readable tables named like users, profiles or orders.

UpGuard reached a similar result. It queried about 300,000 domains showing signs of Supabase use and found 16,326 databases with tables readable from the public internet. Over half showed indicators of personal information (UpGuard, October 2026).

UpGuard also explains the mechanism. Supabase turns on row-level security for tables created in its visual editor. Tables created through the API do not get it by default, and the API is how coding agents create tables. UpGuard infers the link to AI agents from that pattern. It did not measure which sites an agent built.

An employee directory that stores its own copy of the staff list is a database of people, which puts it in the second group.

Risk one: the copy

There are two ways to build a directory, and the choice decides most of the risk.

Live lookupSynced copy
Where the data livesIt stays in the identity systemIn a second database the builder chose
Who can read itWhoever is signed in, under rules IT already setWhoever the new database lets in
When someone leavesGone when the account is disabledStill listed until the next sync, if the sync still runs
What you can build on itA lookupSearch, filters, an org chart, extra fields

The last row is why prompted builds drift to the right-hand column. Search and an org chart are easier against a local table, so the tool creates one. That is our reasoning from how these tools work, not something a scan has measured.

Inside the company the copy changes little. Microsoft's documentation says member users can already read all directory information, with a few exceptions (Microsoft Learn).

The risk is that names, titles, reporting lines and phone numbers now sit somewhere your sign-in policies and your offboarding process do not reach. In the academic audit above, broken access control was the leading category of flaw.

This applies to us too. OneDirectory reads Entra ID on every sync, so it also holds a copy. Keeping that copy closed is the vendor's whole job, with a contract and a data processing agreement behind it. For a prompted tool it is nobody's job.

Risk two: the credential

A synced directory needs something that signs in to read the staff list on a schedule. The quickest route is an app registration holding a secret.

By default, any member user can register an application (Microsoft Learn). An administrator can switch that off, and it is worth checking whether yours has.

Microsoft's own setup walkthrough tells the reader to leave the secret's expiry at the recommended 180 days, and notes that the secret's value is shown only once (Microsoft Learn).

Now set that beside how long workers have been with their current employer. The US median was 4.1 years in January 2026, and 3.0 years for workers aged 25 to 34 (Bureau of Labor Statistics).

A directory on the default secret expires 8 times in 4.1 yearsEach dot is a secret expiry that someone must catch. Axis: years since the app was built.Median time with employer, ages 25 to 34: 3.0 yearsAll workers: 4.1 years01234180-day secret, the recommended default: 8 expiries12-month secret: 4 expiries24-month secret: 2 expiries
Our arithmetic, not observed outages. Secret default: Microsoft Learn. Time with employer: US Bureau of Labor Statistics, Employee Tenure in 2026, January 2026 medians, released September 24, 2026.

A lapsed secret stops the sync. The directory still loads, so nothing prompts a ticket. New hires do not appear and leavers do not disappear.

A leaked secret does more damage than a lapsed one. GitGuardian reports that commits assisted by Claude Code leaked a secret in about 3.2% of cases across public GitHub in 2025, against a 1.5% baseline. It also found 64% of secrets it confirmed valid in 2022 had still not been revoked (GitGuardian, March 2026). The summary we read does not explain how AI-assisted commits were identified.

Large companies forget applications too. In January 2024 Microsoft said an attacker had found and compromised a legacy test application with elevated access to its own corporate environment (Microsoft Security).

Risk three: the cleanup

A prompted directory reads the same raw records any directory product reads on day one. Across 65 customer tenants, manager field coverage averaged 42% at first sync (The Employee Directory Data Problem Is Fixable).

That figure has two limits. It is untouched data, so it is not a verdict on any product. And the cohort is self-selected: every organization in it had already decided its directory needed work.

An org chart drawn from data like that is incomplete on the day it launches, whatever the code quality.

Then there are the accounts that are not people. In one tenant we configured this year, a media organization, the raw export listed 317 people. About 80 of them were system logins, studio accounts, shared mailboxes and test accounts. A further 55 records had no manager set. One tenant is an illustration, not proof.

OneDirectory classifies each account as a person, a guest or a service account on every sync. We still ship a manual override for administrators, because the automatic detection gets some accounts wrong. A prompted build needs the same logic, and someone to maintain it when the naming conventions change.

What a staff list is worth outside the building

Outside the company, directory fields answer two questions a fraudster needs answered: who approves payments, and who do they take instructions from.

YearBusiness email compromise complaintsReported losses
202524,768$3,046,598,558
202421,442$2,770,151,146
202321,489$2,946,830,270

Source: FBI IC3, 2025 Internet Crime Report, pages 7, 8, 25 and 26. The 2025 figures work out to about $123,000 per complaint.

We have not found a documented case of a leaked prompted directory being used this way. The connection is our reasoning, and it should be read as that.

After month six, someone has to own it

In Retool's survey, 60% of builders had made something outside IT oversight in the past year, and 44% said they test AI-generated code thoroughly before using it.

The platform underneath moves on Microsoft's schedule. Microsoft deprecated Azure AD Graph, the older interface for reading directory data, in 2023 and set its full retirement for August 31, 2025 (Microsoft Learn). Apps still calling it had to move to Microsoft Graph.

A vendor reads those notices because its revenue depends on it. An internal tool needs a named person to read them in year three.

A vendor gets a security review. An internal build does not.

Buyers have a gate for software they purchase. We searched our CRM for emails about a SOC 2 report, a security questionnaire, a vendor risk review or a penetration test. They appear on 15 organizations since 2020, and seven of those first appear in 2025.

That is a minority of the organizations we deal with. Those that asked include a credit union, a financial services firm and an accounting firm, and they asked in writing, with deadlines. One review ran to at least 18 emails over six weeks. Another took at least 11 over seven weeks.

A prompted directory reads the same staff records and goes through none of that. The nine checks below are a short version of what a reviewer would ask.

When building your own is the right call

We lose deals to buyers who only want a quick lookup. For some of them, losing is the correct outcome.

Build it, or use what you already have, when most of these are true:

  • You want a contact list, not offices, divisions and reporting lines mapped to how you are organized.
  • The tool looks people up live as the signed-in user and stores no copy.
  • It sits behind your company sign-in, hosted somewhere IT already manages.
  • A named person in IT owns the app registration, and a second person can rotate its secret.
  • Your manager, title and department fields are already clean.

The people search and profile cards already included in Microsoft 365 may cover the first case with no build at all. If the structure matters, that is the case for employee directory software. Our guide to choosing one lists what to compare.

Nine checks before a prompted directory goes company-wide

#CheckHow to test it
1Sign-inOpen the URL in a private window. You should reach your company sign-in page and nothing else.
2Stored copyAsk where the staff data is stored, in which region, and who has console access.
3Database rulesWhile signed out, request a table directly. It should refuse.
4Secret expiryFind the expiry date. Put it in a shared calendar, not one person's.
5Secret locationSearch the repository and the browser bundle for the secret's first eight characters.
6PermissionsHave IT confirm the app holds read-only access and nothing it does not call.
7LeaversDisable a test account. Confirm it is gone from the directory within a day.
8Non-person accountsSearch for a shared mailbox and a service account. Neither should appear as a colleague.
9OwnerWrite down who maintains it and who takes over when that person leaves.
Stop rule: If check 3 or check 5 fails, take the tool offline before fixing anything else.

What this analysis cannot show

  • We found no published scan of prompted employee directories specifically. The scans cited cover public apps of every kind.
  • We found no documented breach of a vibe-coded employee directory, and no first-hand public account of one being built and deployed.
  • Public scans cannot see tools hosted inside a company network. Those may be safer, or unobserved.
  • The expiry timeline is arithmetic from a default setting and a tenure median. It is not an observed outage rate.
  • The security review count is a keyword search of our own email. It misses reviews handled by phone, portal or another mailbox.
Disclosure: We sell employee directory software. We have tried to argue against our own interest here, and readers should still weigh that.

Frequently asked questions

What is a vibe-coded employee directory?

It is an internal staff directory generated mostly by prompting an AI coding tool such as Lovable, Bolt, Replit or Claude Code, with little or no manual code review. It typically reads staff records from the company's identity system and displays them in a searchable web page.

Is it safe to build an employee directory with AI?

It can be, if the tool looks records up live, sits behind company sign-in and has a named owner in IT. The risk rises when it stores its own copy of staff data. In Reeve's August 2026 scan, 2,096 of 3,680 checkable databases behind prompted apps had a table readable without a login.

What are the main risks of a vibe-coded employee directory?

Three: the copy, the credential and the cleanup. The copy is a second database of staff records outside your sign-in and offboarding controls. The credential is a secret that expires or leaks. The cleanup is the work of filtering non-person accounts and filling missing manager, title and department fields.

How often does the secret behind a directory sync expire?

Microsoft's setup guidance uses a recommended default of 180 days. On that setting a directory needs about eight secret renewals within 4.1 years, the median time US workers had been with their employer in January 2026. If nobody renews it, the sync stops and the directory shows stale data.

When does it make sense to build instead of buy?

When you need a simple contact list, your directory data is already clean, and IT will own the tool for its whole life. The people search and profile cards included in Microsoft 365 may be enough for that need without building anything.

How much does employee directory software cost?

OneDirectory prices in bands by company size, based on the number of employee profiles. Current figures are on the pricing page.

Sources and method

Every third-party figure above was read in its publisher's own report or page on November 10, 2026. If we could not reach a primary source, we left the figure out.

OneDirectory's benchmark figure comes from 65 customer tenants measured at first sync. It is calculated per tenant and then averaged, so each organization counts once. We exclude guest accounts, service accounts, shared mailboxes and disabled accounts from every count. More benchmarks are in the employee directory statistics hub.

The security review count is a keyword search of email in our CRM, run on November 10, 2026. It counts organizations, customers and prospects alike, with at least one matching email since 2020. We did not read every thread.

OneDirectory's original research is published under CC BY 4.0 and may be cited with attribution.

Greg Bennett
About the author

Greg Bennett

COO at OneDirectory, ranked #1 for Mid-Market Usability in G2's org chart reports. Writes about employee data, directory and org chart software, backed by the company's original research.