qualiaDocs

Concepts

Briefings and ICP fit

Every field Qualia returns for a researched signup, and how the ICP fit score works.

A briefing is what Qualia writes about an actor after researching them: who the person is, what their company does, and how well they match your ICP. This page lists every field the API returns and explains the score.

Read a briefing

The briefing is part of the actor. When the actor's status is enriched, GET /v1/actors/{actorId} returns it as flat fields:

{
  "id": "q3ab8fnt2kzw7yx1mvd05hce",
  "email": "anna@ridgeline.co",
  "name": "Anna Park",
  "status": "enriched",
  "rejectionReason": null,
  "failureReason": null,
  "score": 82,
  "scoringStatus": "ok",
  "title": "Head of Platform Engineering",
  "linkedinUrl": "https://www.linkedin.com/in/annapark-ridgeline",
  "location": "Denver, Colorado",
  "companyName": "Ridgeline",
  "companyDomain": "ridgeline.co",
  "industry": "Logistics software",
  "companyLocation": "Denver, Colorado",
  "createdAt": "2026-09-29T14:02:11.482Z",
  "enrichedAt": "2026-09-29T14:04:37.915Z",
  "summary": "Anna Park leads platform engineering at Ridgeline, a logistics software company that builds route planning tools for regional freight carriers. She joined in 2024 after six years on infrastructure teams at larger SaaS companies.",
  "highlights": [
    "Ridgeline raised a Series A in June 2026.",
    "Ridgeline lists four open backend and data engineering roles.",
    "Anna spoke about moving Ridgeline's event pipeline to managed infrastructure at a DevOps meetup in 2025."
  ],
  "bio": "Platform engineer focused on developer tooling and reliable data pipelines.",
  "companyDescription": "Ridgeline builds route planning and dispatch software for regional freight carriers."
}

Fields

Every research field is null until the actor is enriched. A field stays null after that if Qualia could not find the fact. Write your code so it handles null in any of them.

The person

FieldTypeDescription
namestring or nullThe person's full name as Qualia confirmed it. Falls back to the name you sent.
titlestring or nullTheir job title.
locationstring or nullWhere they are based, such as Denver, Colorado.
linkedinUrlstring or nullTheir LinkedIn profile URL.
biostring or nullA short paragraph from their own profile, site, or speaker bio.

The company

FieldTypeDescription
companyNamestring or nullTheir employer's name.
companyDomainstring or nullThe company's main website domain.
industrystring or nullThe company's main industry.
companyLocationstring or nullWhere the company is headquartered.
companyDescriptionstring or nullOne sentence on what the company does and who it serves.

The research

FieldTypeDescription
summarystring or nullTwo or three sentences on who the person is and what their company does. Written in plain language, based on what Qualia found.
highlightsstring array or nullShort facts worth knowing before you reach out, such as funding, hiring, or recent moves.

Fit and status

FieldTypeDescription
scorenumber or nullICP fit from 0 to 100. See ICP fit score.
scoringStatusstringWhy score is set or null. See When the score is null.
statusstringThe actor's lifecycle status. See Actors.
rejectionReasonstring or nullWhy Qualia declined the signup, when status is rejected.
failureReasonstring or nullWhy the run failed, when status is failed, for example agent_error.

Identity and timing

FieldTypeDescription
idstringThe actor ID. The same value as actorId in the create response.
emailstringThe email you sent, in lowercase.
createdAtstringWhen you first sent this email, in ISO 8601 format.
enrichedAtstring or nullWhen the research finished, in ISO 8601 format.

ICP fit score

score is a number from 0 to 100. It measures how closely the person and their company match the ICP you described in Settings → ICP. Qualia looks at the company's shape and sales motion, the person's role and seniority, recent events at the company, and any disqualifiers you listed.

A high score means a strong match. It does not mean the person is ready to buy.

The dashboard and Slack label scores in four bands. Use the same bands in your own code if you want to match them:

ScoreLabel
85 to 100Hot
60 to 84Qualified
40 to 59Review
0 to 39Low

When the score is null

scoringStatus tells you why score is null:

scoringStatusMeaningWhat to do
pendingResearch is still running, or the actor was rejected or failed before scoring.Wait for status to become enriched.
okScoring worked. score is set.Nothing.
skipped_no_icp_profileYour organization has no ICP.Describe your ICP in Settings → ICP.
skipped_icp_not_readyYour ICP is not finished.Finish describing your ICP in Settings → ICP.
skipped_icp_invalidYour ICP could not be read.Update your ICP in Settings → ICP. New signups are scored against the updated ICP.
skipped_no_briefingResearch found too little to score.Nothing. The rest of the briefing may still be useful.
failedScoring hit an error.Nothing for this actor, because Qualia scores each actor once. If it keeps happening, contact support with the actor IDs.

An actor is scored once, when research finishes. Changing your ICP later does not re-score existing actors.

What the dashboard and Slack add

The API returns the facts and the score. The dashboard and the Slack message also show the reasoning behind the score: which parts of your ICP the person matches, what is missing, and suggested talking points. Open any signup in the dashboard, or connect Slack.

Next steps