[{"data":1,"prerenderedAt":168},["ShallowReactive",2],{"blog-all":3,"ill-generic\u002Fblog":167},[4,15,26,36,44,53,61,71,80,88,97,107,115,123,132,141,149,158],{"path":5,"title":6,"description":7,"date":8,"tags":9,"cover":12,"coverAlt":13,"readingTime":14},"\u002Fblog\u002Fmeasuring-ai-roi-honestly","Measuring AI ROI honestly: a method that survives the finance review","How to measure the return on an AI project without fooling yourself: baselines, full costs, holdout attribution, leading indicators and inflated-ROI red flags.","2026-08-11",[10,11],"Strategy","Analytics","\u002Fcovers\u002Fblog\u002Fmeasuring-ai-roi-honestly.svg","Line-art illustration of a ruler measuring a stack of coins beside a rising bar.",7,{"path":16,"title":17,"description":18,"date":19,"tags":20,"cover":24,"coverAlt":25,"readingTime":14},"\u002Fblog\u002Fmultimodal-ai-business-workflows","Multimodal AI in real business workflows: where it earns its place","Vision-language and audio models now read forms, photos, screenshots and calls directly. Where multimodal AI beats OCR-then-LLM, with examples, limits and cost.","2026-06-30",[21,22,23],"Computer Vision","LLMs","Automation","\u002Fcovers\u002Fblog\u002Fmultimodal-ai-business-workflows.svg","Line-art illustration of an eye, an ear and a speech bubble converging into a single processing node.",{"path":27,"title":28,"description":29,"date":30,"tags":31,"cover":34,"coverAlt":35,"readingTime":14},"\u002Fblog\u002Fmlops-basics-first-model","MLOps basics for teams shipping their first model","The minimum MLOps a team needs to put a first model into production safely: versioning, reproducible training, a registry, serving, monitoring and rollback.","2026-05-19",[32,33],"MLOps","Product","\u002Fcovers\u002Fblog\u002Fmlops-basics-first-model.svg","Line-art illustration of a looping pipeline with gauges, from data to model to monitoring and back.",{"path":37,"title":38,"description":39,"date":40,"tags":41,"cover":42,"coverAlt":43,"readingTime":14},"\u002Fblog\u002Fopen-source-llms-on-prem","Open-source LLMs on-prem: when private AI actually makes sense","Llama, Mistral and Qwen can run inside your own walls, but should they? When on-prem LLMs pay off, how to size them, and when a hosted API is the smarter call.","2026-04-07",[22,32,10],"\u002Fcovers\u002Fblog\u002Fopen-source-llms-on-prem.svg","Line-art illustration of a server rack secured with a padlock, a small model chip glowing inside.",{"path":45,"title":46,"description":47,"date":48,"tags":49,"cover":50,"coverAlt":51,"readingTime":52},"\u002Fblog\u002Fchurn-prediction-sales-teams-use","Churn prediction that sales teams actually use","How to build a churn model that changes behaviour: a clear definition, no leakage, calibrated scores, ranked lists with reasons and holdout-measured lift.","2026-02-24",[11,10],"\u002Fcovers\u002Fblog\u002Fchurn-prediction-sales-teams-use.svg","Line-art illustration of a funnel with drops leaking from a crack in its side and a bowl catching them beneath.",8,{"path":54,"title":55,"description":56,"date":57,"tags":58,"cover":59,"coverAlt":60,"readingTime":52},"\u002Fblog\u002Fcomputer-vision-defect-detection","Computer vision defect detection on the factory floor: how to get it right","A practical guide to visual inspection with computer vision: lighting first, labelling, anomaly detection, edge latency, PLC integration and drift.","2026-01-20",[21,32],"\u002Fcovers\u002Fblog\u002Fcomputer-vision-defect-detection.svg","Line-art illustration of a conveyor belt under a camera with one part flagged by a warning marker.",{"path":62,"title":63,"description":64,"date":65,"tags":66,"cover":69,"coverAlt":70,"readingTime":52},"\u002Fblog\u002Fai-invoice-document-processing-playbook","AI invoice and document processing: a practical playbook","How to automate invoice and document processing with OCR and LLM extraction: schemas, validation, PO matching, confidence-based review and ERP push.","2025-12-02",[23,67,68],"NLP","Integrations","\u002Fcovers\u002Fblog\u002Fai-invoice-document-processing-playbook.svg","Line-art illustration of a paper invoice passing through a scanner frame and emerging as tidy data fields.",{"path":72,"title":73,"description":74,"date":75,"tags":76,"cover":78,"coverAlt":79,"readingTime":14},"\u002Fblog\u002Fai-chatbots-for-customer-support","AI chatbots for customer support: what actually works","Beyond the demo: how to design a support assistant that resolves issues, hands over gracefully and earns its keep.","2025-11-12",[77,22,33],"Conversational AI","\u002Fcovers\u002Fblog\u002Fai-chatbots-for-customer-support.svg","Line-art illustration of a support conversation in chat bubbles ending in a check mark, with a hand-off line to a human agent.",{"path":81,"title":82,"description":83,"date":84,"tags":85,"cover":86,"coverAlt":87,"readingTime":52},"\u002Fblog\u002Fwhatsapp-ai-chatbots-for-ecommerce","WhatsApp AI chatbots for e-commerce: what to build and what to avoid","How to launch a WhatsApp AI assistant for an online store: Meta approval, templates vs sessions, order tracking, cart recovery, integrations and hand-off.","2025-10-21",[77,68,23],"\u002Fcovers\u002Fblog\u002Fwhatsapp-ai-chatbots-for-ecommerce.svg","Line-art illustration of a smartphone showing chat bubbles beside a shopping bag.",{"path":89,"title":90,"description":91,"date":92,"tags":93,"cover":94,"coverAlt":95,"readingTime":96},"\u002Fblog\u002Fnlp-for-business-insights","NLP for business: turning feedback, tickets and documents into decisions","A practical guide to using natural-language processing on the unstructured text your company already has.","2025-10-02",[67,11],"\u002Fcovers\u002Fblog\u002Fnlp-for-business-insights.svg","Line-art illustration of a text document fanning out into three clustered groups of points.",6,{"path":98,"title":99,"description":100,"date":101,"tags":102,"cover":105,"coverAlt":106,"readingTime":14},"\u002Fblog\u002Frag-vs-fine-tuning","RAG vs fine-tuning: a decision guide","RAG changes what a model knows; fine-tuning changes how it behaves. A practical guide to choosing between them, combining them and evaluating either.","2025-09-09",[103,104,22],"RAG","Fine-tuning","\u002Fcovers\u002Fblog\u002Frag-vs-fine-tuning.svg","Line-art illustration of a magnifier over a stack of documents beside a dial being tuned.",{"path":108,"title":109,"description":110,"date":111,"tags":112,"cover":113,"coverAlt":114,"readingTime":52},"\u002Fblog\u002Fgpt-integration-for-enterprise","Integrating GPT-class models into enterprise workflows","Where large language models earn their place in the enterprise, and the architecture that keeps them safe, cheap and measurable.","2025-08-21",[22,68,10],"\u002Fcovers\u002Fblog\u002Fgpt-integration-for-enterprise.svg","Line-art illustration of a central AI chip wired to a database, a document, an email and a settings gear.",{"path":116,"title":117,"description":118,"date":119,"tags":120,"cover":121,"coverAlt":122,"readingTime":14},"\u002Fblog\u002Fai-feasibility-study-in-two-weeks","How to run an AI feasibility study in two weeks","A day-by-day plan for deciding whether an AI use case is worth building: discovery, data audit, a thin prototype on real data, a cost model and a go\u002Fno-go memo.","2025-07-15",[10,33],"\u002Fcovers\u002Fblog\u002Fai-feasibility-study-in-two-weeks.svg","Line-art illustration of a two-week calendar grid with a compass needle pointing at a checked day.",{"path":124,"title":125,"description":126,"date":127,"tags":128,"cover":129,"coverAlt":130,"readingTime":131},"\u002Fblog\u002Frag-knowledge-bases","RAG knowledge bases: a field guide","Retrieval-augmented generation explained for decision-makers: how it works, where it breaks, and how to make it production-grade.","2025-06-10",[103,22],"\u002Fcovers\u002Fblog\u002Frag-knowledge-bases.svg","Line-art illustration of books on a shelf, a magnifier searching them and an answer bubble with a citation mark.",9,{"path":133,"title":134,"description":135,"date":136,"tags":137,"cover":139,"coverAlt":140,"readingTime":14},"\u002Fblog\u002Fai-agents-vs-automation","AI agents vs automation: when to use which","Deterministic workflows and LLM agents solve different problems. Here is how to choose between them, and how to combine both without losing control.","2025-05-06",[138,23,10],"AI Agents","\u002Fcovers\u002Fblog\u002Fai-agents-vs-automation.svg","Line-art illustration of a branching decision tree with one straight track and one winding, tool-using path.",{"path":142,"title":143,"description":144,"date":145,"tags":146,"cover":147,"coverAlt":148,"readingTime":96},"\u002Fblog\u002Fai-plugin-development","Building custom AI plugins for CRMs, e-commerce and SaaS platforms","How to add AI where your team already works, inside the tools they use, with agents that respect approvals and audit trails.","2025-04-15",[138,23,68],"\u002Fcovers\u002Fblog\u002Fai-plugin-development.svg","Line-art illustration of a plug with a trailing cord connecting into a socket panel, sparks where the prongs meet.",{"path":150,"title":151,"description":152,"date":153,"tags":154,"cover":156,"coverAlt":157,"readingTime":14},"\u002Fblog\u002Fai-phone-agents-for-small-business","AI phone agents for small business: what they cost and how they work","How an AI phone agent answers, understands and acts on a call, what drives the monthly bill, and when a small business should not build one at all.","2025-03-18",[155,77,23],"Voice AI","\u002Fcovers\u002Fblog\u002Fai-phone-agents-for-small-business.svg","Line-art illustration of a telephone handset emitting sound waves that turn into a chat bubble.",{"path":159,"title":160,"description":161,"date":162,"tags":163,"cover":164,"coverAlt":165,"readingTime":166},"\u002Fblog\u002Fdata-analysis-for-growth","Data analysis for growth: from spreadsheets to decisions","Why most companies should start their AI journey with rigorous analysis of the data they already have, and how to do it in weeks.","2025-02-05",[11,10],"\u002Fcovers\u002Fblog\u002Fdata-analysis-for-growth.svg","Line-art illustration of scattered data points on a chart resolving into a rising trend line with an arrow.",5,"\u003Csvg xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" viewBox=\"0 0 640 480\" role=\"img\" aria-hidden=\"true\">\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-width=\"5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\u003Cpath d=\"M170 90H402L430 118V410H170Z\"\u002F>\u003Cpath d=\"M402 90V118H430\"\u002F>\u003Crect x=\"200\" y=\"126\" width=\"110\" height=\"14\" rx=\"7\" fill=\"var(--accent, #0E7490)\" stroke=\"none\"\u002F>\u003Cg stroke-width=\"3.5\">\u003Cline x1=\"200\" y1=\"172\" x2=\"400\" y2=\"172\" stroke-opacity=\"0.45\"\u002F>\u003Cline x1=\"200\" y1=\"198\" x2=\"360\" y2=\"198\" stroke-opacity=\"0.45\"\u002F>\u003Cline x1=\"200\" y1=\"224\" x2=\"400\" y2=\"224\" stroke-opacity=\"0.45\"\u002F>\u003Cline x1=\"200\" y1=\"250\" x2=\"330\" y2=\"250\" stroke-opacity=\"0.45\"\u002F>\u003Cline x1=\"200\" y1=\"276\" x2=\"390\" y2=\"276\" stroke-opacity=\"0.45\"\u002F>\u003Cline x1=\"200\" y1=\"302\" x2=\"370\" y2=\"302\" stroke-opacity=\"0.45\"\u002F>\u003Cline x1=\"200\" y1=\"328\" x2=\"400\" y2=\"328\" stroke-opacity=\"0.45\"\u002F>\u003Cline x1=\"200\" y1=\"354\" x2=\"300\" y2=\"354\" stroke-opacity=\"0.45\"\u002F>\u003C\u002Fg>\u003Cpath d=\"M410 372L520 262L494 236L384 346Z\"\u002F>\u003Cpath d=\"M384 346L364 392L410 372Z\"\u002F>\u003Ccircle cx=\"366\" cy=\"390\" r=\"6\" fill=\"var(--accent, #0E7490)\" stroke=\"none\"\u002F>\u003C\u002Fg>\u003C\u002Fsvg>",1792973679703]