Friday, July 10, 2026

Resume-Now (BOLD LLC) is a FRAUD | defrauds Innocent Job Seekers

 Hi,

Are you looking for a job change or a first-time job seeker? 

I know, a somewhat difficult and desperate time it is sometimes. 


In such times, we all know the first and foremost thing to do is to create a polished and well-crafted resume. So we either take help from someone or create it ourselves. 

To get help, you can either connect with someone you know personally or Google resume-building websites. 

I came across an online website, https://www.resume-now.com/, owned by the BOLD LLC company,  6 months ago. It offered the resume creation using AI. The AI is the new buzzword, so I thought, let's give it a try. It was not as if I was really looking for a job change, but since I myself work in the AI Engineering domain, I was curious to know the kind of innovation these people might have come up with. 

I uploaded my already prepared resume to their website and let them modify it. The resume they created was kind of average. I even saw some issues with it, but for the record, I wanted to download it. When I clicked the Download button, the page came up where they asked for the payment and account creation. 


The screen clearly mentioned in big letters that it is only 14-day access for 145 rupees. 

When you click continue, it takes you to a screen that only asks for the card information, exclusively, with no other options, such as the UPI app in India. 

That is the trap, because they will save your card information and keep deducting the money from your account each month. You know why, because you didn't read the fine print written line at the bottom. Check the image below. 


I missed this line, which is written in so small letters compared to the 14 Days Full Access written at the top in big letters.

They store your card information, and then, without even asking you for confirmation about the monthly subscription, they keep charging you monthly until the day you notice it for yourself in your bank statement, or if your bank is good enough to notify it to you. They charged it from my account for the next 5 months, until one day I got a message from my bank. I noticed it because, thankfully, it was a holiday, and hence not a busy day for me. I was like, what the F***.  Who the hell are these people? I had even forgotten about this whole one-time episode. Then I got back to the website, and it made me so angry to see the billing history. 

Basically, these people steal your money.

Is Resume-Now.com a FRAUD website?

The website is owned by BOLD LLC, and there are a few things that I noticed about the website that gave me the feeling of a scammy website upfront. 

1. There is a chat button, which, when I clicked, logged me out of my account. No matter I received the response from the other side, but what kind of website will log me out of my account when I hit the chat link? 

2. The US office address that they provide on their Contact Us page is for BOLD LLC. Google it, and one other person has already flagged it on Google Maps: 

https://maps.app.goo.gl/5hiypWjfWHgNioM97

So this company runs more than one resume builder website and defrauds people.

Bold LLC

City View Plaza II, 48 Road 165
Suite 6000, Guaynabo, PR 00968
Puerto Rico


In case the Google Maps review link doesn't work for you, let me share the screenshot, read it for yourself.


BOLD at City View Plaza. Can't believe such a fraudulent company is running from such a good place.


The given numbers for the USA and Canada, and I'm not sure if they even work. 
As per this online article by another player in the market, Rocket-Resume, they have filed a case against this sham entity. Let me share an excerpt from the article: 

The suit was filed on April 2, 2026, in U.S. District Court in San Jose against Bold Limited, Bold LLC, Bold Holdings LLC, and three individual defendants: Doug Jackson (Co-Chief Executive Officer), Jamie Freundlich (Co-Chief Executive Officer), and Heather Williams (former Chief Financial Officer). According to the complaint, BOLD's corporate structure conceals common ownership of a web of sham entities that operate under "unified management control" (Compl. ¶ 7) and appear to job seekers as independent competitors — including Monster, CareerBuilder, My Perfect Resume, Resume Genius, LiveCareer, and dozens more. Rocket Resume is represented by Quinn Emanuel Urquhart & Sullivan, LLP.

old's sham entities

According to the complaint, Bold owns and operates the following sham entities:

You can read the full article here:
https://rocket-resume.com/rocket-resume-v-bold-antitrust-lawsuit

