Module 10 Β· Advanced Β· ~60 min
π οΈ Building Tools & Apps with Claude
Build custom research tools β dashboards, scrapers, survey apps, and automation scripts β even without prior programming experience. Claude does the heavy lifting; you direct the work.
In this module
What can you build?
With Claude Code, you don't need to be a software engineer to build useful research tools. Here are things researchers have built:
π Data tools
- Interactive dashboards to share results
- Data cleaning pipelines
- Automated balance table generators
- Database querying interfaces
- Panel data validators
π Web tools
- PDF/paper scrapers from journal websites
- Price data collectors from market websites
- Twitter/X data collectors
- Government statistics downloaders
- Wikipedia data extractors
π€ AI-powered tools
- Literature review assistants
- Survey response coders
- Qualitative data analysers
- Paper summarisers
- Grant proposal drafters
π± Apps & interfaces
- Survey apps for fieldwork
- Results presentation websites
- Obsidian vault managers (like Hugo Sant'Anna built)
- Team knowledge bases
The key mindset shift
You're not learning to code β you're learning to direct code creation.
Your job is to know what you want and describe it clearly. Claude's job is to build it.
The clearer your description, the better the result.
Building a data dashboard (R Shiny)
An interactive dashboard lets you (and co-authors, journals, or policymakers) explore your results visually.
> Build an R Shiny app that visualises my main results.
The app should:
- Load my cleaned dataset (data/clean/panel.rds)
- Have a sidebar with filters: year range, country, treatment status
- Show 3 plots that update based on filters:
1. Distribution of the main outcome variable
2. Map of treatment vs. control areas (I'll provide a shapefile)
3. Coefficient plot of my main regression
- Have a "Download filtered data" button
- Work offline (no external APIs)
Save to app/app.R and add instructions for running it.
Building a web scraper
Legal and ethical note
Always check a website's Terms of Service before scraping. Many sites prohibit automated access.
Be respectful: add delays between requests, don't overload servers, and respect robots.txt.
> Build a Python scraper that downloads agricultural price data
from the FAO GIEWS website.
Requirements:
- Use requests and BeautifulSoup
- Download monthly prices for maize, wheat, and rice
- For all Sub-Saharan African countries available
- Save to data/raw/fao_prices.csv with columns:
date, country, commodity, price_usd, source_url
- Add a 1-second delay between requests
- Skip URLs that return errors (log them to errors.txt)
- Print progress as it runs
Automation scripts
> I receive a new household survey CSV every month from our field team.
Build a Python script (update_data.py) that:
1. Reads any new CSV files in the dropbox/incoming/ folder
2. Validates each file (checks for required columns, no duplicate IDs)
3. If valid: appends to data/clean/master_survey.parquet
4. If invalid: moves to dropbox/errors/ with an error report
5. Sends me an email summary of what was processed
(use smtplib, config from environment variables)
6. Logs everything to logs/update_log.txt
Survey and data collection tools
> I need a simple offline-capable web app for field enumerators
to collect household survey data on tablets.
Build it with plain HTML/JS (no internet required):
- Survey form with: household ID, GPS coordinates, 15 questions
- Validation: required fields, numeric ranges, consistency checks
- Local storage so data isn't lost if the tablet dies
- Export button that downloads responses as CSV
- Works on Android tablets with Chrome browser
Deploying your tool
Free deployment options for research tools
R Shiny
shinyapps.io (free tier)
Static sites
GitHub Pages (free)
Python apps
Streamlit Cloud (free)
Notebooks
Google Colab (free)
Module 10 Exercise: Build something useful
Build a real tool that solves a problem in your research workflow:
- Pick one of these starter projects (or propose your own):
- An R Shiny dashboard for your main results
- A Python script that downloads data you need regularly
- A simple automation that saves you time each week
- Write a clear prompt describing what you want (use the 4-part formula from Module 2)
- Let Claude build it, then test it and ask Claude to fix any issues
- Ask Claude to add documentation explaining how to use it
R / Python~45 min