@extends('layouts.app')
@use('Illuminate\Support\Str')
@php
$u = auth()->user();
$isStudent = $u?->isStudent() ?? false;
$emp = $job->employer;
$isOpen = $job->isOpen();
$posted = $job->posted_at ?? $job->created_at;
$salary = $job->salaryLabel();
$skills = $job->skills;
$levels = ['Entry' => 'Entry (0–2 years)', 'Mid' => 'Mid (2–5 years)', 'Senior' => 'Senior (5+ years)'];
$lines = fn ($t) => collect(preg_split('/\R+/', trim((string) $t)))->map(fn ($l) => trim(ltrim(trim($l), "-•*· ")))->filter()->values();
$paras = collect(preg_split('/\R{2,}/', trim((string) $job->description)))->map(fn ($p) => trim($p))->filter()->values();
$duties = $lines($job->responsibilities);
$reqs = $lines($job->requirements);
$perks = $lines($job->benefits);
$daysLeft = $job->closes_at ? (int) now()->startOfDay()->diffInDays($job->closes_at->copy()->startOfDay(), false) : null;
$closedOn = $job->closes_at && $job->closes_at->isPast() ? $job->closes_at : null;
$levelWord = Str::lower($job->experience_level).'-level';
$summary = $job->title.' is '.(preg_match('/^[aeiou]/i', $levelWord) ? 'an' : 'a').' '.$levelWord.' '.Str::lower($job->employment_type).' position at '.$emp->company_name
.($job->location ? ' in '.$job->location : '').' ('.Str::lower($job->work_mode).'). '
.($salary ? 'Pay is '.$salary.'. ' : '')
.(! $isOpen ? 'This role is now closed to new applications.' : ($job->closes_at ? 'Applications close on '.$job->closes_at->format('d M Y').'.' : 'Applications stay open until the role is filled.'))
.($skills->isNotEmpty() ? ' Key skills: '.$skills->take(4)->pluck('name')->implode(', ').'.' : '');
$avail = collect(['Immediately', 'Within 2 weeks', 'Within 1 month', 'Within 2 months', 'After I finish my current course'])->mapWithKeys(fn ($a) => [$a => $a])->all();
$portfolioUrl = $isStudent ? ($u->portfolio?->is_public ? route('portfolio.show', $u->portfolio->slug) : ($u->linkedin_url ?: $u->github_url)) : null;
$next = '/'.ltrim(request()->path(), '/');
$shareUrl = route('careers.show', $job->slug);
$shareText = $job->title.' at '.$emp->company_name.' — INFOTICS career portal';
$maxMb = config('infotics.careers.resume_max_mb');
$mimes = config('infotics.careers.resume_mimes');
@endphp
@section('content')
@if($emp->company_size)
{!! nl2br(e($p)) !!}
@endforeachEmployers look for these on your verified profile. Select a skill to see other roles that use it.
{{ Str::limit($emp->description, 320) }}
@endif{{ collect([$emp->industry, $emp->location, $emp->company_size ? $emp->company_size.' people' : null])->filter()->implode(' · ') }}@if($employerOpenCount > 1) · {{ $employerOpenCount }} open roles@endif
Applications are sent from your INFOTICS learner account, so {{ $emp->company_name }} can see your profile and verified credentials.
You are signed in as {{ Str::of($u->role)->headline() }}. Log in with a learner account to apply for this role.
{{ $emp->company_name }} can see your application, profile and verified credentials. We emailed you a confirmation, and you will get an email when the status changes.
It takes about two minutes. {{ $emp->company_name }} is notified as soon as you send it.
Posted {{ $posted->format('d M Y') }} · Last updated {{ $job->updated_at->format('d M Y') }} · All INFOTICS career portal jobs