I emailed them and then clicked the chat button. The other party told me it was in their terms and conditions, which I may have missed.

How did I partially recover my money? 

It was a holiday, so my bank would've been on holiday, so I logged into my bank app, and thankfully, the bank gave me the option to create a dispute against the transactions in my account in the last 60 days. I filed for three disputes under the 'disputes and grievances' option that the HDFC bank provided to me. These guys have nothing to present in their favor to justify why they deducted my money, so my money for the three transactions was refunded on the first working day of the bank. Thanks to my bank. 

Parallely, I emailed these scammers to return my total money, except for the one-time payment which I agreed to pay to them. Out of the five monthly subscriptions, I got three back, via bank, and one more came into my account two days later, not sure if it was due to my bank's work or due to me emailing them directly and contacting them on chat. They have still not returned one month's money.


Why do I call these people FRAUD? Because they play a trick on the minds of job seekers, most of whom will be either college-going students or early job applicants. Imagine being a student who doesn't have much money, and someone sneakily keeps stealing your money behind your back just because you once trusted them to show you where you keep your money in your room? 

When one day you come to know, and you confront them, they shamelessly say this to you, "it is your mistake that you didn't verify my past records, or even Google me, because I have a track record of defrauding people for the last 7-8 years. You are a fool to trust me, so that is why I won't return your money." 

Some people will let go of these people, thinking it was not much of a money, so let it go. But I would suggest that at least you spread the information among your peers or online by making blogs or videos. 


Sunday, September 27, 2020

Cut and Fill Volume for given GL and FL profile, using Python Code

Hi,

Please don't get afraid by the length of the code. It is very simple to copy and paste it into your Python IDEs such as Pycharm or Visual Studio and run it. 


Once you run the code, it will ask you to input the section width and slope, and then the chainage, GL(ground level), FL(Floor level) etc. Output will be the cut or fill height(h), End Areas, and then the Cut and Fill Volume. The result will be in the tabular form. 

Code: 

import NumPy as np

from pandas import DataFrame

Chain = np.array([])
GL = np.array([])
FL = np.array([])
Cutting = np.array([])
Filling = np.array([])
Area = np.array([])
Vcut = np.array([0])
Vfill = np.array([0])
n = int(input('no. of sections, n = '))
b = float(input('width of level section b = '))
s = float(input('slope s = '))
cut = 0
fill = float()
A = float()

for i in range(n):
print(f'for section{i}')
ch = float(input('Chainage = '))
Chain = np.append(Chain, ch)
gl = float(input('GL = '))
GL = np.append(GL, gl)
fl = float(input('FL = '))
FL = np.append(FL, fl)
if gl>=fl:
fill = 0
Filling = np.append(Filling, fill)
cut = gl - fl
Cutting = np.append(Cutting, cut)
A = (b+s*cut)*cut
Area = np.append(Area, A)
else:
fill = fl - gl
Filling = np.append(Filling, fill)
cut = 0
Cutting = np.append(Cutting, cut)
A = (b + s * fill) * fill
Area = np.append(Area, A)
i+=1

print(f' Please note, When GL> FL, section is in cutting, h(cutting) = GL-FL,'
f'and if GL<FL it is in Filling, h(filling) = FL-GL'
f'Area of section, A = (b + sh)h', "\n")
df = DataFrame()
df['Chainage'] = Chain
df['GL'] = GL
df['FL'] = FL
df['Cutting'] = Cutting
df['Filling'] = Filling
df['Area'] = Area
print(df)

x = float()
D=float()
i=0
for i in range(n-1):

if Cutting[i]>0 and Filling[i+1]>0:
print(f'Both cutting and Filling in between Chainage {Chain[i]} to {Chain[i+1]}',)
D = Chain[i + 1] - Chain[i]
x = D*Cutting[i]/(Filling[i+1]+Cutting[i])
Vc = Area[i]*x/2
Vcut = np.append(Vcut,Vc)
Vf = Area[i+1]*(D-x)/2
Vfill = np.append(Vfill, Vf)
print(f'Cutting till distance x = {x}, and filling in {D-x}', "\n")

