Skip to content
View AndrewAvery7's full-sized avatar

Highlights

  • Pro

Block or report AndrewAvery7

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
AndrewAvery7/README.md

Andrew Avery

A system's own status report is a claim, not evidence.

Senior product and operations leader — 15+ years of P&L turnarounds, PMO leadership and
strategic portfolios in retail energy — now building the tooling that checks
whether AI systems are telling the truth about themselves.

averyresume.com  ·  LinkedIn  ·  Book 30 minutes  ·  andrew@averyemail.com


Three projects. One rule.

Each of these began the same way. A tool reported a result, and the result was not true.

Project What the tool reported What was actually happening
claude-codex-bridge Transfer failed. The transfer had succeeded. Codex writes ledger paths with the Windows \\?\ extended-length prefix; the lookup compared them against realpathSync output, which does not carry it. Two spellings of the same path, never equal.
claude-markitdown-hook Conversion succeeded. Exit code 0. Nothing had been extracted. An image-only PDF has no text layer, so the converter writes an empty file and exits clean. Hand that to a model and it will tell you, with total confidence, that your document is blank.
PromptSpend 70 prices, all confirmed this morning. Twelve of them carried a confirmation date one day after the verification that supposedly produced it. A price cannot be confirmed tomorrow. The catalogue was describing work that had never happened.

The first two were other people's software. The third was mine, which is the harder version of the same discipline.


PromptSpend — LLM pricing that shows its work

Every LLM cost calculator on the web is a snapshot: someone hard-codes a dozen prices and within months the premise is wrong. PromptSpend is built the other way round — the pipeline is the product. Every morning a GitHub Action re-checks 69 models across 12 providers, merges sources under an explicit trust order, and a run that loses a source or would shrink the catalogue publishes nothing and fails loudly.

The differentiator is provenance, not breadth. Competitors advertise more models. Here every price carries the vendor page it was read from and the date it was read, and prices two sources disagree about are marked rather than quietly resolved. 43 of the 69 have been read against a vendor's own page; the other 26 stay labelled as feed-sourced, because using an aggregator to close that gap would launder a third party's number into a first-party claim.

Answers in four places — the site, a keyless CORS-open API with an OpenAPI 3.1 description, an MCP server on npm so a coding agent gets the same figures with the same paperwork, and a VS Code extension that annotates a model id inline with its rate and the date it was last confirmed. 737 automated tests across six suites, 112 of them in a real browser across four viewports, axe auditing at WCAG 2.1 A/AA. No accounts, no analytics, no cookies.

promptspend-promo.mp4

2 minutes 8 — press play, and hit 🔊 to unmute (GitHub starts videos silent).

claude-markitdown-hook — cheap, honest document ingestion

Converts the PDFs and Office files you mention to markdown and hands Claude Code a pointer rather than the contents, so referencing a large document costs almost nothing until its contents actually matter.

Because the underlying converter exits 0 on an empty extraction, every conversion is graded on the text it actually recovered — PDFs by characters per page against a threshold chosen from measured documents. Image-only PDFs measure 0–40 characters per page; real text PDFs measure 650–950; the default threshold of 100 sits in the gap between them. A failed extraction writes no file and tells Claude to read the original with vision instead. 41 tests, twelve formats, CI across Windows, macOS and Linux on Python 3.10 and 3.12. No OCR, no server, no telemetry.

claude-codex-bridge — hand a live session to another model

One command moves a running Claude Code session into OpenAI Codex with the conversation, skills, operating instructions and memory layer intact — and opens the Codex desktop app directly on the transferred thread. A desktop launcher does the same without spending a Claude token, which matters when you are rate-limited.

The Windows false-failure diagnosis above was submitted upstream as codex-plugin-cc#551: a 19-line fix, unit-tested, verified against a real Windows 11 ledger. It was closed without review after the repository went quiet; issue #513 is still open and the bug is still there. The fix ships here instead — this kit detects the imported thread directly in Codex's state database, because it trusts the evidence rather than the success message.


Before the code

Fifteen years of running operations where being wrong is expensive, which is where the habit comes from.

  • Returned a $25M annual-loss business unit to profitability in 12 months at NRG Energy.
  • Took $91.6M out of the cost base in three years against a four-year plan at Direct Energy — beating the target by $12.8M, 14% over.
  • Stood up a PMO from scratch across multi-segment GTM partnerships; managed five team leads across ~30 staff.
  • Served on the executive leadership team accountable for NRG's M&A divestiture, which unified the operating model and consolidated cross-functional teams.
  • Redesigned customer engagement at Direct Energy: retention +11%, revenue +$100K in the first month.

Currently Senior Manager, Business Performance & Strategic Initiatives at NRG Energy (Fortune 150), running the strategic-initiative portfolio for a multi-segment retail energy and home-protection P&L, working with the C-suite on prioritization, capital allocation and performance reporting — and expanding that remit into evaluating generative-AI use cases against ROI, accuracy and risk criteria.

Now

Post-graduate AI & Machine Learning: Business Applications at UT Austin (McCombs), in progress — four graded builds spanning multi-agent automation, RAG document analysis, predictive-maintenance networks and clinical decision support. Executive education in AI strategy at UC Berkeley (Haas). 19 AI certifications alongside CSM, CAL-E and CPP.

Ships code daily with Claude Code and Cursor, with evidence-based judgment about where LLM-assisted development helps and where it does not — evidenced by the three repositories above rather than asserted.


Open to senior product, operations and AI leadership roles and contract engagements.
Industry-open.

Book 30 minutes  ·  andrew@averyemail.com  ·  Résumé  ·  LinkedIn

Popular repositories Loading

  1. claude-codex-bridge claude-codex-bridge Public

    Hand a live Claude Code session to OpenAI Codex - conversation, skills, and instructions intact. One command, then Codex opens on your thread. Windows, macOS, Linux. MIT.

    Python

  2. claude-markitdown-hook claude-markitdown-hook Public

    Cheap, honest document ingestion for Claude Code - converts referenced PDFs and Office files to markdown and injects a pointer, not the content. Grades every conversion, so an image-only PDF is rep…

    Python

  3. promptspend promptspend Public

    LLM pricing that shows its work: every price carries its source and the date it was last confirmed, re-checked against the vendors every morning. A web calculator, an MCP server, a VS Code extensio…

    TypeScript

  4. markitdown markitdown Public

    Forked from microsoft/markitdown

    Python tool for converting files and office documents to Markdown.

    Python

  5. AndrewAvery7 AndrewAvery7 Public

    Profile

  6. awesome-mcp-servers awesome-mcp-servers Public

    Forked from TensorBlock/awesome-mcp-servers

    A comprehensive collection of Model Context Protocol (MCP) servers

    TypeScript