AI Development and Agentic Automation Projects

AI Icon in Circle

This is a list of my AI/LLM related projects. This page is updated automatically by AI agents when a project is completed.

I first began using LLMs with ChatGPT in late 2022 when it became publicly available, and later ChatGPT Teams, Google Gemini, and have experimented with DeepSeek and other models.

My early use of LLMs was largely organization of larger document structures. Hallucinations limited their use for data analytics and research until very recently.

Today I primarily use Anthropic’s Claude CoWork and Claude Code for its speed, accuracy, and their best-in-class agentic capabilities.

I’m also currently working in Claude Code to develop “Documentor“, an app for MacOS that helps me organize, deduplicate, clean up file versioning, and document critical client files, generating reports that can be delivered to clients with cloud file linking to source material.

AI Icon in Circle

Authgnosis AI Architecture

This diagram maps the operational environment Authgnosis runs on Claude Code – the AI agent at the center of how I manage my own business, from analytics and finance to our website and client deliverables.

Read top to bottom, it shows how the agent connects to the platforms we use, runs work on a schedule, and turns that into tangible output:

  • Integrations – a unified layer of local services and secure remote connectors links the agent to the tools the business runs on: web analytics and search, accounting, email and documents, design platforms, and our WordPress site.
  • Automation – scheduled jobs handle recurring work on their own, such as federal grant-opportunity monitoring, daily analytics reporting, and ongoing website health checks.
  • Outputs – those automations produce real results: status reports, search-optimization improvements, grant alerts, and the very activity feed you’re reading now.
  • State & governance – every change is versioned in private repositories with an automated audit trail and layered backups, so the whole environment stays reviewable and recoverable.

The dashed boundary marks the control domain: a clear, governed perimeter for what the AI agent is permitted to manage. It’s how I put AI to work on real operations while keeping everything transparent, auditable, and under control.

Architectural diagram of AI / Agentic AI workflow for Authgnosis

Architectural diagram of Authgnosis AI / Agentic AI workflow – July 3, 2026

Documentor

Documentor is a Mac OS application for organizing files generated for client or employer work. Over time, files get spread across local and cloud-based storage, working folders, shared team folders, and other operations. User-managed version control within a generation of related files is inconsistent or non-existent.

When wrapping up client projects or leaving a company, important files and related information is important for smooth work transitions. Documentor is designed to make that process fast, easy, and complete.

  • Fast filesystem scanning and unique fingerprinting and grouping of files
  • Form-based and Advanced Filesystem Query Language (FQL) for inclusion and exclusion of filename, file paths, file types, and other metadata to work on only the files that matter
  • Automated soft (in-app) or hard (on-disk) de-duplication and retention of exact copies of files even when the names, folder locations, and dates are different 
  • Identification of critical files from non-critical files
  • Creation of descriptions for critical files
  • Automated detection of generational families and versions of files
  • Soft/hard versioning and re-versioning of generational families of files
  • Report generation of critical files with local paths and auto-generated secure cloud-share links for client and employer consumption
  • Audit trail, verification and reporting of destruction of files to comply with client contracts, NDAs, and employment agreements
  • Integrations with Notion, Sharepoint, Confluence, and other knowledge platforms
  • End-to-end secure application metadata storage at-rest
  • Future support for auto-versioning of new files as they are created in the filesystem
  • Future support for Microsoft Windows

 

AI Event Log

The following content is generated automatically by Claude agentic AI upon each git push to the Authgnosis private GitHub repository. Descriptions are automatically generated by Claude.

Documentor’s duplicate finder moves from a popup into its own mode

