# Facebook Scraper - Configuration Needed

## Proxy Configuration

**File:** `rust-ai/src/main.rs`  
**Lines:** 25-27

The scraper needs real proxy URLs. The dummy placeholder `"http://0.0.0.0:0"` will fail to connect (expected — no crash, just error logs):

```rust
const PROXIES: &[&str] = &[
    "http://0.0.0.0:0",  // <- Replace with real proxy(es)
];
```

Replace with your actual proxies, e.g.:
```rust
const PROXIES: &[&str] = &[
    "http://user:pass@192.168.1.1:8080",
    "http://user:pass@192.168.1.2:8080",
];
```

## User Agents (Optional)

**File:** `rust-ai/src/main.rs`  
**Lines:** 32-36

Add more realistic user agents here if needed.

## Scraper Target URL

**File:** `rust-ai/src/main.rs`  
**Line:** 68

Currently fetches `https://www.facebook.com/search/top/?q=need%20website%20create`. Change if needed.

## Background Thread

**File:** `rust-ai/src/main.rs`  
**Lines:** 355-371

Runs in a `tokio::task::spawn_blocking` thread (changed from `tokio::spawn` because the scraper uses `reqwest::blocking::Client` + `thread::sleep`).

## Expected Behavior Until Configured

Until real proxies are set, the Rust server will log this every 1-5 seconds (not a crash):
```
ERROR crm_ai: Facebook scraper error: error sending request for url (https://www.facebook.com/messages)
```
Once you add working proxies, these errors stop and actual scraping begins.

## How it works

- Runs every 1-5 seconds on a background blocking thread (line 355-371)
- Rotates through proxies and user agents for each request
- Parses conversation HTML via `scraper` crate
- Designed to detect job posts like "need a website" and notify sales reps
- Error handling added to prevent server crash (uses `match` instead of `.unwrap()` at line 69)

