@php $isRunning = $resumeReport && in_array($resumeReport->status, [\App\Models\ResumeReport::STATUS_PENDING, \App\Models\ResumeReport::STATUS_PROCESSING], true); $isCompleted = $resumeReport?->isCompleted(); $hasFailed = $resumeReport?->hasFailed(); @endphp

Resume intelligence

Upload once. Watch analysis update live.

We analyze your resume for ATS strength, remote-readiness, extracted skills, role suggestions, missing keywords, and practical improvements.

View resume history
@if (session('status'))
{{ session('status') }}
@endif @if ($errors->any())

Please fix the upload.

@endif

Current file

{{ $resumeReport?->original_filename ?? 'No resume uploaded yet.' }}

Status: {{ $resumeReport ? str($resumeReport->status)->headline() : 'Waiting for upload' }}

Analysis is queued or running. Keep this page open; it will update automatically.

{{ $resumeReport?->failure_reason }}

ATS score

{{ $resumeReport?->ats_score ?? 0 }}/100

Remote-readiness

{{ $resumeReport?->remote_readiness_score ?? 0 }}/100

Continue to profile
@csrf
PDF, DOC, DOCX, and TXT uploads are accepted. DOCX and TXT can be extracted in PHP; PDF and legacy DOC extraction require configured server binaries on your host.
@foreach (['ATS score', 'Skills', 'Remote fit'] as $item)

{{ $item }}

Generated after upload

@endforeach

Detected signals

{{ $resumeReport?->analysis['summary'] ?? 'Resume summary will appear here after analysis completes.' }}

Extracted skills

@forelse ($resumeReport?->extracted_skills ?? [] as $skill) {{ $skill }} @empty Waiting for analysis. @endforelse

Role suggestions

@forelse ($resumeReport?->role_suggestions ?? [] as $role) {{ $role }} @empty Waiting for analysis. @endforelse

Improvement plan

Missing keywords

@forelse ($resumeReport?->missing_keywords ?? [] as $keyword) {{ $keyword }} @empty Waiting for analysis. @endforelse

Resume improvements

    @forelse ($resumeReport?->resume_improvements ?? [] as $improvement)
  • {{ $improvement }}
  • @empty
  • Waiting for analysis.
  • @endforelse