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
| Field | Type | Description |
|---|---|---|
name | string or null | The person's full name as Qualia confirmed it. Falls back to the name you sent. |
title | string or null | Their job title. |
location | string or null | Where they are based, such as Denver, Colorado. |
linkedinUrl | string or null | Their LinkedIn profile URL. |
bio | string or null | A short paragraph from their own profile, site, or speaker bio. |
The company
| Field | Type | Description |
|---|---|---|
companyName | string or null | Their employer's name. |
companyDomain | string or null | The company's main website domain. |
industry | string or null | The company's main industry. |
companyLocation | string or null | Where the company is headquartered. |
companyDescription | string or null | One sentence on what the company does and who it serves. |
The research
| Field | Type | Description |
|---|---|---|
summary | string or null | Two or three sentences on who the person is and what their company does. Written in plain language, based on what Qualia found. |
highlights | string array or null | Short facts worth knowing before you reach out, such as funding, hiring, or recent moves. |
Fit and status
| Field | Type | Description |
|---|---|---|
score | number or null | ICP fit from 0 to 100. See ICP fit score. |
scoringStatus | string | Why score is set or null. See When the score is null. |
status | string | The actor's lifecycle status. See Actors. |
rejectionReason | string or null | Why Qualia declined the signup, when status is rejected. |
failureReason | string or null | Why the run failed, when status is failed, for example agent_error. |
Identity and timing
| Field | Type | Description |
|---|---|---|
id | string | The actor ID. The same value as actorId in the create response. |
email | string | The email you sent, in lowercase. |
createdAt | string | When you first sent this email, in ISO 8601 format. |
enrichedAt | string or null | When 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:
| Score | Label |
|---|---|
| 85 to 100 | Hot |
| 60 to 84 | Qualified |
| 40 to 59 | Review |
| 0 to 39 | Low |
When the score is null
scoringStatus tells you why score is null:
scoringStatus | Meaning | What to do |
|---|---|---|
pending | Research is still running, or the actor was rejected or failed before scoring. | Wait for status to become enriched. |
ok | Scoring worked. score is set. | Nothing. |
skipped_no_icp_profile | Your organization has no ICP. | Describe your ICP in Settings → ICP. |
skipped_icp_not_ready | Your ICP is not finished. | Finish describing your ICP in Settings → ICP. |
skipped_icp_invalid | Your ICP could not be read. | Update your ICP in Settings → ICP. New signups are scored against the updated ICP. |
skipped_no_briefing | Research found too little to score. | Nothing. The rest of the briefing may still be useful. |
failed | Scoring 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
- Get briefing results. Poll for briefings in production and act on the score.
- Fetch an actor. The full endpoint reference.