// full registry
Projects
Every system I have built, shipped or scoped: shipped inside a firm, live in my own stack, running locally on this site, or still planned. Statuses track reality, not ambition.
01 due-diligence-agentsAgentic research for commercial due diligence shipped EY-Parthenon
- Problem
- Target benchmarking and peer research in due diligence is repetitive, manual and inconsistent across teams.
- Approach
- AI agents in n8n that orchestrate LLM reasoning with live web search and return structured, source-linked outputs.
- Impact
- Peer selection became repeatable and explainable instead of analyst-dependent, which is what made partners willing to defend the output in front of a client. The company-research pipeline and the peer finder together compressed several consultant-days of work to under 40 minutes; the speed was the side effect, the defensibility was the point.
Separate workflows handle target screening, peer identification and metric collection. Each agent decomposes the research question, runs searches in parallel, validates findings against multiple sources and writes results into a consistent template, so two teams researching the same market no longer produce two different answers.
What the room would not change
- no client data leaves the tenant
- output must land in the firm's existing template
- every figure traceable to a source, or it is unusable
- no new vendor onboarding
What shipped anyway
- parallel search with cross-source validation
- source link attached to every collected metric
- peer selection made explainable, not analyst-dependent
- a 90-minute session that handed it to the team
go-live 2026 · in use at handover, June 2026 · adoption after handover not measured. I left before I could instrument it, and I would rather say so than quote a number I do not have.
02 deepquery-agentAutomated document Q&A for project teams shipped EY-Parthenon
- Problem
- Teams answer long lists of recurring questions from hundreds of pages of project documents. Slow and error-prone.
- Approach
- A Copilot Studio agent: upload an Excel question list and PDF sources, the agent processes them in batches and writes answers back row by row.
- Impact
- Cut manual document review to a fraction; reusable across new and existing projects.
The agent generates SharePoint upload links, monitors the repository for new files, batch-processes question sets against the source documents and produces per-batch summaries. Progress is visible in real time through the OneDrive-synced Excel file, so users watch answers appear as the agent works.
What the room would not change
- Excel is the interface, non-negotiable
- SharePoint permissions, inherited
- 16 MB file cap
- scanned PDFs with no text layer
What shipped anyway
- answers written back row by row into their own sheet
- batching, so the cap stops being the blocker
- progress visible live in the file they already had open
- reusable across new and existing projects
constraint that shaped it the client would not adopt a new UI, so the UI became the spreadsheet they were already using. OCR on scanned pages stayed unreliable: a known open edge, not a solved one.
03 proposal-engineLLM-powered knowledge retrieval over past proposals shipped EY-Parthenon
- Problem
- Years of RFP and proposal knowledge sit in scattered files; teams rebuild content from scratch and ask around for precedents.
- Approach
- A central repository with LLM-based metadata extraction and a parent/child agent pipeline for retrieval, surfaced through a chat interface.
- Impact
- MVP in use by the team. Honest limits of that MVP: a 16 MB file cap, unreliable OCR on scanned documents, no semantic search and no per-team access control, which is exactly why the redesign below exists. Retrieval time improved; I never instrumented it, so I won't quote a number.
The MVP runs on Copilot Studio with SharePoint storage and automated notifications. The redesign I scoped before handing over moves it to a VS Code extension on GitHub Copilot Chat, with Claude as the LLM and the Microsoft Graph API for semantic search over per-team repositories, which removes the MVP's file-size, OCR and access-control limits. I left in June 2026, so whether that redesign got built is not mine to claim.
04 entity-resolutionCompany-name cleansing for M&A analytics shipped EY-Parthenon
- Problem
- M&A datasets are full of messy company names and unclear ownership structures; manual cleansing eats analyst time.
- Approach
- A modular pipeline combining deterministic rules, ML matching and targeted web search to cleanse names and map parent–child relationships.
- Impact
- Reduced manual effort and improved consistency of entity data across M&A analytics.
Deterministic rules catch the common normalisation cases cheaply, an ML matcher resolves near-duplicates, and web search handles the long tail of ambiguous entities. Each stage only escalates what it can't resolve, keeping the pipeline fast and auditable. The same architecture supports follow-on benchmarking and peer-research workflows.
05 job-search-agentsAutonomous pipeline that finds roles and tailors every application live personal stack
- Problem
- Applying well takes hours per role, and good postings slip past while you're busy tailoring the last one.
- Approach
- A two-agent pipeline. A discovery agent scans new postings and scores each one against a structured archive of my experience, writing ranked leads into an Airtable tracker. An application agent then takes a queued lead and produces a tailored CV, cover letter and company one-pager, files everything into a dated application folder and updates the tracker.
- Impact
- Every application is genuinely tailored, nothing falls through the cracks, and the whole pipeline is visible on one dashboard. Running daily in my own search.
Built as Claude agent skills with Airtable as the system of record: a Searches table feeds the discovery agent, scored leads land in a review queue, and moving a lead to "Queue" triggers the application workflow. If you're a recruiter reading a tailored application from me, there's a decent chance this system drafted the first version.
06 lernvokabelnPhone-first German B2 vocabulary trainer, offline, no account live own domain
- Problem
- At B2 learners stall because they recognise words but cannot produce them. Ordinary flashcards drill exactly the half that already works.
- Approach
- One adaptive session instead of separate learn and practice modes. A five-box Leitner system decides per word which exercise comes next: flashcard, tap the article, type the word, and finally a task in the B2 production format. Every word carries two axes, passive and active, and only counts as learned once it has been written out.
- Status
- Live at lernvokabeln.com. 712 words from Kompass DaF B2.1, Lektion 1 to 5. Installable as a PWA, works offline. Usage not measured: there is no account and no tracking, so I have no numbers and will not quote any.
No framework, no build step, no backend. All progress lives in the device's localStorage, which is a decision with a known open edge: switch devices and you start over. An account would fix it and would also break the promise that the app knows nothing about you. Source at github.com/karthikjpio/Lernvokabeln.
07 ask-my-aiRecruiter-facing chatbot for the home page planned not built
- Problem
- Recruiters skim. They have one specific question ("has he done X?") and a static page makes them dig for it.
- Approach
- A chat widget in the corner of the home page. Two tiers were planned: a zero-dependency keyword-matched knowledge base baked into the page, and an n8n LLM workflow behind a webhook that it upgrades to transparently when the endpoint is set.
- Status
- Scoped, not built. The widget is not on the home page, so this row says
planned. An earlier version ran a local tier with typo-tolerant keyword matching over a hand-written knowledge base; it came out when the home page was cut back. When the widget is there again, this row changes, and not before.
Dependency-free JavaScript, fuzzy matching, graceful degradation by design. I would rather have this row say planned than send you to a corner of the page with nothing in it.
08 peerbenchOpen-source peer-benchmarking agent · public twin of system 01 planned not started
- Problem
- My due-diligence agents live inside a firm's walls, so I can't show you the code. This one you'll be able to run yourself.
- Approach
- Give it a target company; it identifies peers, collects comparable metrics with live web search, validates across sources and emits a sourced comparison table plus a short benchmarking memo.
- Status
- Scoped, not started. No date, because I gave one before and missed it. The repo link lands here when the code is public, and not a day earlier.
09 dataroom-qaCitation-grounded document Q&A · public twin of system 02 planned not started
- Problem
- Data-room Q&A tools that can't cite the page they got an answer from aren't usable in diligence.
- Approach
- Drop in PDFs and a question list (CSV/Excel); it answers each question with page-level citations and flags the ones it can't ground in the documents. Refusing beats hallucinating.
- Status
- Scoped, not started. No date, because I gave one before and missed it. The repo link lands here when the code is public, and not a day earlier.
10 market-sizerTAM/SAM/SOM estimation agent with an auditable assumption tree planned not started
- Problem
- LLMs will happily hand you a market size with no way to check the maths.
- Approach
- Describe a market; the agent builds a top-down and bottom-up sizing as an explicit assumption tree: every number sourced or flagged as an assumption you can edit, with the estimate recomputing from your inputs.
- Status
- Scoped, not started. No date, because I gave one before and missed it. The repo link lands here when the code is public, and not a day earlier.
// honesty policy statuses on this page track reality, not ambition. Three of these entries said "shipping July 2026" and did not ship, so they now say planned with no date at all. An overdue promise costs more than an absent one. Same rule for the chatbot: this page called it local while the widget was no longer on the home page. It now says planned.