Ask - Multi-File Document Analysis Tool

A flexible Python utility to analyze multiple files using OpenAI language models with optional structured output. Core tool powering both ad-hoc document analysis and job application automation.

Quick Overview

Ask is a command-line tool that accepts multiple files (DOCX, PDF, ODT, TXT, MD, JSON, HTML, etc.), sends them to OpenAI with optional system prompt, and returns analysis with optional structured JSON output matching a provided schema.

Primary Use Cases

Document Analysis — Compare, summarize, extract information from filesJob Application Automation — Generate tailored CVs and cover letters from job postingsCode Review — Analyze source code for issuesGeneral Multi-Document Q&A

Key Features

Multiple file format support (DOCX, PDF, ODT, TXT, MD, JSON, XML, HTML, code files)Automatic text extraction from binary formatsOpenAI API integration (configurable model, default gpt-4o-mini)Optional structured output via JSON schema (from file, JSON string, or YAML)System prompt support for roleplay and contextDocument reference awareness (LLM knows source filenames)--no-document-references mode for clean output without headersSaves output to file or stdout

Detailed Documentation

Architecture — Data flow and component design

Design Decisions — Why design choices were made

Quick Reference — Command examples and cheat sheet

Deployment — Infrastructure, credentials, dependencies

Integration — Connection to PopIt3 email system

Job Application Sub-System

Jobs Overview — Job application automation sub-project

Workflow — Step-by-step job application process

Schema — JSON output structure for applications

Document Generation — DOCX file creation from JSON

version2