Working with Claude
How one person uses AI to create, iterate, and ship — across enterprise software, law, security, and content — with zero ad spend.
Scott Willis · Enterprise Distribution Software Specialist · Pro Se Litigant · Builder
What We'll Cover
1
How I actually work with AI (the honest version)
2
Professional work: databases, automation, migration
3
Legal: representing myself in a fraud case
4
Personal project: building a threat intelligence honeypot
5
Getting real users with $0 and no marketing background
6
Using multiple AIs together — and knowing when not to
7
What I got wrong, what I'd do differently
~45 minutes · Q&A at the end
How I Actually Work with Claude
These aren't tips from a blog post. They're patterns I learned by shipping real things and failing first.
1Know what "done" looks like before you start — I decide the exact output format before writing a single prompt. Vague asks get vague results.
2Give it real data, not descriptions of data — I paste actual queries, actual error messages, actual court documents. Summaries lose the details that matter.
3Be surgically specific when something's wrong — "Row 47 returns NULL on the join" gets fixed in one round. "It's broken" gets five rounds of guessing.
4Re-establish context every session — Claude doesn't remember yesterday. I treat every conversation like onboarding a new team member.
5Nothing ships until it's copy-paste ready — No placeholder text, no "insert X here." If I can't deploy it or file it immediately, it's not done.
Professional Work
Databases & Automation
The same problems you have at work — just with an AI collaborator
Auditing 300+ Database Views
The Process, Not the Tech
I fed Claude real production queries one at a time — not theoretical examples. It identified performance patterns I'd been living with for years. Things that looked correct but were silently slow.
We worked in batches: 7 scripts first, then 62 more. The second batch revealed a critical lesson — Claude generated placeholder syntax in several scripts. My "nothing ships until it's ready" rule caught every one before production.
The AI accelerated the work. My standards were the quality gate.
~27%
performance improvement
measured after deployment
Replacing What Nobody Understood
9 Macros → 1 Automation
The warehouse ran on 9 fragile Excel macros that nobody fully understood. Instead of documenting them, I described the end-to-end workflow to Claude — scan, look up, validate, ship — and we rebuilt it from the intent, not the legacy code.
Tested against legacy output until we hit 99%+ match. The team validated daily before we cut over.
Migration: Conversation as Strategy
Multiple locations needed to move between enterprise distribution platforms. Instead of hiring a consultant, I walked Claude through the data domains one by one and we built a phased migration plan together.
The mapping strategy came out of conversation. The domain knowledge came from me. The structure came from the collaboration.
Legal
Representing Myself
What happens when you can't afford a lawyer but you can think clearly
The Fraud Case
What Happened
An opposing attorney filed a false address with the court — an address I hadn't lived at in over a decade — just 103 days after her own team served me in person at my real location. Based on that false filing, a judge entered a default custody order I never knew about. I lost access to my children for over 490 days.
What I Did About It
I filed suit pro se. Every legal document — the petition, the response to their motion to dismiss, the bill of review — was co-authored with Claude. I brought the facts and the anger. Claude helped me structure them into something a court would take seriously.
There's now an active criminal investigation. Complaints have been filed with the relevant professional licensing bodies.
Case is set for trial.
What "Co-Authoring" Actually Means
Claude didn't write my case. I lived my case. Here's how the collaboration actually worked:
I broughtThe timeline, the documents, the emotional weight, the public records proving the fraud — and the refusal to accept what happened
Claude broughtLegal structure, case law research, statutory formatting, and the ability to organize my facts into causes of action
The key momentTheir attorney moved to dismiss, arguing immunity. Claude helped me frame the 103-day gap as the dispositive fact — using their own legal standard against them
The resultPro se filings that forced a 30-year attorney to respond substantively. The court set the case for trial — not dismissal.
Building a threat intelligence honeypot from scratch
Why Build a Honeypot?
The Idea
I wanted to understand how attackers actually behave — not from reading about it, but from watching it happen. So I built a site that looks like a vulnerable WordPress install, deployed it for free, and started logging every probe.
The domain name does double duty. It pulls in people researching the legal topic from my own case, and every bot scanning for vulnerable installs finds it automatically.
Simple on Purpose
Netlify hosts the site for free and runs edge functions that act as a serverless firewall.
Supabase stores every probe in a database — IP, path, user agent, headers — structured and queryable.
Claude helps me analyze the logs, cluster threat actors by behavior, and build dashboards.
Total monthly cost: $0.
What Attackers Actually Do
Real probes logged in the last 48 hours — every one hit my site automatically:
| What They Tried | Why |
| /wp-login.php | Trying to brute-force WordPress login credentials |
| /xmlrpc.php (POST) | Exploiting WordPress's remote API for amplification attacks |
| /wp-admin/setup-config.php | Checking if WordPress was installed but never configured |
| /admin/.env | Hunting for accidentally exposed passwords and API keys |
| /shell.php | Looking for web shells — evidence of a previous compromise |
| /backup.sql | Hoping someone left a database dump in a public folder |
| /phpmyadmin/ | Trying to access database admin panels directly |
Every probe is logged in real time. No servers to manage. No infrastructure to maintain.
$0 Ad Spend
Real Users Anyway
What happens when you build something people actually want to read
30-Day Analytics
What People Search For
Niche legal terms surfaced through Search Console — long-tail queries with low competition that mainstream content ignores. The honeypot site ranks for them because nothing else does. Free traffic, real intent.
Where They Come From
Countries: US (35), Egypt, China, Ghana, Taiwan
Channels: Direct (64), Organic Search (5), Social (1), Referral (1)
Return rate: 3.5–8.3% come back weekly
$0
personal ad spend
$0/month hosting
80+ bot probes / day = free threat intelligence
Strangers Ran Paid Ads for My Site
People I have never met or spoken to noticed my work and independently paid for advertising campaigns promoting safesapcrtx.org.
I didn't ask them to. I didn't know they were doing it. They just thought the content mattered enough to spend their own money on.
The content spoke for itself.
Using Multiple AIs Together
Claude is the primary builder. But I use other AIs to stress-test, analyze, and create feedback loops:
Claude — Where Things Get Built
ChatGPT
SEO audits, content gap analysis — "what's missing?"
Grok
Real-time social signal analysis — what's getting traction?
Copilot
Bing indexing behavior, alternative perspectives
Gemini
Google Search patterns, traffic analysis
The other AIs analyze the site. That feedback loops back to Claude for the next build. Social posts force real-time Google indexing. The cycle runs continuously.
What I Got Wrong (Honest Version)
Over-Engineering
Not every problem needs a pipeline or a multi-step workflow. Sometimes a clean prompt in a fresh session is faster and better than an elaborate system. I built complexity that didn't earn its keep.
Trusting Without Checking
Claude's Batch 2 placeholder bug taught me this permanently. The output looked right. It was structured correctly. But several scripts had syntax that would have broken in production. You lose nuance and edge-case details if you don't verify.
Forgetting the Tradeoffs
AI gives you speed, but speed costs something. You lose experiential texture. You lose the thinking-through-it process that sometimes is the point. I had to learn when to use Claude and when to just sit with the problem myself.
The rule I follow now: If the problem is well-defined and the output format is clear — delegate to AI. If the problem is ambiguous and I need to think — I do that myself first, then bring Claude the result.
The Iteration Loop
This is the actual cycle. It ran dozens of times across every project in this presentation.
Define the
outcome
→
Claude
drafts
→
Test against
reality
→
Specific
feedback
→
Ship or
repeat
The critical insight: Most people stop at step 2. They get a draft and try to use it. The real value is in steps 3 and 4 — testing against your actual environment and giving feedback precise enough that the next iteration converges instead of wandering.
The Loop, Step by Step
1. Define doneBefore you type a word. "Copy-paste into the live environment with zero errors." "Filed with zero procedural defects." If the target is fuzzy, the output is fuzzy.
2. Claude draftsFeed real artifacts, never summaries. Actual code, actual logs, actual filings. State hard constraints up front. Let it go full creative on the first pass.
3. Test realityWhere 95% of users fail. Run the code in dev. File in test mode. Deploy and hit it with traffic. You are the merciless QA department.
4. Precise feedbackThe convergence engine. Bad: "make it better." Good: "Line 47 throws an invalid handle on the temp buffer because the alias only exists in the older code path." Reproducible > vague.
5. Ship or repeatTwo choices only. Ship = passes production with zero caveats. Repeat = back to step 3 with new failure data. No "maybe one more prompt." The loop is sacred.
Make Your Loop Tighter
War room file
Keep a context file you paste at the start of every new session: definition of done, previous failures, system constraints. Externalized memory beats hoping the model remembers.
Pattern library
After every successful ship, save the final output plus the exact feedback that got it there. That library is more valuable than any prompt template you'll find online.
Time-box
15–20 minutes per loop, hard cap. If it isn't converging, the outcome wasn't defined clearly enough. Go back to step 1. Stop prompting.
Why it crushes other workflows: the human is the constant. You stay the domain expert. Every hallucination becomes fuel. The loop is model-agnostic — Claude, Grok, Gemini, GPT — because the leverage is in the discipline, not the tool.
What I'd Tell Someone Starting Today
You're the expertClaude amplifies domain knowledge. If you don't have the knowledge, you get confident-sounding garbage. The human is the quality gate.
Specificity compoundsOne precise correction saves five rounds of guessing. Invest the time to describe exactly what's wrong.
Ship real thingsThe gap between "playing with AI" and "using AI" is whether something goes into production. File the motion. Deploy the script. Push the site live.
Side projects matterMy honeypot made me better at log analysis at work. My legal filings made me a better writer. Everything cross-pollinates.
AI levels the fieldA pro se litigant produced filings that survived a motion to dismiss from a 30-year attorney. That wasn't possible five years ago.
The Honest Limitations
Everything in this deck is real. So is everything below. Anyone selling you Claude as a magic co-founder is lying.
Compaction loses thingsWhen the context window fills up, Claude summarizes the older parts. That summary drops nuance and edge cases. It is not lossless. Plan for it.
Confidently wrong~20% of the time Claude will produce an answer that sounds right and isn't. Citations get fabricated. Working code gets rewritten unnecessarily. The human is the verification layer — always.
Instructions get ignoredEspecially in long sessions. "Don't change X" gets violated. Re-state critical constraints in every meaningful turn.
Not a stateful partnerDefault chat has no memory between sessions. What feels like continuity is you re-establishing context every time. That's a workflow, not a feature.
The honest framing: Claude is a smart but unreliable junior — not a co-founder. The leverage comes from how you wrap it, not from the model alone.
From Prompting to System Design
Stage 1 thinking: "How do I write a better prompt?" Stage 2 thinking: "How do I build a system around the model?" That's the actual leap.
Don't
• Giant kitchen-sink prompts
• Long messy chat threads
• "Just keep going" sessions until compaction breaks them
• Trust the model to remember last week
• Skip verification because the answer "sounds right"
Do
• Break work into discrete phases with checkpoints
• Externalize memory: docs, files, system prompts, MCP tools
• Restart sessions with clean, curated context
• Use real tools (file I/O, APIs, databases) — not just chat
• Verify every claim against reality before shipping
The real formula: Claude + external memory + structured workflows = leverage. The honeypot, the SQL audit, the legal filings — none of those were "I asked Claude a question." Each one was a system: scoped tasks, real artifacts, tight feedback loops, verification at every step.
How to Use Claude AI Effectively
Most people are using Claude wrong. They treat it like a chatbot. The most effective way to use Claude AI is as a production system — wrapped in a structured workflow with real artifacts, real tests, and tight feedback loops. This 24-slide presentation walks through that workflow with real case studies.
What Claude AI Actually Is
Claude is a large language model built by Anthropic for reasoning, coding, long-form writing, and tool use. The most effective way to use Claude is not "better prompting" — it is wrapping the model in a structured workflow. Prompting is Stage 1 thinking. System design is Stage 2 thinking. This presentation is about Stage 2.
What Most People Get Wrong About Claude
Three failure modes account for almost every "Claude isn't that useful" complaint: one-shotting it (no iteration, no verification), feeding it summaries instead of real artifacts, and treating the chat itself as the system instead of building a workflow around it.
My Actual Claude Workflow (Step by Step)
Step 1: Define the Output
Before you type a single word, know exactly what "done" looks like in production reality. Not "a good query" — copy-paste into the live environment with zero errors. Not "a legal-looking brief" — filed with zero procedural defects. If the target pattern is fuzzy, the output is fuzzy.
Step 2: Provide Real Context
Feed Claude the actual code, the actual error message, the actual log lines, the actual document. Never summaries. Summaries leak the exact signal Claude needs. Include hard constraints up front so the first draft doesn't violate them.
Step 3: Iterate and Debug
Test every draft against reality immediately. Document failures with surgical precision: "Line 47 throws an invalid handle on the temp buffer because the alias only exists in the older code path" beats "it's wrong" by an order of magnitude. Specific feedback is the convergence engine.
Step 4: Ship Only Production-Ready Work
Two choices: ship if it passes your production test with zero caveats, or repeat from step 3 with the new failure data. No "maybe one more prompt." The loop is sacred.
Claude vs ChatGPT: When to Use Each
Neither Claude nor ChatGPT is universally better. Use Claude for long-context work, careful editing, conservative tone, and tool-use / agent workflows. Use ChatGPT for fast breadth-first ideation, multi-modal work (images, voice), and the broader plugin ecosystem. Most serious users keep both open and route work to whichever fits the task. Anyone telling you "X is always better than Y" is selling you something.
Common Mistakes That Break Claude
- Prompting in summary form instead of pasting real artifacts.
- Defining "done" in the middle of a session instead of before it starts.
- Letting context-window compaction happen silently and lose your earlier constraints.
- Trusting fabricated citations, library names, function signatures, or config flags without verifying.
- Skipping the test-against-reality step because the output "looked right."
- Re-prompting "try again" instead of giving a precise correction.
- Asking the chat to remember things from prior sessions when it has no cross-session memory.
Reusable Claude Workflow Template
Paste this at the top of any new serious Claude session. If you can't fill all five sections in before you start prompting, you're not ready to prompt — go figure out the missing piece first.
- Outcome (definition of done): What artifact will exist when this session is over? What test will it pass? Where will it be deployed or filed?
- Constraints (hard rules): Language, framework, version. Things you must NOT change. Style and format requirements.
- Context (real artifacts only): Paste the actual code, log, document, or data. Never summaries.
- Prior failures: What did the last attempt get wrong? What was the precise reason?
- Verification plan: How will you test the output before shipping? What command or step proves it works?
Frequently Asked Questions
What is Claude AI used for?
Claude is used for long-form writing, code generation and refactoring, structured reasoning over long documents, legal and technical drafting, data analysis, and as the LLM behind agent and tool-use workflows. Its strength is holding coherent context over many thousands of tokens.
Is Claude better than ChatGPT?
Neither is universally better. Claude tends to win on long-context work, careful editing, and conservative tone. ChatGPT tends to win on fast breadth-first ideation and multi-modal features.
How do you write good prompts for Claude?
The best Claude prompts are specific, not clever. State the outcome, paste real artifacts, list hard constraints, and include any prior failures so the model doesn't repeat them.
Can Claude replace developers?
No. Claude amplifies developers — it doesn't replace them. Without domain expertise to verify output and define what "done" actually means, you get confident-sounding garbage.
What is the biggest mistake people make with Claude?
Treating it like a search engine instead of a junior collaborator. The leverage is in the iteration loop, not in any single prompt.
Does Claude have memory between sessions?
Default chat has no persistent cross-session memory. Serious workflows externalize memory in project files, system prompts, or tool-based memory APIs.
Read the long-form blog version · Anthropic · Claude documentation · SiegeStack home · ETL showcase