resume-parserresumeParser.ts12 matches
1617/**
18* Helper function to create a confidence field with a value and confidence score
19*/
20function createConfidenceField<T>(
21value: T,
22confidence: number,
37* @returns Structured resume data with confidence scores
38*/
39export async function extractResumeData(
40resumeText: string,
41options?: ResumeParserOptions
96* @returns Finalized resume data
97*/
98function postProcessResumeData(data: any, confidenceThreshold: number = 0.3): ParsedResume {
99try {
100// Ensure we have all required sections with at least empty arrays
220* Create a default personal info object with empty fields
221*/
222function createDefaultPersonalInfo(): PersonalInfo {
223return {
224name: createConfidenceField('', 0),
236* Calculate months between two dates
237*/
238function calculateMonthsBetween(startDate: Date, endDate: Date): number {
239return (endDate.getFullYear() - startDate.getFullYear()) * 12 +
240(endDate.getMonth() - startDate.getMonth());
247* @returns Validated and standardized resume data
248*/
249export function validateAndStandardize(data: ParsedResume): ParsedResume {
250// This function is now deprecated in favor of the validateResumeWithAI function
251// which uses OpenAI to validate and standardize the data
252return data;
261* @returns Confidence score between 0 and 1
262*/
263export function calculateConfidence(
264value: any,
265fieldType: string,
285* @returns Standardized value and standardization notes
286*/
287export function standardizeTerminology(
288value: string,
289fieldType: 'degree' | 'jobTitle' | 'skill' | 'language' | string
302* @returns Resume data with confidence scores added
303*/
304export function addConfidenceScores(data: any): ParsedResume {
305// This function would iterate through the resume data and add
306// confidence scores to each field based on various factors
307
MaxCareVizindex.html1 match
941let keepPoint, removePoint;
942
943// Define helper functions to check point types
944const isCode = (point) => point.codeType === 'cpt' || point.codeType === 'icd10';
945const isReasoning = (point) => point.codeType === 'step';
sqlite-storage-sizemain.tsx1 match
1import { sqlite } from "https://esm.town/v/stevekrouse/sqlite";
23async function getStorageSize() {
4const bytes =
5(await sqlite.execute(`SELECT page_size * page_count FROM pragma_page_size(), pragma_page_count()`)).rows[0][0];
1import { sqlite } from "https://esm.town/v/stevekrouse/sqlite";
23async function getStorageSize() {
4const bytes =
5(await sqlite.execute(`SELECT page_size * page_count FROM pragma_page_size(), pragma_page_count()`)).rows[0][0];
sqliteAdminDashboardmain.tsx4 matches
1// This val creates a SQLite dashboard admin panel with a sidebar for table names
2// It uses React for the frontend and the Val Town SQLite API for database operations
3// Now includes functionality to edit rows, using rowid or all columns as identifiers
4// and the ability to add new rows to tables
5// Column types are displayed next to column names in the UI
10import { vtTokenSessionAuth } from "https://esm.town/v/stevekrouse/vtTokenSessionAuthSafe";
1112function App() {
13const [tables, setTables] = useState([]);
14const [selectedTable, setSelectedTable] = useState(null);
195}
196197function client() {
198createRoot(document.getElementById("root")).render(<App />);
199}
203}
204205async function server(request: Request): Promise<Response> {
206const { sqlite } = await import("https://esm.town/v/stevekrouse/sqlite");
207const url = new URL(request.url);
templateTwitterAlertREADME.md2 matches
46- Key: `mentionsDiscord`
47- Value: Your Discord webhook URL.
48Notifications will be sent using this function:
4950```ts
6364- **Proxies via Val Town's [SocialDataProxy](https://www.val.town/v/stevekrouse/socialDataProxy)**: Limited to 10 cents per day for [**Val Town Pro users**](https://www.val.town/pricing). This API is *only* for Pro users.
65- **Need more calls?** Sign up for your own [SocialData API token](https://socialdata.tools) and configure the [`socialDataSearch`](https://www.val.town/v/stevekrouse/socialDataSearch) function.
templateTwitterAlertmain.tsx1 match
12const isProd = false;
1314export async function twitterAlert({ lastRunAt }: Interval) {
15// If isProd, search for tweets since that last time this interval ran
16// if not, search for tweets since 48 hours ago for testing
Boluwatife_Olubodunmain.tsx1 match
2import { renderToString } from "npm:react-dom/server";
34export default async function(req: Request) {
5return new Response(
6renderToString(
linkInBioTemplatemain.tsx1 match
2import { renderToString } from "npm:react-dom/server";
34export default async function(req: Request) {
5return new Response(
6renderToString(
blob_adminapp.tsx7 matches
10}
1112function Tooltip({ children, content }: TooltipProps) {
13const [isVisible, setIsVisible] = useState(false);
14const tooltipRef = useRef<HTMLDivElement>(null);
49}
5051function formatBytes(bytes: number, decimals = 2) {
52if (bytes === 0) return "0 Bytes";
53const k = 1024;
58}
5960function copyToClipboard(text: string) {
61navigator.clipboard.writeText(text).then(() => {
62console.log("Text copied to clipboard");
66}
6768function ActionMenu({ blob, onDownload, onRename, onDelete, onMoveToPublic, onMoveOutOfPublic }) {
69const [isOpen, setIsOpen] = useState(false);
70const menuRef = useRef(null);
7374useEffect(() => {
75function handleClickOutside(event) {
76if (menuRef.current && !menuRef.current.contains(event.target)) {
77event.stopPropagation();
155}
156157function BlobItem({ blob, onSelect, isSelected, onDownload, onRename, onDelete, onMoveToPublic, onMoveOutOfPublic }) {
158const [isLoading, setIsLoading] = useState(false);
159const decodedKey = decodeURIComponent(blob.key);
216}
217218function App({ initialEmail, initialProfile, sourceURL }) {
219const encodeKey = (key: string) => encodeURIComponent(key);
220const decodeKey = (key: string) => decodeURIComponent(key);