Finding and clearing out duplicate files used to mean opening a separate window on top of your file list. Now it’s a full mode of its own, switched to with one click, so reviewing duplicates feels like a normal part of working the list rather than a detour.

  • Added a toolbar switch between the regular file list and a dedicated Duplicates view, sharing the same project sidebar so you never lose your place moving between the two.
  • The Duplicates screen keeps everything it already did – re-scan, exclusion patterns, keep-pattern rules – now with more room to work and no popup window to manage.
  • If you’ve made changes in Duplicates mode and haven’t saved them, switching projects or modes now warns you first, so a half-finished cleanup can never be silently lost.
  • Under the hood, this is also the foundation for upcoming duplicate-handling rules – the mode switch had to exist before rules could be built on top of it.

Turning a sales-intelligence export into a clean CRM data model

  • Mapped every field from a sales-intelligence platform’s export into the matching CRM account and contact records
  • Caught the transforms that trip up imports – values stored in thousands, and picklists that must match the CRM’s own options
  • Corrected a mis-typed date field so a “year founded” value imports as a whole number instead of a full date
  • Locked the whole mapping into a single versioned reference so it stays authoritative across tools

Dynamics 365 CRM: Last Contact Engagement tracking on Accounts

Every Account in the Authgnosis CRM now carries a live last-touch indicator: when anyone at that company was last emailed, called, or met, and how – updated automatically the moment it happens.

  • Added two fields to the Account table: Last Contact Engagement (date/time) and Last Contact Engagement Type (Email, Phone Call, or Meeting), shown read-only on the main Account form.
  • Shipped the Authgnosis publisher and solution first, so this and all future customizations carry a proper ag prefix instead of the platform default – portable, reviewable, and rollback-friendly.
  • Engineering detail: Dynamics rollup columns cannot see activity logged against a Contact from its parent Account (a one-hop limit Microsoft documents), so three small Power Automate flows stamp the Account whenever a qualifying email, call, or meeting completes.
  • Built, activated, and verified end-to-end with a live test run – a completed phone call stamped its account within about a minute, confirming the whole chain works in production.

Auto-versioning gets tougher after a round of real-world testing

Documentor’s auto-versioning has now been run against a real, messy corpus of client files – and every rough edge that turned up became a fix, from a genuine crash to a handful of review-screen refinements that make it faster to trust what’s being proposed.

  • Fixed a real crash: a rare document-history shape – two independent ancestors both converging on one later file – was being walked twice instead of recognized as unorderable, corrupting the numbering. Documentor now detects this shape up front and correctly flags it for manual review instead.
  • Documentor can now recognize an original file with no version number in its name, sitting among copies that do (v2, v3, and so on) – it correctly infers that file is the first version, exactly where structural clues alone leave gaps.
  • The review screen now shows a file’s modified date and size, tags exact-duplicate copies the same way the family view does, and adds a toggle to hide families with no established order – useful once a corpus has a lot of them.
  • Un-doing a false grouping is now a genuine toggle: previously the only way back was re-checking every file in the group one at a time, and a small string-matching gap meant “Report_Revised.docx” wasn’t recognized as a version marker the way “Report Revised.docx” was.

Made the hero sections and client-logo band consistent across every page

A pass across the Authgnosis site’s top-level pages to fix two related issues – hero text overflowing onto the client-logo band on the AI Projects page, and client logos rendering at very uneven sizes – and to make the hero and logo band structurally consistent from page to page.

  • Fixed the AI Projects hero, where a long introduction overran its fixed-height band and ran over the logo band beneath it – the band now grows to fit its text while still filling the screen when the text is short.
  • Standardized the client-logo band so every logo displays at the same height on desktop, tablet, and mobile – previously wide logos were shrunk to a fraction of the others’ size – and applied the identical treatment to all five top-level pages.
  • Unified the underlying page structure so the hero and logo band use the same building blocks and naming on every page, making the whole set easier to maintain and keep consistent going forward.
  • Made the logo band sit correctly at the bottom of the first screen on every page, adapting to any window size, and re-checked each page after clearing all caching layers.

Making it real: Documentor now renames files to match their version

