Finding people in your Instagram archive, and what the app will never claim

In the people directory, a contact is a count you can trace to a record. How to filter it, what a dossier packs, and why the relationship tiers it shows are LMKFR's own heuristic, labelled as such.

The People section of LMKFR starts from one promise: every person is a count you can
trace, and every count is tied to a record in your own activity. There is no feed
worn down to simulation, no "who is most important to you" guess. There is a directory,
a report for each one, and a set of filters — and this post is what each of those three
actually is.

LMKFR does not tell you who your "top" friends are; it tells you who you interacted
with, and how.
"Top" is a ranking nobody's record supports. The app computes
interaction counts per person across your messages, searches, story reactions, link
visits and watched reels, holds those counts to the record, and then lets you filter
and sort. The relationship tiers it surfaces are its own heuristic, and it says so.

  1. 30speople are ranked by interaction count, highest to lowest, in the directory.
  2. 4minhow the confirmed-vs-name-only split works, and when to trust a profile.
  3. afterwards — the per-person report, the filter set, and the two things a profile will
  4. never claim.

The directory, and the confirmed-vs-name-only rule

Every person you have ever been recorded reaching — on a message, a search, a story
reaction, a link click or a reel watch — becomes one entry in the directory. The plain
truth about how it is built matters more than the number of rows does.

Some entries are confirmed, because the record carries their username with their
activity. Others are name-only: a spoken name in the file, without a username the
parser can follow back to a handle. A name-only entry is still a person, and we keep the
count; we simply never promote it to a handle. That is why two people can share a name
and not be merged, and why a "profile" that looks like a real open profile may be the app
refusing to invent one.

The report for one person

Open a contact and it becomes a dossier rather than a wall:

  • Message volume, charted, with your words and theirs carried side by side.
  • Timing and replies — when this account heard back from you, and how fast.
  • Their words and emoji, on the four-grade scale of frequency rather than as a

    summary of character.

  • Every touchpoint — messages, searches, story reactions, link visits, watched

    reels — enumerated, so the dossier can always justify itself.

  • Relationship status, the list state they sit in today: a follower, following,

    both, someone you unfollowed, someone who follows you but has gone quiet.

What the dossier will not do is infer an emotion. "You went quiet for three months" is a
shape the data has; "you fell out" is not a thing the data has. The reported entry in
the timeline is the gap itself, not the comfort an interpretation was offered.

The engagement tiers are our arithmetic, and they say so

The tier that sits on a person's card — a rough label for the strength of a specific
connection — is a weighted count, and the weights are ours. We write them down so that
the number can be argued with:

SignalWeight in the tier
Messagesx3
Story reactionsx4
Link visitsx5
Searches for the personx2
Reels and stories watched from them(carried into the engagement signal)

Add those weighted counts across a relevant period and you get a score; a score then
sits in a small set of tiers plus a "silent" category for a contact whose last activity
is not recent. It has been compared, as regards honesty, to most dossiers never say the
weights out loud, and it should keep that shape.

Activities: from a record to a person

Activity and People are the two halves of "where your attention went," and they split the
answer between them. Activity is every kind of interaction you can produce on the
platform — likes, comments, searches, story responses, poll answers, link history,
watched reels — with a search built into each. People is the answer to "who." The
record that says you liked a post is an activity row; the dossier that says which person
that post led back to is the same row, open from the other side.

So the Activity section's per-type search is not an index of posts; it is the place you
start when the question is what you did, and People is the place you start when the
question is who it touched.

What filters actually do

The filter set is not a novelty. It is how the directory stays honest when it is large:

  • Interaction type — only rows where a story reaction happened, or only messages.
  • Confirmed or name-only, the rule that tells you how much to trust a profile.
  • A relationship-state chip — the follower lib, the requested set, the list of

    things you have stopped at.

  • How many is many — the threshold you set on the count before a person's card

    appears in the first place.

Each filter narrows which cards are on the page; none of them rewrites the underlying
counts. The card on page one is the same person it would be if the filter were off.

The two things a profile will never say

Beyond the tiers, there are two absences worth stating up front, because people type
them into search bars:

  • No "who viewed your profile" list. Nothing like it has ever existed to extract,

    so there is nothing to show. The entry goes to a form that almost always says so
    directly.

  • No "this is who they are, as a person." A dossier can be photographed — volumes,

    timings, words — but it does not summarise who someone is. The question that editorial
    piece might have answered, we have deliberately not written an answer to.

The archive keeps its records. We keep the rest to the record too.

Questions this comes up

Can LMKFR tell me who matters most to me?

No. That is a sorting label wrapped around a count, and the archive does not score
affection. It can tell you who you interacted with, and how often by each channel. If
you need that to mean something, the dossier is the place to make that meaning, and the
filter is the place to start it.

What is a name-only contact?

An entry for a person whose name is all the record carries — no username the parser can
follow to a handle. The count is real and the person is real; what we will not do is
promote them to a profile. Two Johns being Johns is not something we are going to
resolve for you.

What are the numeric weights on a relationship card for?

They are the reported arithmetic, x3 / x2 / x4 / x5 on messages, searches, story
reactions and link visits respectively, and a recent enough activity that the highest
numbered bucket the app will label into a tier. You can use them to sanity-check a card
or distrust ours; either way they are visible.

Why can't I see who viewed my profile?

Names are never available. The story-viewer list is the only viewer list the product
ever kept, and even that is short-lived and absent from a data export. If you expected
to find a record of people browsing your profile, it does not exist here, and it is not
something we can imply ever did.

Where this was checked

The directory, dossier and filter set are a UI on computed data; the data itself lives in
packages/shared/src/analytics/user-index.ts, and the engagement-tier weights come from
relationship-insights.ts. The Activity page's split between record and person sits on
activity-taxonomy.ts. Where the prose says a rule, it is at that module, not the
README.

Finding people in your Instagram archive, and what the app will never claim — LMKFR Blog