User Guide

WiseEntry

Invoices in. CSV out.

01What WiseEntry does

WiseEntry turns scanned invoice PDFs into a clean CSV ready for Yardi (or any system that takes a customizable CSV).

Drop a folder of invoice PDFs in. WiseEntry reads each one with Claude, pulls out the vendor, invoice number, dates, totals, and line items, applies your saved coding rules, lets you review and fix anything that looks off, and writes a CSV right back into the same folder.

The shape of it

Four stages: FolderExtractReviewExport. You can step backward through them at any time.

02First-run setup

The first time you open WiseEntry, you'll do three things. After that, it remembers.

1. Set your API key

WiseEntry uses your own Anthropic API key. You'll see a gold-bordered welcome panel asking for it — paste your key (it starts with sk-ant-) and pick a passphrase.

The key is encrypted with your passphrase using AES-GCM and stored only on this device. You'll type the passphrase once per session to unlock it.

Don't have an API key?

Get one at console.anthropic.com. WiseEntry uses Claude Sonnet 4.6, which costs about $0.01–$0.03 per invoice depending on length.

2. Pick your app-config folder

Pick a folder anywhere on your computer. WiseEntry stores its CSV template (yardi.csv) and rules backups here. You'll only do this once — it's remembered.

Suggested location

~/Documents/WiseEntry/ works well. Make a fresh empty folder for it; WiseEntry will populate it on first run.

3. Pick today's work folder

This is the folder of invoice PDFs you want to process today. WiseEntry reads PDFs from it and writes the CSV back to the same place. Originals are never modified.

Browser support

WiseEntry needs the File System Access API. Use a recent Chrome, Edge, or Brave. Safari and Firefox don't yet support folder access from the browser.

03Your daily workflow

  1. Open WiseEntry. If you closed it after the last batch, you'll just need to type your passphrase to unlock the API key.
  2. Pick the work folder for this batch. WiseEntry scans it for PDFs and shows them as a queue with thumbnails.
  3. Hit “Extract all”. WiseEntry sends each PDF to Claude one at a time. Watch the progress bar — each invoice usually takes 5–15 seconds.
  4. Review the table. Anything missing or unusual is flagged. Click into any row to see the PDF side-by-side with the extracted fields. Edit anything by clicking on it.
  5. Code uncoded vendors. If a vendor doesn't match an existing rule, you'll see them in the “uncoded” count. Click Code uncoded vendors to walk through them one at a time.
  6. Export. Pick a filename (auto-suggested with a timestamp), click export, and you'll have a CSV in your work folder.
Realistic batch time

20 invoices ≈ 5 minutes start to finish, including a quick review pass. Most of that's wall-clock time on the extraction; the human work is just glancing at flagged rows.

04Vendor rules

A rule is a stored decision: “invoices from Acme Plumbing get GL code 6200-REPAIRS and property HOU-001”. Once you've coded a vendor, you almost never have to do it again.

Rules apply automatically after extraction. The matching strategy is configurable in Settings:

  • Exact — case-sensitive equality. Strict.
  • Normalized (default) — case-insensitive, ignores trailing LLC, Inc, Co, etc. Handles “Acme Plumbing LLC” vs “Acme Plumbing, Inc.” as the same vendor.
  • Fuzzy — Levenshtein similarity above a threshold (default 0.85). Catches typos and minor variations.

Adding rules two ways

Either click Rules in the top bar to add them by hand, or let WiseEntry capture them as you go: when you code an uncoded vendor in the walkthrough, the “Remember this for [vendor]” checkbox is on by default. Next batch, that vendor will be coded automatically.

Backup & restore

From the Rules editor, Export downloads a JSON file of all your rules. Import reads one back in — you'll be asked whether to replace or merge. Files exported from earlier WiseITOC versions are also accepted.

05The CSV template

The shape of the output CSV is defined by yardi.csv in your app-config folder. The first row is the header — that's what WiseEntry uses to figure out what each column means. Edit this file directly when you need a different column order or extra columns.

Recognized column names

These header names map to extracted fields automatically (case-insensitive, punctuation-flexible):

vendor_name      → vendor
invoice_number   → invoice ID
invoice_date     → invoice issue date
due_date         → payment due date
property_code    → from the rule
gl_code          → from the rule
description      → first line item or "Invoice #..."
amount           → total
tax_amount       → tax (if broken out)
currency         → ISO 4217 (USD, EUR, ...)
notes            → blank by default
Custom columns are fine

Any header WiseEntry doesn't recognize gets emitted as an empty column on every row. Add static fields, post-import flags, batch IDs — anything you need. Fill them in after import or in your spreadsheet.

If yardi.csv doesn't exist