elif Filling[i]>0 and Cutting[i+1]>0:
print(f'Both cutting and Filling in between Chainage {Chain[i]} to {Chain[i + 1]}')
x = D * Filling[i] / (Filling[i] + Cutting[i+1])
print(f'Filling till distance x = {x}, and Cutting in {D - x}', "\n")
Vf = Area[i]*x/2
Vfill = np.append(Vfill, Vf)
Vc = Area[i+1]*(D-x)/2
Vcut = np.append(Vcut, Vc)

elif Cutting[i]>0 and Cutting[i+1]>0:
print(f'Only cutting in between Chainage {Chain[i]} to {Chain[i + 1]}')
Vc = D*(Area[i + 1] + Area[i]) / 2
Vcut = np.append(Vcut, Vc)
Vf = 0.0
Vfill = np.append(Vfill, Vf)
print(f' Cutting Volume = {D}*({Area[i]} + {Area[i+1]}) / 2 = {Vc}', "\n")

elif Filling[i]>0 and Filling[i+1]>0:
print(f'Only Filling in between chainage {Chain[i]} to {Chain[i + 1]}')
Vf = D * (Area[i + 1] + Area[i]) / 2
Vfill = np.append(Vfill, Vf)
Vc = 0.0
Vcut = np.append(Vcut, Vc)
print(f' Filling Volume = {D}*({Area[i]} + {Area[i + 1]}) / 2 = {Vc}')

i+=1

df['Filling Volume'] = Vfill
df['Cutting Volume'] = Vcut
print(df)

Friday, September 25, 2020

Python Code - Section Areas ( of Level Section, Two-Level Section, and Three-Level Sections ) and Cut and Fill Volume using Prismoidal Formula

 Hi,

When you have to find the Cut and Fill Volume of soil for a given profile, you have to find the section areas at a specified interval of chainage. End areas are calculated for a level trapezoid differently than for a two-level and three-level section. The following Python code contains all the formulas at the right places. 


Once you run the program, you have to put the inputs as per the standard formulas as and when asked. When asked for the unit, put a unit of length such as m, ft etc. Also, 'n' is for the number of sections, for example, you might need to calculate the areas at 5 different sections, on the given profile, then n = 5. 

The Volume Calculation at the end, for the cut and fill, is done using the prismoidal formula which works only when you have an odd number of sections. If you don't need the volume part, simply copy the code only above the comment "# Volume using Prismoidal Formula".

Code:

import math
import numpy as np
# Type of Sections
a = input('Section Areas given? y/n ')
A = float()
u = str()
l = str()
if a.lower() == "n":
l = input('Is there any level section? y/n ')

m = str()
if l.lower() == "n":
m = input('Is there any two-level section? y/n ')

w = str()
if l.lower() == "n":
w = input('Is there any three-level section? y/n ')
# Different approaches for level, two-level and three-level sections
Areas = np.array([])

if l.lower() == "y":
print("Level Trapezoidal Section,", "\n",
" area is given as A = (b+sh)h")
n = int(input('number of sections = '))
for i in range(n):
i+=1
print(f'for Secion{i}')
b = float(input('b = '))
s = float(input('s = '))
h = float(input('h = '))
u = input('unit= ')

A = (b+s*h)*h
Areas = np.append(Areas, A )
print(f' Area{i} A{i} = ({b}+{s}*{h})*{h} = {A} {u}^2', "\n")

if m.lower() == "y":
print("Two-Level Trapezoidal Section,", "\n",
" area is given as A = {(b/2s + h)(b1+b2)-b^2/2s}/2,", "\n"
"where, b1 = b/2 + n*s(h + b/(2*n))/(n-s)", "\n"
"b2 = b/2 + n*s(h - b/(2*n))/(n-s)", "\n")

