{"$schema":"https://jsonresume.org/schema","basics":{"name":"Kevin Fincel","label":"Forward Deployed AI Engineer · Founder, Geol.ai","url":"https://finceldesign.com","summary":"Kevin Fincel describes his work: I work with your team to understand where the work gets stuck, then build AI into the systems you already use. That might mean helping staff work through quote requests, checking a product catalog, or connecting information that lives in different tools. I handle the build and deployment, and help your team put it to use.","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":"Kevin founded and builds Geol.ai, a product that tracks 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 building web and business systems. The work includes full-stack product engineering, enterprise cloud, ERP integration and executive-facing delivery. Established in 2008, with AI work added in recent years."}],"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":"Connecting AI to the tools an agency uses every day","description":"Kevin Fincel: 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":"Replacing a 12-tab spreadsheet with a shared operations app","description":"Kevin Fincel: 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":"Auditing 2,014 domains for tracking and consent problems","description":"Kevin Fincel: 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":"Connecting a 59,886-item inventory catalog to a new storefront","description":"Kevin Fincel: 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":"A 916-product catalog review the catalog owner could run","description":"Kevin Fincel: 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":"AI-assisted ad changes with approval before every change","description":"Kevin Fincel: I built a process for AI-assisted ad changes that requires approval before each change. The record contains 35 changes across five accounts, all approved and logged.","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":"A 697-product pilot for under $2 in compute","description":"Kevin Fincel: I tested catalog cleanup on 697 products for under $2 in compute, with 98.1% verifier pair agreement. The larger 23,658-product program still requires phase approvals.","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-13","note":"Client and employer names are withheld by policy. Kevin can walk you through the work and discuss references in a conversation. Figures were checked against source repositories and project records in August 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/hire#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)."}]}}}