Documentor has been able to work out a family of documents’ order and propose a clean version number for a while now, but only within its own records – nothing on the actual file changed. That gap closes today: Documentor can now rename real files to match their assigned version, with a full undo available whenever it’s needed, plus smarter handling of documents that split into separately-edited copies and files that already carry their own version label.

  • Assigning a version number and renaming the real file are now two separate, deliberate steps – nothing changes on disk until you’ve reviewed and explicitly approved it, and a rename always covers every duplicate copy of a file, not just the one you’re looking at.
  • Every rename is recorded before it happens, so an interrupted batch – a crash, a permissions hiccup – can always be picked back up right where it left off, and a completed rename can be undone at any time, restoring the original filename with the same one-click safety.
  • When a document splits into two separately-edited copies, each branch now gets its own clean label showing where it diverged and how many edits it’s had since. If one branch is later declared the real one going forward, a single click collapses its whole history into the next version number, without disturbing the other branch’s numbering.
  • Documentor now recognizes files that already carry a deliberate version scheme of their own (v1.0, v2.0) and leaves them alone by default, while still cleaning up messier labels like “FINAL” or “Draft 2”. A safety fix also ensures that if a file is renamed a second time, undo only ever reaches back to the most recent rename – never an earlier one that’s already been superseded.

PDFs join the order: reading a file’s own embedded history, not just Word’s

Word documents have long carried a revision history Documentor can read to work out their order. PDFs carry a different kind of history, embedded in the file itself, and Documentor now reads that too – so PDFs take their place in a version family’s sequence instead of sitting in the “order unknown” pile.

  • PDFs embed their own provenance: a record, inside the file, of which earlier draft a saved copy was created from. Documentor now reads that directly from the file’s own metadata, so a family of PDF revisions can be put in order the same way Word documents already are.
  • This signal takes priority over the order Documentor infers from content alone, since it comes from the file itself rather than a guess. When the two disagree – a document’s own history looks reverted relative to what its metadata claims – Documentor flags it for a look rather than picking one silently.
  • A new “Review order” indicator in the Version Families view surfaces exactly which files triggered that disagreement, alongside the existing order badges.
  • The “order unknown” pile shrinks: PDFs, which previously carried no ordering signal at all, can now be sequenced wherever this metadata is present – closing the last major gap in version ordering.

Dynamics 365 CRM: API integration + change-control repo

Claude can now manage the Authgnosis CRM directly through the Dataverse API, with every future change tracked, auditable, and reversible through a new change-control repo wired into the daily close-out workflow.

  • Stood up programmatic access to the Authgnosis CRM (Dynamics 365 Sales Professional). Claude now works the CRM through the Microsoft Dataverse API using a service principal instead of via Claude’s CoWork screen control.
  • Debugged a chain of integration obstacles along the way: a missing Microsoft first-party service principal, a Claude/Microsoft Entra OAuth incompatibility, and a broken official MCP proxy. Resolved with the community mcp-dataverse server (79 tools).
  • Established a change-control repo in GitHub to mirror change-control for other Authgnosis projects: backlog, per-change audit trail, before/after snapshots, and documented rollback paths.
  • Wired the repo into the daily close-out workflow, including this Activity Feed publisher hook.

Putting version families in order: which draft came first

Documentor already groups files that are revisions of one another; now it works out their order too – reading the sequence from each document’s own revision history, flagging genuine forks, recognising identical copies as the same version, and honestly saying ‘unknown’ rather than guessing when there is no signal to go on.

  • For Microsoft Office documents, Documentor reads the revision history a file accumulates as it is edited and reconstructs the sequence – earliest draft to latest – showing a numbered order wherever the history makes it clear.
  • Confidence is shown honestly: when two revisions are near-identical rather than a clean progression the order is marked ‘likely’ rather than asserted, a document edited in two parallel directions is shown as branched instead of flattened into a false line, and files with no ordering signal are left ‘unknown’ rather than guessed.
  • Files that share identical revision history are recognised as the same version saved in more than one place – co-equal copies, not a sequence – and labelled as such, so they are not forced into an order that does not exist.
  • A new Merge action lets you combine families that were split apart, and the primary copy of each version is now chosen the same way duplicate copies are resolved – your kept or starred copy, otherwise the simplest-named one.

