Storing content as separate files is generally acceptable unless you plan to load everything simultaneously. For efficient searching, consider using an external service such as MeiliSearch, Algolia, or Loupe-PHP to maintain performance.
Having 30,000 users loaded from files could significantly slow down Kirby when trying to access user data. You can find more information at How many (front-end user) accounts can Kirby handle!? - #2 by Manuel.
It may be necessary to virtualize the users, load them from a database, or utilize an external authentication service.