Revenue Manager

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Full Time

SALARY

$1,200 - $1,500 USD/month

HOURS PER WEEK

40

DATE UPDATED

Mar 24, 2026

JOB OVERVIEW

Revenue Manager – Short-Term Rental Portfolio
Full-Time | Remote | Structured Growth Role

We are building a performance-driven revenue management program under HostOp, serving multi-unit short-term rental operators (20–100+ listings across multiple markets).

We are hiring a highly analytical Revenue Manager to oversee pricing execution, reporting, and performance tracking across multiple portfolios.

This is a data-driven role. Not a general VA position.

***************

Core Responsibilities

* Execute dynamic pricing adjustments inside PriceLabs
* Monitor booking pace, occupancy, ADR, and RevPAR trends
* Analyze underperforming listings and adjust strategy
* Segment portfolios by market and optimize independently
* Pull and reconcile monthly revenue reports from Hostaway
* Maintain structured dashboards (Notion + reporting systems)
* Prepare monthly billing calculations (2.5% revenue model)
* Provide structured Slack performance updates to clients
* Identify risks and opportunities proactively

***************

Required Experience

* 2+ years working in STR revenue management
* Strong experience using PriceLabs (required)
* Experience using Hostaway or similar PMS (required)
* Strong understanding of ADR, Occupancy, RevPAR
* Advanced Excel / Google Sheets skills
* Strong written English communication
* Comfortable working with structured systems

Bonus:
* OTA background (Airbnb / ---------- )
* Multi-market portfolio experience

***************

Work Structure

* Full-time remote
* Slack-based communication
* Structured weekly cadence
* No reactive daily firefighting
* Performance-based growth path

***************

Compensation

Month 1: $1,200 USD Monthly (structured trial)
After 90 days: $1,500 USD Monthly upon strong execution and independent portfolio ownership

Clear path to managing multiple portfolios independently.

***************

To Apply

Please answer:
1. How many STR listings have you managed pricing for?
2. What pricing tools have you used? (PriceLabs required)
3. Explain ADR vs RevPAR in your own words.
4. How would you prioritize listings with low booking pace in March?
5. Provide screenshots of dashboards or reports you’ve built (if available).

Applications without detailed answers will not be reviewed.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0011
Controller Execution Time ( Jobseekers / Job )  0.0184
Total Execution Time  0.0202
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,506,304 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Revenue-Manager-1591047
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0116 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1591047
 LIMIT 1 
0.0012   SELECT *
FROM `employers`
WHERE `employer_id` = 479800
 LIMIT 1 
0.0010   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1591047
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-04-18',ej.date_added) duration_daysDATEDIFF('2026-04-18',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-04-18',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1591047' 
0.0021   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1591047 
0.0008   UPDATE employer_jobs SET hit_counts '***Mar-02-2026=199***Mar-03-2026=36***Mar-04-2026=13***Mar-05-2026=17***Mar-06-2026=9***Mar-07-2026=10***Mar-08-2026=9***Mar-09-2026=12***Mar-10-2026=10***Mar-11-2026=12***Mar-12-2026=4***Mar-13-2026=6***Mar-14-2026=4***Mar-15-2026=2***Mar-16-2026=330***Mar-17-2026=37***Mar-18-2026=36***Mar-19-2026=23***Mar-20-2026=15***Mar-21-2026=5***Mar-22-2026=12***Mar-23-2026=6***Mar-24-2026=266***Mar-25-2026=36***Mar-26-2026=27***Mar-27-2026=10***Mar-28-2026=11***Mar-29-2026=4***Mar-30-2026=4***Mar-31-2026=4***Apr-01-2026=5***Apr-02-2026=9***Apr-03-2026=9***Apr-04-2026=3***Apr-05-2026=2***Apr-06-2026=4***Apr-07-2026=5***Apr-08-2026=3***Apr-09-2026=2***Apr-10-2026=5***Apr-11-2026=1***Apr-15-2026=1***Apr-18-2026=1' WHERE job_id'1591047'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Mar-2026=1169***Apr-2026=50' WHERE job_id'1591047'  
0.0009   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1591047' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1591047 
0.0028   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '479800'
AND `date_added` >= '2022-06-08' 
0.0004   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)