Skip to Content
Wisteria is in beta — these docs are evolving fast.
TrainerRunning the AI scanner manually

Running the AI scanner manually

Wisteria’s AI scanner runs nightly by default (via Vercel cron). But sometimes you want to trigger it on demand — after uploading a new document, after a meeting where someone shared a file that should be training, or just to see fresh suggestions.

Where to find it

On /admin/courses, look for a 🔍 Run scan now button near the top — usually next to or below the “Wisteria noticed” cards.

If you don’t see the button, your workspace doesn’t have an integration connected yet. Ask your super_admin to connect Microsoft 365, Google Workspace, or Lark first.

What it does

Clicking the button starts a scan in the background:

  1. Wisteria calls the integrated provider’s API to list candidate files (filtered by MIME whitelist, recency window, per-scan caps).
  2. For each candidate, downloads and extracts text.
  3. Passes the text + your AI Training Profile to Claude.
  4. Writes results to the ai_suggestions table.

The scan typically completes in 30–180 seconds depending on how many candidate files are in scope.

You don’t have to wait on the page — close the tab if you want. Suggestions appear on /admin/courses when the scan finishes, and you’ll see a notification.

Rate limit

Trainers can run 3 scans per day per workspace. The limit resets at midnight UTC.

Why the limit:

  • Cost — each scan costs $0.05–$0.25 in Claude tokens. Unlimited manual scans would let one user burn through tokens fast.
  • Signal hygiene — repeated scans within minutes don’t surface new content; the underlying file set hasn’t changed. Three per day is enough to catch fresh additions without spamming.
  • Provider rate limits — Microsoft Graph, Google Drive, and Lark APIs all have rate limits at the tenant level. Three scans per trainer per day keeps Wisteria well under those.

If you hit the limit, the button shows an inline hint: “Scan limit reached. Resets in X hours.”

Super admins don’t have the same limit — they can re-run on demand for triaging.

What if the scan finds nothing new

Common reasons:

  • No new files since the last scan. The watcher only processes files modified since the previous scan.
  • All new files were filtered out by the MIME whitelist (e.g. they’re images, audio, video) or by the recency window (very old files are skipped by default).
  • All new files were judged “not training” by Claude. The evaluator’s confidence threshold means borderline files don’t surface.

If you’re sure relevant files exist but they’re not being surfaced:

  1. Check that the file is in a Drive / OneDrive / Lark folder the impersonated user can access.
  2. Check that the file is a supported type (PDF, DOCX, PPTX — not Google Doc / Excel / Lark Sheet, which have format-specific extractors that may not be in the current scan path).
  3. Look at the AI Training Profile — is your context too tightly excluding the kind of content you expected to surface?

If after that the file still isn’t surfacing, file a bug — there may be an extractor or filter issue.

What if the scan is slow

The scan runs on Wisteria’s backend; you can leave the page. If it takes more than 5 minutes:

  • The provider’s API might be slow that day.
  • A large file might be taking a long time to extract.
  • The Claude evaluator might be queued (rare but possible).

There’s no current way to cancel a scan in flight. It’ll finish on its own.

What if Claude proposes a course you don’t want

Three options on every “Wisteria noticed” card:

  • Dismiss — hide the card. Future scans won’t resurface the same file unless it changes.
  • Not training — hide AND teach the evaluator. Future files with similar signal get filtered earlier.
  • Generate — materialise the course (you can still edit or archive after).

Use “Not training” liberally for off-target suggestions. The evaluator improves over time when corrected.

What if Claude misses a course you wanted

A few causes:

  • The file isn’t in the impersonated user’s scope. Check that.
  • The file is too new — sometimes there’s a 5-minute provider lag before new files appear in API responses.
  • The Training Profile didn’t tell Claude this kind of content was relevant. Add it to your department profile (see Your department’s AI Training Profile) and re-run.

You can also always AI upload the file manually to bypass the scanner — see AI upload from a document.

Scheduled vs manual scans

Most of your suggestions will come from the nightly scheduled scan, not manual ones. Manual scans are for:

  • Reacting to a specific file you know exists
  • Verifying that a newly-connected integration is working
  • Demoing Wisteria to a colleague

For day-to-day work, let the nightly scan do the heavy lifting.

Last updated on