一键导入
bcpao-data-extraction-skill
Extract property data from Brevard County Property Appraiser GIS API including photos, valuations, and parcel details
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Extract property data from Brevard County Property Appraiser GIS API including photos, valuations, and parcel details
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Autonomous browser control via Chrome DevTools Protocol and Accessibility Tree for full screen control like GPT Operator. Use when user requests "control my screen", "verify Lovable", "test scrapers", "debug DOM", "autonomous testing", or any browser automation task. NO screenshots - uses CDP + semantic queries for 10x faster, 100% reliable element targeting.
Calculate maximum bid using BidDeed formula and bid/judgment ratios to determine BID/REVIEW/SKIP decisions
Execute 12-stage Everest Ascent pipeline for foreclosure auction analysis from discovery to disposition
Discover and analyze lien positions from AcclaimWeb and RealTDM to detect HOA foreclosures and senior mortgage survival
Find qualified leads with decision makers and outreach strategies
Implement Stripe payments, webhooks, and subscriptions correctly first time
| name | bcpao-data-extraction-skill |
| description | Extract property data from Brevard County Property Appraiser GIS API including photos, valuations, and parcel details |
Extracts comprehensive property data from Brevard County Property Appraiser's GIS API.
Base URL:
https://gis.brevardfl.gov/gissrv/rest/services/Base_Map/Parcel_New_WKID2881/MapServer/5
Operation: /query
params = {
'where': f"PARCEL_ID = '{parcel_id}'", # or SITE_ADDR LIKE '%123 Main St%'
'outFields': '*',
'returnGeometry': 'false',
'f': 'json'
}
PARCEL_ID: Unique parcel identifier (e.g., "29-37-38-00-00000.0-000010.0")ACCOUNT: Account number for photo URLsSITE_ADDR: Full property addressLEGAL_DESC: Legal descriptionOWNER_NAME: Current owner of recordOWNER_ADDR: Mailing addressMAIL_CITY, MAIL_STATE, MAIL_ZIPJUST_VAL: Just (assessed) valueASSESSED_VAL: Assessed value for tax purposesTAXABLE_VAL: Taxable value after exemptionsLAND_VAL: Land value onlyBLDG_VAL: Building value onlyLIV_AREA: Living area in square feetYR_BLT: Year builtZONING: Zoning classificationUSE_CODE: Property use codeTOTAL_BEDROOMS: Bedroom count (NOT RELIABLE - often missing)TOTAL_BATHROOMS: Bathroom count (NOT RELIABLE - often missing)TAX_DIST: Tax districtEXEMPTIONS: Homestead/other exemptionsPhotos follow predictable pattern:
def get_photo_url(account_number):
# Format: https://www.bcpao.us/photos/{prefix}/{account}011.jpg
# Account: 2934567 → prefix: 293, photo: 2934567011.jpg
prefix = account_number[:3]
photo_url = f"https://www.bcpao.us/photos/{prefix}/{account_number}011.jpg"
return photo_url
Example:
2934567293https://www.bcpao.us/photos/293/2934567011.jpgAvailability:
{
"features": [
{
"attributes": {
"PARCEL_ID": "29-37-38-00-00000.0-000010.0",
"ACCOUNT": "2934567",
"SITE_ADDR": "123 MAIN ST",
"OWNER_NAME": "SMITH JOHN & MARY",
"JUST_VAL": 425000,
"ASSESSED_VAL": 425000,
"LAND_VAL": 125000,
"BLDG_VAL": 300000,
"LIV_AREA": 2150,
"YR_BLT": 2005,
"ZONING": "RES-1",
"USE_CODE": "0100",
"LEGAL_DESC": "LOT 10 BLOCK A SUBDIVISION PLAT..."
}
}
]
}
Since BCPAO doesn't give comps, use multi-source approach:
bcpao_value = response['JUST_VAL'] # Assessed value
# Search Zillow for recent sales within 0.5 miles
# Similar: beds, baths, sqft, year
comparable_sales = get_recent_sales(address, radius=0.5)
avg_comp_value = mean([sale['price'] for sale in comparable_sales])
# Weight: 40% BCPAO, 60% comps
arv = (bcpao_value * 0.4) + (avg_comp_value * 0.6)
# Conservative adjustment
arv_conservative = arv * 0.95 # 5% haircut for safety
# Stage 2: Scraping
bcpao_data = bcpao_extraction_skill.query(parcel_id)
property_details = {
'address': bcpao_data['SITE_ADDR'],
'living_area': bcpao_data['LIV_AREA'],
'year_built': bcpao_data['YR_BLT'],
'assessed_value': bcpao_data['JUST_VAL'],
'photo_url': get_photo_url(bcpao_data['ACCOUNT']),
'legal_desc': bcpao_data['LEGAL_DESC']
}
# Use for ARV calculation in Stage 8
# Use photo in Stage 10 (Report Generation)
try:
response = requests.get(api_url, params=params)
data = response.json()
if not data.get('features'):
# Parcel not found
return None
# Extract first feature
property_data = data['features'][0]['attributes']
except requests.exceptions.RequestException:
# API timeout or error
return None
"Use bcpao-data-extraction-skill to get details for parcel 29-37-38-00-00000.0-000010.0"
"Extract BCPAO data for property at 123 Main St Melbourne FL"
"Get assessed value and photo for account 2934567"