Spaces:
Sleeping
Sleeping
Commit History
23 days ago
-
Add zero-credit discovery fallback with central spend policy
Claude +1: Claude Sonnet 5.5Unverified signatureRunning out of credits now stops new paid spending instead of the product. - discover-spend-gate: one atomic authorization per run, reusing tryDeductCredits and the credit-guard marker. Out of credits or unreadable ledger => zero_cost (fail closed). Retries never double charge or refund. - spend-policy / provider: zero_cost runs only reach free sources (atsdirect by default, optional webindex); enforced in settleProviders plus a per-provider guard. - discover tool: zero_cost skips LLM scoring, embeddings, inner planner, Firecrawl page fetch and crawl; results carry a structured `spend` summary and an honest note. - SearchRun stores spendMode; background chunks and resume never upgrade it and no longer dead-end at zero balance. - Separate bounded daily budget for zero-cost searches. - /api/score/subscriber returns a labelled heuristic score instead of 429. - Provider errors are not treated as the user's balance (isJobScorerCreditDenial). Co-Authored-By: Claude Sonnet 5.5 <no…db1d726
24 days ago
-
Durable search runs: execution lease and stale-write guards
Claude +1: Claude Sonnet 5.5Unverified signatureQStash delivers at least once and Resume can race a queued chunk, so two workers could run the same SearchRun concurrently, and late writers could overwrite newer state. - Execution lease (cas.ts): one chunk worker per run via a Redis NX lease (TTL 420s: above maxDuration 300s, below the 8-min "worker died" stale threshold). Duplicate deliveries return ok/skipped with no retry. The run is re-read after the lease is taken. Fails open without Redis. - queueNextChunk now pauses, releases the lease, then schedules. Before, it scheduled first, so the next worker could mark the run running before the pause landed (stuck "paused"); the lease must also be free by then. - Final states stay final: cancelled/completed runs can no longer be flipped by markSearchRunRunning / pauseSearchRun / completeSearchRun / failSearchRun / cancelSearchRun from a stale writer. "failed" remains resumable (Resume route relies on it). - Checkpoints merge instead of replace: discovered/hits/closeMat…e7ef20a
-
Show searches left from the credit balance.
Co-authored-by: Cursor <cursoragent@cursor.com>866a4fc -
Rewrite marketing, FAQ, and Terms for credits and Hunt Pass.
Cursor Agent +1: Zimuzo EjinkeonyeUnverified signatureReplace subscription pricing UI and user-facing Subscribe/monthly copy with Start free, credit packs, and Hunt Pass; Terms note legal review. Co-authored-by: Zimuzo Ejinkeonye <zimejin07@users.noreply.github.com>ec7ce69 -
Grant pack/pass credits in Stripe webhook with stacked passUntil.
Cursor Agent +1: Zimuzo EjinkeonyeUnverified signatureIdempotent payment handling sets hasAccess for packs, grants Hunt Pass credits and extends passUntil, and stops wiping balances on invoice.paid. Co-authored-by: Zimuzo Ejinkeonye <zimejin07@users.noreply.github.com>f8e09af -
Support Hunt Pass checkout and drop subscription Checkout branch.
Cursor Agent +1: Zimuzo EjinkeonyeUnverified signaturePacks no longer require an active subscription; empty bodies return 400. Hunt Pass uses one-time payment mode with price_data from HUNT_PASS. Co-authored-by: Zimuzo Ejinkeonye <zimejin07@users.noreply.github.com>f7c4c03 -
Add welcome-credits claim route and shared Clerk metadata helper.
Cursor Agent +1: Zimuzo EjinkeonyeUnverified signaturePOST /api/billing/claim-welcome grants WELCOME_CREDITS once per verified user/email (Redis NX), sets hasAccess, and moves mergePublicMetadata into lib/clerk-metadata for reuse by Stripe webhooks. Co-authored-by: Zimuzo Ejinkeonye <zimejin07@users.noreply.github.com>5fc2566 -
Make discover background continue reliable without requiring Resume.
Cursor Agent +1: Zimuzo EjinkeonyeUnverified signatureCheckpoint discovered listings as soon as providers return them, retry QStash scheduling with backoff, and fall back to an inline/after() chunk worker so timeout mid-score keeps scoring without a manual Resume click. Co-authored-by: Zimuzo Ejinkeonye <zimejin07@users.noreply.github.com>8daf7b1
-
Merge pull request #30 from zimejin07/cursor/search-continues-on-disconnect-8595
Unverified signatureKeep the search running after the page closese2236c9 -
fix(search): retry a failed background chunk and show Resume when it stops
Cursor Agent +1: Zimuzo EjinkeonyeUnverified signatureA worker failure used to answer success, so the queue never retried, and a missed continuation stayed on "still searching" with no Resume. Co-authored-by: Zimuzo Ejinkeonye <zimejin07@users.noreply.github.com>9e94fef -
fix(search): keep searching after the page closes
Cursor Agent +1: Zimuzo EjinkeonyeUnverified signatureClosing the page aborted the chat and left the current pass running in that request, then marked the search stopped. Leave the request immediately and continue the same run in the background. Stop still cancels the search. Co-authored-by: Zimuzo Ejinkeonye <zimejin07@users.noreply.github.com>2bc82be -
feat(dashboard): keep low scores on a review shelf for 7 days
Cursor Agent +1: Zimuzo EjinkeonyeUnverified signatureScored listings that miss the match bar are saved for a human look when they still fit the user's hard preferences. Unsaved review rows are deleted after 7 days. Saved and applied rows stay. Co-authored-by: Zimuzo Ejinkeonye <zimejin07@users.noreply.github.com>f46c04f
-
fix(discovery): drop seniority prefix, run 48h retry, remove legacy search
Cursor Agent +1: Zimuzo EjinkeonyeUnverified signatureStop prefixing profile seniority onto outbound titles. When a 24h pass finds listings but scores none, run a real 48h discover_jobs instead of nudging the model. Remove batch search, Hirebase, and JSearch from the live path. Keep the shared Redis client. Co-authored-by: Zimuzo Ejinkeonye <zimejin07@users.noreply.github.com>b6e22cf -
Show subscribers how many searches they have left.
Cursor Agent +1: Zimuzo EjinkeonyeUnverified signatureA failed discover that is refunded now says it was not counted, and an empty result states that the search counted against the monthly allowance. Co-authored-by: Zimuzo Ejinkeonye <zimejin07@users.noreply.github.com>46aeb67
-
Strip remaining em dashes from agent-facing messages.
Also stop tracking .cursor/settings.json. Co-authored-by: Cursor <cursoragent@cursor.com>a01038f -
Ship production-readiness: credit guards, packs, budgets, and AI disclaimer.
Enforce credits when commercial mode is on, reset monthly grants on invoice.paid, add provider daily budgets and exhausted-credit pause/resume, wire Stripe credit packs plus capacity banner, and default Firecrawl Search scrape off. Co-authored-by: Cursor <cursoragent@cursor.com>1d1f9e0
-
Improve job discovery strategy and result cards
Co-authored-by: Cursor <cursoragent@cursor.com>c708e76 -
fix(agent): skip the planner tax and offer next steps when inference dies
Search turns now execute tools immediately and surface retry, background search, and paste-URL actions instead of a dead Something went wrong bubble. Co-authored-by: Cursor <cursoragent@cursor.com>6c17b6d
-
fix: harden resume upload/paste so broken JSON never reaches users
Make extraction parse balanced like scoring, cap file/text size, lengthen model output, and guard client responses so onboarding and Update CV fail with clear copy instead of raw SyntaxErrors. Co-authored-by: Cursor <cursoragent@cursor.com>11f8099
-
Preserve scoring prefs on CV refresh and unify first-run vs returning-user onboarding.
Co-authored-by: Cursor <cursoragent@cursor.com>5941d0c -
Make heuristic fallback profile-aware and align agent fetch/score with home.
Keyword role-fit now uses saved role, seniority, titles, and skills; cosine blends into role_fit only when embeddings exist, and agent scrape/score follow the same fetch and session floors as home. Co-authored-by: Cursor <cursoragent@cursor.com>5cf4587 -
Make Firecrawl opt-in and harden listing fetch plus scoring fallbacks.
Co-authored-by: Cursor <cursoragent@cursor.com>aff2e09
-
Fix home scoring badges, blocked URL fetches, and post-checkout subscriber unlock.
Co-authored-by: Cursor <cursoragent@cursor.com>ab9d253 -
Fix agent URL keys, credit deduct races, and first-invoice billing grants.
Co-authored-by: Cursor <cursoragent@cursor.com>7b14dbc -
Fix dashboard persistence prefs and manual scorer inference fallback.
Thread jobPreferences through saveFindings so eligible restricted-remote matches persist to the dashboard, and align /api/score/subscriber with discovery-grade fallback when the primary provider fails. Co-authored-by: Cursor <cursoragent@cursor.com>7544a6b
-
fix: smooth free-tier inference failover without paid-only paths
Co-authored-by: Cursor <cursoragent@cursor.com>2cf088c -
feat: deepen specialised job scoring as a standalone fit report
Cursor Agent +1: Zimuzo EjinkeonyeUnverified signatureMake the manual scorer a destination for listings found anywhere: structured extraction, evidence-backed dimensions, confidence, legitimacy cautions, per-user weights and dealbreakers, plus a lean browser extension that hands the current page into /?url=&autorun=1. Unify post-LLM finalize so every score (success and heuristic fallback) attaches accessibility, visa flags, and the new specialised insights. Co-authored-by: Zimuzo Ejinkeonye <zimejin07@users.noreply.github.com>72185bf
-
Show listing recency on Job Scorer when scoring from a URL.
Extract posted date from the fetched page (JSON-LD, meta, or visible copy) and surface it on the result so a pasted URL can be judged for freshness. Paste-only scoring is unchanged. Co-authored-by: Cursor <cursoragent@cursor.com>5e07213 -
Fix Score it for entitled subscribers and reset the form after a result.
The Score button now uses the same entitlement check as Agent, fetch errors are no longer hidden behind CORS-proxy noise, and Vercel timeouts are raised so scoring can finish. Co-authored-by: Cursor <cursoragent@cursor.com>e55d49c
-
Let users rename chats and keep drafting without losing their place in the thread.
Co-authored-by: Cursor <cursoragent@cursor.com>d114205 -
Let users delete chats from the history rail.
Sessions already expire after 7 days of inactivity; this adds an explicit delete so old threads do not have to sit in the sidebar until then. Co-authored-by: Cursor <cursoragent@cursor.com>5826e59 -
Harden the agent chat loop around 24h recency, honest stops, credits, and timeouts.
Clamp search windows to 24h/48h, stop digest from stealing chat SearchRuns, and align discover timeouts so partials and refunds surface instead of silent failures. Co-authored-by: Cursor <cursoragent@cursor.com>69bb4f2
-
Add an Agent session history rail so you can reopen past chats.
Co-authored-by: Cursor <cursoragent@cursor.com>44ff9cf
-
Add AGENT_SUITE_LOCKED flag to keep Job Scorer live while gating agent suite.
Enables a public Vercel URL with scoring available and discovery/digest/email Coming soon, without using all-or-nothing DEMO_MODE. Co-authored-by: Cursor <cursoragent@cursor.com>4f6ef0c
-
Pass saved profile prefs into subscriber scoring.
Manual URL scoring loaded the profile for the prompt but omitted it from the location gate, so Nigeria-eligible restricted remote still Skip'd. Co-authored-by: Cursor <cursoragent@cursor.com>4c05fce
-
Default Hirebase to lexical search; enable neural via HIREBASE_SEARCH_MODE.
Route discovery through POST /v2/jobs/search on Free-tier plans, keep neural-search opt-in, improve lab diagnostics and batch Hirebase error handling, and document env defaults. Co-authored-by: Cursor <cursoragent@cursor.com>051e46a -
Add lab observability for Hirebase search failures.
Surface upstream HTTP detail in agent run logs and debug traces, add a lab Hirebase probe endpoint, and emit structured hirebase.search logs on failed API calls. Co-authored-by: Cursor <cursoragent@cursor.com>308afe2
-
Add durable search runs with resumable agent execution.
Introduce Redis-backed SearchRun checkpoints, QStash workers, session transcript restore, and reconnectable chat UX so discovery can resume after failures without redoing completed work. Co-authored-by: Cursor <cursoragent@cursor.com>bcdd291 -
Add three-path opportunity experience with grouped results and early onboarding
- Introduce resolveOpportunitySection and groupJobsByOpportunitySection for work-from-anywhere, visa-sponsored, and eligible restricted-remote paths. - Fix classification so discovery lane alone no longer forces VISA_RELOCATION; country-restricted sponsored roles route by user authorization context. - Group agent chat, dashboard findings, batch hits, and digest emails by path. - Add accessibility onboarding step and shared AccessibilityPreferencesForm; persist accessibilityPreferences via profile update API with nested merge. - Align tool runner, conversation stream, and persistence gates on passesAccessibilityGate with user preferences; update agent narration copy. - Add opportunity-sections selftests and extend accessibility selftests. Co-authored-by: Cursor <cursoragent@cursor.com>e3c8b22
-
Replace multi-provider job discovery with Hirebase as the single search API.
Collapses Serper, ATS direct fetch, and Google dorking into lib/hirebase.ts while keeping scoring, agent pivots, batch jobs, digest, and seen-URL dedupe intact. Co-authored-by: Cursor <cursoragent@cursor.com>d6c1beb
-
Surface silent findings write failures and tighten scoring pipelines.
Record Supabase save failures in Redis and show a dashboard storageWarning banner so users know findings may be stale. Add global remote location caps, snippet quality gates, Firecrawl fetch strategies, and propagate scoring profiles through batch/scrape/discover paths. Co-authored-by: Cursor <cursoragent@cursor.com>9223752
-
Upgrade discovery yield, digest reliability, and runtime UI.
Improve search pivots, heuristic scoring fallback, unified global-remote rubric, segmented seen-url TTLs, feedback loops from save/dismiss/apply, and live agent status on dashboard and chat. Co-authored-by: Cursor <cursoragent@cursor.com>b7bf6e2
-
Improve agent tool execution, session context, and report resilience.
Force tool calls after plan narration, invalidate session cache on save/dismiss, include saved jobs in context, handle discovery failures gracefully in digest runs, and tighten fallback scoring for geo restrictions. Co-authored-by: Cursor <cursoragent@cursor.com>6c7380b
-
Tighten agent bootstrap, extraction gates, and unified user model prompts.
Server-inject profile digest, memory, and suggested intents on every agent session; harden CV extraction with sparse retry and 422; add review UI, USER_MODEL scoring alignment, and test:profile selftests. Co-authored-by: Cursor <cursoragent@cursor.com>50fe116 -
Unify user profile across agent, scorer, and UI with Clerk as canonical store.
Server routes read fresh jobScorerProfile from Clerk; clients hydrate via GET /api/profile and reload after save. Adds readiness gates, job preferences modal separate from CV upload, and profile_updated agent stream events. Co-authored-by: Cursor <cursoragent@cursor.com>96aaa90
-
Wire agent session context from Supabase run history.
Load cached run history and findings for smarter session planning, contextual init messages, and discover_jobs filters for dismissed domains and recently seen strong-match URLs (chat and digest). Co-authored-by: Cursor <cursoragent@cursor.com>cbeaf59 -
Unify agent persistence across digest, chat, and batch runs.
Centralize Supabase writes, add dashboard batch panel with Redis per-user index, and check in supabase/schema.sql. Co-authored-by: Cursor <cursoragent@cursor.com>3c25692 -
Refactor email to Agent Inbox: Resend-only reports with unified agent voice.
Co-authored-by: Cursor <cursoragent@cursor.com>66b5e08 -
Allow subscribers to access Job Scorer at / and add Serper tier effectiveness metrics.
Remove the home-page redirect to /dashboard so nav and ?url= handoffs work. Track per-tier Serper query/listing/pass rates in Redis and surface them in the lab dashboard. Co-authored-by: Cursor <cursoragent@cursor.com>348daaa
-
Activation flow, remove Search Lab, rename Job Launcher to Job Agent.
Connect onboarding to in-modal profile confirm and activation screen with digest/search CTAs. Remove Search Lab entirely. Rename /job-launcher to /agent with redirects; add dashboard digest enable and subscriber home redirect. Co-authored-by: Cursor <cursoragent@cursor.com>02c063e