The headline feature takes a CV in any layout, pulls out the facts and pours them into the agency's client template, translated or anonymised on request. A parser, an LLM and a Word template engine do that for one template in a sitting. The weekend goes on layout fidelity for messy PDFs, a Word and Outlook add-in, the ATS connections to Bullhorn, Carerix, Spott and Loxo, and the request-matching of Deal Intelligence. Sending candidate CVs to a model API also makes you the one who answers under GDPR for where that data goes, which is the part Saply sells with its EU hosting and ISO 27001 claim.
Before you buildSaply's 7-day trial needs no card, so try it on your real CVs first, and cancel before day 7 unless the contract says otherwise.
Build me a local CV formatter to replace Saply's CV Intelligence for one recruiter. Requirements: - Node.js 22 + TypeScript: a Fastify server with a small vanilla-JS page, and a CLI `cvfmt <file> --template <name>`. `npm start` serves http://localhost:4600. - Input: PDF (`unpdf`, falling back to `tesseract.js` OCR for pages without text), .docx (`mammoth`) or pasted text. Originals are copied to ./data/inbox/ and never modified. - Extraction: send the text to an OpenAI-compatible endpoint (LLM_BASE_URL, LLM_API_KEY, LLM_MODEL in .env; Ollama works) and require JSON that matches a `zod` schema: contact, summary, experience (employer, title, start, end, bullets), education, skills, languages. Retry once on invalid output. A field the model can't find stays null: it must never invent a date, employer or degree. - Templates: each client format is a .docx in ./templates/ with placeholders and loops, filled with `docxtemplater` and `pizzip`. Ship two examples (a plain one-page layout and a Europass-style one); adding a client means adding a file. - Options per run: translate to a target language, anonymise (drop name, contact details and photo; employers become Company A, B and so on), and an optional job description that reorders and trims bullets to fit it without adding claims. - Review screen: extracted fields on the left, a rendered preview on the right (`docx-preview`); edits update the JSON before download. - Storage: better-sqlite3 in ./data/cv.db, one row per run (file hash, template, options, JSON, timestamp) so repeating a run is instant. - Single user. No accounts, no telemetry, local-first. Outbound calls: the LLM endpoint only; the README must say that CV text is personal data and how to point the tool at a local model. - Out of scope: Word or Outlook add-ins, ATS connectors, request matching, bulk processing. - README: setup, how to build a template, and checks: five sample CVs formatted, no field invented, no placeholder left empty.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Saply.
Add candidate search to the CV formatter in this folder. Requirements: - Index the extracted JSON of every processed CV in SQLite FTS5: skills, titles, employers, languages and the full text. - Paste a job description and get candidates ranked by BM25 on its key terms, each with the matching skills and years of experience shown. - Filters for language, country and availability notes; never show anonymised fields. - A delete button per candidate that removes the row, the index entry and the stored files. - Update the README with a GDPR retention note.
Add request replies to the CV formatter in this folder. Requirements: - Paste an email or a .eml file (`mailparser`); the LLM extracts role, location, rate, start date and must-have skills into a form I can edit. - Run the candidate search for that request and list the top 5 with the reasons they match. - Draft a short reply that proposes those candidates, to copy into my mail client; never send. - Mark any must-have no candidate meets, and keep every draft on a page I can re-open. - Update the README.
Add folder processing to the CV formatter in this folder. Requirements: - A command `cvfmt batch <folder> --template <name>` that formats every PDF and .docx in it, with at most 3 running at once. - Write outputs to ./out/<date>/ and a summary.csv with file, status, empty fields and run time. - Flag a CV when extraction left more than 3 fields empty or the text layer was missing. - Skip files already processed, using the stored file hash. - Update the README.
Staffing firms are paid for speed and polish: a CV in the client's format, in the right language and without personal details, out the same day. Doing it by hand is slow, and recruiters already live in Outlook and Word, so a tool inside those apps with a candidate-data contract behind it is easier to approve than an in-house script.
Estimate · Our estimate: a hosted model costs a few cents per CV, so 100 CVs a month is a few dollars, and a local model through Ollama costs nothing. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| CV Intelligence | — | $200 | A block of CV credits (one credit per CV; size not published): formatting into your templates, tailoring to a job description, anonymising, translation, in Word, Google Docs, Outlook, Gmail and the web app. |
| Deal Intelligence | custom | — | Everything in CV Intelligence plus reading, tagging and matching incoming requests against your candidate pool, drafts to candidates and partners, proposals with the CV attached, deadlines and tracking; Small team and Business tiers. |
| Enterprise | — | $1,250 | Insights reporting with PDF export, CRM integration, connections to Bullhorn, Carerix, Spott, Loxo, SharePoint and Workday, API access, bulk processing, an SLA and a custom DPA. |
A 7-day free trial of CV Intelligence with no credit card; the pricing page says nothing is charged when it ends (the contract wording differs, see billing terms).
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: The Word, Google Docs, Outlook and Gmail add-ins where recruiters already work, Connections to Bullhorn, Carerix, Spott, Loxo, SharePoint and Workday.
About $200 a month on the CV Intelligence (from, in euros) plan, $2,400 a year (checked 2026-10-19).
The Word, Google Docs, Outlook and Gmail add-ins where recruiters already work; Connections to Bullhorn, Carerix, Spott, Loxo, SharePoint and Workday; Deal Intelligence: reading incoming requests, matching them to your pool and drafting proposals; EU hosting and an ISO 27001 certificate, which Saply cites for client security reviews; Client templates set up for you, with ready ones such as Europass. If any of those matter to you, keep paying.
Yes: OpenCATS (open source), Resume Matcher (open source), Reactive Resume (open source).