{"templateName":"blog-page","cssClassNames":"blog-page page basicpage summit-page","allowedRenditionsWidth":["320","480","640","768","960","1200","1440","1920"],"description":"Turn business documents into AI-ready data with Snowflake Cortex AI Functions. Build enterprise search, automate document processing and analyze documents at scale.","language":"en","title":"Document Intelligence with Snowflake: Activate Business Documents","analyticsPageType":"homepage","analyticsCategory":"general","analyticsSubCategory":"","excludeFromAnalytics":false,":mappedPath":"/en/blog/document-intelligence-snowflake-cortex-ai-functions/",":type":"snowflake-site/components/structure/page",":items":{"root":{"columnCount":12,"columnClassNames":{"experiencefragment-banner":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-sub-header":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-pre-footer":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-header":"aem-GridColumn aem-GridColumn--default--12","markup_editor-table":"aem-GridColumn aem-GridColumn--default--12","responsivegrid":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-footer":"aem-GridColumn aem-GridColumn--default--12","markup_editor":"aem-GridColumn aem-GridColumn--default--12","container_47873732":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12",":items":{"experiencefragment-banner":{"id":"experiencefragment-13c00551ee","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/pushdown-banner/pushdown-banner-blank/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/pushdown-banner/pushdown-banner-blank.xfmodel.json?callerPage=/content/snowflake-site/global/en/blog/document-intelligence-snowflake-cortex-ai-functions"},"experiencefragment-header":{"id":"experiencefragment-c8781a9af2","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master.xfmodel.json?callerPage=/content/snowflake-site/global/en/blog/document-intelligence-snowflake-cortex-ai-functions","appliedCssClassNames":"snowflake-sticky-nav-host"},"experiencefragment-sub-header":{"id":"experiencefragment-402847f923","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/sub-navigation/master/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/sub-navigation/master.xfmodel.json?callerPage=/content/snowflake-site/global/en/blog/document-intelligence-snowflake-cortex-ai-functions"},"responsivegrid":{"columnCount":12,"columnClassNames":{"container_breadcrumb":"aem-GridColumn aem-GridColumn--default--12","container_main_content":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12",":items":{"container_breadcrumb":{"layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"breadcrumb":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"blog-page-breadcrumb-indentation",":type":"snowflake-site/components/container",":items":{"breadcrumb":{"id":"breadcrumb-5257eafa9b","breadcrumbItems":[{"title":"Blog","path":"/en/blog/","active":false},{"title":"Activate the Context Layer of Business Activity: Your Documents","path":"/en/blog/document-intelligence-snowflake-cortex-ai-functions/","active":false}],":type":"snowflake-site/components/blog/breadcrumb"}},":itemsOrder":["breadcrumb"],"appliedCssClassNames":"snowflake-container"},"container_main_content":{"layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"flexible_column_container":"aem-GridColumn aem-GridColumn--default--12","related_content":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"main-content",":type":"snowflake-site/components/container",":items":{"flexible_column_container":{"id":"flexible-column-container-bd5bc3fa36","propertiesId":"snowflake-blog-template-main-container","type":"2-column-60-40","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"none","bottomPadding":"none","spaceBetween":"none","reverseOnMobile":true,"carouselOnMobile":false,"backgroundImageOption":"none","flexible_column_content_container_1":{"layout":"SIMPLE","id":"container-5cfb6f424b",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"container_hero":{"layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"blog_hero":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-f77f6d123e",":type":"snowflake-site/components/container",":items":{"blog_hero":{"id":"blog-hero-710dd2b389","linkedInShareUrl":"https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fwww.snowflake.com%2Fcontent%2Fsnowflake-site%2Fglobal%2Fen%2Fblog%2Fdocument-intelligence-snowflake-cortex-ai-functions&title=Activate+the+Context+Layer+of+Business+Activity%3A+Your+Documents","twitterShareUrl":"https://x.com/intent/post?url=https%3A%2F%2Fwww.snowflake.com%2Fcontent%2Fsnowflake-site%2Fglobal%2Fen%2Fblog%2Fdocument-intelligence-snowflake-cortex-ai-functions&text=Activate+the+Context+Layer+of+Business+Activity%3A+Your+Documents","facebookShareUrl":"https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.snowflake.com%2Fcontent%2Fsnowflake-site%2Fglobal%2Fen%2Fblog%2Fdocument-intelligence-snowflake-cortex-ai-functions","authors":[{"authorImage":{"id":"image-93689d7ae5","height":"184","src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--0a2f7a43-33b6-4f7f-b829-742f53e609da/jessie.jpg?quality=85&preferwebp=true","alt":"Jessie Felix","lazyEnabled":true,"width":"184",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-10a60d4692","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/jessie-felix/"},"linkTargetContentType":"DOCUMENT_LEARN",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Jessie Felix"}}],"image":{"id":"image-ed0596788d","height":"720","src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--acd1951a-99ab-4b91-bc5e-95eacb16d3a4/01-finserv.jpg?quality=85&preferwebp=true","lazyEnabled":true,"width":"1680",":type":"snowflake-site/components/image"},"timeToRead":"7","publicationDate":"JUL 20, 2026","title":{"lines":["Activate the Context Layer of Business Activity: Your Documents"],"type":"heading2",":type":"snowflake-site/components/title-v2"},":type":"snowflake-site/components/blog/blog-hero"}},":itemsOrder":["blog_hero"]},"responsivegrid_content":{"columnCount":12,"columnClassNames":{"image_1526792697":"aem-GridColumn aem-GridColumn--default--12","container":"aem-GridColumn aem-GridColumn--default--12","image":"aem-GridColumn aem-GridColumn--default--12","code_snippet":"aem-GridColumn aem-GridColumn--default--12","blog_text":"aem-GridColumn aem-GridColumn--default--12","blog_text_913456882":"aem-GridColumn aem-GridColumn--default--12","blog_text_284190325":"aem-GridColumn aem-GridColumn--default--12","blog_text_1867668563":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","appliedCssClassNames":"snowflake-layout-container-inner-padding-small",":items":{"blog_text":{"id":"blog-text-ccc8ae6977","text":"\u003Cp\u003EDocuments are simply how business gets done. They act as the \u003Cb\u003Eprimary interface for work and the context layer for almost every business activity\u003C/b\u003E. Planning, alignment, deep analysis, approvals and execution all produce a massive trail of text, slides and sheets.\u003C/p\u003E\r\n\u003Cp\u003EYet, even as new research, market analysis, clinical notes and novel ideas move immediately into documents, traditional data stacks and processing tools struggle to make sense of them. An invoice arrives with a new vendor. Legal searches agreements for a liability clause. Equity Research compares earnings reports to identify trends. Traditional tools often struggle to digitize this document data with the high accuracy required for most enterprises to trust automating business processes.\u003C/p\u003E\r\n\u003Cp\u003EThis is exactly why we built Snowflake's native \u003Ca href=\"https://docs.snowflake.com/en/user-guide/snowflake-cortex/ai-documents\" target=\"_blank\" rel=\"noopener noreferrer\"\u003Edocument intelligence capabilities\u003C/a\u003E that treat your documents like first-class data. In this blog, we explore how organizations have been able to use Snowflake Cortex AI Functions to build document intelligence workflows that scale hundreds of thousands of documents per day.\u003C/p\u003E\r\n\u003Ch2\u003EThree patterns driving business outcomes\u003C/h2\u003E\r\n\u003Cp\u003ECortex AI Functions is designed to be the foundation for enterprise search applications that help employees and users find information faster, automating business processes by extracting data from documents and enabling deeper research and analysis across large document libraries.\u003C/p\u003E\r\n\u003Cp\u003E&nbsp;\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"image":{"id":"image-d1dcebdf71","height":"756","src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--750ba9d1-d217-410a-a9c8-7da6c854a45f/ai-parse-document.png?quality=85&preferwebp=true","alt":"ai ","lazyEnabled":true,"width":"1928",":type":"snowflake-site/components/image"},"blog_text_913456882":{"id":"blog-text-70b40dc491","text":"\u003Ch3\u003EActivating knowledge\u003C/h3\u003E\r\n\u003Cp\u003EOn the surface, building a search application sounds straightforward until you encounter real enterprise documents. An earnings report contains tables, charts, footnotes and complex layouts. A contract spans hundreds of pages with clauses spread across sections and appendices. A healthcare form combines structured fields, handwritten notes and scanned images. The challenge is not retrieving information, it's first converting every document into data that AI can accurately understand.\u003C/p\u003E\r\n\u003Cp\u003E\u003Ca href=\"https://docs.snowflake.com/en/user-guide/snowflake-cortex/parse-document\" target=\"_blank\" rel=\"noopener noreferrer\"\u003EAI_PARSE_DOCUMENT\u003C/a\u003E is the foundation of how enterprises are turning documents into data. If all you need is a text representation of a digital or scanned document, OCR mode extracts text from scanned documents and images. But for enterprise search, RAG and agent-powered applications, structure often contains meaning. LAYOUT mode preserves the original structure of a document so downstream AI systems can retrieve, reason over and generate answers using the document as it was intended to be read. This includes preserving reading order across complex multi-column layouts, extracting table structures, maintaining visual hierarchy, and \u003Ca href=\"https://docs.snowflake.com/en/user-guide/snowflake-cortex/parse-document#extract-and-describe-images\" target=\"_blank\" rel=\"noopener noreferrer\"\u003Ecapturing embedded images\u003C/a\u003E of charts, diagrams, and other graphical elements.\u003C/p\u003E\r\n\u003Cp\u003EThe result is structured document data that retains the context required for accurate retrieval. Rather than indexing a flattened stream of text, organizations can use \u003Ca href=\"https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-search/cortex-search-overview\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ECortex Search\u003C/a\u003E to retrieve content with the structural information needed to preserve meaning across complex documents. Cortex Search retrieves the most relevant sections from across the document corpus and grounds its response in the organization's own content. Because the workflow runs entirely inside Snowflake, the same governance and access controls applied to enterprise data also determine what users can search and retrieve.\u003C/p\u003E\r\n\u003Ch3\u003EBusiness process automation\u003C/h3\u003E\r\n\u003Cp\u003EWhen your daily business relies on a constant influx of invoices, contracts, claims forms, purchase orders or tax documents, manual data entry quickly becomes a bottleneck. More often than not, companies tell us many of these workflows begin with someone manually reading a document, locating the required information and entering it into a downstream system. At enterprise scale, this process is expensive, difficult to audit and often becomes the limiting factor in how quickly the business can operate.\u003C/p\u003E\r\n\u003Cp\u003ESnowflake handles high-volume, high-quality document extraction natively. \u003Ca href=\"https://docs.snowflake.com/en/user-guide/snowflake-cortex/document-extraction\" target=\"_blank\" rel=\"noopener noreferrer\"\u003EAI_EXTRACT\u003C/a\u003E allows you to describe the fields you need in plain English, such as vendor name, invoice date, total amount, payment terms, line items, and it returns structured JSON ready for downstream analytics, compliance and automation. Every extracted field includes a confidence score, enabling human-in-the-loop workflows where low-confidence results can be reviewed and validated against the original document. For organizations processing many different document types, \u003Ca href=\"https://docs.snowflake.com/en/sql-reference/functions/ai_classify\" target=\"_blank\" rel=\"noopener noreferrer\"\u003EAI_CLASSIFY\u003C/a\u003E (public preview) can act as a traffic controller, automatically routing different documents to different AI pipelines.\u003C/p\u003E\r\n\u003Cp\u003EThe result is a trusted extraction pipeline that converts documents into operational data. High-confidence extractions can be processed automatically, while lower-confidence results are routed for review. For specialized document formats, industry-specific terminology and compliance-sensitive workflows, AI_EXTRACT can be fine-tuned directly within Snowflake to further improve extraction accuracy.\u003C/p\u003E\r\n\u003Ch3\u003EDeep analytics across documents\u003C/h3\u003E\r\n\u003Cp\u003ESometimes the value is not hidden within a single document. It emerges from connecting information across hundreds or thousands of them. An equity research analyst may need to compare earnings reports across an industry to identify growth trends. A pharmaceutical company may need to review clinical studies and regulatory filings to understand the competitive landscape. The challenge is not finding information, it is synthesizing information across an entire document corpus.\u003C/p\u003E\r\n\u003Cp\u003ETo do this, customers are using AI_PARSE_DOCUMENT to convert large document collections into structured data while preserving the text, tables, images and layout needed for analysis. \u003Ca href=\"https://docs.snowflake.com/en/user-guide/snowflake-cortex/ai-complete-document-intelligence\" target=\"_blank\" rel=\"noopener noreferrer\"\u003EAI_COMPLETE\u003C/a\u003E then applies LLM reasoning across those collections, whether the task is summarizing findings, comparing documents, identifying trends, interpreting complex language or answering multi-hop questions that connect information across multiple sources. AI_EMBED can then be used to convert those summaries into vectors so documents can be clustered by semantic similarity, surfacing the top themes in a corpus of documents.\u003C/p\u003E\r\n\u003Cp\u003EThe result is a research and analytics pipeline that transforms document collections into actionable insight. Healthcare organizations can generate longitudinal views across thousands of clinical research documents, helping analysts and researchers synthesize findings at scale, while financial analysts can surface trends, risks and opportunities across large collections of reports and filings more efficiently than with manual analysis.\u003C/p\u003E\r\n\u003Ch2\u003EScaling for production\u003C/h2\u003E\r\n\u003Cp\u003EProving a document use case works on 10 files is easy. The real enterprise challenge is volume: \u003Cb\u003EHow do you productionalize this to process hundreds of thousands of documents every single day without your engineering pipeline collapsing?\u003C/b\u003E\u003C/p\u003E\r\n\u003Cp\u003ESnowflake simplifies this by utilizing \u003Cb\u003EDynamic Tables\u003C/b\u003E. Instead of building a sprawling orchestration system, you write one or more declarative SQL statements expressing a data pipeline that defines how you want your document data processed and how fresh your data should be. Snowflake handles the scheduling and refresh orchestration automatically.\u003C/p\u003E\r\n\u003Cp\u003EConsider a strategy team continuously ingesting annual reports from the companies they track. As new filings arrive, they want to extract structured data from each document, generate an analyst summary, cluster companies by strategic theme and surface which companies are making bets that don't fit the industry pattern.\u003C/p\u003E\r\n\u003Cp\u003EThe pipeline you can easily run using the new \u003Ca href=\"https://docs.snowflake.com/en/user-guide/cortex-code/cortex-code\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ECortex Code (CoCo)\u003C/a\u003E \u003Cb\u003Eai-functions-pipeline-builder\u003C/b\u003E skill combines three Cortex AI Functions:\u003C/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Cb\u003EAI_PARSE_DOCUMENT\u003C/b\u003E converts each annual report PDF into structured text, preserving tables, headings and reading order.\u003C/li\u003E\r\n\u003Cli\u003E\u003Cb\u003EAI_EXTRACT\u003C/b\u003E pulls named fields from the document, such as strategy themes, growth initiatives, headwinds, revenue and fiscal year.\u003C/li\u003E\r\n\u003Cli\u003E\u003Cb\u003EAI_COMPLETE\u003C/b\u003E distills each company into four analyst facets spanning strategy, financial performance, outlook and differentiation, and separately infers risks and opportunities from the full document text, including content that isn't explicitly labeled.\u003C/li\u003E\r\n\u003Cli\u003E\u003Cb\u003EAI_EMBED\u003C/b\u003E converts each company's summary into a vector so companies can be clustered by semantic similarity, named themes can be discovered across the corpus and outliers. Companies whose strategy fits no theme cleanly are surfaced automatically.\u003C/li\u003E\r\n\u003C/ul\u003E\r\n\u003Cp\u003E&nbsp;\u003C/p\u003E\r\n\u003Cp\u003E\u003Cb\u003ECoCo-generated SQL code\u003C/b\u003E\u003C/p\u003E\r\n\u003Cp\u003E&nbsp;\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"code_snippet":{"id":"code-snippet-02d74fab5d","language":"sql","codeSnippet":"-- ── Step 1  |  Parse annual reports ──────────────────────────────────────────\r\n-- Note: Setting the refresh mode to \"incremental\" guarantees that each incoming document is processed only once.\r\n\r\nCREATE OR REPLACE DYNAMIC TABLE DT_ESR_PARSED\r\n  TARGET_LAG = DOWNSTREAM  WAREHOUSE = SNOWADHOC  REFRESH_MODE = INCREMENTAL\r\nAS\r\nSELECT\r\n  SPLIT_PART(SPLIT_PART(fl.RELATIVE_PATH, '/', -1), '.', 1) AS COMPANY,\r\n  fl.RELATIVE_PATH,\r\n  AI_PARSE_DOCUMENT(\r\n    TO_FILE('@ESR_DOCS_STAGE', fl.RELATIVE_PATH),\r\n    {'mode': 'LAYOUT'}\r\n  ) AS RAW_PARSE\r\nFROM ESR_FILE_LOG fl\r\nWHERE fl.RELATIVE_PATH ILIKE '%.pdf';\r\n\r\n\r\n-- ── Step 2  |  Extract structured fields ─────────────────────────────────────\r\n\r\nCREATE OR REPLACE DYNAMIC TABLE DT_CONS_EXTRACTED\r\n  TARGET_LAG = DOWNSTREAM  WAREHOUSE = SNOWADHOC  REFRESH_MODE = INCREMENTAL\r\nAS\r\nWITH full_text AS (\r\n  SELECT COMPANY, RELATIVE_PATH,\r\n    LISTAGG(f.value:content::STRING, '\\n') WITHIN GROUP (ORDER BY f.index) AS DOC_TEXT\r\n  FROM DT_ESR_PARSED, LATERAL FLATTEN(input =\u003E RAW_PARSE:pages) f\r\n  GROUP BY COMPANY, RELATIVE_PATH\r\n)\r\nSELECT\r\n  COMPANY, RELATIVE_PATH,\r\n  AI_EXTRACT(\r\n    text =\u003E LEFT(DOC_TEXT, 120000),\r\n    responseFormat =\u003E {'schema': {'type': 'object', 'properties': {\r\n      'title':              {'type': 'string', 'description': 'Company name and fiscal year'},\r\n      'fiscal_year':        {'type': 'string', 'description': '4-digit fiscal year'},\r\n      'revenue':            {'type': 'string', 'description': 'Total revenue with currency'},\r\n      'strategy_themes':    {'type': 'array',  'description': 'Top strategic priorities'},\r\n      'growth_initiatives': {'type': 'array',  'description': 'Key growth programs and investments'},\r\n      'headwinds':          {'type': 'array',  'description': 'Key challenges and risks'}\r\n    }}}\r\n  ) AS RAW_EXTRACT\r\nFROM full_text;\r\n\r\n-- ── Step 3  |  Summarize + embed each company ─────────────────────────────────\r\n\r\nCREATE OR REPLACE DYNAMIC TABLE DT_CONS_EMBEDDED\r\n  TARGET_LAG = DOWNSTREAM  WAREHOUSE = SNOWADHOC  REFRESH_MODE = INCREMENTAL\r\nAS\r\nWITH summarised AS (\r\n  SELECT COMPANY, RELATIVE_PATH, RAW_EXTRACT,\r\n    AI_COMPLETE(\r\n      'claude-sonnet-4-5',\r\n      PROMPT('Summarise this company''s annual report into 4 JSON fields:\r\n              strategy, financial_performance, outlook, differentiation.\\n\\n{0}',\r\n        'company: '   || COALESCE(RAW_EXTRACT:response:title::STRING, COMPANY) || '\\n' ||\r\n        'themes: '    || COALESCE(ARRAY_TO_STRING(RAW_EXTRACT:response:strategy_themes::ARRAY,    '; '), '') || '\\n' ||\r\n        'headwinds: ' || COALESCE(ARRAY_TO_STRING(RAW_EXTRACT:response:headwinds::ARRAY,          '; '), '')\r\n      ),\r\n      response_format =\u003E {'type': 'json', 'schema': {'type': 'object', 'properties': {\r\n        'strategy':              {'type': 'string'},\r\n        'financial_performance': {'type': 'string'},\r\n        'outlook':               {'type': 'string'},\r\n        'differentiation':       {'type': 'string'}\r\n      }}}\r\n    ) AS SUMMARY_JSON\r\n  FROM DT_CONS_EXTRACTED\r\n)\r\nSELECT\r\n  COMPANY, RELATIVE_PATH,\r\n  RAW_EXTRACT:response:title::STRING          AS TITLE,\r\n  RAW_EXTRACT:response:fiscal_year::STRING    AS FISCAL_YEAR,\r\n  RAW_EXTRACT:response:revenue::STRING        AS REVENUE,\r\n  SUMMARY_JSON:strategy::STRING               AS S_STRATEGY,\r\n  SUMMARY_JSON:financial_performance::STRING  AS S_FINANCIAL_PERFORMANCE,\r\n  SUMMARY_JSON:outlook::STRING                AS S_OUTLOOK,\r\n  SUMMARY_JSON:differentiation::STRING        AS S_DIFFERENTIATION,\r\n  TRIM(CONCAT_WS(' ',\r\n    COALESCE(SUMMARY_JSON:strategy::STRING, ''),\r\n    COALESCE(SUMMARY_JSON:outlook::STRING, ''),\r\n    COALESCE(SUMMARY_JSON:differentiation::STRING, '')\r\n  ))                                          AS SUMMARY_TEXT,\r\n  AI_EMBED('snowflake-arctic-embed-l-v2.0', TRIM(CONCAT_WS(' ',\r\n    COALESCE(SUMMARY_JSON:strategy::STRING, ''),\r\n    COALESCE(SUMMARY_JSON:outlook::STRING, ''),\r\n    COALESCE(SUMMARY_JSON:differentiation::STRING, '')\r\n  )))                                         AS SUMMARY_VEC\r\nFROM summarised;\r\n\r\n\r\n-- ── Step 4  |  Discover strategic themes across the corpus ────────────────────\r\n\r\nCREATE OR REPLACE TABLE CONS_THEMES AS\r\nWITH themes AS (\r\n  SELECT AI_COMPLETE(\r\n    'claude-sonnet-4-5',\r\n    PROMPT('Identify 4-5 distinct strategic themes that organise these companies.\r\n            Each needs a short name and one-sentence description.\\n\\n{0}',\r\n      LISTAGG(COMPANY || ': ' || S_STRATEGY, '\\n')),\r\n    response_format =\u003E {'type': 'json', 'schema': {'type': 'object', 'properties': {\r\n      'themes': {'type': 'array', 'items': {'type': 'object', 'properties': {\r\n        'name':        {'type': 'string'},\r\n        'description': {'type': 'string'}\r\n      }}}\r\n    }}}\r\n  ) AS RAW FROM DT_CONS_EMBEDDED\r\n)\r\nSELECT\r\n  f.index                                                           AS THEME_ID,\r\n  f.value:name::STRING                                              AS THEME_NAME,\r\n  f.value:description::STRING                                       AS THEME_DESC,\r\n  AI_EMBED('snowflake-arctic-embed-l-v2.0',\r\n    f.value:name::STRING || ': ' || f.value:description::STRING)    AS THEME_VEC\r\nFROM themes, LATERAL FLATTEN(input =\u003E RAW:themes) f;\r\n\r\n","multiLine":true,":type":"snowflake-site/components/code-snippet"},"blog_text_1867668563":{"id":"blog-text-46e6aabc0a","text":"\u003Cp\u003E&nbsp;\u003C/p\u003E\r\n\u003Cp\u003E\u003Cb\u003ECoCo-generated Streamlit application\u003C/b\u003E\u003C/p\u003E\r\n\u003Cp\u003E&nbsp;\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"image_1526792697":{"id":"image-fbe4a8077a","height":"597","src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--56b5715a-8379-426e-8021-22651432dc8a/coco-generated-streamlit-application.gif?quality=85&preferwebp=true","alt":"coco generated","lazyEnabled":true,"width":"800",":type":"snowflake-site/components/image"},"blog_text_284190325":{"id":"blog-text-603c0cd57f","text":"\u003Ch2\u003E&nbsp;\u003C/h2\u003E\r\n\u003Ch2\u003EConclusion\u003C/h2\u003E\r\n\u003Cp\u003EFor years, documents have existed outside the data platform, limiting how organizations could search, analyze and automate the information they contain. With Cortex AI Functions, your documents can now become data, ready to power search, automation, analytics and AI applications at enterprise scale.\u003C/p\u003E\r\n\u003Cp\u003EWhether the goal is activating knowledge through enterprise search, automating document-driven business processes through structured extraction or generating insights through large-scale document analysis, Cortex AI Functions provide the foundation. That intelligence can then be surfaced through experiences such as Snowflake CoWork, Cortex Agents, Cortex Code or custom applications built on Snowflake.\u003C/p\u003E\r\n\u003Cp\u003ESummary of the core document intelligence AI Functions:\u003C/p\u003E\r\n\u003Cp\u003E&nbsp;\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"container":{"layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"blog_text":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-5192a3b8c6",":type":"snowflake-site/components/container",":items":{"blog_text":{"id":"blog-text-1d36b6bad2","text":"\u003Ctable\u003E\r\n\u003Cthead\u003E\u003Ctr\u003E\u003Cth\u003EFunction\u003C/th\u003E\r\n\u003Cth\u003EWhat it does\u003C/th\u003E\r\n\u003Cth\u003EApplication impact\u003C/th\u003E\r\n\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd\u003E\u003Ca href=\"https://docs.snowflake.com/en/user-guide/snowflake-cortex/parse-document\" target=\"_blank\" rel=\"noopener noreferrer\"\u003E\u003Cb\u003EAI_PARSE_DOCUMENT\u003C/b\u003E\u003C/a\u003E\u003C/td\u003E\r\n\u003Ctd\u003EConverts PDFs, images and Office docs into structured text, preserving tables and layouts.\u003C/td\u003E\r\n\u003Ctd\u003ECreates a high-fidelity foundation for search, RAG, analytics and downstream AI workflows.\u003C/td\u003E\r\n\u003C/tr\u003E\u003Ctr\u003E\u003Ctd\u003E\u003Ca href=\"https://docs.snowflake.com/en/user-guide/snowflake-cortex/document-extraction\" target=\"_blank\" rel=\"noopener noreferrer\"\u003E\u003Cb\u003EAI_EXTRACT\u003C/b\u003E\u003C/a\u003E\u003C/td\u003E\r\n\u003Ctd\u003EPulls structured fields, tables and entities using a natural-language schema.\u003C/td\u003E\r\n\u003Ctd\u003EAutomates document-driven processes and converts documents into operational data.\u003C/td\u003E\r\n\u003C/tr\u003E\u003Ctr\u003E\u003Ctd\u003E\u003Ca href=\"https://docs.snowflake.com/en/sql-reference/functions/ai_classify#documents\" target=\"_blank\" rel=\"noopener noreferrer\"\u003E\u003Cb\u003EAI_CLASSIFY\u003C/b\u003E\u003C/a\u003E\u003C/td\u003E\r\n\u003Ctd\u003ERoutes and categorizes documents based on type for downstream processing.\u003C/td\u003E\r\n\u003Ctd\u003ERoutes content to the appropriate workflow, model or business process.\u003C/td\u003E\r\n\u003C/tr\u003E\u003Ctr\u003E\u003Ctd\u003E\u003Ca href=\"https://docs.snowflake.com/en/user-guide/snowflake-cortex/ai-complete-document-intelligence\" target=\"_blank\" rel=\"noopener noreferrer\"\u003E\u003Cb\u003EAI_COMPLETE\u003C/b\u003E\u003C/a\u003E\u003C/td\u003E\r\n\u003Ctd\u003EGeneral-purpose LLM reasoning for deep analysis and cross-document insights.\u003C/td\u003E\r\n\u003Ctd\u003EPowers summarization, analysis, research, multi-document reasoning and insight generation.\u003C/td\u003E\r\n\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"}},":itemsOrder":["blog_text"],"appliedCssClassNames":"snowflake-responsive-container-inner-padding-small"}},":itemsOrder":["blog_text","image","blog_text_913456882","code_snippet","blog_text_1867668563","image_1526792697","blog_text_284190325","container"],":type":"wcm/foundation/components/responsivegrid"},"responsivegrid_premium_content_banner":{"columnCount":12,"columnClassNames":{},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","appliedCssClassNames":"snowflake-responsive-component-top-padding-medium",":items":{},":itemsOrder":[],":type":"wcm/foundation/components/responsivegrid"},"container_author_chip":{"layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"author_chip":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-67ce91667b",":type":"snowflake-site/components/container",":items":{"author_chip":{"id":"author-chip-125254d968","title":{"id":"title","type":"heading2","lines":["Learn more about the authors"],":type":"snowflake-site/components/title-v2"},"authors":[{"authorImage":{"id":"image-93689d7ae5","height":"184","src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--0a2f7a43-33b6-4f7f-b829-742f53e609da/jessie.jpg?quality=85&preferwebp=true","alt":"Jessie Felix","lazyEnabled":true,"width":"184",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-10a60d4692","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/jessie-felix/"},"linkTargetContentType":"DOCUMENT_LEARN",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Jessie Felix"},"authorTitle":"Product Manager, Snowflake"}],":type":"snowflake-site/components/blog/author-chip"}},":itemsOrder":["author_chip"],"appliedCssClassNames":"snowflake-responsive-component-top-padding-medium"}},":itemsOrder":["container_hero","responsivegrid_content","responsivegrid_premium_content_banner","container_author_chip"]},"flexible_column_content_container_2":{"layout":"SIMPLE","id":"container-bb7f2989e5",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"blog_table_of_content":{"id":"blog-table-of-content-13ede3ab6a",":type":"snowflake-site/components/blog/blog-table-of-content","tableOfContents":[]}},":itemsOrder":["blog_table_of_content"]},":type":"snowflake-site/components/flexible-column-container","isBlogPage":true,"isActiveTOC":false},"related_content":{"id":"related-content-e6dac348a5","relatedContent":[],":type":"snowflake-site/components/blog/related-content","isBlogPage":true}},":itemsOrder":["flexible_column_container","related_content"],"appliedCssClassNames":"snowflake-container"}},":itemsOrder":["container_breadcrumb","container_main_content"],":type":"wcm/foundation/components/responsivegrid"},"container_47873732":{"additionalClasses":"section--blog-newsletter","layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"flexible_column_cont":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-8a29c91a80",":type":"snowflake-site/components/container",":items":{"flexible_column_cont":{"id":"flexible-column-container-36b4d99c1d","type":"1-column","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"small","bottomPadding":"none","spaceBetween":"small","reverseOnMobile":false,"carouselOnMobile":false,"propertiesCSSClasses":"section--blog-newsletter","backgroundImageOption":"none","flexible_column_content_container_1":{"layout":"SIMPLE","id":"container-80fef181a7",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"marketo_v2":{"id":"marketo-v2-9bcd957d86","marketoForm":{"hidden":null,"formId":"3320","edit":false,"successUrl":null,"script":null,"values":null},"title":{"id":"title","type":"heading3","lines":["Subscribe to our blog newsletter","Get the best, coolest and latest delivered to your inbox each week"],":type":"snowflake-site/components/title-v2"},"munchkinId":"252-RFO-227","serverInstance":"252-RFO-227.mktoweb.com","marketoConfigured":true,"formConfigured":true,":type":"snowflake-site/components/form/marketo-v2"},"text":{"id":"text-d17401b6a2","additionalClasses":"newsletter-disclaimer","text":"\u003Cp\u003EBy submitting this form, I understand Snowflake will process my personal information in accordance with their Privacy Notice.\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/text"}},":itemsOrder":["marketo_v2","text"]},":type":"snowflake-site/components/flexible-column-container","isBlogPage":true,"isActiveTOC":false}},":itemsOrder":["flexible_column_cont"],"appliedCssClassNames":"snowflake-container"},"experiencefragment-pre-footer":{"id":"experiencefragment-ec508b2e39","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/get-started-pre-footer/get-started-pre-footer/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/get-started-pre-footer/get-started-pre-footer.xfmodel.json?callerPage=/content/snowflake-site/global/en/blog/document-intelligence-snowflake-cortex-ai-functions"},"markup_editor":{"id":"markup-editor-a3efc30f59","title":"Page CSS","cssContent":"@media screen and (min-width:768px){.snowflake-blog-author-chip-wrapper{justify-content:flex-start}.snowflake-blog-related-content-on-blog-page{max-width:1408px;margin-left:auto;margin-right:auto}.snowflake-text{font-family:Lato,sans-serif;font-weight:400;font-size:16px;line-height:24px}}.section--blog-newsletter{max-width:none;width:100%;padding-left:0;padding-right:0;margin-left:0;margin-right:0;margin-bottom:0}.section--blog-newsletter .mktoField{background-color:transparent !important}.section--blog-newsletter\u003E.container{padding-left:0;padding-right:0}@media screen and (min-width:768px){.section--blog-newsletter\u003E.container{padding-left:0;padding-right:0}}.newsletter-disclaimer p{font-size:14px !important}.section--blog-newsletter .snowflake-marketo-form-container{margin-bottom:24px;background-color:#f6f9fa;gap:48px;box-shadow:none}.section--blog-newsletter .snowflake-title p.snowflake-title-line:first-child{font-family:Texta;font-size:24px;line-height:26px;font-weight:700;margin-bottom:4px}.section--blog-newsletter .snowflake-title p.snowflake-title-line{text-transform:none;font-family:\"Lato\",sans-serif;font-size:16px;line-height:24px;font-weight:normal}@media screen and (min-width:1024px){.section--blog-newsletter .snowflake-marketo-form-container{display:flex;justify-content:center}.section--blog-newsletter .snowflake-title .snowflake-title-line{text-align:left}.section--blog-newsletter .snowflake-marketo-form .mktoFormRow:has(\u003E input[type=\"hidden\"]){flex-grow:0}.section--blog-newsletter .snowflake-marketo-form{display:flex;width:50% !important}.section--blog-newsletter .snowflake-marketo-form .mktoButtonRow{flex-grow:0;width:auto !important;margin-left:0;margin-right:0}.section--blog-newsletter .snowflake-marketo-form .mktoFormRow{flex-grow:1}.section--blog-newsletter\u003E.container{padding-left:0;padding-right:0}.section--blog-newsletter .snowflake-marketo-form-title{width:50%;margin-bottom:0 !important}.section--blog-newsletter .center .snowflake-title{align-items:flex-start}}.snowflake-sub-navigation a.snowflake-sub-navigation-primary-link{width:auto !important}.snowflake-blog-hero{align-items:stretch !important}",":type":"snowflake-site/components/markup-editor","isGSAPEnabled":false},"markup_editor-table":{"id":"markup-editor-85c1ba9506","title":"Table Styling CSS","cssContent":"#snowflake-blog-template-main-container table{width:100%;background-color:var(--ui-background-01);border-collapse:collapse;border:2px solid var(--ui-background-09);font-family:'Lato',sans-serif;color:var(--ui-background-09)}#snowflake-blog-template-main-container table thead{background-color:var(--ui-01)}#snowflake-blog-template-main-container table th,#snowflake-blog-template-main-container table td{border:2px solid var(--ui-background-09);padding:var(--spacing-01)}",":type":"snowflake-site/components/markup-editor","isGSAPEnabled":false},"experiencefragment-footer":{"id":"experiencefragment-41758bd243","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/footer/master/jcr:content","configured":true,":type":"snowflake-site/components/experiencefragment","xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/footer/master.xfmodel.json?callerPage=/content/snowflake-site/global/en/blog/document-intelligence-snowflake-cortex-ai-functions"}},":itemsOrder":["experiencefragment-banner","experiencefragment-header","experiencefragment-sub-header","responsivegrid","container_47873732","experiencefragment-pre-footer","markup_editor","markup_editor-table","experiencefragment-footer"],":type":"wcm/foundation/components/responsivegrid"}},":itemsOrder":["root"],":hierarchyType":"page",":path":"/content/snowflake-site/global/en/blog/document-intelligence-snowflake-cortex-ai-functions","isPasswordProtected":false,"analyticsContentTags":[],"analyticsEnabled":true,"coveoConfig":{"searchHub":"snowflake.com","pipeline":"snowflake.com","apiKey":"xx335921a6-2a0a-40f2-a167-e390b4766c3d","organizationId":"snowflakecomputingproduction8neljofn"},"analyticsDebugMode":false,"analyticsData":{"excludeFromAnalytics":false,"subCategory":"","pageType":"homepage","templateName":"blog-page","siteName":"snowflake","pageUrl":"/content/snowflake-site/global/en/blog/document-intelligence-snowflake-cortex-ai-functions","language":"en","category":"general","pageName":"Activate the Context Layer of Business Activity: Your Documents","contentTags":[]},"locale":"en"}
  