Hi, I’m building something around this (on ATproto obvs) which is a professional identity layer on ATProto (sifa-lexicons), alongside Barazo (forum AppView, lexicon thread).
I think “universal profile” ends up being composable layers rather than one schema. Basic identity (handle, avatar, bio) is one. Personal web presence (linktree/Standard.site) is another. Professional track record is another. Each in its own lexicon namespace, apps compose what they need.
Sifa has 16 schemas under id.sifa.* for the professional layer: positions, education, skills, certifications, projects, endorsements. The part that’s different from self-declared profile data: endorsements involve cross-user verification. Someone endorses your skill from their PDS, you confirm or reject it. The attestation lives in two repos, not one.
Could maybe do the same with jobs or projects where you can invite someone else to confirm if you indeed worked somewhere. If the other confirms, this attestation proof is what can be shown.
A profile view is then composed from multiple namespaces: app.bsky.actor.profile for the base, id.sifa.profile.* for professional data, endorsement records from other users’ repos, and optionally forum.barazo.* activity as a track record of community participation.
Would love to get your feedback on this
#Earlydays