Insert a person and immediately kick off the async deep research pipeline. Internal UI endpoint.
deep_research_people row and queues the deep-research-enrich Trigger.dev task in the same request. The row starts at status: "running" and transitions to complete (or failed) minutes later as the pipeline finishes its multi-hop web search plus LLM synthesis.
Two input modes are accepted, and you must pick exactly one:
linkedinUrl containing linkedin.com/in/. The pipeline derives identity from the profile; firstName, lastName, and company are ignored.firstName, lastName, and company. Every field is required; the pipeline resolves the company domain itself.DEEP_RESEARCH credit, charged only after the Trigger.dev task is successfully queued. If dispatch fails, the row is reset to idle and no credit is charged.
This is the internal UI-facing entry point. Partner-authenticated callers should use createResearchV1.
createDeepResearchPerson returns 201 with person.id and person.status: "running".getDeepResearchReport with that id every 30 seconds.report is non-null (pipeline complete) or when re-reading the person via listDeepResearchPeople shows status: "failed".error: "This person has already been added". Read the person back via listDeepResearchPeople instead of retrying.Credit gating. A 402 response carries required and balance — surface these to the human and do not retry until credits are topped up.Input mode. Pick ONE. Passing neither (or only a partial name + company trio) returns 400.Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Provide EITHER linkedinUrl OR the full trio firstName + lastName + company. Every other combination returns 400.
Required when using the name + company form. Ignored when linkedinUrl is provided.
1Required when using the name + company form. Ignored when linkedinUrl is provided.
1Required when using the name + company form. Stored as-is — the pipeline resolves the actual domain.
1Full LinkedIn profile URL (must contain linkedin.com/in/). When provided, the name + company fields are optional; the pipeline derives identity from the LinkedIn profile.
Person created and enrichment task queued. Poll getDeepResearchReport for the final report.
A person tracked for deep research. The row is created first; enrichment + report generation happen asynchronously in a Trigger.dev pipeline.