This prompt is built for media monitoring pipelines, market intelligence workflows, and news aggregation systems that need to extract organization entities from articles and resolve them to canonical forms. The ideal user is a data engineer or intelligence analyst who must turn unstructured news text into structured, queryable records of every organization mentioned—including legal names, ticker symbols, and parent-subsidiary relationships. The required context is a full news article body, and optionally a target date or a reference knowledge base of known organizations to improve disambiguation accuracy.
Prompt
Organization Entity Extraction Prompt for News Articles

When to Use This Prompt
Defines the ideal job-to-be-done, target user, required context, and explicit boundaries for the Organization Entity Extraction Prompt.
Use this prompt when you need a structured JSON payload that downstream systems can ingest without manual cleanup. The prompt handles DBA names, abbreviations, post-merger entity confusion, and ambiguous references by requiring explicit disambiguation rationale in the output. It is designed for batch processing of articles where completeness matters more than sub-second latency. The output schema includes fields for canonical_name, ticker, parent_organization, mention_type, and disambiguation_rationale, making it suitable for populating entity databases, generating market landscape reports, or feeding alerting systems with precise organization references.
Do not use this prompt for real-time streaming with sub-second latency requirements—the disambiguation reasoning step adds inference time that is incompatible with high-throughput, low-latency pipelines. Do not use it for documents where organization mentions are incidental rather than central to the extraction task, such as personal blog posts or fiction. For articles where organizations are mentioned only in passing, a simpler NER span detection prompt will be faster and cheaper. If your use case involves extracting entities across multiple languages simultaneously, pair this prompt with a language-detection pre-processing step and consider the Multi-Language Entity Recognition Prompt Template instead.
Before deploying this prompt, validate that your downstream system can handle null fields when an organization has no ticker or no known parent. The prompt will return an empty string for missing optional fields rather than omitting them, which prevents schema breakage in strict ingestion pipelines. For high-stakes use cases—such as financial compliance monitoring or regulatory reporting—always route low-confidence extractions to a human review queue using the confidence score included in each entity record.
Use Case Fit
Where the Organization Entity Extraction Prompt works well and where it introduces unacceptable risk. Use these cards to decide if this prompt fits your pipeline before you invest in eval design.
Good Fit: Media Monitoring Pipelines
Use when: ingesting high-volume news feeds where organizations are the primary subjects. The prompt reliably extracts legal names, tickers, and parent-subsidiary relationships from journalistic prose. Guardrail: pair with a source-attribution prompt to anchor every extracted org to its sentence span for downstream audit.
Good Fit: Pre-Market Intelligence Briefs
Use when: analysts need structured org mentions before writing summaries. The prompt's disambiguation logic handles post-merger naming and DBA detection that keyword search misses. Guardrail: route low-confidence extractions to a human review queue before they enter the brief.
Bad Fit: Real-Time Trading Signals
Avoid when: extraction latency or a single hallucinated ticker could trigger an automated trade. The prompt is not hardened for deterministic, low-latency execution. Guardrail: never connect extraction output directly to order routing without a hardcoded symbol whitelist and human approval step.
Bad Fit: Unstructured Social Media Threads
Avoid when: the source text is short, sarcastic, or relies on casual handles instead of legal names. The prompt expects journalistic sentence structure and will produce noisy or null results on fragmented social posts. Guardrail: use a lightweight mention-detection classifier first; only route substantive posts to this extraction prompt.
Required Inputs
Minimum: full article text plus a publication date. Strongly recommended: a canonical org knowledge base snippet for disambiguation. Without a KB reference, the prompt may confuse similarly named entities. Guardrail: if no KB context is available, set a lower confidence threshold and flag all orgs for manual review.
Operational Risk: Post-Merger Entity Confusion
Risk: the model may extract a legacy name when the article discusses the acquiring entity, or vice versa. This is the most common production failure. Guardrail: always include the article date in the prompt and instruct the model to prefer the entity name valid at that date. Add an eval check specifically for merger-sensitive test cases.
Copy-Ready Prompt Template
A reusable, schema-driven prompt for extracting organization entities from news articles with legal name, ticker, and parent-subsidiary disambiguation.
The prompt template below is designed to be dropped into your AI harness. It expects a news article as input and returns a structured JSON payload of organization entities. Every placeholder is enclosed in square brackets and must be replaced by your application logic before the model call. The template enforces strict output typing, confidence annotation, and explicit handling of ambiguous or missing data, making it safe for downstream ingestion into media monitoring dashboards, knowledge graphs, or alerting pipelines.
textYou are an expert entity extraction system specializing in financial and corporate news. Your task is to read the provided news article and extract every organization entity mentioned. For each organization, you must return a structured JSON object that includes the legal name, any mentioned ticker symbol, and the parent organization if a subsidiary relationship is implied or stated. You must disambiguate between the organization and any other entity type (person, location, product). ## INPUT [ARTICLE_TEXT] ## OUTPUT_SCHEMA Return a single JSON object with a key "organizations" containing an array of objects. Each object must have the following fields: - "mention_text": string (the exact text span from the article) - "canonical_name": string (the resolved legal name, or null if unresolvable) - "ticker": string | null (the stock ticker if explicitly mentioned, otherwise null) - "parent_organization": string | null (the canonical name of the parent entity if a subsidiary relationship is stated or strongly implied, otherwise null) - "confidence": number (a score between 0.0 and 1.0 indicating extraction confidence) - "disambiguation_note": string | null (explain reasoning if the mention is ambiguous, e.g., 'Apple' as company vs. fruit, or null if unambiguous) ## CONSTRAINTS - Do not extract organizations that are only referenced as a location (e.g., "Washington" as a city, not Washington Post). - If an organization is mentioned multiple times, return only one record with the most complete information. - For DBAs, abbreviations, or legacy names, set "canonical_name" to the current legal name if known from the article context; otherwise, set it to null and note the ambiguity in "disambiguation_note". - If a ticker is not explicitly stated, do not guess. Set "ticker" to null. - If no organizations are found, return {"organizations": []}. ## EXAMPLES [FEW_SHOT_EXAMPLES] ## RISK_LEVEL [RISK_LEVEL]
To adapt this template, replace [ARTICLE_TEXT] with the full body of the news article, ensuring any pre-processing (like paywall removal or HTML stripping) is done in the application layer. The [FEW_SHOT_EXAMPLES] placeholder should be replaced with 2-4 annotated examples that demonstrate the desired behavior for edge cases, such as post-merger entity names, common abbreviations (e.g., "IBM" for "International Business Machines Corporation"), and parent-subsidiary disambiguation. The [RISK_LEVEL] placeholder should be set to a string like "high" or "low" to dynamically adjust the model's caution; for instance, in a high-risk financial compliance setting, you might append an additional instruction to flag any entity with a confidence score below 0.9 for human review. After the model returns the JSON payload, always validate it against the expected schema before allowing it to reach any downstream system. A malformed or missing field can break ingestion pipelines, so implement a retry or repair step if the output fails validation.
Prompt Variables
Required and optional placeholders for the Organization Entity Extraction Prompt. Each variable must be populated before the prompt is sent to the model. Validation notes describe how to check that the input is well-formed and safe.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[ARTICLE_TEXT] | Full text of the news article to extract organization entities from | Apple Inc. announced today that its subsidiary, Beats Electronics, will launch a new product line. The Cupertino-based tech giant... | Required. Must be a non-empty string. Check for minimum character length (>50) to ensure sufficient context. Reject if only a headline or URL. |
[ARTICLE_SOURCE] | Identifier for the publication or feed the article originated from | Reuters | Required. Used to select source-specific normalization rules (e.g., known editorial style for company names). Must match a known source in the configuration registry. |
[PUBLICATION_DATE] | Publication date of the article in ISO 8601 format | 2024-03-15 | Required. Used to resolve temporal entity confusion (e.g., post-merger names). Must parse as a valid date. Reject future dates beyond the current system time. |
[TARGET_ENTITY_TYPES] | List of organization entity subtypes to extract | ["Public_Company", "Private_Company", "Subsidiary", "Government_Agency"] | Optional. Defaults to all known types if omitted. Must be a valid JSON array of strings. Each string must match an enum in the canonical entity taxonomy. |
[CANONICAL_KB_CONTEXT] | Pre-fetched canonical records for likely organizations mentioned in the article | [{"name": "Apple Inc.", "ticker": "AAPL", "parent": null}, {"name": "Beats Electronics LLC", "ticker": null, "parent": "Apple Inc."}] | Optional but strongly recommended. Improves disambiguation accuracy. Must be a valid JSON array. Each object must include a 'name' key. Validate that the KB context is scoped to the article's likely domain to avoid misleading the model. |
[OUTPUT_SCHEMA] | Strict JSON schema the model must conform to for each extracted entity | {"type": "object", "properties": {"legal_name": {"type": "string"}, "mention_text": {"type": "string"}, "ticker": {"type": ["string", "null"]}, "entity_type": {"type": "string"}, "parent_org": {"type": ["string", "null"]}, "confidence": {"type": "number"}}, "required": ["legal_name", "mention_text", "entity_type", "confidence"]} | Required. Must be a valid JSON Schema object. The application layer must validate the final model output against this schema. Include 'null' as an allowed type for optional fields like ticker and parent_org to prevent hallucinated empty strings. |
[NORMALIZATION_RULES] | Specific rules for canonicalizing organization names |
| Required. A clear, ordered list of string rules. These rules are injected directly into the prompt's instructions. Validate that rules do not contradict each other. Test with a known set of aliases to ensure the model applies them correctly. |
[ABSTENTION_THRESHOLD] | Confidence score below which the model should omit the entity or flag it for human review | 0.75 | Optional. Defaults to 0.70 if not provided. Must be a float between 0.0 and 1.0. The application layer should route entities with confidence below this threshold to a review queue instead of directly ingesting them. |
Implementation Harness Notes
How to wire the organization entity extraction prompt into a production application with validation, retries, and human review gates.
This prompt is designed to be called from an application layer, not used as a standalone chat. The typical integration pattern is: fetch a news article, assemble the prompt with the article text and your canonical organization registry, call the model, validate the JSON output against a strict schema, and route low-confidence or malformed results to a human review queue before ingestion. Treat the model call as one step in a pipeline, not the entire pipeline.
Model choice and tool use. Use a model with strong JSON mode or structured output support (e.g., GPT-4o with response_format, Claude 3.5 Sonnet with tool use, or Gemini 1.5 Pro with controlled generation). Do not rely on the model to produce valid JSON without a schema constraint—always pass the expected output schema as part of the API call. If your provider supports it, define the output as a typed object with required fields: organization_name, legal_name, ticker, parent_organization, subsidiary_relationship, mention_context, confidence, and disambiguation_notes. For models without native structured output, include the schema inline in the prompt and add a post-processing validator that rejects malformed payloads.
Validation and retry logic. After receiving the model response, validate that: (1) the JSON parses without error, (2) every required field is present, (3) confidence is a float between 0.0 and 1.0, (4) ticker is either a valid uppercase symbol or explicit null, and (5) organization_name matches at least one span in the source article text. If validation fails, retry once with the same prompt plus the validation error message appended as a correction instruction. If the second attempt also fails, route the article to a human review queue with the raw model output and validation errors attached. Do not silently ingest invalid entity records.
Grounding and hallucination checks. For each extracted organization, verify that the mention_context field contains a verbatim substring from the article. If your application has access to a canonical organization database (e.g., an internal master data table or a service like OpenCorporates), cross-reference the legal_name and ticker against that source. Flag any organization where the model asserts a ticker or parent relationship that cannot be confirmed in your canonical source. This is especially important for post-merger entities, DBA names, and subsidiaries where the model may confidently produce plausible but incorrect resolutions.
Human review and escalation. Set a confidence threshold (we recommend 0.85 for fully automated ingestion) below which extracted entities are routed to a review queue. Additionally, always escalate when: the model flags disambiguation_notes with phrases like 'possible confusion with,' 'ambiguous reference,' or 'post-merger uncertainty'; the article mentions multiple organizations with similar names; or the extracted parent_organization conflicts with your internal hierarchy data. The review interface should show the original article span, the model's extraction, and any canonical database matches side by side.
Logging and observability. Log every extraction call with: prompt version, model identifier, input article hash, output entity count, validation pass/fail, retry count, and whether the result was auto-ingested or escalated. This telemetry lets you track extraction quality over time, detect model drift after provider updates, and identify news sources or organization types that consistently produce low-confidence results. Wire these logs into your existing monitoring stack so that a sudden drop in validation pass rate triggers an alert rather than silently degrading your entity database.
Expected Output Contract
Defines the strict JSON schema for the organization entity extraction prompt. Use this contract to validate model output before ingestion into downstream systems.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
organizations | Array of objects | Must be present even if empty. Validate as JSON array. | |
organizations[].canonical_name | String | Must match the official legal name. Reject if it is a DBA, ticker, or abbreviation. | |
organizations[].mention_text | String | Must be an exact substring match from [ARTICLE_TEXT]. Fail if not found in source. | |
organizations[].ticker | String or null | If publicly traded, must be a valid exchange ticker. Use null if private or not applicable. | |
organizations[].entity_type | Enum: parent, subsidiary, standalone | Must be one of the three enum values. Reject any other string. | |
organizations[].parent_organization | String or null | Required if entity_type is subsidiary. Must be a canonical_name present in the same output array. Use null otherwise. | |
organizations[].confidence | Number | Must be a float between 0.0 and 1.0. Flag for human review if below 0.85. | |
organizations[].source_span | Object | Must contain start_char and end_char integers. Validate that the span in [ARTICLE_TEXT] matches mention_text. |
Common Failure Modes
What breaks first when extracting organization entities from news articles and how to guard against it.
DBA and Trade Name Confusion
What to watch: The model extracts a widely recognized consumer brand (e.g., 'Google') but misses the legal entity (e.g., 'Alphabet Inc.'). It may also treat a subsidiary as the parent. Guardrail: Add a specific instruction to resolve all organizations to their ultimate parent legal name and include a legal_name field separate from mentioned_as. Validate against a known org hierarchy lookup tool.
Post-Merger Entity Drift
What to watch: The model uses a legacy name for an acquired company (e.g., 'Twitter' instead of 'X Corp') because the training data cutoff predates the event. Guardrail: Implement a retrieval-augmented generation (RAG) step that searches a recent corporate actions database for the article's publication date. If a merger or acquisition is detected, force the canonical name to the post-event entity.
Ticker Symbol Hallucination
What to watch: The model confidently assigns a ticker symbol to a private company, a subsidiary that doesn't trade independently, or simply invents a plausible-looking ticker. Guardrail: Restrict ticker extraction to a strict 'only if explicitly mentioned in the text' rule. Add a post-processing validation step that checks extracted tickers against a verified exchange listing API before accepting the output.
Context Window Truncation
What to watch: A long article is chunked for processing, and the full legal name appears only in the first chunk while a coreference ('the company') appears later. The model fails to resolve the coreference and either misses the entity or hallucinates a new one. Guardrail: Use a sliding context window with overlap. Pre-process the text to replace coreferences with their named entities before extraction, or use a map-reduce pattern where entities from all chunks are resolved in a final aggregation step.
Government and NGO Misclassification
What to watch: The model extracts 'The White House' as an organization but fails to normalize it to 'Executive Office of the President, United States Government'. It may also confuse a regulatory body with a private company. Guardrail: Provide a taxonomy of entity subtypes (Public Corp, Private Corp, Government Agency, NGO) in the prompt. Instruct the model to classify the entity type and use a specific normalization path for government bodies, linking them to their jurisdiction.
Ambiguous Abbreviation Resolution
What to watch: The model encounters 'CSL' and must choose between 'CSL Limited' (biotech), 'Carlisle Companies' (manufacturing), or 'CSL Plasma' (a subsidiary) based only on local context. It guesses wrong. Guardrail: Instruct the model to output a confidence_score for disambiguated abbreviations. If confidence is below a threshold (e.g., 0.9), flag the entity for human review and do not auto-commit the canonical form to the database.
Evaluation Rubric
Use this rubric to test the quality of organization entity extraction before deploying the prompt to production. Each criterion targets a specific failure mode common in news article entity extraction.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Legal Name Extraction | Output contains the full legal entity name, not just a DBA or brand name, when the article provides it. | Output returns 'Google' when the article text specifies 'Alphabet Inc.' in a formal context. | Run against 20 articles with known legal names. Check if [ORGANIZATION_LEGAL_NAME] matches the ground-truth legal entity. |
Ticker Symbol Accuracy | Ticker is extracted and matches the exchange and symbol for the correct share class when mentioned. | Output returns 'BRK.A' for a general article about Berkshire Hathaway or returns a ticker for a private company. | Validate [TICKER] against a reference data set. Flag any ticker assigned to a company with no public listing in the article. |
Parent-Subsidiary Disambiguation | The [ENTITY_RELATIONSHIP] field correctly identifies the entity as a parent, subsidiary, or standalone unit based on context. | Output labels 'YouTube' as a standalone entity without referencing 'Alphabet Inc.' as the parent when the article discusses the subsidiary. | Test with articles mentioning known subsidiaries. Check if [PARENT_ORG] is populated and [RELATIONSHIP_TYPE] is correct. |
Post-Merger Name Resolution | The prompt uses the current, post-acquisition entity name and indicates the former name in [LEGACY_NAME] when relevant. | Output returns 'X Corp.' but the article is from 2022 and refers to 'Twitter, Inc.' without any acquisition context. | Use a dataset of articles spanning acquisition dates. Verify [ORGANIZATION_LEGAL_NAME] aligns with the article's publication date. |
Abbreviation and Acronym Handling | Common abbreviations (e.g., IBM, GE) are resolved to the full legal name in [ORGANIZATION_LEGAL_NAME] if the full name is not the standard reference. | Output returns 'International Business Machines Corporation' as the primary name when the article only uses 'IBM'. | Check [ORGANIZATION_LEGAL_NAME] against a canonical list. The standard name should be the one used in official communications. |
Confidence Scoring Discipline | A confidence score below the [CONFIDENCE_THRESHOLD] is assigned when the entity mention is ambiguous or the source text is vague. | Output returns a 0.95 confidence for 'Apple' in a tech article without checking if the context refers to Apple Inc. or Apple Corps. | Review [CONFIDENCE] scores for a set of ambiguous sentences. Scores should drop when disambiguation is impossible from the local context. |
Null Handling for Missing Fields | The output explicitly uses | Output returns an empty string '' or a hallucinated value for [TICKER] when the article mentions a private company. | Validate the JSON output schema. Assert [TICKER] is exactly |
Source Attribution Accuracy | Each extracted entity includes a [SOURCE_SPAN] that exactly matches the text from which the entity was derived. | The [SOURCE_SPAN] contains a paraphrased or normalized version of the text instead of a direct quote from the article. | Use a substring check to verify that every [SOURCE_SPAN] exists verbatim within the input [ARTICLE_TEXT]. |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt
Use the base prompt with a frontier model (GPT-4o, Claude 3.5 Sonnet) and a simple JSON schema. Skip confidence scores and parent-subsidiary disambiguation initially. Focus on getting legal names and tickers correct for the top 3-5 organizations mentioned.
codeExtract organizations from [ARTICLE_TEXT]. Return JSON array with fields: name, ticker (if public), mention_context.
Watch for
- DBA names extracted as separate entities instead of aliases
- Ticker symbols assigned to wrong parent company
- Post-merger entities listed under legacy names
- Model skipping organizations mentioned only by abbreviation

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us