Finding the right property value from array of objects
Another way to write the same thing is:
const findUser = list =&gt; list.find(u =&gt; {
  if(u.subKeys) {
    return findUser(u.subKeys);
  }
  if(checkEligible({action: u.key}) {
    callback(u);
    return true; // necessary to stop the loop
  }
});

findUser(USERS_LIST);

Once that you only need to receive a list, check if is eligible and do something with this, you can use recursion to avoid the callback repeating in user.subKeys.find and USERS_LIST.find.
Also, the return false is not necessary because the iteration of Array.prototype.find will only stop when there is a return value equivalent to true and a function without a explicit return statement will have the implicit return value of undefined:
const noop = () =&gt; {};
console.log(noop()) // undefined