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.

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:

  1. 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
  2. Write a clear prompt describing what you want (use the 4-part formula from Module 2)
  3. Let Claude build it, then test it and ask Claude to fix any issues
  4. Ask Claude to add documentation explaining how to use it
R / Python~45 min