How to add a `:company-kind` property to Org-roam completion candidates?

I want to add the :company-kind property to Org-roam completion candidates, so that Org-roam works with the kind-icon package.

Can any one point me to the direction towards achieving this?

I figured it out. Here’s the wrapper I have around org-roam-complete-link-at-point and org-roam-complete-everywhere

(defun hp/org-roam-capf-add-kind-property (orig-fun &rest args)
  "Advice around `org-roam-complete-link-at-point' to add :company-kind property."
  (let ((result (apply orig-fun args)))
    (append result '(:company-kind (lambda (_) 'org-roam)))))

(advice-add 'org-roam-complete-link-at-point :around #'hp/org-roam-capf-add-kind-property)
(advice-add 'org-roam-complete-everywhere :around #'hp/org-roam-capf-add-kind-property)

Then to modify kind-icon-mapping

(add-to-list
 'kind-icon-mapping
 '(org-roam     "or" :icon "symbol-interface"   :collection "vscode" :face font-lock-type-face))

Result:

image