Work smarter with AI.
A focused set of AI utilities for documents, PDFs and job applications. The interfaces are ready for secure API-backed AI processing.
AI PDF Summarizer
Turn long documents into concise summaries and key takeaways.
Summarize →💬Chat with PDF
Ask questions about a document and keep the conversation focused on its contents.
Ask your PDF →🌍AI PDF Translator
Translate document text into another language with a clean export workflow.
Translate →🔎AI OCR
Extract usable text from scanned PDFs and image-based documents.
Extract text →✍️AI Text Rewriter
Rewrite, simplify, shorten or professionalize text in seconds.
Rewrite →📄AI CV Writer
Generate stronger summaries and achievement-focused CV bullet points.
Improve CV →🎯ATS CV Checker
Compare a CV with a job description and surface keywords and gaps.
Check CV →✉️Cover Letter Generator
Create a tailored cover letter from your CV and a target job description.
Write letter →Seven tasks, one Worker, none of them Merge
This page is the catalog. Summarizer, chat, rewriter, OCR, CV writer, cover letter, and the ATS checker each set a task name from the URL and call the shared client in assets/ai-tools.js. Text tasks POST to /api/ai. OCR posts images to /api/ocr. The Worker slices text at 30,000 characters, tries the model list for that task, and returns {text, model}. It does not save a library of your documents.
The rest of PDFSwift — merge, split, rotate, organize, sign, image export, compress, lock, unlock — does not use this client. Compress and lock still rewrite pages as JPEGs, but they do it in the tab. If a file must not leave the machine, stay on those pages and skip every button on this catalog.
| Task | Send | Expect |
|---|---|---|
| Summary | Extracted text | A brief you still check |
| Chat | Text plus a question | An answer that should stay inside the text |
| OCR | Page images | A transcript of the ink, with errors |
| Rewrite / CV / letter / ATS | The notes you paste | A draft or a critique, not a filing |
Pick the smallest transmission
You need a paragraph to edit
PDF to Word, locally, if the text layer exists. Rewriter only if you want a different wording and you accept the POST.
You need a number from a contract
Split to that section. Chat. Search the PDF for the number the model returned.
You need a scan to become words
OCR, then a human on the digits. Summarize the corrected transcript if you still need a brief.
You need a smaller PDF for email
That is Compress, on the local tools, and it destroys selection. It is not an AI button.
Open the tool that matches the job
- Decide whether the bytes may leave the browser.
- If yes, open the single task. Do not paste the whole archive because the catalog looks general.
- Read the limit on that page: character cap, empty scans, invented metrics.
- Clear the box before the next file. The catalog does not isolate clients for you.
The boundary is written up in privacy-first PDF editing and when to call a model at all.
The catalog is not a pipeline
Opening this page does not run OCR, then a summary, then a rewrite. Each card is a separate task with its own POST. A scan has to be transcribed and checked before chat will have anything true to answer. A merge never belongs in that sequence if the file cannot leave the browser.
Clear the box between clients. The shared script keeps the selected file on the page until you clear it. The Worker still does not write a library. The model for that one call saw whatever you sent, up to the character cap, and the completion stopped near 1,800 tokens.
Frequently asked questions
Do these tools keep the file in the browser the way Merge does?
No. Text tasks POST the extracted text to /api/ai. OCR POSTs page images to /api/ocr. The browser reads the file first, which is not the same as never sending it. Merge, split, rotate, and sign do not make that call.
Is there one model for every button?
No. The Worker keeps a list per task and uses the first model that returns text. Summary and chat share a list. Rewrite, CV, and cover letter share another pattern. OCR uses the vision list. A failure on one task does not mean the file was saved.
What are the hard limits?
Text is sliced at 30,000 characters. A question is sliced at 4,000. Completions are requested with a max of about 1,800 tokens and temperature 0.3. Longer documents need to be split before you ask.
Are prompts stored?
The Worker returns JSON and does not write the body to a database or object store. The model still receives the text for the call. Do not paste secrets to test the button.
Which page should I open?
Summary for a brief, chat for one question, OCR for a scan, rewrite for a paragraph, CV writer for bullets, cover letter for one requisition, ATS checker for a critique of text. The cards on this page are labels. The limits live on each tool.
A scan plus a question returned nothing useful.
Chat and summary need text. OCR the upright pages, proof the digits, then ask. The hub does not run all of those steps as one pipeline.