Skip to content

Personas Context Library

OngoingFreddie Mac2026

Turning our team’s personas into an AI-native context library that powers AI skills, agentic prototyping, and eventually (possibly) our own agentic harness.

Graphic is for illustrative purposes only.

At a glance
Role
Project lead
Team
Our UX team
Timeline
8 months, 2026
Status // Ongoing; every persona has a file, Kiro skill in progress

Problem

Our platform has a lot of different user types, each with a very specific job, like an underwriter, a sales person, or a surveillance manager. We call these our personas.

We had a library of documentation on these personas, in the classic format you’d recognize: an infographic with a name, average demographic info, their needs and pain points, etc. But they weren’t being used that much and hadn’t been updated in years.

One of our team’s goals this year was to update this persona library, and our manager tasked me with taking it on.

The idea: Personas as AI context

Key Question: How can we make our personas AI-native?

While working on updating these personas, I realized… there was a bigger issue to tackle first, and that was the format itself.

Rather than recreate a “standard,” stylized UX persona, why don’t we make this persona library something AI-first?

Before and after: a “standard” UX persona card for Victoria B., an underwriting senior analyst, with an illustrated portrait, pull quote, experience, core need and pain points, beside the new AI-native persona as a Markdown file, underwriting-analyst.md, with frontmatter, daily work, tools, vocabulary and jobs to be done
Graphic is for illustrative purposes only.

So I proposed we turn our personas into a user context library instead. It could be one Markdown file per persona, written in plain English, so that they’re both human- and AI-readable.

First, I kept them in a Copilot Notebook where they could be queried. Later I realized they could also be stored in a code repo, where they can be used by coding agents + have built-in version control.

Schema design with the team

Our platform has over 40 user types, which is a lot of personas to keep current. I figured every persona should follow the same schema so they’re easier to maintain.

Before settling on a schema, I had a quick FigJam session with other designers, asking what info they’d find helpful in a persona.

Feedback from the team mapped to the schema: questions about daily tools and team vocabulary became Tools and Vocabulary sections, “when was this last checked with a real person?” became status and last-validated fields, and the request for a photo and catchy name was cut because it adds tokens but tells the AI nothing about the work
Graphic is for illustrative purposes only.

After assessing the team’s feedback, I worked with Copilot to make a schema template we could reuse across all personas.

Example persona Markdown file, underwriting-analyst.md, with six numbered parts explained alongside: frontmatter, summary, goals and daily work, tools, pain points, and jobs to be done
Graphic is for illustrative purposes only.

How the library is organized

Our product organization supports the Multifamily business. This business is structured into 4 blocks: Production & Sales, Underwriting, Capital Markets, and Operations.

The personas library lives in a codebase that follows the same structure. There is one folder per block, with some blocks split further by sub-division. Each persona is one Markdown file written in the same standard schema.

The persona library mirrors the organization: file counts for Production & Sales, Underwriting, Capital Markets and Operations, beside a file tree with one folder per business block and each persona file marked as a key role, drafted or shell
Graphic is for illustrative purposes only.

Storing the personas as a codebase opens a lot of possibilities, mainly because it allows you to use a coding agent to edit and maintain the library.

Research and validation

Once the schema was established, it was time to actually fill the persona templates with content.

To populate each persona file, I ran a prompt through Copilot asking it to generate a research report on each user type. Then I’d have Copilot fill the schema with its findings.

Copilot has access to our internal “knowledge graph,” meaning it could read and summarize any non-sensitive documents on Sharepoint. My manager described this approach as being like “scraping” our internal documents for persona information. It did a pretty good job.

Still, it’s AI generated content. Ideally we’d get a subject matter expert to validate each persona… But that said, we have over 40 personas, and validating them all would be a huge effort.

Frontmatter of underwriting-analyst.md: role Underwriter, block Underwriting, division Credit, status complete, last validated 2026-08-21, and titles from associate to senior manager
Graphic is for illustrative purposes only.

To counter this, we decided to identify a few key personas from each block. These roles are central enough to both the business and our platform, that it’s worth it to validate them more thoroughly. We call them our “main characters.” 💅 💁‍♀️

For our main characters, a few colleagues and I are interviewing people at the company who sit in these roles. We started with Underwriters, interviewing an analyst and a senior underwriter across 5 sessions.

Internal research using Copilot: underwriters look at lender documents to assess potential deals for risk. What users said in interviews: “We assess creditworthiness via a 3-pronged strategy: company financials, property inspections, and borrowing parties.”

What we found was that - while Copilot wasn’t “wrong” on any of its outputs per se - we definitely got much more nuance from these conversations.

Even just one 30-minute session was far more informative than however many hours I spent going back and forth with Copilot 😅

Now & next

Every persona now has a file in the library. About 2/3 are filled with Copilot-generated content, plus the Underwriter persona updated to reflect our interview findings.

The remaining 1/3 personas are still empty templates. This is because some roles in the organization are not as well-documented as others, meaning Copilot has less to “scrape” from… But, these users are not yet onboarded to our platform anyway, so we’ve put a pin on that for now.

We are also continuing to validate our next batch of “main characters.” 😊

Pipeline: the Bitbucket repo of persona files (4 blocks, 32 files) feeds a live Copilot notebook, synced to SharePoint for PMs, BAs and anyone not yet in an IDE, and an in-progress Kiro skill for devs, designers and POs using agentic tools

Next, I’m working on a Kiro skill so designers, POs, or anyone with agent access can pull in personas as context for (vibe)coding work. There have also been some early discussions about creating context libraries for agent harnesses in the future. We will see!

Work in progress

This is an ongoing initiative. More updates to come!

Next case study

Procedures Updater

Read next