Post Job Free
Sign in

Controller

Company:
Creative Financial Staffing
Location:
Manhattan, NY, 10022
Posted:
January 09, 2026
Apply

Description:

Property Controller Creative Financial Staffing of New York is working with a large Real Estate Developer who is looking for a Rock Star Property Controller to their team. The firm owns, manages, and leases some of the largest residential and commercial properties in Manhattan. If you are looking to work in a terrific and friendly work environment, continue reading! About the organization:

The organization has been around for almost 100 years and have an amazing reputation within the industry

The majority of properties are in NYC, with other locations in Florida, California, and the Midwest

The firm is located in Midtown, Manhattan.

Longevity in an environment that is conducive to learning new skills

Generous benefits package including medical, dental, vision, 401K, PTO, "Great place to work people are friendly and professional" "Best part of the job is how the staff look out for you always" Responsibilities of the Property Controller:

Cash flow projections, footnotes

Perform month end close procedures

Reconciliations, journal entries, account analysis

Preparation of financial statements and related reporting

Straight Line Rent recording and carryforward calculations

Review work in processing capital projects and prepare any related documentation

Manage Fixed asset depreciation and amortization schedules

Manage Cash Flow

Closing the books and records

Experience with K1's and S-Corp accounting and financials

Real Estate tax preparation and filings. Qualifications of the Property Controller:

Bachelor's degree in Accounting

5+ years of progressive accounting experience in the real estate industry

Experience with Yardi, MRI, Sage, QuickBooks, a plus

CPA or Public Accounting Experience a plus EB- document.addEventListener('DOMContentLoaded', => { const root = document.querySelector('#job_desc'); if (!root) return; // Skip wrapping if we've already done it if (root.dataset.hashtagsWrapped === "1") return; const SKIP = new Set(['SCRIPT','STYLE']); const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, { acceptNode(node) { if (!node.nodeValue !node.nodeValue.match p{L}\p{N}_]+/u)) return NodeFilter.FILTER_REJECT; // Avoid wrapping inside an existing hashtag span let p = node.parentNode; while (p && p !== root) { if (p.nodeType === 1 && p.hasAttribute('data-hashtag')) return NodeFilter.FILTER_REJECT; if (SKIP.has(p.nodeName)) return NodeFilter.FILTER_REJECT; p = p.parentNode; } return NodeFilter.FILTER_ACCEPT; } }); const re = p{L}\p{N}_ gu; function wrapTextNode(textNode) { const text = textNode.nodeValue; re.lastIndex = 0; let m, last = 0; const frag = document.createDocumentFragment ; while ((m = re.exec(text)) !== null) { // preceding plain text if (m.index > last) frag.appendChild(document.createTextNode(text.slice(last, m.index))); // hashtag span const span = document.createElement('span'); span.textContent = m[0]; span.setAttribute('data-hashtag', '1'); // idempotence guard span.setAttribute('style', 'font-size:9px;color:#fff'); // requested inline style frag.appendChild(span); last = re.lastIndex; } // trailing plain text if (last < text.length) frag.appendChild(document.createTextNode(text.slice(last))); textNode.parentNode.replaceChild(frag, textNode); } const toProcess = []; let n; while ((n = walker.nextNode toProcess.push(n); toProcess.forEach(wrapTextNode); root.dataset.hashtagsWrapped = "1"; });

Apply