n = int(input('number of sections = '))
for i in range(n):
i += 1
print(f'for Secion{i}')
b = float(input('b = '))
s = float(input('s = '))
h = float(input('h = '))
u = input('unit of length = ')
n = float(input('ground slope n = '))
b1 = b / 2 + n * s * (h + b / (2 * n)) / (n - s)
b2 = b / 2 + n * s * (h - b / (2 * n)) / (n - s)
A = ((b / 2 * s + h) * (b1 + b2) - b ** 2 / (2 * s)) / 2
Areas = np.append(Areas, A)

print(f''' putting all values for section{i}, b1 = {b1} {u}, b2= {b2} {u},
Area{i} A{i} = (({b} / 2 * {s} + {h}) * ({b1} + {b2}) - {b} ** 2 / (2 * {s})) / 2 '
f'= {A} {u}^2''', "\n")

if w.lower() == "y":

print("Three-Level Section,", "\n",
" area is given as A = h*(b1+b2)/2 + b*(h1+h2)/2", "\n"
"where, b1 = n1*s*(h + b/(2*s))/(n1-s)", "\n"
"b2 = n2*s*(h + b/(2*s))/(n2+s)"
"h1 = h + b1/n1"
" h2 = h - b2/n2", "\n")

n = int(input('number of sections = '))
for i in range(n):
i += 1
print(f'for secion{i}')
b = float(input('b = '))
s = float(input('s = '))
h = float(input('h = '))
u = input('unit= ')
n1 = float(input('ground slope1, n1 = '))
n2 = float(input('ground slope2, n2 = '))
b1 = n1 * s * (h + b / (2 * s)) / (n1 - s)
b2 = n2*s*(h + b/(2*s))/(n2+s)
h1 = h + b1/n1
h2 = h - b2/n2
A = h*(b1+b2)/2 + b*(h1+h2)/2
Areas = np.append(Areas, A)
print(f'putting all the values, b1= {b1}{u}, b2 = {b2}{u}, '
f'h1 = {h1}{u}, and h2 = {h2}{u}')
print(f' Area{i} A{i} = {h}*({b1}+{b2})/2 + {b}*({h1}+{h2})/2 '
f'= {A} {u}^2', "\n")

elif a.lower() == "y":
n = int(input('number of sections = '))
u = input('units of area = ')
for i in range(n):
i += 1
print(f'for Secion{i}')
A = input('Area = ')
Areas = np.append(Areas, A)

print(f'all the areas are {Areas} {u}^2')

# Volume using Prismoidal Formula

n = np.size(Areas) -1
print(f'number of areas, n = {n+1}')

V= float()
V2 = float()
V3 = float()
V1 = float()
if (n+1)%2 == 1:
print('Calculation of Cut and Fill using Prismoidal Formula:',
"\n", ' Volume (Cutting or Filling), V = D{A1 + An + 4(A2 + A4 + An-1) + 2(A3 + A5 + ..+An-2)}')
D = float(input('Distance between consecutive Sections, D = '))
V1 = D*(Areas[0] + Areas[n])/3
i = 0
while i < n/2:

V2 = V2+ 4*Areas[1+2*i]*D/3
i+=1
i=0
while i < (n/2-1):
V3 = V3 + 2 * Areas[2 + 2 * i] * D / 3
i+=1
V = V1 + V2 + V3
print(f'Putting all values, volume V = {V} {u}^3')

if (n+1)%2 == 0:
print('Prismoidal formular is not applicable for even number of sections')

Python Code for Drawing BMD and SFD (Bending Moment and Shear Force) for a SSB with Point Load

 Hi,

I have created this code in Python using Numpy and Matplotlib.pyplot libraries to draw the bending moment diagram(BMD) and Shear Force Diagram(SFD) for a Simply Supported Beam (SSB) with a point load at any location on that beam. 

The solution code when run will ask for the following inputs

Load, Load unit, Length of the beam, unit of the length, and location of the point load on the beam. 

