·4 min read#personas#how-to
From Google Drive to Claude: Piping Your Docs Into a Persona
Your Google Drive is the best biography you never wrote. Ten years of decision memos, investor updates, postmortems and half-finished strategy docs capture how you actually think, in a way no bio page ever will. The problem is that it's all locked in a format Claude can't reason over in bulk. Here is the pipeline installs.me runs to turn that pile into a persona plugin, and the judgment calls that matter at each stage.
Stage 1: Drive to markdown
Google Docs are not files, they're database rows with an export API. The Drive API's files.export endpoint supports text/markdown natively for Docs, which is the format you want: headings survive, comments and revision cruft get dropped, and the result diffs cleanly in git.
For anything that isn't a native Doc (uploaded .docx, PDFs, old Keynote exports), you fall back to pandoc:
pandoc board-update-2019.docx -t gfm -o board-update-2019.md
The output goes into a flat corpus directory, one markdown file per source doc, with the original Drive path and last-modified date in frontmatter. That metadata matters later: a strategy doc from 2016 and one from 2025 should not carry equal weight, and the persona needs to know which opinions are current.
Sheets and Slides mostly don't survive this trip usefully. A financial model exported to CSV tells you nothing about how the person thinks. Skip them unless the slide notes contain actual prose.
Stage 2: What makes good evidence
Not all docs are equal, and volume is not the goal. The corpus that produced the Lautaro persona at installs.me/lautaro is heavily weighted toward a specific kind of document: the ones where he had to decide something and defend it.
The ranking, roughly:
| Doc type | Signal |
|---|---|
| Decision memos, postmortems | Highest. Tradeoffs stated explicitly, reasoning visible |
| Investor updates, board letters | High. Priorities, framing, what gets emphasized vs. buried |
| Feedback docs, hiring debriefs | High. Reveals standards and dealbreakers |
| Blog drafts (including abandoned ones) | Medium-high. Voice in raw form, pre-editing |
| Meeting notes | Medium. Noisy, but recurring phrases surface here |
| Templates, brand guidelines, contracts | Zero. Delete from corpus |
The counterintuitive one: published blog posts are weaker evidence than their drafts. The published version has been sanded down. The draft with the deleted paragraph where the author argued with themselves is where the actual reasoning lives.
Also exclude anything in your Drive that other people wrote. Shared folders are full of decks someone else made. If it goes into the corpus, the persona will confidently absorb your cofounder's opinions as yours.
Stage 3: Evidence extraction
Raw markdown is still not a persona. The synthesis pass reads the corpus and extracts three things, each with a citation back to the source file:
- Positions. Concrete opinions the person holds, stated more than once. "Hire salespeople in pairs" is a position. "Communication is important" is noise, and gets cut.
- Frameworks. Repeatable reasoning structures. If three different memos evaluate opportunities by the same two axes, that's a framework, and it goes into the skill even if the person never named it.
- Voice markers. Sentence length, recurring phrases, what they open emails with, whether they hedge. This is the difference between a persona that advises like the person and one that just knows facts about them.
The output shape is a Claude Code skill: a SKILL.md with YAML frontmatter (name, description tuned so Claude loads it at the right moments) plus a references/ directory holding the distilled evidence, organized by theme. Claude loads SKILL.md cheaply and pulls reference files on demand, so a persona can carry a deep evidence base without burning context on every turn.
That gets wrapped in a plugin with a .claude-plugin/marketplace.json, served from a git-backed source. One hard-won detail: plugin sources fetched over a URL must be git-backed. A plain HTTP path in marketplace.json fails silently, no error, the plugin just never resolves. Verified on Claude Code CLI 2.1.x.
The privacy boundary
This is the part people get wrong in both directions, so the rule is worth stating precisely: the source corpus is private, the synthesized output is public.
Your exported Drive markdown never ships. It's input to the extraction pass and it stays on the processing side. What ships in the plugin is the distillate: "believes X, cites Y pattern, writes in Z register." A position like "raise before you need to, LatAm windows close fast" is safe to publish. The board letter it was extracted from is not.
But "synthesized" is not automatically "safe." Extraction can leak specifics: a customer name inside a framework example, a revenue figure inside a position statement. So before anything ships, treat references/ as what it is, a set of files you are publishing to the internet, and read every one. Hard exclusions from the corpus up front: cap tables, compensation, legal, HR, term sheets, and anything a third party shared with you in confidence. Not because extraction will definitely quote them, but because the only reliable way to keep something out of the output is to keep it out of the input.
Get the boundary right and the result is strange and useful: a version of you that anyone can install, grounded in a decade of documents nobody but you will ever read.
/plugin marketplace add https://installs.me/lautaro
/plugin install lautaro@lautaro-installs
Wait, that install block needs its full closing section. Here it is properly:
Install a person
installs.me turns your files, calendar and calls into a Claude Code plugin that thinks like you. Anyone installs it with two commands:
/plugin marketplace add https://installs.me/lautaro
/plugin install lautaro@lautaro-installs