|
|
@@ -0,0 +1,400 @@
|
|
|
+//
|
|
|
+// MockJobListings.swift
|
|
|
+// indeed_ai_job_search
|
|
|
+//
|
|
|
+
|
|
|
+import Foundation
|
|
|
+
|
|
|
+enum MockJobListings {
|
|
|
+ static let all: [JobListing] = {
|
|
|
+ let now = Date()
|
|
|
+ let day: TimeInterval = 86_400
|
|
|
+
|
|
|
+ func url(_ key: String) -> URL {
|
|
|
+ URL(string: "https://www.indeed.com/viewjob?jk=\(key)")!
|
|
|
+ }
|
|
|
+
|
|
|
+ return [
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios001",
|
|
|
+ title: "Senior iOS Developer",
|
|
|
+ company: "Apple",
|
|
|
+ location: "Lahore, Pakistan",
|
|
|
+ remoteType: .hybrid,
|
|
|
+ employmentType: .fullTime,
|
|
|
+ experienceLevel: .senior,
|
|
|
+ salary: SalaryRange(min: 50_000, max: 80_000, currency: "USD", period: .year),
|
|
|
+ postedAt: now.addingTimeInterval(-day),
|
|
|
+ snippet: "Build delightful iOS experiences with SwiftUI and UIKit for millions of users.",
|
|
|
+ indeedURL: url("ios001"),
|
|
|
+ isEasyApply: true,
|
|
|
+ isFeatured: true,
|
|
|
+ logoSymbol: "apple.logo"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios002",
|
|
|
+ title: "iOS Developer",
|
|
|
+ company: "Microsoft",
|
|
|
+ location: "Islamabad, Pakistan",
|
|
|
+ remoteType: .remote,
|
|
|
+ employmentType: .fullTime,
|
|
|
+ experienceLevel: .mid,
|
|
|
+ salary: SalaryRange(min: 45_000, max: 70_000, currency: "USD", period: .year),
|
|
|
+ postedAt: now.addingTimeInterval(-2 * day),
|
|
|
+ snippet: "Join a distributed team shipping mobile productivity apps on iOS.",
|
|
|
+ indeedURL: url("ios002"),
|
|
|
+ isEasyApply: true,
|
|
|
+ isUrgentlyHiring: true,
|
|
|
+ logoSymbol: "square.grid.2x2.fill"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios003",
|
|
|
+ title: "Mobile Software Engineer (iOS)",
|
|
|
+ company: "Alorica",
|
|
|
+ location: "Karachi, Pakistan",
|
|
|
+ remoteType: .onsite,
|
|
|
+ employmentType: .fullTime,
|
|
|
+ experienceLevel: .junior,
|
|
|
+ salary: SalaryRange(min: 30_000, max: 48_000, currency: "USD", period: .year),
|
|
|
+ postedAt: now.addingTimeInterval(-3 * day),
|
|
|
+ snippet: "Develop and maintain customer-facing iOS applications.",
|
|
|
+ indeedURL: url("ios003"),
|
|
|
+ isEasyApply: true,
|
|
|
+ logoSymbol: "phone.fill"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios004",
|
|
|
+ title: "iOS Engineer",
|
|
|
+ company: "Careem",
|
|
|
+ location: "Lahore, Pakistan",
|
|
|
+ remoteType: .hybrid,
|
|
|
+ employmentType: .fullTime,
|
|
|
+ experienceLevel: .mid,
|
|
|
+ salary: SalaryRange(min: 40_000, max: 65_000, currency: "USD", period: .year),
|
|
|
+ postedAt: now.addingTimeInterval(-4 * day),
|
|
|
+ snippet: "Own features end-to-end for the Careem rider and captain apps.",
|
|
|
+ indeedURL: url("ios004"),
|
|
|
+ isFeatured: true,
|
|
|
+ logoSymbol: "car.fill"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios005",
|
|
|
+ title: "Senior Mobile Developer",
|
|
|
+ company: "Bykea",
|
|
|
+ location: "Karachi, Pakistan",
|
|
|
+ remoteType: .remote,
|
|
|
+ employmentType: .fullTime,
|
|
|
+ experienceLevel: .senior,
|
|
|
+ salary: SalaryRange(min: 55_000, max: 85_000, currency: "USD", period: .year),
|
|
|
+ postedAt: now.addingTimeInterval(-5 * day),
|
|
|
+ snippet: "Lead iOS architecture and mentor a growing mobile team.",
|
|
|
+ indeedURL: url("ios005"),
|
|
|
+ isEasyApply: true,
|
|
|
+ isUrgentlyHiring: true,
|
|
|
+ logoSymbol: "bicycle"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios006",
|
|
|
+ title: "SwiftUI Developer",
|
|
|
+ company: "Afiniti",
|
|
|
+ location: "Islamabad, Pakistan",
|
|
|
+ remoteType: .hybrid,
|
|
|
+ employmentType: .fullTime,
|
|
|
+ experienceLevel: .mid,
|
|
|
+ salary: SalaryRange(min: 48_000, max: 75_000, currency: "USD", period: .year),
|
|
|
+ postedAt: now.addingTimeInterval(-6 * day),
|
|
|
+ snippet: "Ship modern SwiftUI interfaces for enterprise AI products.",
|
|
|
+ indeedURL: url("ios006"),
|
|
|
+ isEasyApply: true,
|
|
|
+ logoSymbol: "sparkles"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios007",
|
|
|
+ title: "Junior iOS Developer",
|
|
|
+ company: "Systems Limited",
|
|
|
+ location: "Lahore, Pakistan",
|
|
|
+ remoteType: .onsite,
|
|
|
+ employmentType: .fullTime,
|
|
|
+ experienceLevel: .entry,
|
|
|
+ salary: SalaryRange(min: 18_000, max: 28_000, currency: "USD", period: .year),
|
|
|
+ postedAt: now.addingTimeInterval(-7 * day),
|
|
|
+ snippet: "Learn production iOS development with senior mentors.",
|
|
|
+ indeedURL: url("ios007"),
|
|
|
+ isEasyApply: true,
|
|
|
+ logoSymbol: "desktopcomputer"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios008",
|
|
|
+ title: "iOS Contractor",
|
|
|
+ company: "Remote Team Co",
|
|
|
+ location: "Pakistan",
|
|
|
+ remoteType: .remote,
|
|
|
+ employmentType: .contract,
|
|
|
+ experienceLevel: .mid,
|
|
|
+ salary: SalaryRange(min: 35, max: 55, currency: "USD", period: .hour),
|
|
|
+ postedAt: now.addingTimeInterval(-8 * day),
|
|
|
+ snippet: "6-month contract building a consumer fintech iOS app.",
|
|
|
+ indeedURL: url("ios008"),
|
|
|
+ isFeatured: true,
|
|
|
+ logoSymbol: "globe"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios009",
|
|
|
+ title: "Lead iOS Engineer",
|
|
|
+ company: "Daraz",
|
|
|
+ location: "Karachi, Pakistan",
|
|
|
+ remoteType: .hybrid,
|
|
|
+ employmentType: .fullTime,
|
|
|
+ experienceLevel: .senior,
|
|
|
+ salary: SalaryRange(min: 70_000, max: 95_000, currency: "USD", period: .year),
|
|
|
+ postedAt: now.addingTimeInterval(-9 * day),
|
|
|
+ snippet: "Drive mobile platform strategy for Pakistan’s top marketplace.",
|
|
|
+ indeedURL: url("ios009"),
|
|
|
+ isEasyApply: true,
|
|
|
+ isFeatured: true,
|
|
|
+ logoSymbol: "cart.fill"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios010",
|
|
|
+ title: "iOS Developer (Part-time)",
|
|
|
+ company: "EduTech PK",
|
|
|
+ location: "Remote, Pakistan",
|
|
|
+ remoteType: .remote,
|
|
|
+ employmentType: .partTime,
|
|
|
+ experienceLevel: .junior,
|
|
|
+ salary: SalaryRange(min: 12_000, max: 20_000, currency: "USD", period: .year),
|
|
|
+ postedAt: now.addingTimeInterval(-10 * day),
|
|
|
+ snippet: "Part-time role improving an education app for students.",
|
|
|
+ indeedURL: url("ios010"),
|
|
|
+ logoSymbol: "book.fill"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios011",
|
|
|
+ title: "macOS / iOS Engineer",
|
|
|
+ company: "Cursor Labs",
|
|
|
+ location: "Remote",
|
|
|
+ remoteType: .remote,
|
|
|
+ employmentType: .fullTime,
|
|
|
+ experienceLevel: .senior,
|
|
|
+ salary: SalaryRange(min: 90_000, max: 130_000, currency: "USD", period: .year),
|
|
|
+ postedAt: now.addingTimeInterval(-1.5 * day),
|
|
|
+ snippet: "Build native Apple platform tools with Swift concurrency.",
|
|
|
+ indeedURL: url("ios011"),
|
|
|
+ isEasyApply: true,
|
|
|
+ isFeatured: true,
|
|
|
+ logoSymbol: "laptopcomputer"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios012",
|
|
|
+ title: "iOS Developer",
|
|
|
+ company: "JazzCash",
|
|
|
+ location: "Islamabad, Pakistan",
|
|
|
+ remoteType: .hybrid,
|
|
|
+ employmentType: .fullTime,
|
|
|
+ experienceLevel: .mid,
|
|
|
+ salary: SalaryRange(min: 42_000, max: 60_000, currency: "USD", period: .year),
|
|
|
+ postedAt: now.addingTimeInterval(-11 * day),
|
|
|
+ snippet: "Secure mobile payments experience for millions of users.",
|
|
|
+ indeedURL: url("ios012"),
|
|
|
+ isUrgentlyHiring: true,
|
|
|
+ logoSymbol: "creditcard.fill"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios013",
|
|
|
+ title: "Swift Developer",
|
|
|
+ company: "10Pearls",
|
|
|
+ location: "Karachi, Pakistan",
|
|
|
+ remoteType: .onsite,
|
|
|
+ employmentType: .fullTime,
|
|
|
+ experienceLevel: .mid,
|
|
|
+ salary: nil,
|
|
|
+ postedAt: now.addingTimeInterval(-12 * day),
|
|
|
+ snippet: "Client projects spanning healthcare and fintech iOS apps.",
|
|
|
+ indeedURL: url("ios013"),
|
|
|
+ isEasyApply: true,
|
|
|
+ logoSymbol: "hammer.fill"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios014",
|
|
|
+ title: "iOS Intern",
|
|
|
+ company: "Arbisoft",
|
|
|
+ location: "Lahore, Pakistan",
|
|
|
+ remoteType: .onsite,
|
|
|
+ employmentType: .internship,
|
|
|
+ experienceLevel: .entry,
|
|
|
+ salary: SalaryRange(min: 400, max: 600, currency: "USD", period: .month),
|
|
|
+ postedAt: now.addingTimeInterval(-2 * day),
|
|
|
+ snippet: "Paid internship focused on Swift and SwiftUI fundamentals.",
|
|
|
+ indeedURL: url("ios014"),
|
|
|
+ logoSymbol: "graduationcap.fill"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios015",
|
|
|
+ title: "Senior iOS Developer",
|
|
|
+ company: "Emumba",
|
|
|
+ location: "Islamabad, Pakistan",
|
|
|
+ remoteType: .remote,
|
|
|
+ employmentType: .fullTime,
|
|
|
+ experienceLevel: .senior,
|
|
|
+ salary: SalaryRange(min: 60_000, max: 90_000, currency: "USD", period: .year),
|
|
|
+ postedAt: now.addingTimeInterval(-0.5 * day),
|
|
|
+ snippet: "Remote-first team building consumer apps for global clients.",
|
|
|
+ indeedURL: url("ios015"),
|
|
|
+ isEasyApply: true,
|
|
|
+ isFeatured: true,
|
|
|
+ logoSymbol: "antenna.radiowaves.left.and.right"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios016",
|
|
|
+ title: "Mobile Engineer",
|
|
|
+ company: "Foodpanda",
|
|
|
+ location: "Lahore, Pakistan",
|
|
|
+ remoteType: .hybrid,
|
|
|
+ employmentType: .fullTime,
|
|
|
+ experienceLevel: .mid,
|
|
|
+ salary: SalaryRange(min: 38_000, max: 58_000, currency: "USD", period: .year),
|
|
|
+ postedAt: now.addingTimeInterval(-14 * day),
|
|
|
+ snippet: "Improve ordering flows and performance on iOS.",
|
|
|
+ indeedURL: url("ios016"),
|
|
|
+ logoSymbol: "fork.knife"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios017",
|
|
|
+ title: "iOS Developer (Unavailable)",
|
|
|
+ company: "Closed Co",
|
|
|
+ location: "Pakistan",
|
|
|
+ remoteType: .remote,
|
|
|
+ employmentType: .fullTime,
|
|
|
+ experienceLevel: .mid,
|
|
|
+ salary: SalaryRange(min: 40_000, max: 55_000, currency: "USD", period: .year),
|
|
|
+ postedAt: now.addingTimeInterval(-30 * day),
|
|
|
+ snippet: "This listing is no longer accepting applications.",
|
|
|
+ indeedURL: url("ios017"),
|
|
|
+ availability: .unavailable,
|
|
|
+ logoSymbol: "xmark.circle.fill"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios018",
|
|
|
+ title: "Temporary iOS Support Engineer",
|
|
|
+ company: "Helpdesk Inc",
|
|
|
+ location: "Remote, Pakistan",
|
|
|
+ remoteType: .remote,
|
|
|
+ employmentType: .temporary,
|
|
|
+ experienceLevel: .junior,
|
|
|
+ salary: SalaryRange(min: 25, max: 35, currency: "USD", period: .hour),
|
|
|
+ postedAt: now.addingTimeInterval(-3.5 * day),
|
|
|
+ snippet: "Short-term engagement supporting crash triage and hotfixes.",
|
|
|
+ indeedURL: url("ios018"),
|
|
|
+ isEasyApply: true,
|
|
|
+ logoSymbol: "wrench.and.screwdriver.fill"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios019",
|
|
|
+ title: "Principal iOS Architect",
|
|
|
+ company: "Netsol",
|
|
|
+ location: "Lahore, Pakistan",
|
|
|
+ remoteType: .hybrid,
|
|
|
+ employmentType: .fullTime,
|
|
|
+ experienceLevel: .senior,
|
|
|
+ salary: SalaryRange(min: 100_000, max: 140_000, currency: "USD", period: .year),
|
|
|
+ postedAt: now.addingTimeInterval(-15 * day),
|
|
|
+ snippet: "Define multi-app mobile architecture and CI/CD standards.",
|
|
|
+ indeedURL: url("ios019"),
|
|
|
+ isFeatured: true,
|
|
|
+ logoSymbol: "building.columns.fill"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios020",
|
|
|
+ title: "iOS Developer",
|
|
|
+ company: "VentureDive",
|
|
|
+ location: "Karachi, Pakistan",
|
|
|
+ remoteType: .onsite,
|
|
|
+ employmentType: .fullTime,
|
|
|
+ experienceLevel: .mid,
|
|
|
+ salary: SalaryRange(min: 35_000, max: 52_000, currency: "USD", period: .year),
|
|
|
+ postedAt: now.addingTimeInterval(-4.5 * day),
|
|
|
+ snippet: "Collaborate with product and design on high-quality apps.",
|
|
|
+ indeedURL: url("ios020"),
|
|
|
+ isEasyApply: true,
|
|
|
+ isUrgentlyHiring: true,
|
|
|
+ logoSymbol: "person.3.fill"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios021",
|
|
|
+ title: "React Native / iOS Engineer",
|
|
|
+ company: "Confiz",
|
|
|
+ location: "Lahore, Pakistan",
|
|
|
+ remoteType: .hybrid,
|
|
|
+ employmentType: .fullTime,
|
|
|
+ experienceLevel: .mid,
|
|
|
+ salary: SalaryRange(min: 40_000, max: 62_000, currency: "USD", period: .year),
|
|
|
+ postedAt: now.addingTimeInterval(-6.5 * day),
|
|
|
+ snippet: "Hybrid role with native iOS modules and React Native.",
|
|
|
+ indeedURL: url("ios021"),
|
|
|
+ logoSymbol: "arrow.triangle.2.circlepath"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios022",
|
|
|
+ title: "iOS QA Automation Engineer",
|
|
|
+ company: "Folio3",
|
|
|
+ location: "Karachi, Pakistan",
|
|
|
+ remoteType: .remote,
|
|
|
+ employmentType: .fullTime,
|
|
|
+ experienceLevel: .mid,
|
|
|
+ salary: SalaryRange(min: 32_000, max: 48_000, currency: "USD", period: .year),
|
|
|
+ postedAt: now.addingTimeInterval(-7.5 * day),
|
|
|
+ snippet: "Automate XCUITest suites for mobile release quality.",
|
|
|
+ indeedURL: url("ios022"),
|
|
|
+ isEasyApply: true,
|
|
|
+ logoSymbol: "checkmark.seal.fill"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios023",
|
|
|
+ title: "Staff iOS Engineer",
|
|
|
+ company: "KeepTruckin",
|
|
|
+ location: "Islamabad, Pakistan",
|
|
|
+ remoteType: .hybrid,
|
|
|
+ employmentType: .fullTime,
|
|
|
+ experienceLevel: .senior,
|
|
|
+ salary: SalaryRange(min: 85_000, max: 120_000, currency: "USD", period: .year),
|
|
|
+ postedAt: now.addingTimeInterval(-0.8 * day),
|
|
|
+ snippet: "Own fleet-management mobile experiences at scale.",
|
|
|
+ indeedURL: url("ios023"),
|
|
|
+ isEasyApply: true,
|
|
|
+ isFeatured: true,
|
|
|
+ logoSymbol: "truck.box.fill"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios024",
|
|
|
+ title: "iOS Developer",
|
|
|
+ company: "Tintash",
|
|
|
+ location: "Lahore, Pakistan",
|
|
|
+ remoteType: .onsite,
|
|
|
+ employmentType: .fullTime,
|
|
|
+ experienceLevel: .junior,
|
|
|
+ salary: SalaryRange(min: 22_000, max: 35_000, currency: "USD", period: .year),
|
|
|
+ postedAt: now.addingTimeInterval(-9.5 * day),
|
|
|
+ snippet: "Work on game-adjacent and consumer product iOS apps.",
|
|
|
+ indeedURL: url("ios024"),
|
|
|
+ logoSymbol: "gamecontroller.fill"
|
|
|
+ ),
|
|
|
+ JobListing(
|
|
|
+ indeedJobKey: "ios025",
|
|
|
+ title: "Remote iOS Developer",
|
|
|
+ company: "Global Soft",
|
|
|
+ location: "Remote, Pakistan",
|
|
|
+ remoteType: .remote,
|
|
|
+ employmentType: .fullTime,
|
|
|
+ experienceLevel: .mid,
|
|
|
+ salary: SalaryRange(min: 50_000, max: 78_000, currency: "USD", period: .year),
|
|
|
+ postedAt: now.addingTimeInterval(-1.2 * day),
|
|
|
+ snippet: "Fully remote role building banking apps with Swift.",
|
|
|
+ indeedURL: url("ios025"),
|
|
|
+ isEasyApply: true,
|
|
|
+ isFeatured: true,
|
|
|
+ isUrgentlyHiring: true,
|
|
|
+ logoSymbol: "building.2.fill"
|
|
|
+ )
|
|
|
+ ]
|
|
|
+ }()
|
|
|
+}
|