And it will give the output for:

 1.Reactions,

2.Equation of the Shear and Moment at any location of the beam, 

3. Maximum Shear force and Maximum Bending Moment

4. Location of the maximum BM,

5. and Plot of the SFD and BMD.


Here is the code:

import numpy as np
import matplotlib.pyplot as plt

P = float(input('load = '))
u1 = input('load unit = ')
L = float(input('Length of the beam = '))
u2 = input('length unit = ')
a = float(input('Distance of Point load from left end = '))

b = L - a
R1 = P*b/L
R2 = P - R1
R1 = round(R1, 3)
R2 = round(R2, 3)
print(f'''
As per the static equilibrium, net moment sum at either end is zero,
hence Reaction R1 = P*b/L = {R1} {u1},
Also Net sum of vertical forces is zero,
hence R1+R2 = P, R2 = P - R1 = {R2} {u1}.
''')

l = np.linspace(0, L, 1000)
X = []
SF = []
M = []
maxBM= float()
for x in l:
if x <= a:
m = R1*x
sf = R1
elif x > a:
m = R1*x - P*(x-a)
sf = -R2
M.append(m)
X.append(x)
SF.append(sf)

print(f'''
Shear Force at x (x<{a}), Vx = R1 ={R1} {u1}
at x (x>{a}), SF = R1 - P = {R1} - {P} = -{R1-P} {u1}

Bending Moment at x (x<{a}), Mx = R1*x = {R1}*x
at x (x>={a}), Mx = R1*x - P*(x-{a})
= {R1}x - {P}(x-{a}) = -{R2}x + {P*a}
''')
max_SF = 0
for k in SF:
if max_SF < k:
max_SF = k


print(f'Maximum Shear Force Vmax = {max_SF} {u1}')


for k in M:
if maxBM < k:
maxBM = k
print(f'maximum BM, Mmax = {round(maxBM, 3)} {u1}{u2}')
Mx = float()

for x in l:
if x<a:
Mx = R1*x
if maxBM == Mx:
print(f'maximum BM at x = {round(x,3)} {u2}')
elif x>=a:
Mx = R1*x - P*(x- a)
if maxBM == Mx:
print(f'maximum BM at x = {round(x,3)} {u2}')


plt.plot(X, SF)
plt.plot([0, L], [0, 0])
plt.plot([0, 0], [0, R1], [L, L], [0, -R2])
plt.title("SFD")
plt.xlabel("Length in m")
plt.ylabel("Shear Force")
plt.show()


plt.plot(X, M)
plt.plot([0, L], [0, 0])
plt.title("BMD")
plt.xlabel("Length in m")
plt.ylabel("Bending Moment")
plt.show()

Monday, September 21, 2020

USCS and AASHTO- Soil Classification, using Software/Apps/Website building language Python

 Hi,

The following code is written in Python language, so to run the code you must have Python installed in your computer. Also, make sure to have 'math' library installed. 

When you run the code, it will ask you to enter the inputs related to the soil properties such as #200 sieve % finer, #4 finer etc. Put all the data given your problem, as and when asked. The result will show the USCS classification of the soil. 


def soilclass():
import math


r = input('Name of the classification required? (AASHTO/USCS/Both): ')
a = float(input('Material % finer than sieve #200 size(0.075mm): '))
b = float()
if a<50:
b = float(input('% finer than #4 (4.75mm) sieve: '))


LL = float()
PL = float()
PI = float()
PIA = float()

