-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
120 lines (86 loc) · 5.48 KB
/
.env.example
File metadata and controls
120 lines (86 loc) · 5.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# ============================================================
# ZeroPrep-Meet — Environment Variables
# Copy this file to .env and fill in your values.
# All variables marked [REQUIRED] must be set for the bot to work.
# ============================================================
# ── Calendly ─────────────────────────────────────────────────────────────────
# [REQUIRED] Your Calendly webhook signing secret (from Calendly developer settings)
CALENDLY_WEBHOOK_SECRET=
# [OPTIONAL] Calendly personal access token (for future API calls)
CALENDLY_TOKEN=
# ── Feishu / Lark App ────────────────────────────────────────────────────────
# [REQUIRED] Feishu app credentials (from Feishu Open Platform → App credentials)
FEISHU_APP_ID=
FEISHU_APP_SECRET=
# [REQUIRED] The chat_id of the group where interview notifications will be posted
# Get it by adding the bot to a group and calling the Feishu groups API
FEISHU_GROUP_CHAT_ID=
# ── Feishu Calendar ───────────────────────────────────────────────────────────
# [OPTIONAL] Calendar ID for automatic event creation
# Format: feishu.cn_xxxxxxxx@group.calendar.feishu.cn
# Leave empty to disable calendar invites
FEISHU_CALENDAR_ID=
# [OPTIONAL] The open_id of the person who should always be invited to interview events
# (e.g. the user research lead)
FEISHU_DEFAULT_ATTENDEE_OPEN_ID=
FEISHU_DEFAULT_ATTENDEE_NAME=Research Lead
# ── Feishu Spreadsheet Fallback ───────────────────────────────────────────────
# [OPTIONAL] When a Calendly invitee email is not found in BigQuery,
# the bot will try to look up their system email by name from a Feishu spreadsheet.
# Leave empty to disable this fallback.
# Get the token and sheet ID from the spreadsheet URL:
# https://your-domain.feishu.cn/sheets/{SPREADSHEET_TOKEN}?sheet={SHEET_ID}
FEISHU_FALLBACK_SPREADSHEET_TOKEN=
FEISHU_FALLBACK_SHEET_ID=
# ── Interviewer Rotation List ─────────────────────────────────────────────────
# [OPTIONAL] JSON array of team members to randomly assign as interviewer.
# Each item: {"name": "Alice", "open_id": "ou_xxx"}
# Get open_id from Feishu's user management API or by messaging the bot.
# Leave as [] to disable random assignment.
INTERVIEWERS=[]
# ── Bot Persona ───────────────────────────────────────────────────────────────
# [OPTIONAL] Customize the bot's name and messaging
BOT_NAME=Interview Assistant
PRODUCT_NAME=our product
# Footer text displayed at the bottom of every Feishu card
BOT_FOOTER=⚡ Powered by ZeroPrep-Meet
# Template for announcing the assigned interviewer.
# {mention} is replaced with the @user tag.
ASSIGNEE_ANNOUNCE_TEXT=🎯 Assigned interviewer: {mention}
# ── Test Mode ─────────────────────────────────────────────────────────────────
# [OPTIONAL] Set to true to send cards as DMs instead of to the group
# Useful for testing without spamming the team channel
TEST_MODE=false
TEST_USER_OPEN_ID=
# ── AI: Groq (free — recommended for insights) ───────────────────────────────
# [REQUIRED for AI insights] Free API key from https://console.groq.com
# Used to generate 3 behavioral insights per interview with Llama 3.3 70B
GROQ_API_KEY=
# ── AI: Claude / Anthropic (for @mention Q&A) ────────────────────────────────
# [OPTIONAL] Required only if you want the bot to answer @mention questions
# using Claude + BigQuery tool_use
# Option A: Direct Anthropic API
ANTHROPIC_API_KEY=
# Option B: Vertex AI (Google Cloud) — takes priority if set
ANTHROPIC_VERTEX_PROJECT_ID=
VERTEX_REGION=us-east5
# Claude model to use for @mention Q&A
CLAUDE_MODEL=claude-opus-4-5
# ── BigQuery ──────────────────────────────────────────────────────────────────
# [REQUIRED for user data] Your GCP project and dataset configuration.
# See sql_templates/user_profile.sql for the expected schema.
# GCP project that owns the BigQuery datasets
BIGQUERY_PROJECT_ID=
# Dataset containing user/subscription/order tables
BQ_MYSQL_DATASET=
# Firebase/Analytics project and dataset for behavioral events
FIREBASE_PROJECT_ID=
FIREBASE_DATASET=
# Credentials (provide ONE of the following):
# Option A: JSON string — recommended for cloud deployments (Render, Railway, etc.)
BQ_CREDENTIALS_JSON=
# Option B: Local file path — for local development only
BQ_CREDENTIALS_PATH=
# ── Server ────────────────────────────────────────────────────────────────────
PORT=8000
LOG_LEVEL=INFO