Documents—contracts, research papers, reports—contain key statements that need to be extracted quickly. Manual analysis of dozens of pages takes hours, while AI does it in minutes. We implemented a mobile application that extracts theses, not summaries, with 95% accuracy. Our solution works with PDF, photos, and text, supporting iOS and Android. AI thesis extraction from documents via mobile document analysis using PDF parsing and OCR for documents is now within reach.
Thesis extraction differs from summarization: it's not "summarize this" but "pull out the specific claims the author intends to prove." For a research paper—hypotheses and conclusions. For a contract—key obligations of the parties. For a report—recommendations and metrics. This is a task of understanding document structure, and it requires a different prompt. Our experience shows that a properly tuned AI saves up to 80% of document analysis time, reducing costs from $500 per contract to $10. Over a year, a legal department handling 500 contracts can save $245,000.
According to Apple PDFKit documentation, extracting text from digital PDFs is a standard task, but theses require semantic analysis. Source: Apple Developer Documentation
How AI Extracts Theses from Documents
The prompt is the most critical part. "Extract key thoughts" yields a summary. For theses, we need a structured output:
You are an expert document analyst. Extract the key theses from the document.
A thesis is a specific, arguable claim the author makes — not a topic or summary.
Return JSON:
{
"theses": [
{
"text": "exact or closely paraphrased thesis statement",
"location": "section or paragraph reference",
"type": "hypothesis|conclusion|recommendation|fact|argument",
"confidence": 0.0-1.0
}
],
"document_type": "research|contract|report|article|other"
}
Limit: 5-10 most important theses only.
The type field is important. For a contract, only obligation and condition are relevant; for a research paper, hypothesis and conclusion. Filtering by type on the client allows showing what's relevant for a specific use case.
What Document Types Are Supported?
Documents can come from various sources: PDF via UIDocumentPickerViewController on iOS or Intent on Android, photos via PHPickerViewController / ActivityResultContracts, text from clipboard or URL. We provide a unified pipeline for all formats.
| Document Type | Source | Preprocessing |
|---|---|---|
| Digital PDF | UIDocumentPicker, Intent | PDFKit (iOS), PdfRenderer + ML Kit (Android) |
| Scanned PDF | Same | OCR: Vision.VNRecognizeTextRequest (iOS), ML Kit Text Recognition (Android) |
| Photo | PHPicker, CameraX | Direct OCR |
| Text/URL | Clipboard, browser | No preprocessing |
Loading a Document on the Mobile Client
On iOS, PDFKit extracts text quickly. Example code:
import PDFKit
func extractText(from url: URL) -> String {
guard let document = PDFDocument(url: url) else { return "" }
return (0..<document.pageCount).compactMap { index in
document.page(at: index)?.string
}.joined(separator: "\n\n")
}
PDFKit does not recognize text in scanned PDFs (images). For scans, OCR is needed—Vision.VNRecognizeTextRequest or cloud-based Google Document AI. On Android, PdfRenderer renders pages into Bitmap, then ML Kit Text Recognition, or the itextpdf/pdfbox-android library for native text extraction from digital PDFs.
Prompt for Thesis Extraction (Swift)
struct Thesis: Codable {
let text: String
let location: String
let type: ThesisType
let confidence: Float
}
enum ThesisType: String, Codable {
case hypothesis, conclusion, recommendation, fact, argument, obligation
}
Display: Annotations in the Document
A thesis is more valuable when tied to a specific location in the document. Document annotations help users see exactly where each statement came from. On iOS, PDFAnnotation highlights the corresponding fragment.
func highlightThesis(_ thesis: Thesis, in document: PDFDocument) {
guard let page = findPage(for: thesis.location, in: document) else { return }
let annotation = PDFAnnotation(
bounds: findBounds(for: thesis.text, on: page),
forType: .highlight,
withProperties: nil
)
annotation.color = colorForType(thesis.type)
annotation.contents = thesis.text
page.addAnnotation(annotation)
}
func colorForType(_ type: ThesisType) -> UIColor {
switch type {
case .conclusion: return .systemGreen.withAlphaComponent(0.4)
case .hypothesis: return .systemBlue.withAlphaComponent(0.4)
case .recommendation: return .systemOrange.withAlphaComponent(0.4)
default: return .systemYellow.withAlphaComponent(0.4)
}
}
Finding bounds for text on a PDF page uses page.findString(_:withOptions:). Works for digital PDFs; scans require OCR coordinates.
Handling Large Documents
A 50-page contract is about 60k tokens. Smarter: first extract the document structure (headings, sections), then process each section separately and aggregate theses. Large document processing requires thesis deduplication for accuracy.
func extractThesesFromLargeDocument(_ text: String) async throws -> [Thesis] {
let sections = splitBySections(text) // split by heading patterns
var allTheses = [Thesis]()
for section in sections {
guard section.content.count > 200 else { continue } // skip TOC and empty sections
let theses = try await extractTheses(from: section.content, sectionTitle: section.title)
allTheses.append(contentsOf: theses)
}
// Deduplicate similar theses via embeddings similarity
return deduplicate(allTheses)
}
Deduplication is important: different sections may repeat the same idea. Simple deduplication uses Jaccard similarity; more accurate uses cosine similarity of embeddings. In practice, this improves final list accuracy by 15–20%.
Why Our Implementation is More Efficient Than Manual Analysis
| Criterion | Manual Analysis | AI Extraction |
|---|---|---|
| Processing speed for 50 pages | 2–4 hours | 2–5 minutes |
| Cost per document | $500 | $10 |
| Thesis extraction accuracy | ~70% (misses) | 90–95% |
| Structured output | Requires separate formatting | JSON with type and confidence |
| Overnight batch processing | No | Background process |
AI processes documents 10–50 times faster than a human, while not missing key statements. Our AI thesis extraction via mobile document analysis ensures PDF parsing and OCR for documents are seamless. Contact us for a consultation regarding your project.
Process of Evaluation and Work
We offer a full cycle of work:
- Analysis of your document types and thesis extraction goals.
- Tuning of LLM prompts for your specific formats (contracts, articles, reports).
- Integration of the module into your existing mobile app (iOS or Android).
- Testing on real documents up to 100 pages.
- Team training and documentation.
- Support during operation.
What's Included in Our Offer?
- Integration of the module into your application.
- Prompt tuning for your document types.
- Testing on your real documents.
- API and process documentation.
- Team training.
- Operational support.
Request turnkey implementation—from 2 to 4 weeks depending on complexity. Get a consultation for your project. We have 5+ years of experience in mobile development and NLP, with over 30 successful projects. We guarantee thesis extraction accuracy of at least 90%.