v = input('LL given? (y/n): ')
if v.lower() == "y":
LL = float(input('LL(%) = '))
pi = input('What is given? (PI or PL): ')
if pi.upper() == "PI":
PI= float(input('PI(%) = '))
PIA = 0.73 * (LL - 20)
if PI > PIA:
print(f'On A-Line, PI = 0.73(LL-20) = {PIA}%, '
f'Hence with PI of {PI}% soil lies above the A-line')
elif PI < PIA:
print(f'On A-Line, PI = 0.73(LL-20) = {PIA}%, '
f' Hence with PI of {PI}% soil lies below the A-line')
elif pi.upper() == "PL":
PL = float(input('PL(%)= '))
PI = LL - PL
print(f'Plasticity Index, PI = LL- PL = {PI}%')
PIA = 0.73 * (LL - 20)
if PI > PIA:
print(f'On A-Line, PI = 0.73(LL-20) = {PIA}%, '
f'Hence with PI of {PI}% soil lies above the A-line')
elif PI < PIA:
print(f'On A-Line, PI = 0.73(LL-20) = {PIA}%, '
f' Hence with PI of {PI}% soil lies below the A-line')

if r.upper() == "USCS" or r.upper() =="BOTH":
print('----------------')
print('USCS Classification: '
'----------')
D10 = float(input('D10(mm)= '))
D60 = float(input('D60(mm) = '))
D30 = float(input('D30(mm) = '))
Cu = D60 / D10
Cc = (D30) ** 2 / (D10 * D60)
print(f'''Cu = D60/D10 = {Cu}, Cc = (D30)^2/(D10*D60) = {Cc}''')

if a < 50:
print(f'As less than 50% of total soil, i.e. {a}%, is passing through #200 sieve, '
f'it is a Coarse grained soil')
if b < 50:
if a < 5:
if Cu >= 4 and 1 <= Cc <= 3:
print(f'As Cu>=4 and 1<=Cc<=3, '
f'soil class is GW (Well Graded Gravel)')
else:
print(f'As either Cu<4 or Cc<1 or Cc>3, '
f'soil class is GP (Poorly Graded Gravel)')
elif a > 12:
if PIA < PI and LL < 50:
print(f'With PI above A-line and LL<50, fines are clay with Low Compressibility(CH), '
f'so soil can be classified as GC - Clayey Gravel')
elif PIA < PI and LL > 50:
print(f'With PI above A-line and LL>50, fines are Clay with High Compressibility(CH), '
f'so soil can be classified as GC - Clayey Gravel')
elif PIA > PI and LL < 50:
print(f'With PI below A-line and LL<50,fines are Silt with Low Compressibility(ML), '
f'so soil can be classified as GM - Silty Gravel')
elif PIA > PI and LL > 50:
print(f'With PI below A-line and LL>50, fines are Silt with High Compressibility(MH), '
f'so soil can be classified as GC - Clayey Gravel')
exit()


elif b >= 50:
if a < 5:
if Cu >= 4 and 1 <= Cc <= 3:
print(f'As Cu>=4 and 1<=Cc<=3, '
f'soil class is SW (Well Graded Sand)')
else:
print(f'As either Cu<4 or Cc<1 or Cc>3, '
f'soil class is SP (Poorly Graded Sand)')

elif a > 12:
if PIA < PI and LL < 50:
print(f'With PI above A-line and LL<50, fines are clay with Low Compressibility(CH), '
f'so soil can be classified as SC (Clayey Sand)')
elif PIA < PI and LL > 50:
print(f'With PI above A-line and LL>50, fines are Clay with High Compressibility(CH), '
f'so soil can be classified as SC (Clayey Sand)')
elif PIA > PI and LL < 50:
print(f'With PI below A-line and LL<50, fines are Silt with Low Compressibility(ML), '
f'so soil can be classified as SM (Silty Sand)')
elif PIA > PI and LL > 50:
print(f'With PI below A-line and LL>50, fines are Silt with High Compressibility(MH), '
f'so soil can be classified as SC (Clayey Sand)')


elif a >= 50:
print(f'More than or equal to 50%, i.e. {a}%, is passing through #200 sieve')
if LL < 50:
if PIA < PI and PI > 7:
print(f'With PI above A-line and LL<50, '
f'fines are clay with Low Compressibility(CL)')
elif PIA > PI and PI < 4:
print(f'With PI below A-line, LL<50, and PI<4, '
f'fines are Silt with Low Compressibility(ML)')
elif LL > 50:

