Content analysis has always begun with reading. The researcher reads a pile of documents, notices what recurs, and writes down categories. The difference now is that a model can do the first reading of several hundred documents in minutes and report back in prose, with quotations and identifiers you can check. The researcher's job shifts from reading everything to interrogating a reader.
Section 1What exploration is for
Step 2 answers one question: what could be measured in this corpus? It does not measure anything. Its output is two memos: a general description of the corpus along six dimensions (topics, entities, events, relationships, change over time, noise), and a focused description of the three or four variables you are inclined to measure, with their observed values, boundary cases and the share of articles for which each can actually be determined.
Two habits make the step work. First, ask for evidence: identifiers and verbatim phrases for every claim, so that a category the model proposes can be traced to the articles that prompted it. Second, ask for proportions: a rough share of the sample for each topic, so that you can tell a dominant pattern from a curiosity. Both are built into the prompts below.
Section 2Working with an AI assistant
There are two practical ways to put a corpus in front of a model. Either works for this tutorial. The second is preferred because it keeps every file, prompt and answer on your own disk, in the project folder from Step 1.
- 1Create a projectIn Claude, ChatGPT or Gemini, create a project (or "custom GPT" / "Gem") named after the study. Projects keep uploaded files available across conversations.
- 2Upload the zipAdd corpus_nk_enterprises_2012-2025.zip to the project's files. If the interface rejects zips, upload the .xlsx directly.
- 3Set project instructionsPaste one paragraph: what the corpus is, that doc_id is the identifier, that quotations must be verbatim, and that it should always say how many articles it actually read.
- 4Run the promptsPaste Prompt 2a, save the reply as exploration/memo_2a.md in your project folder, then Prompt 2b.
- 1Install an agentClaude Code (Anthropic) or Codex (OpenAI), as a desktop app or a terminal command. Both need a paid account.
- 2Open the project folderStart the agent in nk-enterprises/. It can see every file there, run Python to read the workbook, and write its memos back into the folder.
- 3Add a context fileWrite AGENTS.md (Codex) or CLAUDE.md (Claude Code) at the folder root with the same paragraph as Option A, step 3. The agent reads it at the start of every session.
- 4Run the promptsPaste Prompt 2a and ask for the reply as exploration/memo_2a.md; then Prompt 2b. The agent unzips, reads, and writes the files itself.
A web interface will typically read a few dozen to a few hundred articles before answering, and may not say so. Always ask how many it read and how it chose them, and ask it to spread the sample across years and sources. A desktop agent can loop through all 946 articles with a short script, which is one reason to prefer it; even then, ask it to show the identifiers behind each claim and spot-check two or three.
Section 3Prompt 2a: the whole corpus
The first prompt asks for a description, not a coding. It names six dimensions, demands identifiers and proportions, and asks for the model's own suggestions last, after it has described what is there. Replace the corpus description in Context if you are using your own material.
# Prompt 2a — Open-ended exploration of the corpus
## Context
You are a research assistant helping me explore a corpus before any research design is fixed. The corpus is in `corpus_nk_enterprises_2012-2025.xlsx` (sheet `corpus`): 946 KCNA and Rodong Sinmun articles, 2012–2025, whose titles contain 기업소 (enterprise). Each row is one article; `article_cleaned_body` holds the Korean text and `doc_id` is the stable identifier. Read the README sheet first.
## Task
Do not code anything yet. Read a diverse sample of at least 100 articles spread across all years and both categories (KCNA_other, Rodong), then describe what the corpus is about along six dimensions:
1. **Topics** — what the articles mainly report (production results, visits, construction, meetings, campaigns…). Group them; give each group a short label and a rough share of the sample.
2. **Entities** — the enterprises, officials, institutions and places that recur. List the 20 most frequent enterprise names and the officials who appear.
3. **Events** — the kinds of events reported (완공, 준공, 현지지도, 현지료해, 궐기모임, 증산…), with two or three example titles each.
4. **Relationships** — who does what to whom: leader → enterprise, cabinet → enterprise, enterprise → plan target, and so on.
5. **Change over time** — anything that looks different between the early (2012–2017), middle (2018–2021) and recent (2022–2025) years.
6. **Noise** — articles that match the keyword but are not really about a particular enterprise (collective references, laws, foreign enterprises).
## Output
A memo of no more than two pages in Markdown with headed sections for the six dimensions, every claim illustrated with `doc_id` values I can look up, and a closing list of five questions this corpus could plausibly answer. Mark anything you inferred rather than read as *inference*.
What to expect from this corpus (an illustration of the kind of memo the prompt produces; participants generate the real one in the room): the enterprise as the natural unit, since most articles are about one and some about several; a dominant split between production-results reporting and leadership-visit reporting; a cluster of construction and modernisation stories that grows after 2022; a smaller set of ceremonial items such as awards, rallies and anniversaries; and a handful of noise articles where 기업소 appears in a title for another reason. A good memo will also list the recurring enterprises (the steel works at Kim Chaek, Hwanghae and Chollima; the Hungnam fertiliser complex; the Ryongsong machine complex) and notice that in recent years the Premier appears far more often than the Supreme Leader. example memo_2a.md TBD
Section 4Prompt 2b: themes and variables
The second prompt commits, tentatively, to a research question and three or four variables, and asks the model to test them against the text: what values each takes, how often each can be determined, where the boundaries blur, and whether the article or the enterprise mention is the better unit. It also asks for variables you have not thought of, capped at three so that the list stays reviewable.
# Prompt 2b — Focused exploration of candidate variables
## Context
Same corpus as before (`corpus_nk_enterprises_2012-2025.xlsx`). My tentative research question is: *what do North Korean state media report about industrial enterprises, which sectors and regions receive attention, how often does the leadership appear, and how has this changed between 2012 and 2025?*
I am considering four variables, measured for each named enterprise in each article:
- **sector** — the branch of industry the enterprise belongs to
- **event_type** — what the article mainly reports about the enterprise
- **leader_visit** — whether, and which, senior official visited the enterprise in the reported event
- **province** — where the enterprise is located
## Task
For each of the four variables, read at least 40 articles chosen to show the variable's range and report:
1. The values the variable actually takes in this corpus, with example `doc_id`s and verbatim phrases for each value.
2. The share of articles in which the variable can be determined from the text alone, from background knowledge (for example an enterprise's well-known location), or not at all.
3. Boundary cases: pairs of articles that would be hard to tell apart (a completion ceremony that is also a visit; an article naming three enterprises).
4. Whether the article or the enterprise mention is the better unit of analysis for this variable, and why.
Also answer: are there variables I have *not* listed that the corpus clearly supports (plan-fulfilment claims, named production figures, mentions of sanctions or self-reliance)? Propose at most three.
## Output
A Markdown memo with one section per variable, each ending in a one-line recommendation (keep / redefine / drop), followed by the additional-variable proposals. Quote the text; do not invent example articles.
The four workshop variables came from a tentative question about state media attention to industry: sector (which industries get reported), event_type (what is reported about them), leader_visit (whether and which senior official appears), and province (where the attention goes). Suggested alternatives for participants who want a different angle:
- Plan-fulfilment claims: whether the article asserts a target met, the figure cited, and the time frame. Supports a study of performance rhetoric.
- Attribution of success: to the leader's guidance, to workers' devotion, to science and technology, or to self-reliance under sanctions. Supports a framing study.
- Enterprise type: central versus local industry, civilian versus military, and the appearance of the 련합기업소 (complex) form. Supports an institutional study.
Section 5Reading the memos
Read both memos with the corpus open beside them, and check three things before moving to Step 3.
- 1Spot-check the quotationsPick five quoted phrases with their identifiers and find them in the workbook. If one is missing or altered, tell the model and ask it to re-verify every quotation in the memo.
- 2Look for what is not thereA dimension the memo barely mentions (here, for example, foreign trade or joint ventures) is either absent from the corpus or absent from the model's sample. Ask which.
- 3Decide the unit and the variablesWrite down, in a sentence each, the unit of analysis, the research question, and the variables you will keep. This sentence is the input to Step 3, and it is yours, not the model's.
Keep the memos in exploration/. They are part of the project's audit trail: when a reviewer asks why the codebook has a category for mobilisation campaigns, the memo shows the articles that justified it.
Terminology
- Project (web interface)
- A container in Claude, ChatGPT or Gemini that keeps uploaded files and standing instructions available across conversations.
- Coding agent
- A desktop or terminal program (Claude Code, Codex) in which a model can read and write files in a folder and run code there, under the user's supervision.
- Context file
- CLAUDE.md or AGENTS.md: a file at the project root that an agent reads at the start of each session, used for standing instructions.
- Exploration memo
- The model's written description of the corpus, with identifiers and verbatim quotations, saved in the project folder as evidence for later design decisions.