|
@@ -10,8 +10,10 @@ enum MockJobListings {
|
|
|
let now = Date()
|
|
let now = Date()
|
|
|
let day: TimeInterval = 86_400
|
|
let day: TimeInterval = 86_400
|
|
|
|
|
|
|
|
- func url(_ key: String) -> URL {
|
|
|
|
|
- URL(string: "https://www.indeed.com/viewjob?jk=\(key)")!
|
|
|
|
|
|
|
+ /// Interim demo URLs — real `jk` keys come from a licensed feed later.
|
|
|
|
|
+ /// Browse/search URLs open live Indeed results instead of expired viewjob pages.
|
|
|
|
|
+ func url(title: String, location: String) -> URL {
|
|
|
|
|
+ IndeedBrowseURLBuilder.searchURL(query: title, location: location)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return [
|
|
return [
|
|
@@ -19,14 +21,14 @@ enum MockJobListings {
|
|
|
indeedJobKey: "ios001",
|
|
indeedJobKey: "ios001",
|
|
|
title: "Senior iOS Developer",
|
|
title: "Senior iOS Developer",
|
|
|
company: "Apple",
|
|
company: "Apple",
|
|
|
- location: "Lahore, Pakistan",
|
|
|
|
|
|
|
+ location: "Cupertino, CA",
|
|
|
remoteType: .hybrid,
|
|
remoteType: .hybrid,
|
|
|
employmentType: .fullTime,
|
|
employmentType: .fullTime,
|
|
|
experienceLevel: .senior,
|
|
experienceLevel: .senior,
|
|
|
- salary: SalaryRange(min: 50_000, max: 80_000, currency: "USD", period: .year),
|
|
|
|
|
|
|
+ salary: SalaryRange(min: 160_000, max: 220_000, currency: "USD", period: .year),
|
|
|
postedAt: now.addingTimeInterval(-day),
|
|
postedAt: now.addingTimeInterval(-day),
|
|
|
snippet: "Build delightful iOS experiences with SwiftUI and UIKit for millions of users.",
|
|
snippet: "Build delightful iOS experiences with SwiftUI and UIKit for millions of users.",
|
|
|
- indeedURL: url("ios001"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "Senior iOS Developer", location: "Cupertino, CA"),
|
|
|
isEasyApply: true,
|
|
isEasyApply: true,
|
|
|
isFeatured: true,
|
|
isFeatured: true,
|
|
|
logoSymbol: "apple.logo"
|
|
logoSymbol: "apple.logo"
|
|
@@ -35,14 +37,14 @@ enum MockJobListings {
|
|
|
indeedJobKey: "ios002",
|
|
indeedJobKey: "ios002",
|
|
|
title: "iOS Developer",
|
|
title: "iOS Developer",
|
|
|
company: "Microsoft",
|
|
company: "Microsoft",
|
|
|
- location: "Islamabad, Pakistan",
|
|
|
|
|
|
|
+ location: "Remote",
|
|
|
remoteType: .remote,
|
|
remoteType: .remote,
|
|
|
employmentType: .fullTime,
|
|
employmentType: .fullTime,
|
|
|
experienceLevel: .mid,
|
|
experienceLevel: .mid,
|
|
|
- salary: SalaryRange(min: 45_000, max: 70_000, currency: "USD", period: .year),
|
|
|
|
|
|
|
+ salary: SalaryRange(min: 120_000, max: 160_000, currency: "USD", period: .year),
|
|
|
postedAt: now.addingTimeInterval(-2 * day),
|
|
postedAt: now.addingTimeInterval(-2 * day),
|
|
|
snippet: "Join a distributed team shipping mobile productivity apps on iOS.",
|
|
snippet: "Join a distributed team shipping mobile productivity apps on iOS.",
|
|
|
- indeedURL: url("ios002"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "iOS Developer", location: "Remote"),
|
|
|
isEasyApply: true,
|
|
isEasyApply: true,
|
|
|
isUrgentlyHiring: true,
|
|
isUrgentlyHiring: true,
|
|
|
logoSymbol: "square.grid.2x2.fill"
|
|
logoSymbol: "square.grid.2x2.fill"
|
|
@@ -58,7 +60,7 @@ enum MockJobListings {
|
|
|
salary: SalaryRange(min: 30_000, max: 48_000, currency: "USD", period: .year),
|
|
salary: SalaryRange(min: 30_000, max: 48_000, currency: "USD", period: .year),
|
|
|
postedAt: now.addingTimeInterval(-3 * day),
|
|
postedAt: now.addingTimeInterval(-3 * day),
|
|
|
snippet: "Develop and maintain customer-facing iOS applications.",
|
|
snippet: "Develop and maintain customer-facing iOS applications.",
|
|
|
- indeedURL: url("ios003"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "Mobile Software Engineer (iOS)", location: "Karachi, Pakistan"),
|
|
|
isEasyApply: true,
|
|
isEasyApply: true,
|
|
|
logoSymbol: "phone.fill"
|
|
logoSymbol: "phone.fill"
|
|
|
),
|
|
),
|
|
@@ -73,7 +75,7 @@ enum MockJobListings {
|
|
|
salary: SalaryRange(min: 40_000, max: 65_000, currency: "USD", period: .year),
|
|
salary: SalaryRange(min: 40_000, max: 65_000, currency: "USD", period: .year),
|
|
|
postedAt: now.addingTimeInterval(-4 * day),
|
|
postedAt: now.addingTimeInterval(-4 * day),
|
|
|
snippet: "Own features end-to-end for the Careem rider and captain apps.",
|
|
snippet: "Own features end-to-end for the Careem rider and captain apps.",
|
|
|
- indeedURL: url("ios004"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "iOS Engineer", location: "Lahore, Pakistan"),
|
|
|
isFeatured: true,
|
|
isFeatured: true,
|
|
|
logoSymbol: "car.fill"
|
|
logoSymbol: "car.fill"
|
|
|
),
|
|
),
|
|
@@ -88,7 +90,7 @@ enum MockJobListings {
|
|
|
salary: SalaryRange(min: 55_000, max: 85_000, currency: "USD", period: .year),
|
|
salary: SalaryRange(min: 55_000, max: 85_000, currency: "USD", period: .year),
|
|
|
postedAt: now.addingTimeInterval(-5 * day),
|
|
postedAt: now.addingTimeInterval(-5 * day),
|
|
|
snippet: "Lead iOS architecture and mentor a growing mobile team.",
|
|
snippet: "Lead iOS architecture and mentor a growing mobile team.",
|
|
|
- indeedURL: url("ios005"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "Senior Mobile Developer", location: "Karachi, Pakistan"),
|
|
|
isEasyApply: true,
|
|
isEasyApply: true,
|
|
|
isUrgentlyHiring: true,
|
|
isUrgentlyHiring: true,
|
|
|
logoSymbol: "bicycle"
|
|
logoSymbol: "bicycle"
|
|
@@ -104,7 +106,7 @@ enum MockJobListings {
|
|
|
salary: SalaryRange(min: 48_000, max: 75_000, currency: "USD", period: .year),
|
|
salary: SalaryRange(min: 48_000, max: 75_000, currency: "USD", period: .year),
|
|
|
postedAt: now.addingTimeInterval(-6 * day),
|
|
postedAt: now.addingTimeInterval(-6 * day),
|
|
|
snippet: "Ship modern SwiftUI interfaces for enterprise AI products.",
|
|
snippet: "Ship modern SwiftUI interfaces for enterprise AI products.",
|
|
|
- indeedURL: url("ios006"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "SwiftUI Developer", location: "Islamabad, Pakistan"),
|
|
|
isEasyApply: true,
|
|
isEasyApply: true,
|
|
|
logoSymbol: "sparkles"
|
|
logoSymbol: "sparkles"
|
|
|
),
|
|
),
|
|
@@ -119,7 +121,7 @@ enum MockJobListings {
|
|
|
salary: SalaryRange(min: 18_000, max: 28_000, currency: "USD", period: .year),
|
|
salary: SalaryRange(min: 18_000, max: 28_000, currency: "USD", period: .year),
|
|
|
postedAt: now.addingTimeInterval(-7 * day),
|
|
postedAt: now.addingTimeInterval(-7 * day),
|
|
|
snippet: "Learn production iOS development with senior mentors.",
|
|
snippet: "Learn production iOS development with senior mentors.",
|
|
|
- indeedURL: url("ios007"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "Junior iOS Developer", location: "Lahore, Pakistan"),
|
|
|
isEasyApply: true,
|
|
isEasyApply: true,
|
|
|
logoSymbol: "desktopcomputer"
|
|
logoSymbol: "desktopcomputer"
|
|
|
),
|
|
),
|
|
@@ -134,7 +136,7 @@ enum MockJobListings {
|
|
|
salary: SalaryRange(min: 35, max: 55, currency: "USD", period: .hour),
|
|
salary: SalaryRange(min: 35, max: 55, currency: "USD", period: .hour),
|
|
|
postedAt: now.addingTimeInterval(-8 * day),
|
|
postedAt: now.addingTimeInterval(-8 * day),
|
|
|
snippet: "6-month contract building a consumer fintech iOS app.",
|
|
snippet: "6-month contract building a consumer fintech iOS app.",
|
|
|
- indeedURL: url("ios008"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "iOS Contractor", location: "Pakistan"),
|
|
|
isFeatured: true,
|
|
isFeatured: true,
|
|
|
logoSymbol: "globe"
|
|
logoSymbol: "globe"
|
|
|
),
|
|
),
|
|
@@ -149,7 +151,7 @@ enum MockJobListings {
|
|
|
salary: SalaryRange(min: 70_000, max: 95_000, currency: "USD", period: .year),
|
|
salary: SalaryRange(min: 70_000, max: 95_000, currency: "USD", period: .year),
|
|
|
postedAt: now.addingTimeInterval(-9 * day),
|
|
postedAt: now.addingTimeInterval(-9 * day),
|
|
|
snippet: "Drive mobile platform strategy for Pakistan’s top marketplace.",
|
|
snippet: "Drive mobile platform strategy for Pakistan’s top marketplace.",
|
|
|
- indeedURL: url("ios009"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "Lead iOS Engineer", location: "Karachi, Pakistan"),
|
|
|
isEasyApply: true,
|
|
isEasyApply: true,
|
|
|
isFeatured: true,
|
|
isFeatured: true,
|
|
|
logoSymbol: "cart.fill"
|
|
logoSymbol: "cart.fill"
|
|
@@ -165,7 +167,7 @@ enum MockJobListings {
|
|
|
salary: SalaryRange(min: 12_000, max: 20_000, currency: "USD", period: .year),
|
|
salary: SalaryRange(min: 12_000, max: 20_000, currency: "USD", period: .year),
|
|
|
postedAt: now.addingTimeInterval(-10 * day),
|
|
postedAt: now.addingTimeInterval(-10 * day),
|
|
|
snippet: "Part-time role improving an education app for students.",
|
|
snippet: "Part-time role improving an education app for students.",
|
|
|
- indeedURL: url("ios010"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "iOS Developer (Part-time)", location: "Remote, Pakistan"),
|
|
|
logoSymbol: "book.fill"
|
|
logoSymbol: "book.fill"
|
|
|
),
|
|
),
|
|
|
JobListing(
|
|
JobListing(
|
|
@@ -179,7 +181,7 @@ enum MockJobListings {
|
|
|
salary: SalaryRange(min: 90_000, max: 130_000, currency: "USD", period: .year),
|
|
salary: SalaryRange(min: 90_000, max: 130_000, currency: "USD", period: .year),
|
|
|
postedAt: now.addingTimeInterval(-1.5 * day),
|
|
postedAt: now.addingTimeInterval(-1.5 * day),
|
|
|
snippet: "Build native Apple platform tools with Swift concurrency.",
|
|
snippet: "Build native Apple platform tools with Swift concurrency.",
|
|
|
- indeedURL: url("ios011"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "macOS / iOS Engineer", location: "Remote"),
|
|
|
isEasyApply: true,
|
|
isEasyApply: true,
|
|
|
isFeatured: true,
|
|
isFeatured: true,
|
|
|
logoSymbol: "laptopcomputer"
|
|
logoSymbol: "laptopcomputer"
|
|
@@ -195,7 +197,7 @@ enum MockJobListings {
|
|
|
salary: SalaryRange(min: 42_000, max: 60_000, currency: "USD", period: .year),
|
|
salary: SalaryRange(min: 42_000, max: 60_000, currency: "USD", period: .year),
|
|
|
postedAt: now.addingTimeInterval(-11 * day),
|
|
postedAt: now.addingTimeInterval(-11 * day),
|
|
|
snippet: "Secure mobile payments experience for millions of users.",
|
|
snippet: "Secure mobile payments experience for millions of users.",
|
|
|
- indeedURL: url("ios012"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "iOS Developer", location: "Islamabad, Pakistan"),
|
|
|
isUrgentlyHiring: true,
|
|
isUrgentlyHiring: true,
|
|
|
logoSymbol: "creditcard.fill"
|
|
logoSymbol: "creditcard.fill"
|
|
|
),
|
|
),
|
|
@@ -210,7 +212,7 @@ enum MockJobListings {
|
|
|
salary: nil,
|
|
salary: nil,
|
|
|
postedAt: now.addingTimeInterval(-12 * day),
|
|
postedAt: now.addingTimeInterval(-12 * day),
|
|
|
snippet: "Client projects spanning healthcare and fintech iOS apps.",
|
|
snippet: "Client projects spanning healthcare and fintech iOS apps.",
|
|
|
- indeedURL: url("ios013"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "Swift Developer", location: "Karachi, Pakistan"),
|
|
|
isEasyApply: true,
|
|
isEasyApply: true,
|
|
|
logoSymbol: "hammer.fill"
|
|
logoSymbol: "hammer.fill"
|
|
|
),
|
|
),
|
|
@@ -225,7 +227,7 @@ enum MockJobListings {
|
|
|
salary: SalaryRange(min: 400, max: 600, currency: "USD", period: .month),
|
|
salary: SalaryRange(min: 400, max: 600, currency: "USD", period: .month),
|
|
|
postedAt: now.addingTimeInterval(-2 * day),
|
|
postedAt: now.addingTimeInterval(-2 * day),
|
|
|
snippet: "Paid internship focused on Swift and SwiftUI fundamentals.",
|
|
snippet: "Paid internship focused on Swift and SwiftUI fundamentals.",
|
|
|
- indeedURL: url("ios014"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "iOS Intern", location: "Lahore, Pakistan"),
|
|
|
logoSymbol: "graduationcap.fill"
|
|
logoSymbol: "graduationcap.fill"
|
|
|
),
|
|
),
|
|
|
JobListing(
|
|
JobListing(
|
|
@@ -239,7 +241,7 @@ enum MockJobListings {
|
|
|
salary: SalaryRange(min: 60_000, max: 90_000, currency: "USD", period: .year),
|
|
salary: SalaryRange(min: 60_000, max: 90_000, currency: "USD", period: .year),
|
|
|
postedAt: now.addingTimeInterval(-0.5 * day),
|
|
postedAt: now.addingTimeInterval(-0.5 * day),
|
|
|
snippet: "Remote-first team building consumer apps for global clients.",
|
|
snippet: "Remote-first team building consumer apps for global clients.",
|
|
|
- indeedURL: url("ios015"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "Senior iOS Developer", location: "Islamabad, Pakistan"),
|
|
|
isEasyApply: true,
|
|
isEasyApply: true,
|
|
|
isFeatured: true,
|
|
isFeatured: true,
|
|
|
logoSymbol: "antenna.radiowaves.left.and.right"
|
|
logoSymbol: "antenna.radiowaves.left.and.right"
|
|
@@ -255,7 +257,7 @@ enum MockJobListings {
|
|
|
salary: SalaryRange(min: 38_000, max: 58_000, currency: "USD", period: .year),
|
|
salary: SalaryRange(min: 38_000, max: 58_000, currency: "USD", period: .year),
|
|
|
postedAt: now.addingTimeInterval(-14 * day),
|
|
postedAt: now.addingTimeInterval(-14 * day),
|
|
|
snippet: "Improve ordering flows and performance on iOS.",
|
|
snippet: "Improve ordering flows and performance on iOS.",
|
|
|
- indeedURL: url("ios016"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "Mobile Engineer", location: "Lahore, Pakistan"),
|
|
|
logoSymbol: "fork.knife"
|
|
logoSymbol: "fork.knife"
|
|
|
),
|
|
),
|
|
|
JobListing(
|
|
JobListing(
|
|
@@ -269,7 +271,7 @@ enum MockJobListings {
|
|
|
salary: SalaryRange(min: 40_000, max: 55_000, currency: "USD", period: .year),
|
|
salary: SalaryRange(min: 40_000, max: 55_000, currency: "USD", period: .year),
|
|
|
postedAt: now.addingTimeInterval(-30 * day),
|
|
postedAt: now.addingTimeInterval(-30 * day),
|
|
|
snippet: "This listing is no longer accepting applications.",
|
|
snippet: "This listing is no longer accepting applications.",
|
|
|
- indeedURL: url("ios017"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "iOS Developer (Unavailable)", location: "Pakistan"),
|
|
|
availability: .unavailable,
|
|
availability: .unavailable,
|
|
|
logoSymbol: "xmark.circle.fill"
|
|
logoSymbol: "xmark.circle.fill"
|
|
|
),
|
|
),
|
|
@@ -284,7 +286,7 @@ enum MockJobListings {
|
|
|
salary: SalaryRange(min: 25, max: 35, currency: "USD", period: .hour),
|
|
salary: SalaryRange(min: 25, max: 35, currency: "USD", period: .hour),
|
|
|
postedAt: now.addingTimeInterval(-3.5 * day),
|
|
postedAt: now.addingTimeInterval(-3.5 * day),
|
|
|
snippet: "Short-term engagement supporting crash triage and hotfixes.",
|
|
snippet: "Short-term engagement supporting crash triage and hotfixes.",
|
|
|
- indeedURL: url("ios018"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "Temporary iOS Support Engineer", location: "Remote, Pakistan"),
|
|
|
isEasyApply: true,
|
|
isEasyApply: true,
|
|
|
logoSymbol: "wrench.and.screwdriver.fill"
|
|
logoSymbol: "wrench.and.screwdriver.fill"
|
|
|
),
|
|
),
|
|
@@ -299,7 +301,7 @@ enum MockJobListings {
|
|
|
salary: SalaryRange(min: 100_000, max: 140_000, currency: "USD", period: .year),
|
|
salary: SalaryRange(min: 100_000, max: 140_000, currency: "USD", period: .year),
|
|
|
postedAt: now.addingTimeInterval(-15 * day),
|
|
postedAt: now.addingTimeInterval(-15 * day),
|
|
|
snippet: "Define multi-app mobile architecture and CI/CD standards.",
|
|
snippet: "Define multi-app mobile architecture and CI/CD standards.",
|
|
|
- indeedURL: url("ios019"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "Principal iOS Architect", location: "Lahore, Pakistan"),
|
|
|
isFeatured: true,
|
|
isFeatured: true,
|
|
|
logoSymbol: "building.columns.fill"
|
|
logoSymbol: "building.columns.fill"
|
|
|
),
|
|
),
|
|
@@ -314,7 +316,7 @@ enum MockJobListings {
|
|
|
salary: SalaryRange(min: 35_000, max: 52_000, currency: "USD", period: .year),
|
|
salary: SalaryRange(min: 35_000, max: 52_000, currency: "USD", period: .year),
|
|
|
postedAt: now.addingTimeInterval(-4.5 * day),
|
|
postedAt: now.addingTimeInterval(-4.5 * day),
|
|
|
snippet: "Collaborate with product and design on high-quality apps.",
|
|
snippet: "Collaborate with product and design on high-quality apps.",
|
|
|
- indeedURL: url("ios020"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "iOS Developer", location: "Karachi, Pakistan"),
|
|
|
isEasyApply: true,
|
|
isEasyApply: true,
|
|
|
isUrgentlyHiring: true,
|
|
isUrgentlyHiring: true,
|
|
|
logoSymbol: "person.3.fill"
|
|
logoSymbol: "person.3.fill"
|
|
@@ -330,7 +332,7 @@ enum MockJobListings {
|
|
|
salary: SalaryRange(min: 40_000, max: 62_000, currency: "USD", period: .year),
|
|
salary: SalaryRange(min: 40_000, max: 62_000, currency: "USD", period: .year),
|
|
|
postedAt: now.addingTimeInterval(-6.5 * day),
|
|
postedAt: now.addingTimeInterval(-6.5 * day),
|
|
|
snippet: "Hybrid role with native iOS modules and React Native.",
|
|
snippet: "Hybrid role with native iOS modules and React Native.",
|
|
|
- indeedURL: url("ios021"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "React Native / iOS Engineer", location: "Lahore, Pakistan"),
|
|
|
logoSymbol: "arrow.triangle.2.circlepath"
|
|
logoSymbol: "arrow.triangle.2.circlepath"
|
|
|
),
|
|
),
|
|
|
JobListing(
|
|
JobListing(
|
|
@@ -344,7 +346,7 @@ enum MockJobListings {
|
|
|
salary: SalaryRange(min: 32_000, max: 48_000, currency: "USD", period: .year),
|
|
salary: SalaryRange(min: 32_000, max: 48_000, currency: "USD", period: .year),
|
|
|
postedAt: now.addingTimeInterval(-7.5 * day),
|
|
postedAt: now.addingTimeInterval(-7.5 * day),
|
|
|
snippet: "Automate XCUITest suites for mobile release quality.",
|
|
snippet: "Automate XCUITest suites for mobile release quality.",
|
|
|
- indeedURL: url("ios022"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "iOS QA Automation Engineer", location: "Karachi, Pakistan"),
|
|
|
isEasyApply: true,
|
|
isEasyApply: true,
|
|
|
logoSymbol: "checkmark.seal.fill"
|
|
logoSymbol: "checkmark.seal.fill"
|
|
|
),
|
|
),
|
|
@@ -359,7 +361,7 @@ enum MockJobListings {
|
|
|
salary: SalaryRange(min: 85_000, max: 120_000, currency: "USD", period: .year),
|
|
salary: SalaryRange(min: 85_000, max: 120_000, currency: "USD", period: .year),
|
|
|
postedAt: now.addingTimeInterval(-0.8 * day),
|
|
postedAt: now.addingTimeInterval(-0.8 * day),
|
|
|
snippet: "Own fleet-management mobile experiences at scale.",
|
|
snippet: "Own fleet-management mobile experiences at scale.",
|
|
|
- indeedURL: url("ios023"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "Staff iOS Engineer", location: "Islamabad, Pakistan"),
|
|
|
isEasyApply: true,
|
|
isEasyApply: true,
|
|
|
isFeatured: true,
|
|
isFeatured: true,
|
|
|
logoSymbol: "truck.box.fill"
|
|
logoSymbol: "truck.box.fill"
|
|
@@ -375,7 +377,7 @@ enum MockJobListings {
|
|
|
salary: SalaryRange(min: 22_000, max: 35_000, currency: "USD", period: .year),
|
|
salary: SalaryRange(min: 22_000, max: 35_000, currency: "USD", period: .year),
|
|
|
postedAt: now.addingTimeInterval(-9.5 * day),
|
|
postedAt: now.addingTimeInterval(-9.5 * day),
|
|
|
snippet: "Work on game-adjacent and consumer product iOS apps.",
|
|
snippet: "Work on game-adjacent and consumer product iOS apps.",
|
|
|
- indeedURL: url("ios024"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "iOS Developer", location: "Lahore, Pakistan"),
|
|
|
logoSymbol: "gamecontroller.fill"
|
|
logoSymbol: "gamecontroller.fill"
|
|
|
),
|
|
),
|
|
|
JobListing(
|
|
JobListing(
|
|
@@ -389,7 +391,7 @@ enum MockJobListings {
|
|
|
salary: SalaryRange(min: 50_000, max: 78_000, currency: "USD", period: .year),
|
|
salary: SalaryRange(min: 50_000, max: 78_000, currency: "USD", period: .year),
|
|
|
postedAt: now.addingTimeInterval(-1.2 * day),
|
|
postedAt: now.addingTimeInterval(-1.2 * day),
|
|
|
snippet: "Fully remote role building banking apps with Swift.",
|
|
snippet: "Fully remote role building banking apps with Swift.",
|
|
|
- indeedURL: url("ios025"),
|
|
|
|
|
|
|
+ indeedURL: url(title: "Remote iOS Developer", location: "Remote, Pakistan"),
|
|
|
isEasyApply: true,
|
|
isEasyApply: true,
|
|
|
isFeatured: true,
|
|
isFeatured: true,
|
|
|
isUrgentlyHiring: true,
|
|
isUrgentlyHiring: true,
|