if PIA < PI:
print(f'With PI above A-line and LL>50, fines are Clay with High Compressibility(CH)')

elif PIA > PI:
print(f'With PI below A-line and LL>50, fines are Silt with High Compressibility(MH)', "\n")

if r.upper() == "AASHTO" or r.upper() == "BOTH":
print('---------------------- ')
print('AASHTO Soil Classification:')

# a is finer than #200, b is finer than #4
c = float(input('% finer than 2.00 mm (#10): '))
d = float(input('% finer than 0.425 mm (#40): '))

if c <= 50 and d <= 30 and a <= 15 and PI <= 6:
print(f'As % finer than 2.0mm (#200) <=50, %finer than 0.425 mm (#40)<=30'
f'% finer than 0.075mm (#200) <=15%, and PI<=6, '
f'hence the soil fits the criteria of soil class A-1-a (Stone Fragments,gravels and sand)')

elif c >= 51 and d <= 50 and a <= 25 and PI <= 6:
print(f'As %finer than 0.425 mm (#40)<=50'
f'% finer than 0.075mm (#200) <=25%, and PI<=6, '
f'hence the soil fits the criteria of soil class A-1-b (Stone Fragments,gravels and sand)')

elif c >= 51 and d >= 51 and a <= 10 and v.lower() == "n":
print(f'with %finer than 0.425 mm (#40) >=51, '
f'and % finer than 0.075mm (#200) <=10%, '
f'the soil is fine sand of class A-3')

elif c > 50 and d >=51 and a <= 35 and LL <= 40 and PI <= 10:
print(f'with LL<=40 and PI<=10, '
f'soil fits the criteria of "Silty or clayey Gravel" A-2-4')

elif c > 50 and d > 50 and a <= 35 and LL >= 41 and PI <= 10:
print(f'with LL>=41 and PI<=10, '
f'soil fits the criteria of "Silty or clayey Gravel" A-2-5')

elif c > 50 and d > 50 and a <= 35 and LL <= 40 and PI >= 11:
print(f'with LL<=40 and PI<=10, '
f'soil fits the criteria of "Silty or clayey Gravel" A-2-6')

elif c > 50 and d > 50 and a <= 35 and LL >= 41 and PI >= 11:
print(f'with LL>=41 and PI>=11, '
f'soil fits the criteria of "Silty or clayey Gravel" A-2-7')

elif c > 50 and d > 50 and a >= 36 and LL <= 40 and PI <= 10:
print(f'with LL<=40 and PI<=10, '
f'soil fits the criteria of "Silty Soils" A-4')

elif c > 50 and d > 50 and a >= 36 and LL >= 41 and PI <= 10:
print(f'with LL<=40 and PI<=10, '
f'soil fits the criteria of "Silty Soils" A-5')

elif c > 50 and d > 50 and a >= 36 and LL <= 40 and PI >= 11:
print(f'with LL<=40 and PI>=11, '
f'soil fits the criteria of "Silty Soils" A-6')

elif c > 50 and d > 50 and a >= 36 and LL >= 41 and PI >= 11:
if PI <= LL - 30:
print(f'with LL>=41 and PI>=11, and PI < LL-30 '
f'soil fits the criteria of "Silty Soils" A-7-5')
elif PI > (LL - 30):
print(f'with LL>=41 and PI>=11, and PI > LL-30 '
f'soil fits the criteria of "Silty Soils" A-7-5')


soilclass()

a = input('Exit? stress/n: ')
while a.lower() == "n":
soilclass()
a = input('Exit? stress/n: ')
else:
exit()

Resume-Now (BOLD LLC) is a FRAUD | defrauds Innocent Job Seekers

 Hi, Are you looking for a job change or a first-time job seeker?  I know, a somewhat difficult and desperate time it is sometimes.  In such...