A working setup for doing applications with a coding agent instead of a blank Google Doc.
Clubs, jobs and internships, fellowships and scholarships, grad school, grants, accelerators. You point it at what you are applying to. It interviews you, pulls the real questions off each application, tells you exactly what it needs from you and nothing more, drafts in your voice, then reads the whole packet back to you as the person who actually receives it.
It never invents anything. Not about you, and not about the org you are applying
to. Every fact in a draft either came out of your mouth or is marked [NEED: ...]
until you fill it in. Every claim about the org carries a source and the date it was
checked.
- Install Claude Code. claude.com/product/claude-code. Sign in with a Claude account, free tier works to start.
- Download this repo. Green "Code" button, then "Download ZIP", then unzip it somewhere you will find again. Desktop is fine.
- Open your terminal. Mac: Cmd+Space, type Terminal. Windows: install Git for Windows and open Git Bash.
- Type
cd, then drag the unzipped folder onto the terminal window, then hit enter. - Type
claudeand hit enter. - Tell it what you are applying to.
That is the whole setup. Step 6 is a sentence in your own words:
I need to apply to three clubs by Friday
applying for data engineering internships, first deadline is in two weeks
PhD applications, six programs, December 15
It takes it from there. It will ask you questions, one small batch at a time, and write everything down as you go. You never have to know what to ask for and you never have to type a command.
The thing that makes application tools useless is that they hand you a blank box and wait. This one asks you questions instead, and it asks them in an order that builds on itself.
- It asks, you answer. Fragments are fine. One line is fine. "idk" is fine, and it will ask a better question.
- When you get tired, it switches to multiple choice built out of things you already said, and you answer with letters. Four minutes, and it produces a better answer than an hour of staring at a text box.
- It remembers. Close your laptop, come back in three days, and it picks up exactly where you were. You will never be asked the same thing twice.
- It never waits for permission. It does the work and tells you what it found.
There are commands under the hood if you ever want them, listed at the bottom. Most people will never type one.
The method is the same for all of them. The reader is not, so the kit keeps a separate brief on each in reference/ and reads the right one before it writes anything.
| Type | Covers | What carries the application |
|---|---|---|
student-org |
Clubs, campus orgs, Greek life, student government | The essays |
job |
Jobs, internships, co-ops, apprenticeships | The resume |
fellowship |
Fellowships, scholarships, awards, funded programs | Essays plus letters |
grad-school |
Masters, PhD, REUs, research placements | Statement plus letters |
grant |
Research, project, nonprofit, arts, community funding | The plan |
accelerator |
Accelerators, incubators, pitch competitions | Traction plus team |
Advice tuned for a club officer at 11pm produces a bad grant application. The kit knows the difference and will ask which one you mean if it cannot tell.
Most people use AI on applications by pasting a question and taking what comes back. That produces answers that are grammatical, on-topic, and completely interchangeable with 200 others.
This kit does the opposite. It spends most of its effort getting material out of you and almost none of it generating from nothing. The bottleneck was never writing. It was that nobody ever asked you the right question about your own life.
Two things do most of the work, and both happen without you asking for them.
It hands you multiple choice built from things you already said, and you answer with letters. Four minutes, and it is the difference between a real answer and a generic one. This is what it does the moment your answers get short, which is exactly when a blank text box would have beaten you.
It writes the question under the question. An org asks "tell us about a time you worked on a team" and is deciding whether you can be told you are wrong. Applications ask ten things and score two. Knowing which two usually changes which story you tell, not just how you tell it.
Word limits are the one thing an agent is genuinely bad at. tools/count.sh parses
every drafted answer, counts it against the limit written in its own heading, and
reports what is over, what is under 90 percent, how many [NEED:] markers are still
open, and where the em dashes are.
It runs on its own and fixes the lengths before you ever see a draft. If you want it yourself:
sh tools/count.sh every draft
sh tools/count.sh drafts/RISE.md one file
Nothing in the kit reports a count it did not get from there.
This is the mistake that actually gets people, and almost nothing is built to catch it.
You tell it in week one that you are taking eighteen units. You drop a class at add/drop. Six weeks later four applications say eighteen units. Nobody lied, nothing was invented, and every check passes, because the number was true when it was written. Then an interviewer asks what you are taking this term and your answer does not match the form you sent.
So every fact about you carries the date it was last confirmed, and the kit reads them back before a submission:
sh tools/stale.sh anything unconfirmed for three weeks
sh tools/stale.sh 45 a different window
tools/count.sh catches a draft that is too long. It cannot catch a draft that
is the right length and sounds like somebody else wrote it, and that is the
failure that actually loses applications.
python3 tools/voice-check.py drafts/*.md
python3 tools/voice-check.py --verbose drafts/SOMECLUB.md
It flags the tells people name when they read their own draft back and wince: "it's not X, it's Y," announcing a turn instead of turning, a manufactured closing line on every paragraph, hedging against a worry nobody raised, uniform sentence length, formal constructions where you would have used a contraction, and answers containing no name and no number, which is the definition of an answer anyone could have submitted.
It exits 1 on anything serious, so it works as a submission gate.
Put one regex per line in a .factguard file next to your drafts, for every
claim you have checked and found false:
# "permitted home cooks in California" - traces to no source
1,?178
# no payment ever ran, and the number five has no source
\bfive orders end to end\b
This exists because a single unsourced number, written once, quietly reached six
drafts before anybody re-checked it. Numbers propagate faster than anyone
re-verifies them, and one invented specific in something going out under your
name is worse than six open [NEED:] markers.
You get one short message with the four or five things worth re-checking, you answer in a line, and it fixes the value everywhere it already appears rather than just in one file. It will not ask about anything it confirmed recently, and it will not do this on your first day, when nothing has had time to change.
The things that move: GPA, graduation date, course load, hours per week, and whether a role you listed is still active. Every application asks about at least three of those.
Some do, explicitly, in the application. It is most common with student orgs. Tell the agent and it switches modes: it will interview you, argue with your thinking, and quiz you for the interview, but it will not write a sentence you submit. That is in AI-POLICY.md and the agent checks it before drafting anything.
PROGRESS.md Where you are. Claude keeps it current so you can close the laptop
you/ Everything about you. Profile, story bank, voice, chats, outcomes, uploads
applications/ One file per org: their real questions, unasked questions, format rules
drafts/ Your answers, one file per org
review/ What the checking passes found
reference/ One brief per application type. The agent reads the one that applies
tools/ The word counter, the voice checker, and the staleness checker
examples/ Two filled-in org files, a student org and a job, to show the difference
TARGETS.md The list
DEADLINES.md Dates, including the ones that depend on other people
Every one of these is a plain text file you can open and edit yourself. Nothing is hidden in a database. If Claude writes something wrong about you, open the file and fix it, and it will use your version.
Your material stays on your computer. Nothing gets pushed anywhere unless you push it.
If you plan to make your own copy public, uncomment the you/ line in .gitignore
first.
permission denied on anything in tools/. Run chmod +x tools/*.sh once. This
happens when you downloaded the ZIP instead of cloning, which strips the executable bit.
Running them as sh tools/count.sh works either way.
It keeps asking me to confirm facts I already gave it. It should only ask about
things unconfirmed for three weeks, and never about anything current. If it is asking
about something you just told it, the date did not get written down: say so, and tell it
to stamp the Checked column.
The counter finds no answers. It reads headings shaped like ## Q1. The prompt (250 words). Claude writes them that way. If you wrote a draft by hand, match that shape.
It asks me something I already told it. Say so. That is a bug in how it read your files, not something you should have to repeat. Point it at the file the answer is in.
It wrote something that is not true about me. Tell it. You were there and it was not. It is built to correct the file and drop the claim rather than argue.
It says my draft is short but I like it. It is one opinion from a machine that has read your material. Say so and it will tell you when a short answer should stay short.
It keeps asking me things instead of writing. That is deliberate for the first stretch, and it is where the quality comes from. If you are short on time, say how long you actually have and it will cut straight to drafting and tell you what it skipped.
I forgot where I was. Just say "where am I." It reads PROGRESS.md and tells you.
You do not need this section. These are what the agent runs on its own as the conversation moves. They are here for people who want to jump straight to a specific step, and because seeing the list explains what the thing actually does.
Getting your material out of you
| Command | What happens |
|---|---|
/start |
Says where you are and what happens next. You get this automatically anyway |
/intake |
Interviews you about your life. Builds your story bank. Do this first |
/voice |
Reads writing you have already done so drafts sound like you, not like an AI |
/gaps |
Asks only the questions that are actually blocking a draft |
/picks |
Gives you multiple choice built from your own material. Answer with letters |
/refresh |
Reads back the facts that have gone stale and confirms each is still true |
Working out what they actually want
| Command | What happens |
|---|---|
/targets |
Builds and researches your list, sets the type for each, finds the clusters |
/extract |
Pulls the real questions off one application into a file |
/unasked |
Writes the question each prompt is really asking, under the one it states |
/whyus |
Researches one org deeply enough to write something nobody else could |
/chat |
Preps you for talking to a member, then captures what you learned |
Writing
| Command | What happens |
|---|---|
/draft |
Writes one org's answers |
/adapt |
Turns a finished answer into another org's without it reading recycled |
/cover |
Writes a cover letter that is not a prose version of your resume |
/expand |
Gets a short answer up to its limit without padding it |
/cut |
Gets a long answer under its limit without gutting it |
Checking
| Command | What happens |
|---|---|
/truth |
Checks every factual claim against what you actually told it |
/slop |
Finds the sentences that read as AI-written or as generic filler |
/reader |
Reads your packet as the three people who actually receive it |
/rank |
Ranks every answer best to worst so you know where the last hour goes |
/resume |
Scans your resume against every org's rules and against your drafts |
/submit |
Final check before you send it |
The parts that are not prose
| Command | What happens |
|---|---|
/recommenders |
Picks them, asks them well, tracks the dates that actually bind |
/materials |
Videos, portfolios, writing samples, take-homes, transcripts |
Across time
| Command | What happens |
|---|---|
/plan |
Turns your deadlines into a dated work plan, working backward |
/status |
What is drafted, what is blocked, what is due |
/panic |
Deadline is close and it is not done. Triage, then move |
/interview |
Runs mock interviews with real follow-ups |
/reapply |
Handles applying somewhere that already said no |
/outcome |
Records what happened, so next cycle starts from evidence |
/proven |
Saves answers that already worked, and breaks down why |
All glory to God! ✝️❤️