# AccessLens 3C.5 — Faster search, targeted retries, match confidence

- Runs up to three independent JSearch queries concurrently, rather than sequentially.
- Uses a 12-second per-attempt timeout by default (`JSEARCH_TIMEOUT` can override). Each query may retry a transient timeout once, so slow requests can still take over 24 seconds. No guarantee of a fixed response time.
- Caches successful individual queries for 15 minutes. Failed queries are not cached as successes.
- Shows **Retry failed searches only** after a partial failure. Successful queries are not repeated; new results merge into the current set without duplicate IDs/URLs.
- Shows **High / Medium / Low evidence confidence** separately from the heuristic fit percentage. Confidence is a simple count of four evidence signals, not an empirically calibrated measure.
- Preserves Best Matches, All Discovered Jobs, pagination, Load More, resume parsing, and tracker.

## Start

```bash
cd ~/Desktop/accesslens-3c5
python3 -m pip install pypdf python-docx
export JSEARCH_API_KEY="YOUR_ROTATED_KEY"
python3 server.py
```

Open http://127.0.0.1:8780/jobs.html . Keep API keys out of screenshots and chats.

## Important limitations

This is a **local single-process prototype**, not multi-user production architecture. Search state is shared across browser clients; it requires per-user search sessions, rate limits, authentication, persistent storage, and privacy/security hardening before public launch. The cache is in memory, and successful cached responses may be up to 15 minutes old. Provider latency and RapidAPI quota/rate limits still apply. The UI's match-confidence labels are heuristic and are not probabilities of an interview.
