mirror of https://github.com/Bunsly/JobSpy
outputs and configs folder added
parent
cdcd79edfe
commit
8f8b39c6e2
|
@ -4,83 +4,44 @@ on:
|
|||
workflow_dispatch:
|
||||
inputs:
|
||||
user_email:
|
||||
description: 'User email for the scraper'
|
||||
description: 'Email of user'
|
||||
required: true
|
||||
default: 'branden@autoemployme.onmicrosoft.com'
|
||||
search_terms:
|
||||
description: 'Comma-separated list of search terms'
|
||||
required: true
|
||||
default: 'IT Support,CRM,Automation'
|
||||
results_wanted:
|
||||
description: 'Number of results to fetch'
|
||||
required: true
|
||||
default: '100'
|
||||
max_days_old:
|
||||
description: 'Fetch jobs posted in the last n days'
|
||||
required: true
|
||||
default: '2'
|
||||
target_state:
|
||||
description: 'Target state (e.g. NY)'
|
||||
required: true
|
||||
default: 'NY'
|
||||
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
id-token: write
|
||||
|
||||
jobs:
|
||||
scrape_jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
- name: Checkout Repo
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set up Python
|
||||
- name: Set Up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.10'
|
||||
|
||||
- name: Install dependencies
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install --upgrade pip
|
||||
pip install -r requirements.txt
|
||||
|
||||
- name: Set environment variables
|
||||
run: |
|
||||
echo "USER_EMAIL=${{ github.event.inputs.user_email }}" >> $GITHUB_ENV
|
||||
echo "SEARCH_TERMS=${{ github.event.inputs.search_terms }}" >> $GITHUB_ENV
|
||||
echo "RESULTS_WANTED=${{ github.event.inputs.results_wanted }}" >> $GITHUB_ENV
|
||||
echo "MAX_DAYS_OLD=${{ github.event.inputs.max_days_old }}" >> $GITHUB_ENV
|
||||
echo "TARGET_STATE=${{ github.event.inputs.target_state }}" >> $GITHUB_ENV
|
||||
|
||||
- name: Sanitize email for filename
|
||||
- name: Sanitize Email
|
||||
id: sanitize
|
||||
run: |
|
||||
safe_name=$(echo "${{ github.event.inputs.user_email }}" | sed 's/@/_at_/g; s/\./_/g')
|
||||
echo "safe_name=$safe_name" >> $GITHUB_OUTPUT
|
||||
safe_email=$(echo "${{ github.event.inputs.user_email }}" | sed 's/@/_at_/g; s/\./_/g')
|
||||
echo "safe_email=$safe_email" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Run JobSpy Scraper Dynamic
|
||||
- name: Run Job Scraper
|
||||
run: |
|
||||
python job_scraper_dynamic.py \
|
||||
"${{ env.SEARCH_TERMS }}" \
|
||||
"${{ env.RESULTS_WANTED }}" \
|
||||
"${{ env.MAX_DAYS_OLD }}" \
|
||||
"${{ env.TARGET_STATE }}" \
|
||||
"${{ steps.sanitize.outputs.safe_name }}"
|
||||
python scripts/job_scraper_dynamic.py "${{ github.event.inputs.user_email }}"
|
||||
|
||||
- name: Verify jobspy_output_dynamic file exists
|
||||
run: |
|
||||
file="jobspy_output_dynamic_${{ steps.sanitize.outputs.safe_name }}.csv"
|
||||
if [ ! -f "$file" ]; then
|
||||
echo "❌ ERROR: $file not found!"
|
||||
exit 1
|
||||
else
|
||||
echo "✅ Output found: $file"
|
||||
fi
|
||||
|
||||
- name: Upload JobSpy Output as Artifact
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: jobspy-results-dynamic-${{ steps.sanitize.outputs.safe_name }}
|
||||
path: jobspy_output_dynamic_${{ steps.sanitize.outputs.safe_name }}.csv
|
||||
name: jobspy-output-${{ steps.sanitize.outputs.safe_email }}
|
||||
path: jobspy_output_dynamic_${{ steps.sanitize.outputs.safe_email }}.csv
|
||||
|
|
|
@ -16,44 +16,57 @@ sources = {
|
|||
}
|
||||
|
||||
def sanitize_email(email):
|
||||
"""Sanitize email to use in filename."""
|
||||
"""Sanitize email to create safe filenames."""
|
||||
return email.replace("@", "_at_").replace(".", "_")
|
||||
|
||||
def load_config_file(email=None):
|
||||
"""Load config JSON from /configs directory or fallback to root config.json"""
|
||||
if email:
|
||||
safe_email = sanitize_email(email)
|
||||
config_path = os.path.join("configs", f"config_{safe_email}.json")
|
||||
if os.path.exists(config_path):
|
||||
print(f"📂 Loading config for {email} from: {config_path}")
|
||||
with open(config_path, "r", encoding="utf-8") as f:
|
||||
return json.load(f), safe_email
|
||||
else:
|
||||
print(f"⚠️ Config not found for {email}, falling back to root config.json")
|
||||
|
||||
if os.path.exists("config.json"):
|
||||
print("📂 Loading default config.json from root")
|
||||
with open("config.json", "r", encoding="utf-8") as f:
|
||||
config = json.load(f)
|
||||
safe_email = sanitize_email(config["user_email"])
|
||||
return config, safe_email
|
||||
else:
|
||||
raise FileNotFoundError("❌ No config.json found anywhere!")
|
||||
|
||||
def scrape_jobs(search_terms, results_wanted, max_days_old, target_state):
|
||||
all_jobs = []
|
||||
today = datetime.date.today()
|
||||
print(f"\n🔍 Scraping jobs for: {search_terms}")
|
||||
|
||||
print("\n🔎 Fetching jobs for search terms:", search_terms)
|
||||
|
||||
for search_term in search_terms:
|
||||
for term in search_terms:
|
||||
for source_name, source_class in sources.items():
|
||||
print(f"\n🚀 Scraping '{search_term}' from {source_name}...")
|
||||
|
||||
print(f"🚀 Scraping '{term}' from {source_name}...")
|
||||
scraper = source_class()
|
||||
search_criteria = ScraperInput(
|
||||
site_type=[source_name],
|
||||
search_term=search_term,
|
||||
results_wanted=results_wanted,
|
||||
)
|
||||
criteria = ScraperInput(site_type=[source_name], search_term=term, results_wanted=results_wanted)
|
||||
|
||||
try:
|
||||
job_response = scraper.scrape(search_criteria)
|
||||
response = scraper.scrape(criteria)
|
||||
except Exception as e:
|
||||
print(f"❌ Error scraping from {source_name} with term '{search_term}': {e}")
|
||||
print(f"❌ Error scraping {source_name}: {e}")
|
||||
continue
|
||||
|
||||
for job in job_response.jobs:
|
||||
location_city = job.location.city.strip() if job.location.city else "Unknown"
|
||||
location_state = job.location.state.strip().upper() if job.location.state else "Unknown"
|
||||
location_country = str(job.location.country) if job.location.country else "Unknown"
|
||||
for job in response.jobs:
|
||||
city = job.location.city.strip() if job.location.city else "Unknown"
|
||||
state = job.location.state.strip().upper() if job.location.state else "Unknown"
|
||||
country = str(job.location.country) if job.location.country else "Unknown"
|
||||
|
||||
# Match job title to search term
|
||||
if not any(term.lower() in job.title.lower() for term in search_terms):
|
||||
if not any(t.lower() in job.title.lower() for t in search_terms):
|
||||
continue
|
||||
|
||||
# Filter by date and location
|
||||
if job.date_posted and (today - job.date_posted).days <= max_days_old:
|
||||
if location_state == target_state or job.is_remote:
|
||||
if state == target_state or job.is_remote:
|
||||
all_jobs.append({
|
||||
"Job ID": job.id,
|
||||
"Job Title (Primary)": job.title,
|
||||
|
@ -66,26 +79,21 @@ def scrape_jobs(search_terms, results_wanted, max_days_old, target_state):
|
|||
"Salary Min": job.compensation.min_amount if job.compensation else "",
|
||||
"Salary Max": job.compensation.max_amount if job.compensation else "",
|
||||
"Date Posted": job.date_posted.strftime("%Y-%m-%d") if job.date_posted else "Not Provided",
|
||||
"Location City": location_city,
|
||||
"Location State": location_state,
|
||||
"Location Country": location_country,
|
||||
"Location City": city,
|
||||
"Location State": state,
|
||||
"Location Country": country,
|
||||
"Job URL": job.job_url,
|
||||
"Job Description": job.description.replace(",", "") if job.description else "No description available",
|
||||
"Job Source": source_name
|
||||
})
|
||||
|
||||
print(f"\n✅ {len(all_jobs)} jobs retrieved")
|
||||
print(f"✅ {len(all_jobs)} jobs matched.")
|
||||
return all_jobs
|
||||
|
||||
def save_jobs_to_csv(jobs, filename):
|
||||
"""Save job data to a CSV file with custom formatting."""
|
||||
if not jobs:
|
||||
print("⚠️ No jobs found matching criteria.")
|
||||
return
|
||||
|
||||
if os.path.exists(filename):
|
||||
os.remove(filename)
|
||||
|
||||
fieldnames = [
|
||||
"Job ID", "Job Title (Primary)", "Company Name", "Industry",
|
||||
"Experience Level", "Job Type", "Is Remote", "Currency",
|
||||
|
@ -94,54 +102,37 @@ def save_jobs_to_csv(jobs, filename):
|
|||
"Job Source"
|
||||
]
|
||||
|
||||
header_record = "|~|".join(fieldnames)
|
||||
records = [header_record]
|
||||
header = "|~|".join(fieldnames)
|
||||
records = [header]
|
||||
|
||||
for job in jobs:
|
||||
row = []
|
||||
for field in fieldnames:
|
||||
value = str(job.get(field, "")).strip()
|
||||
if not value:
|
||||
value = "Not Provided"
|
||||
value = value.replace(",", "")
|
||||
row.append(value)
|
||||
record = "|~|".join(row)
|
||||
records.append(record)
|
||||
value = str(job.get(field, "Not Provided")).replace(",", "").strip()
|
||||
row.append(value if value else "Not Provided")
|
||||
records.append("|~|".join(row))
|
||||
|
||||
output = ",".join(records)
|
||||
with open(filename, "w", encoding="utf-8") as file:
|
||||
file.write(output)
|
||||
with open(filename, "w", encoding="utf-8") as f:
|
||||
f.write(output)
|
||||
|
||||
print(f"✅ Jobs saved to {filename} ({len(jobs)} entries)")
|
||||
print(f"💾 Jobs saved to: {filename} ({len(jobs)} entries)")
|
||||
|
||||
# MAIN
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
if len(sys.argv) >= 6:
|
||||
# CLI input
|
||||
search_terms_str = sys.argv[1]
|
||||
results_wanted = int(sys.argv[2])
|
||||
max_days_old = int(sys.argv[3])
|
||||
target_state = sys.argv[4]
|
||||
user_email = sys.argv[5]
|
||||
else:
|
||||
# Fallback to config.json
|
||||
print("ℹ️ CLI arguments not provided. Falling back to config.json")
|
||||
with open("config.json", "r") as f:
|
||||
config = json.load(f)
|
||||
search_terms_str = ",".join(config["search_terms"])
|
||||
results_wanted = config["results_wanted"]
|
||||
max_days_old = config["max_days_old"]
|
||||
target_state = config["target_state"]
|
||||
user_email = config["user_email"]
|
||||
user_email = sys.argv[1] if len(sys.argv) >= 2 else None
|
||||
config, safe_email = load_config_file(user_email)
|
||||
|
||||
search_terms = [term.strip() for term in search_terms_str.split(",")]
|
||||
safe_email = sanitize_email(user_email)
|
||||
output_filename = f"jobspy_output_dynamic_{safe_email}.csv"
|
||||
search_terms = config["search_terms"]
|
||||
results_wanted = config["results_wanted"]
|
||||
max_days_old = config["max_days_old"]
|
||||
target_state = config["target_state"]
|
||||
|
||||
jobs = scrape_jobs(search_terms, results_wanted, max_days_old, target_state)
|
||||
save_jobs_to_csv(jobs, output_filename)
|
||||
filename = f"jobspy_output_dynamic_{safe_email}.csv"
|
||||
job_data = scrape_jobs(search_terms, results_wanted, max_days_old, target_state)
|
||||
save_jobs_to_csv(job_data, filename)
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ Unexpected error: {e}")
|
||||
print(f"❌ Fatal error: {e}")
|
||||
sys.exit(1)
|
||||
|
|
|
@ -1,41 +1,45 @@
|
|||
Job ID|~|Job Title (Primary)|~|Company Name|~|Industry|~|Experience Level|~|Job Type|~|Is Remote|~|Currency|~|Salary Min|~|Salary Max|~|Date Posted|~|Location City|~|Location State|~|Location Country|~|Job URL|~|Job Description|~|Job Source,in-5415733b31fa0e72|~|IT Support Technician|~|Wheelhouse IT|~|Not Provided|~|Not Provided|~|FULL_TIME|~|True|~|USD|~|35000.0|~|39000.0|~|2025-04-14|~|Fort Lauderdale|~|FL|~|US|~|https://www.indeed.com/viewjob?jk=5415733b31fa0e72|~|At WheelHouse IT we believe in providing the best support to our clients and growing with the business. We are currently seeking a Support Technician to provide remote and on\-site support for PCs networking equipment servers and desktop software for small medium\-sized and enterprise organizations. This position is located at our Fort Lauderdale headquarters and the compensation range is $35000 to $39000 per year depending on experience level.
|
||||
Job ID|~|Job Title (Primary)|~|Company Name|~|Industry|~|Experience Level|~|Job Type|~|Is Remote|~|Currency|~|Salary Min|~|Salary Max|~|Date Posted|~|Location City|~|Location State|~|Location Country|~|Job URL|~|Job Description|~|Job Source,in-8e0332ef3363f9b6|~|IT Support - TikTok Creator|~|CourseCareers|~|Not Provided|~|Not Provided|~|FULL_TIME|~|True|~|USD|~|4000.0|~|20000.0|~|2025-04-14|~|Unknown|~|GA|~|US|~|https://www.indeed.com/viewjob?jk=8e0332ef3363f9b6|~|**About the Role**
|
||||
------------------
|
||||
|
||||
|
||||
As a Support Technician you will report to the Support Desk Manager and work as part of a team that is committed to the future of the organization. You will perform a wide variety of IT support ranging from desktop and peripheral support to server and network issues. You will work directly with clients and internal staff of all technical levels and be driven to provide only the best customer service and support.
|
||||
This is a part\-time remote freelance position where anyone with previous experience working in IT Support can make additional income creating simple TikTok videos about their job.
|
||||
|
||||
|
||||
Requirements:
|
||||
|
||||
* 1\+ years of experience in supporting network connectivity and networking equipment for LAN/WAN topologies Microsoft Products (i.e. Office 365 Windows OS's) Microsoft Active Directory administration and internet\-related technologies including registrars SSL and hosting providers
|
||||
* Technical certifications or training equivalent to A\+ and Network\+ preferred
|
||||
* Prior experience in an MSP or support environment highly desirable
|
||||
* Familiarity with server hardware and related technologies such as RAID iLO DRAC bare metal restores and backup methods considered a plus
|
||||
* Experience with LabTech or similar RMM and ConnectWise or similar PSA software desirable
|
||||
* Strong work ethic attention to detail problem\-solving skills and ability to work well with others
|
||||
* Local candidates only
|
||||
You'll be introducing new people to a career in IT and teaching them how they can land their first position in help desk by going through our affordable online course.
|
||||
|
||||
|
||||
Our benefits package includes medical dental and vision insurance short\-term and long\-term disability insurance life insurance 401K with company match flexible work from home options paid vacation a company\-sponsored cell phone performance\-based bonuses training and other perks that make this a great place to work learn and grow. We also have Friday Happy Hours and quarterly major company events to promote team bonding.
|
||||
You will be given a complete guide to follow for creating content on TikTok including exact video scripts to create and 1:1 feedback on ways to improve.
|
||||
|
||||
|
||||
Responsibilities:
|
||||
**What You'll Need**
|
||||
--------------------
|
||||
|
||||
* Provide remote and on\-site support for PCs networking equipment servers and desktop software for small medium\-sized and enterprise organizations
|
||||
* Work directly with clients and internal staff of varying technical abilities
|
||||
* Contribute to the maintenance and enhancement of internal systems and customer\-facing hosted and cloud environments
|
||||
* Participate in projects when needed
|
||||
* Contribute to improving the IT environment and providing exceptional customer service and support
|
||||
* Must have previous experience working in IT Support. Preferably currently working in the role.
|
||||
* Previous experience creating TikTok content is a plus but not required.
|
||||
|
||||
**Compensation**
|
||||
----------------
|
||||
|
||||
|
||||
Prior experience in an MSP or support environment server hardware and related tech LabTech or similar RMM experience and ConnectWise experience or similar PSA experience are all considered a plus. Only local candidates in Fort Lauderdale FL need apply.
|
||||
The compensation will be a mix of payment per video plus a 45% affiliate commission on all course sales. The amount of upfront payment per video is based on your experience creating TikTok content.
|
||||
|
||||
|
||||
If you are up for the challenge ready to step up to opportunities and driven to improve yourself and the environment we want you to be a part of our exciting fast\-paced and dynamic team!
|
||||
Based on previous creators you can expect around $4000/month in affiliate commissions after your first month from 2\-5 hours of work per week and up to $20000/month after your first 3 months.
|
||||
|
||||
|
||||
In addition to making a significant income on the side you'll also be building your personal brand on social media and generating a following for yourself.
|
||||
|
||||
**Next Steps To Apply**
|
||||
-----------------------
|
||||
|
||||
We are choosing who we hire solely based on the sample video submitted in the application.
|
||||
|
||||
|
||||
9Y5dSPiSlT|~|indeed,go-yiukjIh3eVWiiXcRAAAAAA==|~|Help Desk Technician|~|Red River Technology|~|Not Provided|~|Not Provided|~|Not Provided|~|True|~|Not Provided|~|Not Provided|~|Not Provided|~|2025-04-14|~|Chantilly|~|VA|~|Unknown|~|https://onmogul.com/jobs/help-desk-technician-b976aa9c-4295-46f1-8fd6-03da3bff596c?utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic|~|Red River Managed Services seeks selfless humble and team-oriented people that are always willing to support the success of their colleagues over their own. We enjoy working with people that can make wise decisions relying on data experience and collaboration. We seek individuals who are open to giving and receiving feedback through a willingness to share learnings.
|
||||
* Reference this video: https://www.tiktok.com/@cutthetech/video/7423051428324838702
|
||||
* Replicate the video above as closely as possible using a similar camera angle and length of the video. Keep the text on screen similar but change it to match your own story.
|
||||
* Upload the video to TikTok and submit the link to it in the application. We will review all applicants and let you know if we'd like to move forward.
|
||||
|
||||
PS: There may be multiple job postings for the same position but only with different titles. Please only apply to one.|~|indeed,go-yiukjIh3eVWiiXcRAAAAAA==|~|Help Desk Technician|~|Red River Technology|~|Not Provided|~|Not Provided|~|Not Provided|~|True|~|Not Provided|~|Not Provided|~|Not Provided|~|2025-04-14|~|Chantilly|~|VA|~|Unknown|~|https://onmogul.com/jobs/help-desk-technician-b976aa9c-4295-46f1-8fd6-03da3bff596c?utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic|~|Red River Managed Services seeks selfless humble and team-oriented people that are always willing to support the success of their colleagues over their own. We enjoy working with people that can make wise decisions relying on data experience and collaboration. We seek individuals who are open to giving and receiving feedback through a willingness to share learnings.
|
||||
|
||||
At Red River we provide a welcoming and positive workplace where everyone feels valued and able to do their best work fostering a one-team mentality. We want people that embrace new ideas and are passionate about innovation and brainstorming better solutions. This in turn fosters a means to overcome self-doubt and respectfully challenge the status quo while pursuing a career of providing exceptional client service.
|
||||
|
||||
|
@ -204,41 +208,45 @@ If you are an individual with a disability and need special assistance or reason
|
|||
|
||||
This individual will be responsible for delivering exceptional customer satisfaction by resolving technical issues and meeting end-users' needs. The selected candidate will provide remote phone email and chat troubleshooting support for application desktop network and mobile device issues.
|
||||
• Deliver exceptional customer satisfaction by resolving technical issues and meeting end-users' needs
|
||||
• Provide remote phone email and chat troubleshooting support for application desktop network and mobile device issues|~|google,in-5415733b31fa0e72|~|IT Support Technician|~|Wheelhouse IT|~|Not Provided|~|Not Provided|~|FULL_TIME|~|True|~|USD|~|35000.0|~|39000.0|~|2025-04-14|~|Fort Lauderdale|~|FL|~|US|~|https://www.indeed.com/viewjob?jk=5415733b31fa0e72|~|At WheelHouse IT we believe in providing the best support to our clients and growing with the business. We are currently seeking a Support Technician to provide remote and on\-site support for PCs networking equipment servers and desktop software for small medium\-sized and enterprise organizations. This position is located at our Fort Lauderdale headquarters and the compensation range is $35000 to $39000 per year depending on experience level.
|
||||
• Provide remote phone email and chat troubleshooting support for application desktop network and mobile device issues|~|google,in-8e0332ef3363f9b6|~|IT Support - TikTok Creator|~|CourseCareers|~|Not Provided|~|Not Provided|~|FULL_TIME|~|True|~|USD|~|4000.0|~|20000.0|~|2025-04-14|~|Unknown|~|GA|~|US|~|https://www.indeed.com/viewjob?jk=8e0332ef3363f9b6|~|**About the Role**
|
||||
------------------
|
||||
|
||||
|
||||
As a Support Technician you will report to the Support Desk Manager and work as part of a team that is committed to the future of the organization. You will perform a wide variety of IT support ranging from desktop and peripheral support to server and network issues. You will work directly with clients and internal staff of all technical levels and be driven to provide only the best customer service and support.
|
||||
This is a part\-time remote freelance position where anyone with previous experience working in IT Support can make additional income creating simple TikTok videos about their job.
|
||||
|
||||
|
||||
Requirements:
|
||||
|
||||
* 1\+ years of experience in supporting network connectivity and networking equipment for LAN/WAN topologies Microsoft Products (i.e. Office 365 Windows OS's) Microsoft Active Directory administration and internet\-related technologies including registrars SSL and hosting providers
|
||||
* Technical certifications or training equivalent to A\+ and Network\+ preferred
|
||||
* Prior experience in an MSP or support environment highly desirable
|
||||
* Familiarity with server hardware and related technologies such as RAID iLO DRAC bare metal restores and backup methods considered a plus
|
||||
* Experience with LabTech or similar RMM and ConnectWise or similar PSA software desirable
|
||||
* Strong work ethic attention to detail problem\-solving skills and ability to work well with others
|
||||
* Local candidates only
|
||||
You'll be introducing new people to a career in IT and teaching them how they can land their first position in help desk by going through our affordable online course.
|
||||
|
||||
|
||||
Our benefits package includes medical dental and vision insurance short\-term and long\-term disability insurance life insurance 401K with company match flexible work from home options paid vacation a company\-sponsored cell phone performance\-based bonuses training and other perks that make this a great place to work learn and grow. We also have Friday Happy Hours and quarterly major company events to promote team bonding.
|
||||
You will be given a complete guide to follow for creating content on TikTok including exact video scripts to create and 1:1 feedback on ways to improve.
|
||||
|
||||
|
||||
Responsibilities:
|
||||
**What You'll Need**
|
||||
--------------------
|
||||
|
||||
* Provide remote and on\-site support for PCs networking equipment servers and desktop software for small medium\-sized and enterprise organizations
|
||||
* Work directly with clients and internal staff of varying technical abilities
|
||||
* Contribute to the maintenance and enhancement of internal systems and customer\-facing hosted and cloud environments
|
||||
* Participate in projects when needed
|
||||
* Contribute to improving the IT environment and providing exceptional customer service and support
|
||||
* Must have previous experience working in IT Support. Preferably currently working in the role.
|
||||
* Previous experience creating TikTok content is a plus but not required.
|
||||
|
||||
**Compensation**
|
||||
----------------
|
||||
|
||||
|
||||
Prior experience in an MSP or support environment server hardware and related tech LabTech or similar RMM experience and ConnectWise experience or similar PSA experience are all considered a plus. Only local candidates in Fort Lauderdale FL need apply.
|
||||
The compensation will be a mix of payment per video plus a 45% affiliate commission on all course sales. The amount of upfront payment per video is based on your experience creating TikTok content.
|
||||
|
||||
|
||||
If you are up for the challenge ready to step up to opportunities and driven to improve yourself and the environment we want you to be a part of our exciting fast\-paced and dynamic team!
|
||||
Based on previous creators you can expect around $4000/month in affiliate commissions after your first month from 2\-5 hours of work per week and up to $20000/month after your first 3 months.
|
||||
|
||||
|
||||
In addition to making a significant income on the side you'll also be building your personal brand on social media and generating a following for yourself.
|
||||
|
||||
**Next Steps To Apply**
|
||||
-----------------------
|
||||
|
||||
We are choosing who we hire solely based on the sample video submitted in the application.
|
||||
|
||||
|
||||
9Y5dSPiSlT|~|indeed
|
||||
* Reference this video: https://www.tiktok.com/@cutthetech/video/7423051428324838702
|
||||
* Replicate the video above as closely as possible using a similar camera angle and length of the video. Keep the text on screen similar but change it to match your own story.
|
||||
* Upload the video to TikTok and submit the link to it in the application. We will review all applicants and let you know if we'd like to move forward.
|
||||
|
||||
PS: There may be multiple job postings for the same position but only with different titles. Please only apply to one.|~|indeed
|
|
Loading…
Reference in New Issue