Extract Document
Skill8 starsChanged 5 months agoMITView on GitHub
Pull the data out of any document and use it. Converts the file (PDF, Word, Excel, PowerPoint, image/scan, HTML, CSV) to Markdown, then does what you asked: answer a question about it, summarise it, or map named fields onto a CRM opportunity or contact. The general "read a document and do something with it" skill; built on knowledge/document-tools-method.md.
- Installs packages
In this repository101 other files it gives its agents.
- templates/CLAUDE.mdCLAUDE.md
- Add a FieldSkill
- Assemble Content PackSkill
- Assemble PackSkill
- Audit My AutomationsSkill
- Audit My DataSkill
- automate-thisSkill
- Brand My WorkspaceSkill
- Break Down A ChannelSkill
- Build Brand StrategySkill
- Build Customer VoiceSkill
- Build DocumentSkill
- Build FormSkill
- Build Knowledge Base From DocsSkill
- Build My ProofSkill
- Build My VoiceSkill
- Build Social StrategySkill
- Build SpreadsheetSkill
- Build Work Order ProcessSkill
- Cash Flow ForecastSkill
- Coach My CallsSkill
- Compare DocumentsSkill
- Connect A ToolSkill
- Delegate This WorkSkill
- Describe A ProductSkill
- Design My ScenesSkill
- Design Nurture SequenceSkill
- draft-replySkill
- Email Me A ReportSkill
- Estimate My BASSkill
- Find My Next MoveSkill
- Five Day ChallengeSkill
- Follow-up RadarSkill
- Form RadarSkill
- Get Found OnlineSkill
- Grill Me On This DecisionSkill
- import-from-anywhereSkill
- lead-triageSkill
- Learn My BusinessSkill
- Lint DocumentSkill
- Lint FormSkill
- Lint Nurture SequenceSkill
- log-this-callSkill
- make-it-happenSkill
- Make My VideoSkill
- Make Product DemoSkill
- Make Social PostSkill
- Make ThumbnailSkill
- missed-call-recoverySkill
- Nurture HealthSkill
- Onboard Team MemberSkill
- Outstanding DocumentsSkill
- Outstanding InvoicesSkill
- Package My VideoSkill
- Plan My AdsSkill
- Plan My ContentSkill
- Plan My RoadmapSkill
- Plan My YouTubeSkill
- Prep For CallSkill
- Price My WorkSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 45
If conversion fails or comes back empty (e.g.
- Distinctive: line 50
Read the operator's goal and match it:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Extract Document
Any "read a file and use what's in it" task goes through one path: convert to Markdown with MarkItDown, then work on the Markdown. Don't try to parse raw PDF or guess at a scan — convert first.
Step 1 — Convert the file to Markdown
python ~/.claude/bos-run.py tool markitdown_convert "<path-to-file>"(The ~/.claude/bos-run.py launcher resolves the install location for you. If it is missing, run python tools/setup.py once from the BOS directory to create it.)
Handles PDF, Word, Excel, PowerPoint, images (OCR), HTML, CSV, JSON, ZIP. If the
wrapper reports MarkItDown isn't installed (a line starting BOS_MISSING_DEP:),
don't hand the owner a command. Offer the setup in plain language:
To read that file I need to add the document tool-kit, a quick free one-time setup on your machine. Want me to sort it?
On a yes, run python ~/.claude/bos-run.py tool check-install --fix (or
python -m pip install "markitdown[all]" for the one piece, the [all] extras are what enable reading Office files) yourself, confirm it
worked, then re-run the conversion. Never tell the owner to run anything. The
full detect-offer-install-verify loop is the canonical one in
knowledge/document-tools-method.md.
If conversion fails or comes back empty (e.g. a scan with no readable text), say
so plainly rather than inventing content.
Step 2 — Do the specific extraction the operator asked for
Read the operator's goal and match it:
- Answer a question / summarise → work from the Markdown and answer. Quote the document where it matters; don't add facts that aren't in it.
- Pull named fields → return them as a clean list or table (e.g. applicant name, income, loan amount, property address). For anything the document doesn't contain, say "not in the document" — never guess a value.
- Map onto a CRM record → match each extracted field to its CRM field on the
named opportunity/contact (use the real field names from the workspace). Show
the proposed mapping and the values, then write only after the operator
confirms. Respect the approval queue (a 202 is queued, surface it — see
knowledge/safeguards.md).
Step 3 — Show what you got + what you did
Read "ANZ-statement-March.pdf" (PDF → Markdown):
• Applicant: Jane Smith • Income: $142,000 • Loan: $640,000
• Property: 14 Example St (not stated: deposit)
Mapped 3 fields onto opportunity "Smith refinance" (deposit left blank — confirm?).Hard rules
- ❌ Don't invent values not present in the document. "Not in the document" is a valid answer.
- ❌ Don't write to the CRM without showing the mapping and getting confirmation.
- ❌ Don't write bespoke per-format parsing — always go through
tools/markitdown_convert.py. - ✅ Quote the source for figures that matter; let the operator trust the extraction.
- ✅ Use the workspace's real field names when mapping.
Output shape
A short summary of what was read and the fields pulled (with any "not in the document" gaps named), then — if mapping to the CRM — the proposed mapping and the ask, or a one-line confirmation of what was written.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