Rebuilt the Authgnosis article template into a guided reading experience

Long-form articles on Authgnosis now use a new reading template that turns a wall of text into something you can navigate – a sticky rail that shows where you are in a multi-part series, an in-page table of contents, a reading-progress indicator, cleaner typography, and images you can open and scroll at full size. It debuted with a new five-part series on the enterprise sales lifecycle.

  • New article template: a sticky sidebar shows your place in a multi-part series and lets you jump between parts and sections, alongside a reading-progress indicator and a call-to-action that stays with you as you read.
  • Easier to read: a refined type scale, a comfortable line length tuned for any screen, and highlighted boxes that call out key takeaways and frameworks so the important points stand out.
  • Images now open in a full-screen viewer that shows tall diagrams and worksheets at a legible size and lets you scroll through them, with the page held in place behind – no more shrunk-to-fit graphics you cannot read.
  • Debuted the template with a new five-part series, “Integrating Sales Processes and Customer Lifecycles,” reorganizing one long article into a navigable series with consistent styling and prev/next links across every part.

Version Families: seeing which documents are revisions of one another

Documentor can now show ‘version families’ – groups of files that are revisions of one another – discovered from each document’s content lineage rather than its filename, and it lets you curate them: separate true duplicates from genuine versions, and correct any grouping that looks wrong.

  • A new Version Families view groups files that are revisions of one another by their content lineage – the revision history Microsoft Word records, or a content fingerprint of the text – not by their filenames, so inconsistently-named copies still line up.
  • Exact duplicates are detected and collapsed, then shown separately from real version sets, so a tangle of similarly-named files reads as one clean lineage with its copies noted.
  • The grouping was refined against a real document library: thresholds tuned, a filename check added so a shared template no longer merges distinct documents, and implausibly large groupings flagged for review.
  • Correction controls let you uncheck a file that does not belong or dismiss a whole false grouping, with the choice remembered on future scans – plus a results export for reviewing the output.

Version detection now reads Word’s own revision history

Documentor’s version-detection moved from groundwork to a working capability for Microsoft Office documents – it now recognizes when Word files are revisions of one another by reading the revision history Word quietly records inside every document, and groups them into version families.

  • Documentor now identifies related versions of Word documents from the revision-tracking metadata Microsoft Word embeds in each file – so it recognizes revisions of the same document even when the filenames are inconsistent or unhelpful.
  • Related versions are grouped into ‘families’, so a tangle of similarly-named copies is seen as one ordered lineage – the basis for tidying them into a single clean version sequence.
  • Coverage spans the whole Word family – standard documents, macro-enabled files, and templates – and the detection runs automatically as part of the normal folder scan, reusing its results on later scans.
  • The work is backed by a thorough automated test suite and a shared clustering engine, with every change isolated on a feature branch and verified green before release.

Detecting different versions of a document, whatever it’s named

Design and groundwork began on a new Documentor capability that recognizes when several files are really versions of the same document – revisions of one another – even when their names give nothing away, and that can re-number them into one clean, consistent version sequence.

  • Completed the design for automatic version detection – how Documentor will group files that are revisions of one another and assign each a clean version number, working from the documents’ own content and history rather than their filenames.
  • Built and tested the detection foundation: a compact content ‘fingerprint’ for every scanned file that recognizes near-duplicate revisions, not just byte-for-byte identical copies.
  • Optimized the fingerprinting algorithm to run roughly eleven times faster, so it stays quick even across very large folders.
  • Wired it into the existing folder scan so fingerprints are computed automatically in the background and reused on later scans, keeping the app responsive even on large libraries.

Documentor learns which duplicate copies you mean to keep

