How I Use AI as an Economist
Notes from using AI in real, months-long research projects. Not a tutorial — what I have learned, what works, and what doesn't. Written for researchers who already use AI and want tricks beyond the basics.
Last updated: April 21, 2026. Download PDF version.
Principles
Three ideas that shape how I use AI day to day.
-
Teach the assistant once, benefit forever.
Every
CLAUDE.mdline, skill, and memory compounds across projects and machines. The first task is expensive; the tenth is cheap. Not sure how to teach it? Just ask: "I want Claude Code to do X better in the future. What's the best way — a skill, a hook, a memory, or something else?" - Use structure, not willpower. Plan mode, hooks, skills, and review passes keep the AI from charging ahead in the wrong direction. Unstructured prompts produce unstructured work. When a task is non-trivial, I reach for a workflow rather than typing harder.
- The reviewer should not be the builder. The agent that wrote something is the least likely to notice what it missed — like an author proofreading their own paper. Dispatch a second agent, or a second model, with a blank slate.
Dispatches
Notes I add as I learn. Sorted by most recently updated. Each card carries a permanent number (#N) and a floating Updated date.
Git worktrees in Claude Code: keep
Reviewing Claude Code's work: review the plan, the execution, or both
Annoyed by Claude Code permission prompts? Read this.
Context management in Claude Code: when to continue, compact, or start fresh
Compound Engineering: a workflow for research projects
The reflection workflow
Perhaps the most powerful technique I have found. When you encounter a new type of task:
- Push Claude Code to its best. Work through the task iteratively.
- Do not delete the session history. The full history is essential for what comes next.
- Ask Claude Code to reflect:
Reflect on this entire session. Is there anything you
should save as a skill, a memory, or a setting change
so that next time we do this, it goes faster?
Claude Code will then create reusable artifacts — skills, memories, or configuration changes. The first time you do a task with AI might not save time. The second time, it will. For more on creating skills, see this walkthrough.
I have built a dedicated reflection skill that automates this process. Install it with:
mkdir -p ~/.claude/skills/reflection && \
curl -o ~/.claude/skills/reflection/SKILL.md \
https://gjiang-economics.github.io/skills/reflection.md
Then at the end of any session, type /reflection.
Cross-model brainstorming
When Claude Code struggles with a subtask after a few attempts, try a "second opinion" from another model:
- Ask Claude Code to summarize the situation: problem, what was tried, what failed.
- Say: "Give me a self-contained prompt I can paste into Gemini."
- Copy it into Gemini (or another AI), then paste the solution back.
Different models have different strengths. Combining them often gets you to a solution faster than pushing a single model repeatedly. The same trick works in reverse when a chatbot conversation gets stuck — summarize and hand it to Claude Code.
Humanizer: strip AI writing patterns
AI text has telltale patterns — inflated language, filler phrases, em dashes everywhere. The humanizer skill detects 29 such patterns and rewrites text to sound natural.
Claude Code. Install and run /humanizer:
mkdir -p ~/.claude/skills/humanizer && \
git clone https://github.com/blader/humanizer.git \
~/.claude/skills/humanizer
Claude AI (web) and Claude Desktop. Create a Project, then paste the SKILL.md contents into the Project's custom instructions.
Remote control: approve sessions from your phone
Claude usage is calculated in 5-hour windows. If Claude Code pauses for a permission prompt while you are away, those hours are wasted. Remote Control lets you monitor and approve sessions from your phone or any browser via claude.ai/code or the Claude mobile app (iOS, Android).
/remote-control
Or start a new session with: claude --remote-control
My workflow. Before leaving the office, I start a long task with /remote-control. On the train home, I check my phone, approve prompts, and review progress. If I know what comes next, I start a second session — when session one completes, I pick up session two from my phone. See the official documentation for details.
Travel reimbursement as a skill
After a conference, I use Claude Code to prepare reimbursement documents using a custom skill.
Step 1: Organize your folder.
reimbursement/
|-- proofs/ # Receipts and payment evidence
| |-- 01 flight receipt.pdf
| |-- 01 boarding pass.pdf
| |-- 03 hotel invoice.pdf
| |-- 06 taxi receipt.pdf
| |-- 11 city tax photo.JPG # Photos of paper receipts work too
|-- host_reimbursement_policy.pdf # Instructions from the host
|-- summary_template.xlsx # Excel template (if any)
Files in proofs/ are numbered by item. Files sharing the same prefix (e.g., 01) belong to the same expense.
Step 2: Install the skill.
mkdir -p ~/.claude/skills/reimburse-external && \
curl -o ~/.claude/skills/reimburse-external/SKILL.md \
https://gjiang-economics.github.io/skills/reimburse-external.md
The skill walks Claude through a 10-phase workflow: read the host's policy, catalog receipts, verify against rules, calculate the claim with currency conversion, fill in templates, merge receipts into a single PDF, and draft the submission email. View the full skill file.
Step 3: Run it. Open the reimbursement folder in VS Code and type:
/reimburse-external
Adapting this. This skill handles external reimbursement (conference hosts, funding bodies). For your university's process, create a separate skill — ask Claude Code to reflect after your first reimbursement and it will build one tailored to your institution.
Hooks: automatic context and guardrails
Hooks are shell scripts that Claude Code runs automatically on specific events — prompt submission, tool execution, file edits. You configure them once and they enforce rules in every session. Typical uses:
- Inject context — tell Claude your prompt was dictated, or that you are on a specific machine.
- Block dangerous actions — intercept tool calls to prevent force-pushes or unapproved deletions.
- Automate repetitive steps — run linting or update changelogs automatically.
My most-used hook: dictation context. I dictate with Wispr Flow. Speech-to-text as a non-native English speaker occasionally mishears words or drops articles. A prompt-submit hook tells Claude the input was dictated so it silently corrects artifacts instead of asking for clarification.
Save this as ~/.claude/hooks/dictation-context.sh:
#!/bin/bash
cat <<'EOF'
DICTATION NOTICE: The user's prompt was likely dictated
using Wispr Flow (speech-to-text). The user is a native
Chinese (Mandarin) speaker. The transcription may contain:
- Homophones or near-homophones (e.g. "EA" → "it")
- Misheard technical terms or proper nouns
- Missing or wrong articles, prepositions, or plurals
- Run-on sentences or missing punctuation
Mentally correct any likely transcription artifacts and
interpret the intended meaning. Do not ask for clarification
on obvious transcription errors — just fix them silently.
EOF
Then activate it in ~/.claude/settings.json:
{
"hooks": {
"UserPromptSubmit": [
{
"type": "command",
"command": "$HOME/.claude/hooks/dictation-context.sh"
}
]
}
}
Adapt the script to your own native language — just change "Chinese (Mandarin)" and the example error patterns to match your accent.
For a curated collection of other hook ideas, see this tweet by @zodchiii. Full documentation: official hooks docs.
Syncing Claude Code across two machines
I use Claude Code on a MacBook and a Windows desktop. To keep them identical, I store shared config in Dropbox and symlink from ~/.claude/:
Dropbox/AI_meta/claude-sync/
|-- memory/ # Your personal AI memory
|-- skills/ # Custom skills
|-- commands/ # Custom slash commands
|-- plugins/ # Plugins
|-- CLAUDE.md # Global instructions
|-- settings.json # Shared preferences
|-- .mcp.json # MCP server config
On Mac:
ln -sf ~/Dropbox/AI_meta/claude-sync/memory ~/.claude/memory
ln -sf ~/Dropbox/AI_meta/claude-sync/skills ~/.claude/skills
# ... same for each item
On Windows (PowerShell as Administrator):
# Folders -- use Junction
New-Item -ItemType Junction -Path "$env:USERPROFILE\.claude\memory" `
-Target "C:\Users\YOU\Dropbox\AI_meta\claude-sync\memory"
# Files -- use SymbolicLink
New-Item -ItemType SymbolicLink -Path "$env:USERPROFILE\.claude\CLAUDE.md" `
-Target "C:\Users\YOU\Dropbox\AI_meta\claude-sync\CLAUDE.md"
Machine-specific settings go in settings.local.json and do not sync.
Self-guided learning with AI
Pick a topic you want to learn. Tell the AI your background, available time, and what you want to understand. Ask it to build a study plan — readings, key ideas, and an order to work through them. As you read, use the AI to ask questions, check your understanding, and explore connections. What used to take days of searching now takes hours.
Also worth setting: AI chatbots trained with RLHF tend to be sycophantic — defaulting to agreement rather than honest critique. Counterproductive when you are trying to learn. In Claude, go to Settings → General → "What personal preferences should Claude consider in responses?" and add:
Be direct and honest. Don't default to agreement
or flattery: I prefer candid feedback, especially
on my research.
This overrides the default tendency at the preference level, so every conversation starts candid rather than agreeable.
The self-guided learning idea comes from a post by Jesús Fernández-Villaverde, who used AI to design a self-guided study of sociologist Erving Goffman — and found the experience comparable to a master's-level course week.
Resources
- In Claude Code CLI, type
/powerup - Claude Blattman
- Paul Goldsmith-Pinkham at Markus Academy
- Aniket Panjwani at VoxDev, and his YouTube channel
- awesome-ai-for-economists