WiseEntry creates it for you the first time you export, with a sensible default schema and three example rows. Open it in your spreadsheet of choice, change column order, add or remove columns, save it back. The example rows are ignored on read.

06Reviewing & editing

The review table shows one row per extracted invoice. Click any row to open the card view: PDF on the left, fields on the right. Use and to flip through, or Esc to come back.

Editing fields

In the table, double-click any cell to edit it. In the card view, single-click any field. Enter commits, Esc cancels. Edits are saved immediately and survive across sessions (until you change folders or delete the batch).

What gets flagged

A row is marked “needs attention” if any of these are missing: vendor name, invoice number, invoice date, total amount. You can still export — flagged rows just appear with empty cells in the CSV.

Always glance at flagged rows

The model is good but not perfect. Handwritten amounts, faded scans, and unusual layouts are the most common causes of misses. The flag isn't a verdict — it's a “please double-check this one.”

07Exporting

The export stage shows the columns from your yardi.csv template (mapped fields in gold, custom columns with a ?) and lets you pick a filename. Default is invoices-YYYYMMDD-HHMM.csv — adjust the prefix in Settings.

Hit Export. The file is written to your work folder. You'll see a green confirmation panel.

Excel and Unicode

If your invoices contain accented characters and you open the CSV in Excel, turn on Prepend UTF-8 BOM in Settings. Without it, Excel can mangle non-ASCII text.

08Your API key, explained

WiseEntry uses your own Anthropic API key. The key is sent directly from your browser to api.anthropic.com. It never goes to FlexMystic's servers — there are no FlexMystic servers in this loop. The HostGator URL just hosts the static files; the moment the page loads, every API call is browser-to-Anthropic.

How encryption works

When you set up your key, you choose a passphrase. WiseEntry derives an AES-GCM encryption key from your passphrase using PBKDF2 with 250,000 iterations, encrypts the API key, and stores the ciphertext in your browser's local storage. The plaintext key is never persisted — it lives only in memory for the duration of your session.

Three states you'll see

  • Setup — first run only. Gold-bordered welcome.
  • Unlock — slim navy strip when you return. Type your passphrase.
  • Active — green-tinted strip showing your key (masked) is unlocked for this session.

Buttons in the active state

  • Change passphrase — re-encrypt with a new passphrase. Need the old one to do it.
  • Lock — drop the key from memory. Useful if you're stepping away.
  • Forget on this device — wipe the encrypted blob entirely. You'll have to paste your key again next time.

09Troubleshooting

“Browser not supported”

You're on Safari or Firefox. Switch to Chrome, Edge, or Brave for the work. WiseEntry needs showDirectoryPicker(), which only Chromium-family browsers ship.

The folder picker doesn't open

Make sure you're on https://, not http://. The File System Access API requires HTTPS. WiseEntry's .htaccess redirects HTTP to HTTPS automatically — if you somehow got past that, try the URL with https:// explicitly.

“Permission denied” on the work folder

The browser's permission to access your folder expires after a while. Click the folder name in the path bar to re-pick it. The app remembers which folder you chose, but the permission grant doesn't persist forever.

Extraction fails on a specific invoice

Common causes: PDF is password-protected, scan is too low-resolution, the file is huge (over ~30 MB). Click Retry on the failed row. If it keeps failing, open the PDF directly to check it's readable, then re-add a fresh copy.

“Incorrect passphrase”

Try again carefully — the passphrase is case-sensitive. If you've genuinely forgotten it, click Reset on the unlock panel; this wipes the encrypted blob, and you'll paste your API key fresh and pick a new passphrase.

Yardi rejected my CSV

Most often it's column names. Yardi expects specific headers — open yardi.csv in your app-config folder and edit the header row to match exactly what your Yardi import expects. Save the file. Re-run the export.

The page looks broken / blank

Usually a stale cached version after an update. Hard-refresh: Ctrl+Shift+R on Windows/Linux, Cmd+Shift+R on Mac.

10Privacy & data

WiseEntry is a single-user, BYO-key tool. Here's where every piece of data lives:

  • PDFs — never uploaded anywhere by WiseEntry except direct to Anthropic for extraction. Never shared with FlexMystic. Never persisted by WiseEntry beyond the session.
  • Extracted JSON — saved in your browser's IndexedDB so you can come back to a batch later. Tied to the work folder name. Cleared when you click Clear all data in Settings.
  • API key — encrypted with your passphrase, stored in your browser's local storage. Never transmitted anywhere except to api.anthropic.com as the auth header on each extraction call.
  • Vendor rules — IndexedDB, exportable as JSON.
  • The CSV template — a real file in your app-config folder. You own it; edit it freely.

To wipe everything WiseEntry has stored on this device, open Settings → StorageClear all data on this device. Files in your work folders are not touched.