Documentor’s duplicate-cleanup workspace now recognizes that some copies are kept on purpose – a canonical version, a disclosure copy, a delivered set – and lets you settle those once and apply the decision across a whole project, without ever being forced down to a single file.

  • New multi-keep patterns let you keep copies in several legitimate folders at once and drop only the stray duplicates elsewhere, applied across every matching set in one step – so a recurring ‘keep these, drop the rest’ decision is made once rather than file by file.
  • A ‘mark kept’ control resolves a set you intend to keep as-is, so it counts as done and stops reappearing on future scans – while a newly added copy still brings the set back for review.
  • Patterns now respect group size: a decision made on a two-copy group applies only to other two-copy groups, so a simple case never bleeds into a more complex one.
  • The entire cleanup session is now safely abandonable – review your exclusions and keep-marks, then Save or Discard – with ‘important to review’ stars kept independent so they are never lost.

Fixed a mobile layout glitch on the Authgnosis home page

    • Two text blocks on the home page were rendering in a narrow column hugging the left edge on phones instead of filling the width and centering. They now display correctly on mobile, in line with the rest of the page – and the desktop layout was left untouched.
    • Diagnosed the real cause rather than patching the symptom: the two affected sections each carried an extra layout preset that forced their text column to 60% width on phones, quietly overriding the column’s own correct full-width setting – the five matching sections on the page did not have it.
    • Confirmed it by reading the live page’s structure and comparing the two broken sections against the ones that rendered correctly, isolating that single stray preset as the only difference between them.
    • Applied the fix directly to the page’s stored layout, removing the stray preset so the two sections now match their siblings exactly, then re-validated the entire page structure before saving to make sure nothing else shifted.
    • Cleared every caching layer and re-checked the live page on a simulated phone to confirm the columns now render full-width and centered, while verifying the desktop view was unchanged.

    Documentor – a major upgrade to duplicate cleanup and file filtering

    • Find Duplicates is now a resizable, much faster workspace – a content-hash cache lets re-scans reuse prior hashes instead of re-reading every file, and long paths are readable so near-identical copies are easy to tell apart.
    • A new path-pattern tool resolves hundreds of duplicate sets at once – exclude every copy under a chosen folder (root or any sub-folder), with a safety rule that never removes a file’s last copy.
    • “Show excluded” and a “Normalize to this pattern” action let you revisit and reverse earlier choices as you work, so changing your mind mid-process just works.
    • A new file-type browser groups a project’s files by type and owning app, so a large project can be thinned to just the files that matter.

    Documentor adds a File Query Language for List View search

    • A new File Query Language (FQL) now powers List View search – filter files by name or folder path using and / not, bracketed or, quoted phrases, and the * and ? wildcards.
    • Searching is done through a form-first faceted panel that opens inline beneath the toolbar (a Finder-style filter) – labeled Name and Path rows, live validation, and a plain-English readback of every query.
    • An Advanced mode adds a raw query box for power users, with a one-way “Copy to Advanced” from the form and a live matches-of-total count in the status bar.
    • The same query engine is built to also drive Documentor’s upcoming duplicate-management rules, so search and cleanup will share one language.

    Documentor keeps file descriptions and groups when files are renamed or moved

    The descriptions, groups, and stars you add to a file in Documentor now follow it when the file is renamed or moved – so your curation work is never stranded by a reorganized folder.

    • When a scan finds a file has been renamed or moved to a different folder, its description, group memberships, star, and exclusion are carried across to the new location automatically – there’s no need to re-tag the file.
    • The relocated file is recognized by its content fingerprint – its size and timestamps – so the match is instant, needs no re-hashing, and is applied silently for a clear one-to-one match.
    • The matching is deliberately cautious: when two files look identical it won’t guess, leaving those cases for you to resolve rather than risk attaching notes to the wrong file.

    A unified query language for file search and duplicate detection

    A design milestone for Documentor – defining one query language that serves both file search and automatic duplicate clean-up.

    • Designed a single query language for the Documentor document-curation app that scopes searches by filename and folder path, reusing its existing boolean operators (and / or / not), quoted phrases, and wildcards.
    • Extended the same language to drive automatic duplicate handling – an ordered, first-match-wins list of keep and drop rules that reads like a precedence list rather than nested conditions.
    • Folded the existing shortest-filename heuristic into the new model as a composable tiebreaker, and added relative options such as keep-newest and keep-oldest.
    • Built in a safety rule so an automatic de-duplication pass can never flag every copy in a set – at least one file is always retained.

    ZoomInfo connected to the Claude data stack

    • Authgnosis connected ZoomInfo’s go-to-market intelligence to its Claude AI environment, making verified B2B company and contact data available in both Claude CoWork and Claude Code through the Model Context Protocol (MCP).
    • The assistants can now search and enrich account and contact records directly during analysis work – alongside the existing BigQuery connection – without leaving the workflow.
    • The internal system-architecture diagram was updated to add ZoomInfo as a new data source.
    • Separately, Claude Code Remote Control was configured – enabling secure access to local Claude Code sessions from the Claude iPhone app.

    Sharing how Authgnosis runs on AI

    • Published an architecture overview of the Claude-powered environment that runs Authgnosis’s day-to-day operations – from analytics and finance to the website itself.
    • Launched this auto-updating activity feed: concise summaries of our work, generated and posted automatically as it ships.

    Grant monitoring overhaul & self-service subscriptions

    • Significantly improved the automated federal grant monitoring system – more accurate change detection and a clearer weekly status digest.
    • Introduced self-service email subscriptions (subscribe or unsubscribe on your own).
    • Strengthened the reliability and security of the underlying automation.

    Deduplication workflow & smarter filtering

    • Streamlined the duplicate-handling workflow – auto-select or exclude duplicate copies with iterative re-scan.
    • Added a Groups column with multi-select filtering, a sortable file-type column, clickable links in exports, and smoother handling of cloud-only files.

    Workflow tooling

    • Added tooling to track collaborative AI project work consistently and auditably.
    • Built a CV / LinkedIn optimization tool to better align candidate profiles with target roles.

    Search, descriptions & duplicate detection

    • Added powerful search (boolean, wildcard, negation), multi-select with bulk actions, and per-file descriptions with bulk editing.
    • Introduced exact duplicate detection and spreadsheet (XLSX) export of deliverable summaries, plus performance gains on large file sets.

    Website performance & SEO

    • Enforced HTTPS sitewide, refined SEO metadata, and submitted pages for search re-indexing.

    Automation foundations

    • Launched an automated federal grant monitoring agent covering nine funding programs, with weekly status reporting.

    Documentor begins

    • Began building Documentor – a macOS app for organizing, documenting, and managing documents and files, designed for contractors and consultants to give clients clean summaries of deliverables separate from working files.
    • Stood up the initial app: file scanning, a sortable file list, grouping, and Quick Look preview.

    Smart Lighting Cost-Benefit Model Rebranded and Rearchitected

    • Rewrote a 38-sheet macro-enabled Excel workbook in-place using a Python ZIP/XML transform – replacing all legacy brand references across shared strings, named ranges, and formula strings without touching the VBA binary or breaking any calculations
    • Replaced three product line names throughout the model (Cabinet Energy Manager, Wire Theft Sensor, Lighting Controller) with ordered pre-passes to prevent compound-phrase duplication artifacts in multi-word substitutions
    • Removed four embedded Office web add-ins (ArcGIS, MAPCITE, Ghostwriter, Adobe Document Cloud) at both the file XML layer and the Excel application level – discovering that Mac Excel 365 requires accepting consent modals before the removal UI is accessible
    • Initiated rearchitecture of the model into a PostgreSQL + Python + Streamlit platform (Roadway Intelligence Platform): schema design completed across 4 schemas, 20 utility rate plans classified into 6 architecture types, California CCA registry extracted, and initial repo scaffold pushed to GitHub