{"$schema":"https://jsonresume.org/schema","basics":{"name":"Kevin Fincel","label":"Forward Deployed AI Engineer · Founder, Geol.ai","url":"https://finceldesign.com","summary":"I help you figure out where AI would be useful, then build it into the systems your team already uses. That might mean checking a product catalog or helping staff work through incoming quote requests. I start with two or three days at your business, do the technical work from my office, and stay involved until people are using it.","location":{"city":"Jacksonville Beach","region":"FL","countryCode":"US"},"profiles":[{"network":"LinkedIn","url":"https://www.linkedin.com/in/kevinfincel"},{"network":"Geol.ai","url":"https://geol.ai"}]},"work":[{"name":"Geol.ai","position":"Founder","url":"https://geol.ai","startDate":"2025-08","summary":"Founded and ship a production AI-search visibility platform monitoring how ChatGPT, Perplexity, Claude, Gemini, Copilot and Grok cite and recommend brands."},{"name":"B2B marketing agency (name withheld by policy)","position":"AI infrastructure lead","startDate":"2018-10","summary":"Architected the org's AI environment from zero: a fleet of five self-hosted MCP servers (84 code-verified tools) and org-wide agent tooling in daily team use."},{"name":"Fincel Design, LLC","position":"Founder","url":"https://finceldesign.com","startDate":"2008","summary":"18+ years of shipped web and AI systems: full-stack product engineering, enterprise cloud, ERP integration, executive-facing delivery. Est. 2008."}],"skills":[{"name":"Production LLM integration","level":"SHIPPED","keywords":["llm","mcp","model context protocol","openai","anthropic","claude"]},{"name":"AI agents & orchestration","level":"IN FIELD","keywords":["agent","agents","agentic","orchestration","multi-agent","swarm"]},{"name":"RAG & grounded retrieval","level":"IN FIELD","keywords":["rag","retrieval","embedding","embeddings","vector","grounding"]},{"name":"Evals & verification","level":"IN FIELD","keywords":["eval","evals","evaluation","benchmark","harness","red team"]},{"name":"Full-stack development (TS / React / APIs / DBs)","level":"SHIPPED","keywords":["typescript","react","next.js","nextjs","node","full-stack"]},{"name":"Deployment, security & identity","level":"IN FIELD","keywords":["oauth","auth","security","identity","sso","cloud run"]},{"name":"Enterprise integration (ERP / CRM / analytics / legacy)","level":"SHIPPED","keywords":["erp","netsuite","crm","salesforce","sap","legacy"]},{"name":"Customer-facing delivery","level":"SHIPPED","keywords":["customer","client","stakeholder","consulting","communication","presentation"]},{"name":"Product judgment & delivery ownership","level":"SHIPPED","keywords":["product","ownership","roadmap","prioritize","scope","ship"]}],"projects":[{"name":"Five MCP servers, one encrypted token vault","description":"I connected the team's AI tools to the software they use for ads, reporting and calls. Staff sign in with their own accounts, and the ad connection can't change live spending.","highlights":["5 custom MCP servers on Cloud Run","84 tools code-verified across the fleet","11 total org connectors (6 off-the-shelf + 5 custom)","Encrypted OAuth: Firestore + Fernet + Secret Manager","0 mutate tools in the ads connector, by design"],"keywords":["MCP / FastMCP","Cloud Run","OAuth 2.1 + DCR","Firestore + Fernet","Secret Manager","Python"],"url":"https://finceldesign.com/casework/five-mcp-servers-one-token-vault"},{"name":"One database, two front doors","description":"I replaced a 12-tab trade-show spreadsheet with an app the team uses daily. Staff can update it directly or ask an AI assistant to do it. Every change is recorded.","highlights":["92 MCP tools across 16 domain files (code-verified)","Full OAuth 2.1 server hand-built: PKCE, DCR, single-use codes, rotation + reuse detection","Immutable channel-tagged audit log on every mutation","2-step HMAC confirm-tokens on every destructive tool, 5-min TTL","Replaced a 12-tab, ~440 KB workbook"],"keywords":["Next.js 15","React 19","Supabase Postgres","MCP","OAuth 2.1","RLS","Vercel","Audit logging"],"url":"https://finceldesign.com/casework/one-database-two-front-doors"},{"name":"2,014 domains, one consent gate","description":"After years of acquisitions, the company didn't know which websites were still running. I checked 2,014 domains and identified where visitor tracking needed consent controls.","highlights":["2,014 domains probed; count verified in the raw audit data","27 live (~1%); 988 redirect-only; ~973 parked","Triage: 14 critical / 7 upgrade / 1 verify / 5 no action","70+ tracker signatures per domain","189 domains recovered by patient re-probe → 3 hidden compliance liabilities found","Largest hub: 419 inbound forwards collapsed to one fix","22 draft policy packs delivered"],"keywords":["HTTP/DNS probing","Headless-browser verification","GDPR / CPRA","Consent gating","Event-driven JS","Severity triage"],"url":"https://finceldesign.com/casework/2014-domains-one-consent-gate"},{"name":"A live ERP, an API-first storefront","description":"I built the connection between the company's inventory system and its new website. Nearly 60,000 items sync in 5.4 minutes. The backend is verified; the website is still being built.","highlights":["59,886 ERP items → 28,095 logical products / 59,559 condition variants (live-verified)","Grouping key found at 99.4% fill; no new client schema needed","Full sync 5.4 min, 100% hash stability, 0 writes on re-sync; delta sync <1s","9-tool read-only MCP server on the storefront","26 ADRs","0 checkout paths; RFQ-only by design"],"keywords":["Next.js","TypeScript","Hono API","PostgreSQL + Drizzle","NetSuite (OAuth2 M2M, ES256)","Azure Container Apps","GitHub OIDC","OpenAPI 3.1","MCP"],"url":"https://finceldesign.com/casework/live-erp-api-first-storefront"},{"name":"916 products, 30 agents, one operator","description":"I built an AI-assisted check of 916 products against a 250-page guide. The employee responsible for the catalog ran the full review herself, with three checkpoints together.","highlights":["916 products (exact, verified by parsing the export) vs a 250-page / 115 MB guide (exact, verified)","Baseline: 554 entries reviewed, 133 flagged, 71 retired-slug links","747 products carry a manual PDF; 341 a video","Swarm authorized to ~30 agents; adversarial refutation pass on every flag","3 human checkpoints","Comprehensive run completed end to end by the non-engineer operator (attested 2026-09-01)"],"keywords":["Multi-agent orchestration","Adversarial verification","PDF extraction","WooCommerce","Data QA","Human-in-the-loop"],"url":"https://finceldesign.com/casework/916-products-30-agents-one-operator"},{"name":"Agent-written changes to live ad accounts, safely","description":"Every API mutate touches live client spend. There is no sandbox.","highlights":["35 live API mutations, all logged append-only with approvals","~18 accounts under management","8-step validate-first mutate contract, per-change human approval","≥2 adversarial reviewer agents on every import + deterministic validator","49-agent pre-launch audit on a first-ever launch","Byte-fidelity import engine (naive serialization measured drifting 120 bytes)"],"keywords":["Google Ads API","Python","validate_only pipeline","Append-only audit log","Adversarial AI review","Atomic mutates","Forensic analytics"],"url":"https://finceldesign.com/casework/agent-written-ad-changes-safely"},{"name":"23,658 products, two dollars of compute","description":"A 23,658-product catalog needed cleanup at a cost we could justify.","highlights":["~23,658 products in program scope (roster-reconciled at 0.0% delta)","Pilot: 697 products for <$2 compute, 98.1% verifier pair agreement, 100% on category","~60% of recategorization resolves deterministically at 0 tokens","Budget ceilings code-enforced, auto-halt at 80%","134,058-image library uncovered via ERP forensics","PII quarantine gate born from a 6-in-10 sample finding"],"keywords":["Agentic pipeline","Batch APIs","Cost engineering","Verifier agents","Data governance / PII","ERP forensics"],"url":"https://finceldesign.com/casework/23658-products-two-dollars-compute"}],"meta":{"canonical":"https://finceldesign.com/resume.json","lastModified":"2026-09-10","note":"Client and employer names withheld by policy; every engagement verifiable in conversation and reference checks. All figures repo-verified Aug 2026. Education is not published by decision.","whiteLabelPolicy":true,"contact":{"note":"No email or phone is published; engagement is form-driven.","human":"https://finceldesign.com/#contact","agent":{"method":"POST","endpoint":"https://finceldesign.com/api/contact","schema":"GET the endpoint"}},"attestedProfile":{"version":"2.1.0","attestedAt":"2026-09-04","href":"https://finceldesign.com/#profile","note":"Only Kevin-attested profile facts are published; each line is cited verbatim by the site's analyzers.","facts":[{"id":"web-systems-delivery","kind":"tenure","chunkId":"profile:web-systems-delivery","text":"Web and systems delivery: at least 18 years as of 2026-09 (attested 2026-09-02). Covers: web and systems delivery, web systems, full-stack development, full-stack product engineering."},{"id":"typescript","kind":"tenure","chunkId":"profile:typescript","text":"TypeScript: at least 2 years as of 2026-09 (attested 2026-09-03). Covers: typescript."},{"id":"node-js","kind":"tenure","chunkId":"profile:node-js","text":"Node.js: at least 2 years as of 2026-09 (attested 2026-09-04). Covers: node.js, node."},{"id":"sql","kind":"tenure","chunkId":"profile:sql","text":"SQL: at least 8 years as of 2026-09 (attested 2026-09-03). Covers: sql."},{"id":"python","kind":"tenure","chunkId":"profile:python","text":"Python: at least 6 years as of 2026-09 (attested 2026-09-03). Covers: python."},{"id":"php","kind":"tenure","chunkId":"profile:php","text":"PHP: at least 9 years as of 2026-09 (attested 2026-09-03). Covers: php."},{"id":"wordpress","kind":"tenure","chunkId":"profile:wordpress","text":"WordPress: at least 10 years as of 2026-09 (attested 2026-09-03). Covers: wordpress."},{"id":"docker","kind":"tenure","chunkId":"profile:docker","text":"Docker: at least 2 years as of 2026-09 (attested 2026-09-03). Covers: docker."},{"id":"aws","kind":"tenure","chunkId":"profile:aws","text":"AWS: at least 5 years as of 2026-09 (attested 2026-09-03). Covers: aws."},{"id":"google-cloud","kind":"tenure","chunkId":"profile:google-cloud","text":"Google Cloud: at least 5 years as of 2026-09 (attested 2026-09-04). Covers: google cloud, gcp."},{"id":"hubspot","kind":"tenure","chunkId":"profile:hubspot","text":"HubSpot: at least 3 years as of 2026-09 (attested 2026-09-03). Covers: hubspot."},{"id":"pardot","kind":"tenure","chunkId":"profile:pardot","text":"Pardot: at least 4 years as of 2026-09 (attested 2026-09-03). Covers: pardot."},{"id":"google-tag-manager","kind":"tenure","chunkId":"profile:google-tag-manager","text":"Google Tag Manager: at least 6 years as of 2026-09 (attested 2026-09-04). Covers: google tag manager, gtm."},{"id":"ci-cd","kind":"tenure","chunkId":"profile:ci-cd","text":"CI/CD: at least 5 years as of 2026-09 (attested 2026-09-03). Covers: ci/cd."},{"id":"location","kind":"location","chunkId":"profile:location","text":"Location: Jacksonville Beach, FL, US; remote available (attested 2026-09-03)."},{"id":"work-authorization-us","kind":"work_authorization","chunkId":"profile:work-authorization-us","text":"Work authorization: United States (attested 2026-09-03)."},{"id":"work-authorization-ca","kind":"work_authorization","chunkId":"profile:work-authorization-ca","text":"Work authorization: Canada (attested 2026-09-03)."}]}}}